renovate-log-parser 0.1.1 → 0.2.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 (343) hide show
  1. package/README.md +119 -34
  2. package/dist/commands/install-analyze-skill.d.ts +0 -1
  3. package/dist/commands/install-analyze-skill.js +15 -12
  4. package/dist/commands/install-analyze-skill.js.map +1 -1
  5. package/dist/commands/web.d.ts +2 -1
  6. package/dist/commands/web.js +23 -11
  7. package/dist/commands/web.js.map +1 -1
  8. package/dist/core/skill-template.js +17 -3
  9. package/dist/core/skill-template.js.map +1 -1
  10. package/dist/server/api.d.ts +16 -0
  11. package/dist/server/api.js +173 -0
  12. package/dist/server/api.js.map +1 -0
  13. package/dist/server/http-error.d.ts +18 -0
  14. package/dist/server/http-error.js +23 -0
  15. package/dist/server/http-error.js.map +1 -0
  16. package/dist/server/index.d.ts +34 -0
  17. package/dist/server/index.js +54 -0
  18. package/dist/server/index.js.map +1 -0
  19. package/dist/server/log-registry.d.ts +34 -0
  20. package/dist/server/log-registry.js +157 -0
  21. package/dist/server/log-registry.js.map +1 -0
  22. package/dist/server/server-main.d.ts +1 -0
  23. package/dist/server/server-main.js +31 -0
  24. package/dist/server/server-main.js.map +1 -0
  25. package/dist/server/translate-filters.d.ts +58 -0
  26. package/dist/server/translate-filters.js +119 -0
  27. package/dist/server/translate-filters.js.map +1 -0
  28. package/package.json +13 -5
  29. package/web/.output/public/200.html +1 -0
  30. package/web/.output/public/404.html +1 -0
  31. package/web/.output/public/_nuxt/BDNMzG2s.js +1 -0
  32. package/web/.output/public/_nuxt/BjDV6v2h.js +1 -0
  33. package/web/.output/public/_nuxt/CVlqYHPc.js +6 -0
  34. package/web/.output/public/_nuxt/CuOsDQlp.js +1 -0
  35. package/web/.output/public/_nuxt/CztOM3Aq.js +28 -0
  36. package/web/.output/public/_nuxt/D3wuHpM_.js +3 -0
  37. package/web/.output/public/_nuxt/DK3Fl9T5.js +1 -0
  38. package/web/.output/public/_nuxt/DUXEQ2Eh.js +3 -0
  39. package/web/.output/public/_nuxt/DVWtRbHb.js +1 -0
  40. package/web/.output/public/_nuxt/DeS15jQo.js +1 -0
  41. package/web/.output/public/_nuxt/XP9RigIT.js +1 -0
  42. package/web/.output/public/_nuxt/builds/latest.json +1 -1
  43. package/web/.output/public/_nuxt/builds/meta/f68582c9-55a9-4352-b85a-d7f8de6f7202.json +1 -0
  44. package/web/.output/public/_nuxt/entry.BlZrUrUl.css +2 -0
  45. package/web/.output/public/_nuxt/error-404.zKZBzOko.css +1 -0
  46. package/web/.output/public/_nuxt/error-500.DwXcJPfY.css +1 -0
  47. package/web/.output/public/_nuxt/lGYp6_9X.js +1 -0
  48. package/web/.output/public/_nuxt/pages.BDcbBSnU.css +1 -0
  49. package/web/.output/public/_nuxt/public-sans-latin-400-italic.B1appi_f.woff2 +0 -0
  50. package/web/.output/public/_nuxt/public-sans-latin-400-italic.DsCWG5h0.woff +0 -0
  51. package/web/.output/public/_nuxt/public-sans-latin-400-normal.8Rpg0ruU.woff2 +0 -0
  52. package/web/.output/public/_nuxt/public-sans-latin-400-normal.SBbinRkI.woff +0 -0
  53. package/web/.output/public/_nuxt/public-sans-latin-500-normal.NlrCPXnF.woff2 +0 -0
  54. package/web/.output/public/_nuxt/public-sans-latin-500-normal.vCxiVFAq.woff +0 -0
  55. package/web/.output/public/_nuxt/public-sans-latin-600-normal.BR59oU-I.woff +0 -0
  56. package/web/.output/public/_nuxt/public-sans-latin-600-normal.Fru-LXNs.woff2 +0 -0
  57. package/web/.output/public/_nuxt/public-sans-latin-700-normal.BqJmxWdE.woff2 +0 -0
  58. package/web/.output/public/_nuxt/public-sans-latin-700-normal.Dm-oTPSL.woff +0 -0
  59. package/web/.output/public/favicon-dark.svg +32 -0
  60. package/web/.output/public/favicon-light.svg +32 -0
  61. package/web/.output/public/index.html +1 -0
  62. package/web/.output/nitro.json +0 -15
  63. package/web/.output/public/_fonts/57NSSoFy1VLVs2gqly8Ls9awBnZMFyXGrefpmqvdqmc-zJfbBtpgM4cDmcXBsqZNW79_kFnlpPd62b48glgdydA.woff2 +0 -0
  64. package/web/.output/public/_fonts/8VR2wSMN-3U4NbWAVYXlkRV6hA0jFBXP-0RtL3X7fko-x2gYI4qfmkRdxyQQUPaBZdZdgl1TeVrquF_TxHeM4lM.woff2 +0 -0
  65. package/web/.output/public/_fonts/GsKUclqeNLJ96g5AU593ug6yanivOiwjW_7zESNPChw-jHA4tBeM1bjF7LATGUpfBuSTyomIFrWBTzjF7txVYfg.woff2 +0 -0
  66. package/web/.output/public/_fonts/Ld1FnTo3yTIwDyGfTQ5-Fws9AWsCbKfMvgxduXr7JcY-W25bL8NF1fjpLRSOgJb7RoZPHqGQNwMTM7S9tHVoxx8.woff2 +0 -0
  67. package/web/.output/public/_fonts/NdzqRASp2bovDUhQT1IRE_EMqKJ2KYQdTCfFcBvL8yw-KhwZiS86o3fErOe5GGMExHUemmI_dBfaEFxjISZrBd0.woff2 +0 -0
  68. package/web/.output/public/_fonts/iTkrULNFJJkTvihIg1Vqi5IODRH_9btXCioVF5l98I8-AndUyau2HR2felA_ra8V2mutQgschhasE5FD1dXGJX8.woff2 +0 -0
  69. package/web/.output/public/_nuxt/BWja8e3M.js +0 -37
  70. package/web/.output/public/_nuxt/BgApMHS1.js +0 -1
  71. package/web/.output/public/_nuxt/CGPWRqbc.js +0 -1
  72. package/web/.output/public/_nuxt/DlAUqK2U.js +0 -1
  73. package/web/.output/public/_nuxt/Sgtec1U0.js +0 -1
  74. package/web/.output/public/_nuxt/builds/meta/785e7885-8d38-4aac-a7f6-735f68d27e63.json +0 -1
  75. package/web/.output/public/_nuxt/entry.9mB-pyEY.css +0 -1
  76. package/web/.output/public/_nuxt/error-404.B_PvSG-P.css +0 -1
  77. package/web/.output/public/_nuxt/error-500.CghkKCEr.css +0 -1
  78. package/web/.output/public/_nuxt/index.BlvAG7F6.css +0 -1
  79. package/web/.output/public/favicon.ico +0 -0
  80. package/web/.output/server/chunks/_/error-500.mjs +0 -19
  81. package/web/.output/server/chunks/_/error-500.mjs.map +0 -1
  82. package/web/.output/server/chunks/_/icons.mjs +0 -6153
  83. package/web/.output/server/chunks/_/icons.mjs.map +0 -1
  84. package/web/.output/server/chunks/_/icons2.mjs +0 -11494
  85. package/web/.output/server/chunks/_/icons2.mjs.map +0 -1
  86. package/web/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs +0 -10
  87. package/web/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs.map +0 -1
  88. package/web/.output/server/chunks/build/client.precomputed.mjs +0 -4
  89. package/web/.output/server/chunks/build/client.precomputed.mjs.map +0 -1
  90. package/web/.output/server/chunks/build/error-404-DOK13euR.mjs +0 -106
  91. package/web/.output/server/chunks/build/error-404-DOK13euR.mjs.map +0 -1
  92. package/web/.output/server/chunks/build/error-404-styles.9cNA4arh.mjs +0 -8
  93. package/web/.output/server/chunks/build/error-404-styles.9cNA4arh.mjs.map +0 -1
  94. package/web/.output/server/chunks/build/error-500-DKHEaocY.mjs +0 -89
  95. package/web/.output/server/chunks/build/error-500-DKHEaocY.mjs.map +0 -1
  96. package/web/.output/server/chunks/build/error-500-styles.BX54ZlkH.mjs +0 -8
  97. package/web/.output/server/chunks/build/error-500-styles.BX54ZlkH.mjs.map +0 -1
  98. package/web/.output/server/chunks/build/index-D_lNB6LA.mjs +0 -19675
  99. package/web/.output/server/chunks/build/index-D_lNB6LA.mjs.map +0 -1
  100. package/web/.output/server/chunks/build/index-styles.V2iua2bE.mjs +0 -8
  101. package/web/.output/server/chunks/build/index-styles.V2iua2bE.mjs.map +0 -1
  102. package/web/.output/server/chunks/build/server.mjs +0 -7910
  103. package/web/.output/server/chunks/build/server.mjs.map +0 -1
  104. package/web/.output/server/chunks/build/styles.mjs +0 -10
  105. package/web/.output/server/chunks/build/styles.mjs.map +0 -1
  106. package/web/.output/server/chunks/nitro/nitro.mjs +0 -6944
  107. package/web/.output/server/chunks/nitro/nitro.mjs.map +0 -1
  108. package/web/.output/server/chunks/routes/api/fields.get.mjs +0 -27
  109. package/web/.output/server/chunks/routes/api/fields.get.mjs.map +0 -1
  110. package/web/.output/server/chunks/routes/api/findings.get.mjs +0 -30
  111. package/web/.output/server/chunks/routes/api/findings.get.mjs.map +0 -1
  112. package/web/.output/server/chunks/routes/api/log/contents.post.mjs +0 -29
  113. package/web/.output/server/chunks/routes/api/log/contents.post.mjs.map +0 -1
  114. package/web/.output/server/chunks/routes/api/log/path.post.mjs +0 -30
  115. package/web/.output/server/chunks/routes/api/log/path.post.mjs.map +0 -1
  116. package/web/.output/server/chunks/routes/api/repositories.get.mjs +0 -27
  117. package/web/.output/server/chunks/routes/api/repositories.get.mjs.map +0 -1
  118. package/web/.output/server/chunks/routes/api/rows.get.mjs +0 -48
  119. package/web/.output/server/chunks/routes/api/rows.get.mjs.map +0 -1
  120. package/web/.output/server/chunks/routes/renderer.mjs +0 -451
  121. package/web/.output/server/chunks/routes/renderer.mjs.map +0 -1
  122. package/web/.output/server/chunks/virtual/_virtual_spa-template.mjs +0 -4
  123. package/web/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +0 -1
  124. package/web/.output/server/index.mjs +0 -16
  125. package/web/.output/server/index.mjs.map +0 -1
  126. package/web/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs +0 -290
  127. package/web/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +0 -49
  128. package/web/.output/server/node_modules/.nitro/hookable@6.1.1/dist/index.mjs +0 -257
  129. package/web/.output/server/node_modules/.nitro/hookable@6.1.1/package.json +0 -53
  130. package/web/.output/server/node_modules/@babel/parser/lib/index.js +0 -14599
  131. package/web/.output/server/node_modules/@babel/parser/package.json +0 -50
  132. package/web/.output/server/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +0 -1038
  133. package/web/.output/server/node_modules/@floating-ui/core/package.json +0 -63
  134. package/web/.output/server/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +0 -789
  135. package/web/.output/server/node_modules/@floating-ui/dom/package.json +0 -72
  136. package/web/.output/server/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +0 -165
  137. package/web/.output/server/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +0 -136
  138. package/web/.output/server/node_modules/@floating-ui/utils/package.json +0 -70
  139. package/web/.output/server/node_modules/@floating-ui/vue/dist/floating-ui.vue.mjs +0 -190
  140. package/web/.output/server/node_modules/@floating-ui/vue/package.json +0 -71
  141. package/web/.output/server/node_modules/@iconify/utils/lib/colors/index.js +0 -295
  142. package/web/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +0 -701
  143. package/web/.output/server/node_modules/@iconify/utils/lib/css/common.js +0 -75
  144. package/web/.output/server/node_modules/@iconify/utils/lib/css/format.js +0 -39
  145. package/web/.output/server/node_modules/@iconify/utils/lib/css/icon.js +0 -47
  146. package/web/.output/server/node_modules/@iconify/utils/lib/css/icons.js +0 -128
  147. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +0 -19
  148. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +0 -13
  149. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +0 -17
  150. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +0 -16
  151. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +0 -30
  152. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +0 -78
  153. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +0 -100
  154. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +0 -28
  155. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +0 -58
  156. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +0 -48
  157. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +0 -203
  158. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +0 -33
  159. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +0 -132
  160. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +0 -165
  161. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +0 -79
  162. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +0 -92
  163. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +0 -26
  164. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +0 -76
  165. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +0 -66
  166. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +0 -45
  167. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +0 -103
  168. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +0 -36
  169. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +0 -92
  170. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +0 -62
  171. package/web/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +0 -25
  172. package/web/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +0 -16
  173. package/web/.output/server/node_modules/@iconify/utils/lib/icon/name.js +0 -57
  174. package/web/.output/server/node_modules/@iconify/utils/lib/icon/square.js +0 -33
  175. package/web/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +0 -12
  176. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +0 -125
  177. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +0 -19
  178. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +0 -25
  179. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +0 -36
  180. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +0 -91
  181. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +0 -46
  182. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +0 -23
  183. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +0 -42
  184. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +0 -123
  185. package/web/.output/server/node_modules/@iconify/utils/lib/index.js +0 -52
  186. package/web/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +0 -30
  187. package/web/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +0 -26
  188. package/web/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +0 -27
  189. package/web/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +0 -105
  190. package/web/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +0 -26
  191. package/web/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +0 -26
  192. package/web/.output/server/node_modules/@iconify/utils/lib/misc/title.js +0 -9
  193. package/web/.output/server/node_modules/@iconify/utils/lib/svg/build.js +0 -113
  194. package/web/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +0 -31
  195. package/web/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +0 -13
  196. package/web/.output/server/node_modules/@iconify/utils/lib/svg/html.js +0 -9
  197. package/web/.output/server/node_modules/@iconify/utils/lib/svg/id.js +0 -41
  198. package/web/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +0 -22
  199. package/web/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +0 -67
  200. package/web/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +0 -54
  201. package/web/.output/server/node_modules/@iconify/utils/lib/svg/size.js +0 -27
  202. package/web/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +0 -7
  203. package/web/.output/server/node_modules/@iconify/utils/lib/svg/url.js +0 -22
  204. package/web/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +0 -8
  205. package/web/.output/server/node_modules/@iconify/utils/package.json +0 -119
  206. package/web/.output/server/node_modules/@iconify/vue/dist/iconify.mjs +0 -1896
  207. package/web/.output/server/node_modules/@iconify/vue/package.json +0 -62
  208. package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/index.js +0 -1268
  209. package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js +0 -34
  210. package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/utils.js +0 -74
  211. package/web/.output/server/node_modules/@tanstack/virtual-core/package.json +0 -56
  212. package/web/.output/server/node_modules/@tanstack/vue-virtual/dist/esm/index.js +0 -66
  213. package/web/.output/server/node_modules/@tanstack/vue-virtual/package.json +0 -68
  214. package/web/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +0 -6759
  215. package/web/.output/server/node_modules/@vue/compiler-core/package.json +0 -58
  216. package/web/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +0 -689
  217. package/web/.output/server/node_modules/@vue/compiler-dom/package.json +0 -57
  218. package/web/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +0 -1413
  219. package/web/.output/server/node_modules/@vue/compiler-ssr/package.json +0 -34
  220. package/web/.output/server/node_modules/@vue/devtools-api/dist/index.js +0 -2
  221. package/web/.output/server/node_modules/@vue/devtools-api/package.json +0 -34
  222. package/web/.output/server/node_modules/@vue/devtools-kit/dist/index.js +0 -5670
  223. package/web/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable/dist/index.mjs +0 -290
  224. package/web/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable/package.json +0 -49
  225. package/web/.output/server/node_modules/@vue/devtools-kit/package.json +0 -44
  226. package/web/.output/server/node_modules/@vue/devtools-shared/dist/index.js +0 -239
  227. package/web/.output/server/node_modules/@vue/devtools-shared/package.json +0 -33
  228. package/web/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +0 -1899
  229. package/web/.output/server/node_modules/@vue/reactivity/package.json +0 -55
  230. package/web/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +0 -6940
  231. package/web/.output/server/node_modules/@vue/runtime-core/package.json +0 -52
  232. package/web/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +0 -1822
  233. package/web/.output/server/node_modules/@vue/runtime-dom/package.json +0 -60
  234. package/web/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +0 -896
  235. package/web/.output/server/node_modules/@vue/server-renderer/package.json +0 -55
  236. package/web/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +0 -604
  237. package/web/.output/server/node_modules/@vue/shared/package.json +0 -47
  238. package/web/.output/server/node_modules/@vueuse/core/dist/index.js +0 -8464
  239. package/web/.output/server/node_modules/@vueuse/core/package.json +0 -49
  240. package/web/.output/server/node_modules/@vueuse/shared/dist/index.js +0 -2013
  241. package/web/.output/server/node_modules/@vueuse/shared/package.json +0 -42
  242. package/web/.output/server/node_modules/aria-hidden/dist/es5/index.js +0 -174
  243. package/web/.output/server/node_modules/aria-hidden/package.json +0 -71
  244. package/web/.output/server/node_modules/birpc/dist/index.mjs +0 -291
  245. package/web/.output/server/node_modules/birpc/package.json +0 -57
  246. package/web/.output/server/node_modules/consola/dist/chunks/prompt.mjs +0 -280
  247. package/web/.output/server/node_modules/consola/dist/core.mjs +0 -512
  248. package/web/.output/server/node_modules/consola/dist/index.mjs +0 -651
  249. package/web/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +0 -72
  250. package/web/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +0 -288
  251. package/web/.output/server/node_modules/consola/package.json +0 -136
  252. package/web/.output/server/node_modules/devalue/index.js +0 -4
  253. package/web/.output/server/node_modules/devalue/package.json +0 -40
  254. package/web/.output/server/node_modules/devalue/src/base64.js +0 -60
  255. package/web/.output/server/node_modules/devalue/src/constants.js +0 -12
  256. package/web/.output/server/node_modules/devalue/src/parse.js +0 -283
  257. package/web/.output/server/node_modules/devalue/src/stringify.js +0 -401
  258. package/web/.output/server/node_modules/devalue/src/uneval.js +0 -552
  259. package/web/.output/server/node_modules/devalue/src/utils.js +0 -160
  260. package/web/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +0 -77
  261. package/web/.output/server/node_modules/entities/dist/commonjs/decode.js +0 -568
  262. package/web/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +0 -7
  263. package/web/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +0 -7
  264. package/web/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +0 -21
  265. package/web/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +0 -31
  266. package/web/.output/server/node_modules/entities/dist/commonjs/package.json +0 -3
  267. package/web/.output/server/node_modules/entities/package.json +0 -120
  268. package/web/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +0 -344
  269. package/web/.output/server/node_modules/estree-walker/package.json +0 -37
  270. package/web/.output/server/node_modules/hookable/dist/index.mjs +0 -257
  271. package/web/.output/server/node_modules/hookable/package.json +0 -53
  272. package/web/.output/server/node_modules/nostics/dist/index.mjs +0 -179
  273. package/web/.output/server/node_modules/nostics/package.json +0 -124
  274. package/web/.output/server/node_modules/perfect-debounce/dist/index.mjs +0 -89
  275. package/web/.output/server/node_modules/perfect-debounce/package.json +0 -41
  276. package/web/.output/server/node_modules/rou3/dist/index.mjs +0 -501
  277. package/web/.output/server/node_modules/rou3/package.json +0 -48
  278. package/web/.output/server/node_modules/source-map-js/lib/array-set.js +0 -121
  279. package/web/.output/server/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  280. package/web/.output/server/node_modules/source-map-js/lib/base64.js +0 -67
  281. package/web/.output/server/node_modules/source-map-js/lib/binary-search.js +0 -111
  282. package/web/.output/server/node_modules/source-map-js/lib/mapping-list.js +0 -79
  283. package/web/.output/server/node_modules/source-map-js/lib/quick-sort.js +0 -132
  284. package/web/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  285. package/web/.output/server/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  286. package/web/.output/server/node_modules/source-map-js/lib/source-node.js +0 -413
  287. package/web/.output/server/node_modules/source-map-js/lib/util.js +0 -594
  288. package/web/.output/server/node_modules/source-map-js/package.json +0 -71
  289. package/web/.output/server/node_modules/source-map-js/source-map.js +0 -8
  290. package/web/.output/server/node_modules/srvx/dist/_chunks/_body-limit.mjs +0 -39
  291. package/web/.output/server/node_modules/srvx/dist/_chunks/_plugins.mjs +0 -56
  292. package/web/.output/server/node_modules/srvx/dist/_chunks/_trust-proxy.mjs +0 -58
  293. package/web/.output/server/node_modules/srvx/dist/_chunks/_url.mjs +0 -134
  294. package/web/.output/server/node_modules/srvx/dist/_chunks/_utils.mjs +0 -15
  295. package/web/.output/server/node_modules/srvx/dist/_chunks/_utils2.mjs +0 -75
  296. package/web/.output/server/node_modules/srvx/dist/adapters/node.mjs +0 -976
  297. package/web/.output/server/node_modules/srvx/package.json +0 -102
  298. package/web/.output/server/node_modules/tailwind-merge/dist/bundle-mjs.mjs +0 -3365
  299. package/web/.output/server/node_modules/tailwind-merge/package.json +0 -93
  300. package/web/.output/server/node_modules/tailwind-variants/dist/chunk-LQJYWU4O.js +0 -112
  301. package/web/.output/server/node_modules/tailwind-variants/dist/chunk-RZF76H2U.js +0 -269
  302. package/web/.output/server/node_modules/tailwind-variants/dist/index.js +0 -38
  303. package/web/.output/server/node_modules/tailwind-variants/package.json +0 -122
  304. package/web/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +0 -1
  305. package/web/.output/server/node_modules/tailwindcss/dist/colors.mjs +0 -1
  306. package/web/.output/server/node_modules/tailwindcss/package.json +0 -89
  307. package/web/.output/server/node_modules/ufo/dist/index.mjs +0 -645
  308. package/web/.output/server/node_modules/ufo/package.json +0 -48
  309. package/web/.output/server/node_modules/unhead/dist/index.mjs +0 -9
  310. package/web/.output/server/node_modules/unhead/dist/parser.mjs +0 -508
  311. package/web/.output/server/node_modules/unhead/dist/plugins.mjs +0 -101
  312. package/web/.output/server/node_modules/unhead/dist/scripts.mjs +0 -30
  313. package/web/.output/server/node_modules/unhead/dist/server.mjs +0 -180
  314. package/web/.output/server/node_modules/unhead/dist/shared/unhead.B3VbJo7Y.mjs +0 -207
  315. package/web/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +0 -43
  316. package/web/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +0 -269
  317. package/web/.output/server/node_modules/unhead/dist/shared/unhead.CaI5ZD4O.mjs +0 -182
  318. package/web/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +0 -71
  319. package/web/.output/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs +0 -236
  320. package/web/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +0 -196
  321. package/web/.output/server/node_modules/unhead/dist/shared/unhead.Dh1cQCTe.mjs +0 -44
  322. package/web/.output/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs +0 -166
  323. package/web/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +0 -38
  324. package/web/.output/server/node_modules/unhead/dist/utils.mjs +0 -5
  325. package/web/.output/server/node_modules/unhead/node_modules/hookable/dist/index.mjs +0 -257
  326. package/web/.output/server/node_modules/unhead/node_modules/hookable/package.json +0 -53
  327. package/web/.output/server/node_modules/unhead/package.json +0 -105
  328. package/web/.output/server/node_modules/vue/dist/vue.cjs.js +0 -80
  329. package/web/.output/server/node_modules/vue/dist/vue.cjs.prod.js +0 -66
  330. package/web/.output/server/node_modules/vue/index.js +0 -7
  331. package/web/.output/server/node_modules/vue/index.mjs +0 -1
  332. package/web/.output/server/node_modules/vue/package.json +0 -112
  333. package/web/.output/server/node_modules/vue/server-renderer/index.mjs +0 -1
  334. package/web/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +0 -249
  335. package/web/.output/server/node_modules/vue-bundle-renderer/package.json +0 -57
  336. package/web/.output/server/node_modules/vue-demi/lib/index.mjs +0 -34
  337. package/web/.output/server/node_modules/vue-demi/package.json +0 -47
  338. package/web/.output/server/node_modules/vue-router/dist/devtools-Bpr7ZAVB.js +0 -1056
  339. package/web/.output/server/node_modules/vue-router/dist/useApi-CROJJdhE.js +0 -436
  340. package/web/.output/server/node_modules/vue-router/dist/vue-router.js +0 -1543
  341. package/web/.output/server/node_modules/vue-router/package.json +0 -214
  342. package/web/.output/server/node_modules/vue-router/vue-router.node.mjs +0 -2
  343. package/web/.output/server/package.json +0 -51
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # renovate-log-parser
2
2
 
3
+ ![](./renovate-log-parser.webp)
4
+
3
5
  `renovate-log-parser` is a CLI and web interface for manual and automated analyses of Renovate Bot debug logs (JSONL-formatted), which you get by either downloading a run's log from [https://developer.mend.io](https://developer.mend.io) (if you use Mend's _hosted_ GitHub app), or by setting the `LOG_FILE` environment variable for self-hosted Renovate.
4
6
 
5
7
  `renovate-log-parser` offers the following commands:
@@ -7,6 +9,33 @@
7
9
  - `detect-errors` is meant for CI pipelines; it scans the log for build-breaking problems and warnings and exits with error, helping you detect and solve hidden Renovate issues you would otherwise miss
8
10
  - `analyze` (with a corresponding SKILL.md) tells your coding agent (Codex, Copilot, Claude Code, etc.) about the log's structure, allowing it to efficiently read only the most relevant log lines in a token-efficient way, so that it can quickly (and cheaply) diagnose Renovate problems
9
11
  - `web` starts a temporary local web server that parses the log and serves a browser-based interface that you use to analyze and filter Renovate logs of _any_ length; this solves the problem of tedious, manual “grep”-like analyses where your text editor chokes on too large files
12
+ - `install-analyze-skill` writes a SKILL.md into your project or home directory, optionally including instructions for pulling the log straight from your GitHub Actions Renovate runs — so your agent knows both how to get a log and how to read it
13
+
14
+ Want to try it right away? Grab an example log and open it in the web UI:
15
+
16
+ ```bash
17
+ curl -sSLO https://raw.githubusercontent.com/MShekow/renovate-log-parser/main/src/core/__tests__/fixtures/various-issues.jsonl
18
+ npx renovate-log-parser web various-issues.jsonl
19
+ ```
20
+
21
+ <details>
22
+ <summary>Or, if you prefer Docker (mounting the log into the container and mapping the port)</summary>
23
+
24
+ ```bash
25
+ curl -sSLO https://raw.githubusercontent.com/MShekow/renovate-log-parser/main/src/core/__tests__/fixtures/various-issues.jsonl
26
+ docker run --rm -it -p 3000:3000 -v "$PWD/various-issues.jsonl:/logs/various-issues.jsonl:ro" node:26-alpine \
27
+ npx -y renovate-log-parser web /logs/various-issues.jsonl --host 0.0.0.0 --no-open
28
+ ```
29
+
30
+ Once the container reports that the server is listening, open the UI from a
31
+ second terminal — the `?log=` parameter is the path _inside_ the container, and
32
+ makes the UI load the file right away (`open` instead of `xdg-open` on macOS):
33
+
34
+ ```bash
35
+ xdg-open "http://localhost:3000/?log=/logs/various-issues.jsonl"
36
+ ```
37
+
38
+ </details>
10
39
 
11
40
  ## Background (why do I need this)
12
41
 
@@ -31,7 +60,7 @@ npx renovate-log-parser detect-errors path/to/renovate.jsonl --out report.json
31
60
  # Emit token-efficient stats for an AI coding agent
32
61
  npx renovate-log-parser analyze path/to/renovate.jsonl
33
62
 
34
- # Explore a log interactively in the Nuxt-based web UI
63
+ # Explore a log interactively in the web UI
35
64
  npx renovate-log-parser web path/to/renovate.jsonl
36
65
  ```
37
66
 
@@ -171,10 +200,11 @@ token-efficiently. It can optionally embed instructions for fetching the
171
200
  log from GitHub self-hosted Renovate workflows via the `gh` CLI.
172
201
 
173
202
  The command is interactive by default: it asks whether to install the skill
174
- **locally** or **globally**, and whether to include the GitHub-fetch section
175
- (and if so, the base URL, organization, repository, and Renovate workflow
176
- filename). All answers can also be supplied as flags to run non-interactively
177
- (e.g. in CI); any flag you pass skips its prompt.
203
+ **locally** or **globally**, and whether to include the GitHub-fetch section
204
+ which assumes you run self-hosted Renovate as a GitHub Actions workflow in a
205
+ repository (and if so, the repository as `org/repo`, the Renovate workflow
206
+ filename, and the base URL). All answers can also be supplied as flags to run
207
+ non-interactively (e.g. in CI); any flag you pass skips its prompt.
178
208
 
179
209
  ```bash
180
210
  # Interactive
@@ -183,7 +213,7 @@ npx renovate-log-parser install-analyze-skill
183
213
  # Non-interactive, local, with a GitHub Enterprise fetch section
184
214
  npx renovate-log-parser install-analyze-skill --scope local --with-gh \
185
215
  --gh-base-url github.example.com \
186
- --gh-org acme --gh-repo app --gh-workflow renovate.yml
216
+ --gh-repo acme/app --gh-workflow renovate.yml
187
217
  ```
188
218
 
189
219
  The skill is written to
@@ -195,8 +225,7 @@ current working directory (`local`) or your home directory (`global`).
195
225
  | `--scope` | (prompt) | `local` (`<cwd>/.agents/skills`) or `global` (`~/.agents/skills`) |
196
226
  | `--with-gh` | (prompt) | Include a "fetch logs from GitHub via `gh`" section |
197
227
  | `--gh-base-url` | (prompt if gh) | GitHub Enterprise host (e.g. `github.example.com`); blank = github.com |
198
- | `--gh-org` | (prompt if gh) | GitHub organization/owner |
199
- | `--gh-repo` | (prompt if gh) | Repository name |
228
+ | `--gh-repo` | (prompt if gh) | Repository as `org/repo` (e.g. `acme/app`) |
200
229
  | `--gh-workflow` | (prompt if gh) | Filename of the workflow that runs Renovate (e.g. `renovate.yml`) |
201
230
  | `--yes` | `false` | Skip all prompts; fail if a required answer is missing |
202
231
 
@@ -205,9 +234,11 @@ when non-interactive, or a write failure).
205
234
 
206
235
  ### `web`
207
236
 
208
- Starts the bundled [Nuxt](https://nuxt.com) web UI (with [Nuxt UI](https://ui.nuxt.com)
209
- and Nuxt's built-in Nitro server) for interactive, filtered log exploration. Pass
210
- an optional log path to open it automatically; otherwise use the in-app file
237
+ Starts the bundled web UI for interactive, filtered log exploration: a
238
+ statically-rendered [Nuxt](https://nuxt.com) SPA (with
239
+ [Nuxt UI](https://ui.nuxt.com)) served by a small
240
+ [Express](https://expressjs.com) server that also exposes the `/api` endpoints.
241
+ Pass an optional log path to open it automatically; otherwise use the in-app file
211
242
  picker. The server keeps the parsed log in memory (SQLite-backed) and streams
212
243
  paged rows to the client.
213
244
 
@@ -246,10 +277,15 @@ collapsible JSON tree of the full entry.
246
277
  `field == value`; nested keys create a scoped "contains" search on their
247
278
  top-level ancestor).
248
279
 
280
+ The affordances that cannot be discovered by looking — the two context menus
281
+ above all, but also the pill click/✕ semantics, the `*` search rules and what
282
+ "Hidden fields" actually does — are documented in the UI itself, behind the
283
+ **Help** button in the header.
284
+
249
285
  ## Development
250
286
 
251
- This repository is an npm workspace: the publishable CLI lives at the root and
252
- the Nuxt app lives in [`web/`](./web).
287
+ This repository is an npm workspace: the publishable CLI and the Express web
288
+ server live at the root (`src/`), the Nuxt frontend lives in [`web/`](./web).
253
289
 
254
290
  ```bash
255
291
  # Install all workspace dependencies
@@ -259,10 +295,12 @@ npm install
259
295
  npm run dev:cli -- detect-errors path/to/renovate.jsonl
260
296
  npm run dev:cli -- web
261
297
 
262
- # Run the Nuxt app in dev mode (HMR) directly
263
- npm run dev:web
298
+ # Run the web UI in dev mode: two processes, in two terminals.
299
+ # The Nuxt dev server (HMR) proxies /api to the Express server on port 3001.
300
+ npm run dev:api # Express API on :3001 (tsx watch)
301
+ npm run dev:web # Nuxt dev server on :3000
264
302
 
265
- # Build everything (Nuxt .output + compiled CLI)
303
+ # Build everything (static SPA in web/.output/public + compiled CLI)
266
304
  npm run build
267
305
 
268
306
  # Run the compiled CLI
@@ -278,6 +316,9 @@ npm run test:e2e # Packaging E2E tests (slow: builds, packs, installs)
278
316
 
279
317
  # One-off, needed by the browser tests inside the E2E suite:
280
318
  npx playwright-core install chromium
319
+
320
+ npm run test:e2e:screenshots # + pixel comparison, in Docker
321
+ npm run test:e2e:screenshots:update # rewrite the committed baselines
281
322
  ```
282
323
 
283
324
  Three suites, each catching a different failure class:
@@ -304,20 +345,56 @@ Three suites, each catching a different failure class:
304
345
  - **Packaging E2E tests** (`e2e/pack-install.e2e.ts`) — build, `npm pack`,
305
346
  install the tarball into an empty throwaway project, then drive the installed
306
347
  `renovate-log-parser` binary against a fixture. This is the only suite that
307
- can catch a missing `package.json#files` entry, a dropped Nuxt `.output`
308
- symlink, or a `dist/` import that only resolved because `src/` sat next to it.
348
+ can catch a missing `package.json#files` entry or a `dist/` import that only
349
+ resolved because `src/` sat next to it.
309
350
  Set `SKIP_E2E=1` to skip.
310
351
 
311
352
  Its nested `web UI` block starts the installed `web` command and drives the
312
353
  real UI in a headless Chromium, using the `playwright-core` _library_ — there
313
354
  is no second test runner or config file, these are plain `node:test` cases in
314
355
  the same file. Because they run against the installed tarball, they assert
315
- that the shipped Nuxt bundle actually boots and serves, not merely that its
356
+ that the shipped server actually boots and serves the SPA, not merely that its
316
357
  files are present. Chromium must be installed once with
317
358
  `npx playwright-core install chromium`; when a browser test fails, a
318
359
  screenshot, an HTML dump and the captured console/server output are written to
319
360
  `e2e-artifacts/` (CI uploads them as a build artifact).
320
361
 
362
+ ### Screenshot tests
363
+
364
+ The last four cases in the `web UI` block compare the live UI against the PNGs
365
+ committed under [`e2e/screenshots/`](./e2e/screenshots) — the empty state, a
366
+ loaded log, the Problems slide-over and the details slide-over. **Any** differing
367
+ pixel fails the test. Locator-based assertions cannot see a broken layout, a
368
+ level glyph that lost its colour, or a Nuxt UI upgrade that reflows the header;
369
+ this is the only suite that can.
370
+
371
+ Pixels are decided by more than the code: the Chromium build, the installed font
372
+ files and the fontconfig rasterisation settings all change the output. A baseline
373
+ is therefore only meaningful against a frozen environment, so the comparison runs
374
+ inside the container built from [`e2e/Dockerfile`](./e2e/Dockerfile) — pinned base
375
+ image, Chromium pinned to the `playwright-core` version in `package.json`, and a
376
+ fixed grayscale-antialiasing/hinting config. Outside that container the four
377
+ cases skip themselves, so a plain `npm run test:e2e` keeps working as before.
378
+
379
+ ```bash
380
+ npm run test:e2e:screenshots # build the image, run the suite, compare
381
+ npm run test:e2e:screenshots:update # same, but rewrite the baselines
382
+ ```
383
+
384
+ Both build the image (cached after the first run) and mount the work tree as your
385
+ own UID, so nothing root-owned is left behind. On a mismatch the expected, actual
386
+ and diff images are written to `e2e-artifacts/` and uploaded by CI.
387
+
388
+ After an intended UI change, run the update script, **look at the regenerated
389
+ PNGs**, and commit them alongside the change — a baseline diff is part of the
390
+ review, not a chore to rubber-stamp. Upgrading `@nuxt/ui`, `tailwindcss` or
391
+ `playwright-core` will usually require the same, since all three move pixels.
392
+
393
+ For this to hold, `Public Sans` is self-hosted via `@fontsource/public-sans`
394
+ rather than merely declared: an unloaded font falls back to whatever
395
+ `sans-serif` the viewer's OS provides, which made the UI render differently on
396
+ every machine.
397
+
321
398
  ### Regenerating the log fixtures
322
399
 
323
400
  The [`compose.yml`](./compose.yml) stack runs Renovate against the test
@@ -367,34 +444,42 @@ npm run format:check # Prettier check (no writes — useful in CI)
367
444
  ### How it's built
368
445
 
369
446
  - **CLI** — TypeScript compiled with `tsc` to ESM in `dist/`. Uses
370
- [`yargs`](https://yargs.js.org) for command parsing. `yargs` is the only
371
- runtime dependency.
372
- - **Web** — a Nuxt UI app built with `nuxt build`. It shares the CLI's parsing
373
- and filtering logic from `src/core/` (aliased into the bundle as
374
- `renovate-core`), so the browser and the CLI query the same SQLite-backed
375
- model. The `web` command runs the self-contained Nitro server
376
- (`web/.output/server/index.mjs`) as a child process; when given a log path it
377
- hands it off to the UI via a `?log=` query parameter.
447
+ [`yargs`](https://yargs.js.org) for command parsing.
448
+ - **Frontend** — a Nuxt UI app built with `nuxt generate` and `ssr: false`, i.e.
449
+ a purely client-side SPA: `web/.output/public` holds an app shell plus static
450
+ assets, and nothing of Nitro/h3 is shipped or run. It shares the CLI's
451
+ filtering model and level metadata from `src/core/` (aliased into the bundle
452
+ as `renovate-core`), so the browser and the CLI speak about the same
453
+ SQLite-backed model.
454
+ - **Backend** a plain Express server in [`src/server/`](./src/server),
455
+ compiled by the same `tsc` pass as the CLI. It imports `src/core/` through
456
+ ordinary relative imports (no bundler, no alias), serves the `/api` routes
457
+ from `api.ts`, and serves the static SPA with an `index.html` fallback so
458
+ client-side routing works. `log-registry.ts` holds the process-wide "current
459
+ log" (one open `Parser`/SQLite handle per loaded md5, plus a memoized error
460
+ report). The `web` command spawns `dist/server/server-main.js` as a child
461
+ process; when given a log path it hands it off to the UI via a `?log=` query
462
+ parameter.
378
463
 
379
464
  ### What gets published
380
465
 
381
466
  Two `package.json` mechanisms cooperate so that both build outputs ship to npm:
382
467
 
383
- - **`files: ["dist", "web/.output"]`** — an allow-list of what goes into the
468
+ - **`files: ["dist", "web/.output/public"]`** — an allow-list of what goes into the
384
469
  published tarball. npm always adds `package.json`, `README`, `LICENSE`, and the
385
470
  `bin` target, then includes everything matched here — both directories,
386
471
  recursively. This list takes precedence over `.gitignore`, which is why
387
472
  `web/.output/` (gitignored as a build artifact) is still published.
388
473
  - **`prepublishOnly: "npm run build"`** — a lifecycle hook npm runs automatically
389
- before packing on `npm publish`. It builds the Nuxt `.output` and compiles the
390
- CLI `dist`, so both directories exist and are current by the time the `files`
391
- allow-list is evaluated.
474
+ before packing on `npm publish`. It generates the static SPA and compiles the
475
+ CLI + server `dist`, so both directories exist and are current by the time the
476
+ `files` allow-list is evaluated.
392
477
 
393
478
  ```
394
479
  npm publish
395
- └─ prepublishOnly → npm run build → build:web (nuxt build → web/.output/)
396
- → build:cli (tsc → dist/)
397
- └─ pack tarball using `files`: dist/ + web/.output/ (+ package.json, README, LICENSE)
480
+ └─ prepublishOnly → npm run build → build:web (nuxt generate → web/.output/public/)
481
+ → build:cli (tsc → dist/)
482
+ └─ pack tarball using `files`: dist/ + web/.output/public/ (+ package.json, README, LICENSE)
398
483
  └─ upload to registry
399
484
  ```
400
485
 
@@ -3,7 +3,6 @@ interface InstallSkillArgs {
3
3
  scope?: string;
4
4
  "with-gh"?: boolean;
5
5
  "gh-base-url"?: string;
6
- "gh-org"?: string;
7
6
  "gh-repo"?: string;
8
7
  "gh-workflow"?: string;
9
8
  yes: boolean;
@@ -38,14 +38,10 @@ export const installAnalyzeSkillCommand = {
38
38
  .option("gh-base-url", {
39
39
  type: "string",
40
40
  describe: "GitHub Enterprise host for the gh section (e.g. github.example.com); omit for github.com",
41
- })
42
- .option("gh-org", {
43
- type: "string",
44
- describe: "GitHub organization/owner (gh section)",
45
41
  })
46
42
  .option("gh-repo", {
47
43
  type: "string",
48
- describe: "Repository name (gh section)",
44
+ describe: 'GitHub repository in "org/repo" form, e.g. acme/app (gh section)',
49
45
  })
50
46
  .option("gh-workflow", {
51
47
  type: "string",
@@ -118,12 +114,11 @@ async function resolveScope(flag, rl) {
118
114
  }
119
115
  /**
120
116
  * Resolve the optional GitHub-fetch config. `--with-gh` (or an interactive
121
- * yes/no) gates it; the org/repo/workflow are required once enabled, the base
122
- * URL is optional.
117
+ * yes/no) gates it; the repository ("org/repo") and workflow are required once
118
+ * enabled, the base URL is optional.
123
119
  */
124
120
  async function resolveGh(argv, rl) {
125
- const anyGhFlag = argv["gh-org"] !== undefined ||
126
- argv["gh-repo"] !== undefined ||
121
+ const anyGhFlag = argv["gh-repo"] !== undefined ||
127
122
  argv["gh-workflow"] !== undefined ||
128
123
  argv["gh-base-url"] !== undefined;
129
124
  let include;
@@ -135,19 +130,27 @@ async function resolveGh(argv, rl) {
135
130
  include = true;
136
131
  }
137
132
  else if (rl) {
138
- include = await promptYesNo(rl, "Include instructions to fetch logs from GitHub via the gh CLI?", false);
133
+ stdout.write("Assuming that you run self-hosted Renovate as a GitHub Actions workflow in a repository.\n");
134
+ include = await promptYesNo(rl, "Include instructions to fetch that workflow's run logs via the gh CLI?", false);
139
135
  }
140
136
  else {
141
137
  include = false;
142
138
  }
143
139
  if (!include)
144
140
  return undefined;
145
- const org = await resolveRequired(argv["gh-org"], rl, "GitHub organization/owner", "--gh-org");
146
- const repo = await resolveRequired(argv["gh-repo"], rl, "Repository name", "--gh-repo");
141
+ const { org, repo } = parseOrgRepo(await resolveRequired(argv["gh-repo"], rl, 'GitHub repository ["org/repo"]', "--gh-repo"));
147
142
  const workflow = await resolveRequired(argv["gh-workflow"], rl, "Workflow filename that runs Renovate (e.g. renovate.yml)", "--gh-workflow");
148
143
  const baseUrl = await resolveOptional(argv["gh-base-url"], rl, "GitHub base URL/host (blank for github.com)");
149
144
  return { org, repo, workflow, baseUrl: baseUrl || undefined };
150
145
  }
146
+ /** Parse an `org/repo` slug into its parts. */
147
+ function parseOrgRepo(value) {
148
+ const parts = value.trim().split("/");
149
+ if (parts.length !== 2 || parts[0] === "" || parts[1] === "") {
150
+ throw new Error(`Invalid repository "${value}". Expected "org/repo".`);
151
+ }
152
+ return { org: parts[0], repo: parts[1] };
153
+ }
151
154
  /** Resolve a required free-text answer from a flag or a prompt. */
152
155
  async function resolveRequired(flag, rl, label, flagName) {
153
156
  if (flag !== undefined && flag.trim() !== "")
@@ -1 +1 @@
1
- {"version":3,"file":"install-analyze-skill.js","sourceRoot":"","sources":["../../src/commands/install-analyze-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-analyze-skill.js","sourceRoot":"","sources":["../../src/commands/install-analyze-skill.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ interface WebArgs {
6
6
  open: boolean;
7
7
  }
8
8
  /**
9
- * `web` — starts the bundled Nuxt (Nitro) production server.
9
+ * `web` — starts the bundled Express server, which serves the JSON API and the
10
+ * statically-rendered Nuxt SPA.
10
11
  */
11
12
  export declare const webCommand: CommandModule<object, WebArgs>;
12
13
  export {};
@@ -3,11 +3,18 @@ import { fileURLToPath } from "node:url";
3
3
  import { existsSync } from "node:fs";
4
4
  import { resolve } from "node:path";
5
5
  /**
6
- * Resolve the prebuilt Nitro server entry that ships inside this package.
7
- * Layout after `tsc`: dist/commands/web.js → ../../web/.output/server/index.mjs
6
+ * Resolve the Express server entry that ships inside this package.
7
+ * Layout after `tsc`: dist/commands/web.js → ../server/server-main.js
8
8
  */
9
9
  function resolveServerEntry() {
10
- return fileURLToPath(new URL("../../web/.output/server/index.mjs", import.meta.url));
10
+ return fileURLToPath(new URL("../server/server-main.js", import.meta.url));
11
+ }
12
+ /**
13
+ * Resolve the statically-rendered SPA that the server serves.
14
+ * Layout after `tsc`: dist/commands/web.js → ../../web/.output/public
15
+ */
16
+ function resolveSpaIndex() {
17
+ return fileURLToPath(new URL("../../web/.output/public/index.html", import.meta.url));
11
18
  }
12
19
  /** Best-effort, dependency-free browser opener. */
13
20
  function openBrowser(url) {
@@ -25,11 +32,12 @@ function openBrowser(url) {
25
32
  }
26
33
  }
27
34
  /**
28
- * `web` — starts the bundled Nuxt (Nitro) production server.
35
+ * `web` — starts the bundled Express server, which serves the JSON API and the
36
+ * statically-rendered Nuxt SPA.
29
37
  */
30
38
  export const webCommand = {
31
39
  command: "web [path]",
32
- describe: "Start the Nuxt-based web UI",
40
+ describe: "Start the web UI",
33
41
  builder: (yargs) => yargs
34
42
  .positional("path", {
35
43
  type: "string",
@@ -52,10 +60,16 @@ export const webCommand = {
52
60
  }),
53
61
  handler: (argv) => {
54
62
  const serverEntry = resolveServerEntry();
55
- if (!existsSync(serverEntry)) {
63
+ const spaIndex = resolveSpaIndex();
64
+ const missing = !existsSync(serverEntry)
65
+ ? serverEntry
66
+ : !existsSync(spaIndex)
67
+ ? spaIndex
68
+ : null;
69
+ if (missing) {
56
70
  console.error("The web UI has not been built yet.\n" +
57
- "Expected server bundle at:\n " +
58
- serverEntry +
71
+ "Missing:\n " +
72
+ missing +
59
73
  '\nRun "npm run build" from the package source before using the "web" command.');
60
74
  process.exitCode = 1;
61
75
  return;
@@ -81,12 +95,10 @@ export const webCommand = {
81
95
  ...process.env,
82
96
  PORT: String(argv.port),
83
97
  HOST: argv.host,
84
- NITRO_PORT: String(argv.port),
85
- NITRO_HOST: argv.host,
86
98
  },
87
99
  });
88
100
  if (argv.open) {
89
- // Give Nitro a moment to bind before opening the browser.
101
+ // Give the server a moment to bind before opening the browser.
90
102
  setTimeout(() => openBrowser(openUrl), 1000);
91
103
  }
92
104
  const forward = (signal) => () => {
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":"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"}
@@ -205,9 +205,23 @@ manual analysis, run:
205
205
  npx --yes renovate-log-parser detect-errors <path-to-log.jsonl>
206
206
  \`\`\`
207
207
 
208
- It surfaces host-error aborts, config migrations, abandoned packages, \`err\`
209
- objects, and \`repoProblems\` — a good starting list of what to investigate with
210
- \`analyze\`.
208
+ **Detected categories** a good starting list of what to investigate with \`analyze\`:
209
+
210
+ - **Errors** (things Renovate would _not_ otherwise flag in a PR comment):
211
+ - \`host-error-abort\`: when Renovate skipped creating/updating PRs for a repository
212
+ because one or more well-known registries were unreachable; looks for a
213
+ \`Repository finished\` entry with \`result: "external-host-error"\`
214
+ - \`log-error\`: lines with error level (\`level=50\`)
215
+ - \`log-fatal\`: lines with fatal level (\`level=60\`)
216
+ - \`config-migration\`: when a repository needs a renovate.json migration; looks for a
217
+ \`Config migration necessary\` entry carrying \`oldConfig\` + \`newConfig\`
218
+ - \`abandoned-package\`: when a repository contains one or more abandoned packages for
219
+ which Renovate would not create a PR; reports one finding per package in an
220
+ \`Abandoned package statistics\` entry
221
+ - **Warnings**:
222
+ - \`log-warn\`: lines with warning level (\`level=40\`)
223
+ - \`err-object\`: reports lines with an \`err\` object, such as rawExec errors
224
+ - \`repo-problem\`: reports entries in \`repoProblems\` lines (which is a string-array)
211
225
  `;
212
226
  }
213
227
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"skill-template.js","sourceRoot":"","sources":["../../src/core/skill-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoBH,2EAA2E;AAC3E,MAAM,WAAW,GACf,wEAAwE;IACxE,0EAA0E;IAC1E,0EAA0E;IAC1E,2DAA2D,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAgC,EAAE;IACnE,MAAM,QAAQ,GAAa;QACzB,WAAW,EAAE;QACb,OAAO,EAAE;QACT,QAAQ,EAAE;QACV,UAAU,EAAE;QACZ,SAAS,EAAE;QACX,WAAW,EAAE;QACb,aAAa,EAAE;QACf,SAAS,EAAE;QACX,QAAQ,EAAE;QACV,YAAY,EAAE;KACf,CAAC;IAEF,IAAI,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvD,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AACxD,CAAC;AAED,8BAA8B;AAC9B,SAAS,WAAW;IAClB,OAAO;;eAEM,WAAW;;;CAGzB,CAAC;AACF,CAAC;AAED,SAAS,OAAO;IACd,OAAO;;;;;;;;;;;CAWR,CAAC;AACF,CAAC;AAED,SAAS,QAAQ;IACf,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED,SAAS,UAAU;IACjB,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED,SAAS,SAAS;IAChB,OAAO;;;;;;;;;;;;;;;;;CAiBR,CAAC;AACF,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;;;;;;;;;;;;;;;;;;;;;;;CAuBR,CAAC;AACF,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;;;;;;;CAOR,CAAC;AACF,CAAC;AAED,SAAS,SAAS;IAChB,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED,SAAS,QAAQ;IACf,OAAO;;;;;;;;;;;;CAYR,CAAC;AACF,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;;;;;;;;;;;;CAYR,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,EAAY;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI;QACnB,CAAC,CAAC,uDAAuD,IAAI,eAAe;YAC1E,6CAA6C,IAAI,0BAA0B;YAC3E,8BAA8B,IAAI,WAAW;QAC/C,CAAC,CAAC,uDAAuD,CAAC;IAE5D,OAAO;;yBAEgB,OAAO,2BAA2B,EAAE,CAAC,QAAQ;0DACZ,QAAQ;;;;KAI7D,MAAM,0BAA0B,EAAE,CAAC,QAAQ,OAAO,OAAO;;;;KAIzD,MAAM,+BAA+B,OAAO;;;;OAI1C,MAAM,2BAA2B,OAAO;;;;;;CAM9C,CAAC;AACF,CAAC;AAED,SAAS,IAAI;IACX,OAAO;;;;;;;CAOR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"skill-template.js","sourceRoot":"","sources":["../../src/core/skill-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoBH,2EAA2E;AAC3E,MAAM,WAAW,GACf,wEAAwE;IACxE,0EAA0E;IAC1E,0EAA0E;IAC1E,2DAA2D,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAgC,EAAE;IACnE,MAAM,QAAQ,GAAa;QACzB,WAAW,EAAE;QACb,OAAO,EAAE;QACT,QAAQ,EAAE;QACV,UAAU,EAAE;QACZ,SAAS,EAAE;QACX,WAAW,EAAE;QACb,aAAa,EAAE;QACf,SAAS,EAAE;QACX,QAAQ,EAAE;QACV,YAAY,EAAE;KACf,CAAC;IAEF,IAAI,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvD,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AACxD,CAAC;AAED,8BAA8B;AAC9B,SAAS,WAAW;IAClB,OAAO;;eAEM,WAAW;;;CAGzB,CAAC;AACF,CAAC;AAED,SAAS,OAAO;IACd,OAAO;;;;;;;;;;;CAWR,CAAC;AACF,CAAC;AAED,SAAS,QAAQ;IACf,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED,SAAS,UAAU;IACjB,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED,SAAS,SAAS;IAChB,OAAO;;;;;;;;;;;;;;;;;CAiBR,CAAC;AACF,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;;;;;;;;;;;;;;;;;;;;;;;CAuBR,CAAC;AACF,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;;;;;;;CAOR,CAAC;AACF,CAAC;AAED,SAAS,SAAS;IAChB,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED,SAAS,QAAQ;IACf,OAAO;;;;;;;;;;;;CAYR,CAAC;AACF,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BR,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,EAAY;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI;QACnB,CAAC,CAAC,uDAAuD,IAAI,eAAe;YAC1E,6CAA6C,IAAI,0BAA0B;YAC3E,8BAA8B,IAAI,WAAW;QAC/C,CAAC,CAAC,uDAAuD,CAAC;IAE5D,OAAO;;yBAEgB,OAAO,2BAA2B,EAAE,CAAC,QAAQ;0DACZ,QAAQ;;;;KAI7D,MAAM,0BAA0B,EAAE,CAAC,QAAQ,OAAO,OAAO;;;;KAIzD,MAAM,+BAA+B,OAAO;;;;OAI1C,MAAM,2BAA2B,OAAO;;;;;;CAM9C,CAAC;AACF,CAAC;AAED,SAAS,IAAI;IACX,OAAO;;;;;;;CAOR,CAAC;AACF,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The `/api` Express router — the whole web backend.
3
+ *
4
+ * Every route operates on the process-wide "current log" held by the
5
+ * {@link ./log-registry.js log registry}; the two POST routes are what make a
6
+ * log current. Handlers throw {@link HttpError}s, which {@link apiErrorHandler}
7
+ * renders as JSON.
8
+ */
9
+ import { Router, type NextFunction, type Request, type Response } from "express";
10
+ /** Build the API router. */
11
+ export declare function createApiRouter(): Router;
12
+ /**
13
+ * Render errors as JSON. The client composables read `statusMessage` (h3's
14
+ * shape), so keep that key even though there is no h3 anymore.
15
+ */
16
+ export declare function apiErrorHandler(err: unknown, _req: Request, res: Response, next: NextFunction): void;