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.
- package/README.md +119 -34
- package/dist/commands/install-analyze-skill.d.ts +0 -1
- package/dist/commands/install-analyze-skill.js +15 -12
- package/dist/commands/install-analyze-skill.js.map +1 -1
- package/dist/commands/web.d.ts +2 -1
- package/dist/commands/web.js +23 -11
- package/dist/commands/web.js.map +1 -1
- package/dist/core/skill-template.js +17 -3
- package/dist/core/skill-template.js.map +1 -1
- package/dist/server/api.d.ts +16 -0
- package/dist/server/api.js +173 -0
- package/dist/server/api.js.map +1 -0
- package/dist/server/http-error.d.ts +18 -0
- package/dist/server/http-error.js +23 -0
- package/dist/server/http-error.js.map +1 -0
- package/dist/server/index.d.ts +34 -0
- package/dist/server/index.js +54 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/log-registry.d.ts +34 -0
- package/dist/server/log-registry.js +157 -0
- package/dist/server/log-registry.js.map +1 -0
- package/dist/server/server-main.d.ts +1 -0
- package/dist/server/server-main.js +31 -0
- package/dist/server/server-main.js.map +1 -0
- package/dist/server/translate-filters.d.ts +58 -0
- package/dist/server/translate-filters.js +119 -0
- package/dist/server/translate-filters.js.map +1 -0
- package/package.json +13 -5
- package/web/.output/public/200.html +1 -0
- package/web/.output/public/404.html +1 -0
- package/web/.output/public/_nuxt/BDNMzG2s.js +1 -0
- package/web/.output/public/_nuxt/BjDV6v2h.js +1 -0
- package/web/.output/public/_nuxt/CVlqYHPc.js +6 -0
- package/web/.output/public/_nuxt/CuOsDQlp.js +1 -0
- package/web/.output/public/_nuxt/CztOM3Aq.js +28 -0
- package/web/.output/public/_nuxt/D3wuHpM_.js +3 -0
- package/web/.output/public/_nuxt/DK3Fl9T5.js +1 -0
- package/web/.output/public/_nuxt/DUXEQ2Eh.js +3 -0
- package/web/.output/public/_nuxt/DVWtRbHb.js +1 -0
- package/web/.output/public/_nuxt/DeS15jQo.js +1 -0
- package/web/.output/public/_nuxt/XP9RigIT.js +1 -0
- package/web/.output/public/_nuxt/builds/latest.json +1 -1
- package/web/.output/public/_nuxt/builds/meta/f68582c9-55a9-4352-b85a-d7f8de6f7202.json +1 -0
- package/web/.output/public/_nuxt/entry.BlZrUrUl.css +2 -0
- package/web/.output/public/_nuxt/error-404.zKZBzOko.css +1 -0
- package/web/.output/public/_nuxt/error-500.DwXcJPfY.css +1 -0
- package/web/.output/public/_nuxt/lGYp6_9X.js +1 -0
- package/web/.output/public/_nuxt/pages.BDcbBSnU.css +1 -0
- package/web/.output/public/_nuxt/public-sans-latin-400-italic.B1appi_f.woff2 +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-400-italic.DsCWG5h0.woff +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-400-normal.8Rpg0ruU.woff2 +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-400-normal.SBbinRkI.woff +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-500-normal.NlrCPXnF.woff2 +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-500-normal.vCxiVFAq.woff +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-600-normal.BR59oU-I.woff +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-600-normal.Fru-LXNs.woff2 +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-700-normal.BqJmxWdE.woff2 +0 -0
- package/web/.output/public/_nuxt/public-sans-latin-700-normal.Dm-oTPSL.woff +0 -0
- package/web/.output/public/favicon-dark.svg +32 -0
- package/web/.output/public/favicon-light.svg +32 -0
- package/web/.output/public/index.html +1 -0
- package/web/.output/nitro.json +0 -15
- package/web/.output/public/_fonts/57NSSoFy1VLVs2gqly8Ls9awBnZMFyXGrefpmqvdqmc-zJfbBtpgM4cDmcXBsqZNW79_kFnlpPd62b48glgdydA.woff2 +0 -0
- package/web/.output/public/_fonts/8VR2wSMN-3U4NbWAVYXlkRV6hA0jFBXP-0RtL3X7fko-x2gYI4qfmkRdxyQQUPaBZdZdgl1TeVrquF_TxHeM4lM.woff2 +0 -0
- package/web/.output/public/_fonts/GsKUclqeNLJ96g5AU593ug6yanivOiwjW_7zESNPChw-jHA4tBeM1bjF7LATGUpfBuSTyomIFrWBTzjF7txVYfg.woff2 +0 -0
- package/web/.output/public/_fonts/Ld1FnTo3yTIwDyGfTQ5-Fws9AWsCbKfMvgxduXr7JcY-W25bL8NF1fjpLRSOgJb7RoZPHqGQNwMTM7S9tHVoxx8.woff2 +0 -0
- package/web/.output/public/_fonts/NdzqRASp2bovDUhQT1IRE_EMqKJ2KYQdTCfFcBvL8yw-KhwZiS86o3fErOe5GGMExHUemmI_dBfaEFxjISZrBd0.woff2 +0 -0
- package/web/.output/public/_fonts/iTkrULNFJJkTvihIg1Vqi5IODRH_9btXCioVF5l98I8-AndUyau2HR2felA_ra8V2mutQgschhasE5FD1dXGJX8.woff2 +0 -0
- package/web/.output/public/_nuxt/BWja8e3M.js +0 -37
- package/web/.output/public/_nuxt/BgApMHS1.js +0 -1
- package/web/.output/public/_nuxt/CGPWRqbc.js +0 -1
- package/web/.output/public/_nuxt/DlAUqK2U.js +0 -1
- package/web/.output/public/_nuxt/Sgtec1U0.js +0 -1
- package/web/.output/public/_nuxt/builds/meta/785e7885-8d38-4aac-a7f6-735f68d27e63.json +0 -1
- package/web/.output/public/_nuxt/entry.9mB-pyEY.css +0 -1
- package/web/.output/public/_nuxt/error-404.B_PvSG-P.css +0 -1
- package/web/.output/public/_nuxt/error-500.CghkKCEr.css +0 -1
- package/web/.output/public/_nuxt/index.BlvAG7F6.css +0 -1
- package/web/.output/public/favicon.ico +0 -0
- package/web/.output/server/chunks/_/error-500.mjs +0 -19
- package/web/.output/server/chunks/_/error-500.mjs.map +0 -1
- package/web/.output/server/chunks/_/icons.mjs +0 -6153
- package/web/.output/server/chunks/_/icons.mjs.map +0 -1
- package/web/.output/server/chunks/_/icons2.mjs +0 -11494
- package/web/.output/server/chunks/_/icons2.mjs.map +0 -1
- package/web/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs +0 -10
- package/web/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs.map +0 -1
- package/web/.output/server/chunks/build/client.precomputed.mjs +0 -4
- package/web/.output/server/chunks/build/client.precomputed.mjs.map +0 -1
- package/web/.output/server/chunks/build/error-404-DOK13euR.mjs +0 -106
- package/web/.output/server/chunks/build/error-404-DOK13euR.mjs.map +0 -1
- package/web/.output/server/chunks/build/error-404-styles.9cNA4arh.mjs +0 -8
- package/web/.output/server/chunks/build/error-404-styles.9cNA4arh.mjs.map +0 -1
- package/web/.output/server/chunks/build/error-500-DKHEaocY.mjs +0 -89
- package/web/.output/server/chunks/build/error-500-DKHEaocY.mjs.map +0 -1
- package/web/.output/server/chunks/build/error-500-styles.BX54ZlkH.mjs +0 -8
- package/web/.output/server/chunks/build/error-500-styles.BX54ZlkH.mjs.map +0 -1
- package/web/.output/server/chunks/build/index-D_lNB6LA.mjs +0 -19675
- package/web/.output/server/chunks/build/index-D_lNB6LA.mjs.map +0 -1
- package/web/.output/server/chunks/build/index-styles.V2iua2bE.mjs +0 -8
- package/web/.output/server/chunks/build/index-styles.V2iua2bE.mjs.map +0 -1
- package/web/.output/server/chunks/build/server.mjs +0 -7910
- package/web/.output/server/chunks/build/server.mjs.map +0 -1
- package/web/.output/server/chunks/build/styles.mjs +0 -10
- package/web/.output/server/chunks/build/styles.mjs.map +0 -1
- package/web/.output/server/chunks/nitro/nitro.mjs +0 -6944
- package/web/.output/server/chunks/nitro/nitro.mjs.map +0 -1
- package/web/.output/server/chunks/routes/api/fields.get.mjs +0 -27
- package/web/.output/server/chunks/routes/api/fields.get.mjs.map +0 -1
- package/web/.output/server/chunks/routes/api/findings.get.mjs +0 -30
- package/web/.output/server/chunks/routes/api/findings.get.mjs.map +0 -1
- package/web/.output/server/chunks/routes/api/log/contents.post.mjs +0 -29
- package/web/.output/server/chunks/routes/api/log/contents.post.mjs.map +0 -1
- package/web/.output/server/chunks/routes/api/log/path.post.mjs +0 -30
- package/web/.output/server/chunks/routes/api/log/path.post.mjs.map +0 -1
- package/web/.output/server/chunks/routes/api/repositories.get.mjs +0 -27
- package/web/.output/server/chunks/routes/api/repositories.get.mjs.map +0 -1
- package/web/.output/server/chunks/routes/api/rows.get.mjs +0 -48
- package/web/.output/server/chunks/routes/api/rows.get.mjs.map +0 -1
- package/web/.output/server/chunks/routes/renderer.mjs +0 -451
- package/web/.output/server/chunks/routes/renderer.mjs.map +0 -1
- package/web/.output/server/chunks/virtual/_virtual_spa-template.mjs +0 -4
- package/web/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +0 -1
- package/web/.output/server/index.mjs +0 -16
- package/web/.output/server/index.mjs.map +0 -1
- package/web/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs +0 -290
- package/web/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +0 -49
- package/web/.output/server/node_modules/.nitro/hookable@6.1.1/dist/index.mjs +0 -257
- package/web/.output/server/node_modules/.nitro/hookable@6.1.1/package.json +0 -53
- package/web/.output/server/node_modules/@babel/parser/lib/index.js +0 -14599
- package/web/.output/server/node_modules/@babel/parser/package.json +0 -50
- package/web/.output/server/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +0 -1038
- package/web/.output/server/node_modules/@floating-ui/core/package.json +0 -63
- package/web/.output/server/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +0 -789
- package/web/.output/server/node_modules/@floating-ui/dom/package.json +0 -72
- package/web/.output/server/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +0 -165
- package/web/.output/server/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +0 -136
- package/web/.output/server/node_modules/@floating-ui/utils/package.json +0 -70
- package/web/.output/server/node_modules/@floating-ui/vue/dist/floating-ui.vue.mjs +0 -190
- package/web/.output/server/node_modules/@floating-ui/vue/package.json +0 -71
- package/web/.output/server/node_modules/@iconify/utils/lib/colors/index.js +0 -295
- package/web/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +0 -701
- package/web/.output/server/node_modules/@iconify/utils/lib/css/common.js +0 -75
- package/web/.output/server/node_modules/@iconify/utils/lib/css/format.js +0 -39
- package/web/.output/server/node_modules/@iconify/utils/lib/css/icon.js +0 -47
- package/web/.output/server/node_modules/@iconify/utils/lib/css/icons.js +0 -128
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +0 -19
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +0 -13
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +0 -17
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +0 -16
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +0 -30
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +0 -78
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +0 -100
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +0 -28
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +0 -58
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +0 -48
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +0 -203
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +0 -33
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +0 -132
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +0 -165
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +0 -79
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +0 -92
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +0 -26
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +0 -76
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +0 -66
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +0 -45
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +0 -103
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +0 -36
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +0 -92
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +0 -62
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +0 -25
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +0 -16
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/name.js +0 -57
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/square.js +0 -33
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +0 -12
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +0 -125
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +0 -19
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +0 -25
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +0 -36
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +0 -91
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +0 -46
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +0 -23
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +0 -42
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +0 -123
- package/web/.output/server/node_modules/@iconify/utils/lib/index.js +0 -52
- package/web/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +0 -30
- package/web/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +0 -26
- package/web/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +0 -27
- package/web/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +0 -105
- package/web/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +0 -26
- package/web/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +0 -26
- package/web/.output/server/node_modules/@iconify/utils/lib/misc/title.js +0 -9
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/build.js +0 -113
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +0 -31
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +0 -13
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/html.js +0 -9
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/id.js +0 -41
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +0 -22
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +0 -67
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +0 -54
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/size.js +0 -27
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +0 -7
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/url.js +0 -22
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +0 -8
- package/web/.output/server/node_modules/@iconify/utils/package.json +0 -119
- package/web/.output/server/node_modules/@iconify/vue/dist/iconify.mjs +0 -1896
- package/web/.output/server/node_modules/@iconify/vue/package.json +0 -62
- package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/index.js +0 -1268
- package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js +0 -34
- package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/utils.js +0 -74
- package/web/.output/server/node_modules/@tanstack/virtual-core/package.json +0 -56
- package/web/.output/server/node_modules/@tanstack/vue-virtual/dist/esm/index.js +0 -66
- package/web/.output/server/node_modules/@tanstack/vue-virtual/package.json +0 -68
- package/web/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +0 -6759
- package/web/.output/server/node_modules/@vue/compiler-core/package.json +0 -58
- package/web/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +0 -689
- package/web/.output/server/node_modules/@vue/compiler-dom/package.json +0 -57
- package/web/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +0 -1413
- package/web/.output/server/node_modules/@vue/compiler-ssr/package.json +0 -34
- package/web/.output/server/node_modules/@vue/devtools-api/dist/index.js +0 -2
- package/web/.output/server/node_modules/@vue/devtools-api/package.json +0 -34
- package/web/.output/server/node_modules/@vue/devtools-kit/dist/index.js +0 -5670
- package/web/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable/dist/index.mjs +0 -290
- package/web/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable/package.json +0 -49
- package/web/.output/server/node_modules/@vue/devtools-kit/package.json +0 -44
- package/web/.output/server/node_modules/@vue/devtools-shared/dist/index.js +0 -239
- package/web/.output/server/node_modules/@vue/devtools-shared/package.json +0 -33
- package/web/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +0 -1899
- package/web/.output/server/node_modules/@vue/reactivity/package.json +0 -55
- package/web/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +0 -6940
- package/web/.output/server/node_modules/@vue/runtime-core/package.json +0 -52
- package/web/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +0 -1822
- package/web/.output/server/node_modules/@vue/runtime-dom/package.json +0 -60
- package/web/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +0 -896
- package/web/.output/server/node_modules/@vue/server-renderer/package.json +0 -55
- package/web/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +0 -604
- package/web/.output/server/node_modules/@vue/shared/package.json +0 -47
- package/web/.output/server/node_modules/@vueuse/core/dist/index.js +0 -8464
- package/web/.output/server/node_modules/@vueuse/core/package.json +0 -49
- package/web/.output/server/node_modules/@vueuse/shared/dist/index.js +0 -2013
- package/web/.output/server/node_modules/@vueuse/shared/package.json +0 -42
- package/web/.output/server/node_modules/aria-hidden/dist/es5/index.js +0 -174
- package/web/.output/server/node_modules/aria-hidden/package.json +0 -71
- package/web/.output/server/node_modules/birpc/dist/index.mjs +0 -291
- package/web/.output/server/node_modules/birpc/package.json +0 -57
- package/web/.output/server/node_modules/consola/dist/chunks/prompt.mjs +0 -280
- package/web/.output/server/node_modules/consola/dist/core.mjs +0 -512
- package/web/.output/server/node_modules/consola/dist/index.mjs +0 -651
- package/web/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +0 -72
- package/web/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +0 -288
- package/web/.output/server/node_modules/consola/package.json +0 -136
- package/web/.output/server/node_modules/devalue/index.js +0 -4
- package/web/.output/server/node_modules/devalue/package.json +0 -40
- package/web/.output/server/node_modules/devalue/src/base64.js +0 -60
- package/web/.output/server/node_modules/devalue/src/constants.js +0 -12
- package/web/.output/server/node_modules/devalue/src/parse.js +0 -283
- package/web/.output/server/node_modules/devalue/src/stringify.js +0 -401
- package/web/.output/server/node_modules/devalue/src/uneval.js +0 -552
- package/web/.output/server/node_modules/devalue/src/utils.js +0 -160
- package/web/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +0 -77
- package/web/.output/server/node_modules/entities/dist/commonjs/decode.js +0 -568
- package/web/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +0 -7
- package/web/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +0 -7
- package/web/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +0 -21
- package/web/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +0 -31
- package/web/.output/server/node_modules/entities/dist/commonjs/package.json +0 -3
- package/web/.output/server/node_modules/entities/package.json +0 -120
- package/web/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +0 -344
- package/web/.output/server/node_modules/estree-walker/package.json +0 -37
- package/web/.output/server/node_modules/hookable/dist/index.mjs +0 -257
- package/web/.output/server/node_modules/hookable/package.json +0 -53
- package/web/.output/server/node_modules/nostics/dist/index.mjs +0 -179
- package/web/.output/server/node_modules/nostics/package.json +0 -124
- package/web/.output/server/node_modules/perfect-debounce/dist/index.mjs +0 -89
- package/web/.output/server/node_modules/perfect-debounce/package.json +0 -41
- package/web/.output/server/node_modules/rou3/dist/index.mjs +0 -501
- package/web/.output/server/node_modules/rou3/package.json +0 -48
- package/web/.output/server/node_modules/source-map-js/lib/array-set.js +0 -121
- package/web/.output/server/node_modules/source-map-js/lib/base64-vlq.js +0 -140
- package/web/.output/server/node_modules/source-map-js/lib/base64.js +0 -67
- package/web/.output/server/node_modules/source-map-js/lib/binary-search.js +0 -111
- package/web/.output/server/node_modules/source-map-js/lib/mapping-list.js +0 -79
- package/web/.output/server/node_modules/source-map-js/lib/quick-sort.js +0 -132
- package/web/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
- package/web/.output/server/node_modules/source-map-js/lib/source-map-generator.js +0 -444
- package/web/.output/server/node_modules/source-map-js/lib/source-node.js +0 -413
- package/web/.output/server/node_modules/source-map-js/lib/util.js +0 -594
- package/web/.output/server/node_modules/source-map-js/package.json +0 -71
- package/web/.output/server/node_modules/source-map-js/source-map.js +0 -8
- package/web/.output/server/node_modules/srvx/dist/_chunks/_body-limit.mjs +0 -39
- package/web/.output/server/node_modules/srvx/dist/_chunks/_plugins.mjs +0 -56
- package/web/.output/server/node_modules/srvx/dist/_chunks/_trust-proxy.mjs +0 -58
- package/web/.output/server/node_modules/srvx/dist/_chunks/_url.mjs +0 -134
- package/web/.output/server/node_modules/srvx/dist/_chunks/_utils.mjs +0 -15
- package/web/.output/server/node_modules/srvx/dist/_chunks/_utils2.mjs +0 -75
- package/web/.output/server/node_modules/srvx/dist/adapters/node.mjs +0 -976
- package/web/.output/server/node_modules/srvx/package.json +0 -102
- package/web/.output/server/node_modules/tailwind-merge/dist/bundle-mjs.mjs +0 -3365
- package/web/.output/server/node_modules/tailwind-merge/package.json +0 -93
- package/web/.output/server/node_modules/tailwind-variants/dist/chunk-LQJYWU4O.js +0 -112
- package/web/.output/server/node_modules/tailwind-variants/dist/chunk-RZF76H2U.js +0 -269
- package/web/.output/server/node_modules/tailwind-variants/dist/index.js +0 -38
- package/web/.output/server/node_modules/tailwind-variants/package.json +0 -122
- package/web/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +0 -1
- package/web/.output/server/node_modules/tailwindcss/dist/colors.mjs +0 -1
- package/web/.output/server/node_modules/tailwindcss/package.json +0 -89
- package/web/.output/server/node_modules/ufo/dist/index.mjs +0 -645
- package/web/.output/server/node_modules/ufo/package.json +0 -48
- package/web/.output/server/node_modules/unhead/dist/index.mjs +0 -9
- package/web/.output/server/node_modules/unhead/dist/parser.mjs +0 -508
- package/web/.output/server/node_modules/unhead/dist/plugins.mjs +0 -101
- package/web/.output/server/node_modules/unhead/dist/scripts.mjs +0 -30
- package/web/.output/server/node_modules/unhead/dist/server.mjs +0 -180
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.B3VbJo7Y.mjs +0 -207
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +0 -43
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +0 -269
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.CaI5ZD4O.mjs +0 -182
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +0 -71
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs +0 -236
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +0 -196
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.Dh1cQCTe.mjs +0 -44
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs +0 -166
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +0 -38
- package/web/.output/server/node_modules/unhead/dist/utils.mjs +0 -5
- package/web/.output/server/node_modules/unhead/node_modules/hookable/dist/index.mjs +0 -257
- package/web/.output/server/node_modules/unhead/node_modules/hookable/package.json +0 -53
- package/web/.output/server/node_modules/unhead/package.json +0 -105
- package/web/.output/server/node_modules/vue/dist/vue.cjs.js +0 -80
- package/web/.output/server/node_modules/vue/dist/vue.cjs.prod.js +0 -66
- package/web/.output/server/node_modules/vue/index.js +0 -7
- package/web/.output/server/node_modules/vue/index.mjs +0 -1
- package/web/.output/server/node_modules/vue/package.json +0 -112
- package/web/.output/server/node_modules/vue/server-renderer/index.mjs +0 -1
- package/web/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +0 -249
- package/web/.output/server/node_modules/vue-bundle-renderer/package.json +0 -57
- package/web/.output/server/node_modules/vue-demi/lib/index.mjs +0 -34
- package/web/.output/server/node_modules/vue-demi/package.json +0 -47
- package/web/.output/server/node_modules/vue-router/dist/devtools-Bpr7ZAVB.js +0 -1056
- package/web/.output/server/node_modules/vue-router/dist/useApi-CROJJdhE.js +0 -436
- package/web/.output/server/node_modules/vue-router/dist/vue-router.js +0 -1543
- package/web/.output/server/node_modules/vue-router/package.json +0 -214
- package/web/.output/server/node_modules/vue-router/vue-router.node.mjs +0 -2
- package/web/.output/server/package.json +0 -51
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# renovate-log-parser
|
|
2
2
|
|
|
3
|
+

|
|
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
|
|
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
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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-
|
|
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-
|
|
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
|
|
209
|
-
|
|
210
|
-
|
|
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
|
|
252
|
-
the Nuxt
|
|
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
|
|
263
|
-
|
|
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 (
|
|
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
|
|
308
|
-
|
|
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
|
|
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.
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
and
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
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
|
|
390
|
-
CLI `dist`, so both directories exist and are current by the time the
|
|
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
|
|
396
|
-
→ build:cli (tsc
|
|
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
|
|
|
@@ -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: "
|
|
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
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAiB,MAAM,2BAA2B,CAAC;AAE9E,+DAA+D;AAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AACzE,MAAM,cAAc,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"install-analyze-skill.js","sourceRoot":"","sources":["../../src/commands/install-analyze-skill.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/web.d.ts
CHANGED
|
@@ -6,7 +6,8 @@ interface WebArgs {
|
|
|
6
6
|
open: boolean;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
* `web` — starts the bundled
|
|
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 {};
|
package/dist/commands/web.js
CHANGED
|
@@ -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
|
|
7
|
-
* Layout after `tsc`: dist/commands/web.js →
|
|
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("
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
"
|
|
58
|
-
|
|
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
|
|
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) => () => {
|
package/dist/commands/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;GAGG;AACH,SAAS,kBAAkB;IACzB,OAAO,aAAa,CAClB,IAAI,GAAG,CAAC,
|
|
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
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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
|
|
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;
|