renovate-log-parser 0.1.2 → 0.3.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 +245 -197
- 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/core/error-detector.d.ts +1 -1
- package/dist/core/error-detector.js +42 -2
- package/dist/core/error-detector.js.map +1 -1
- package/dist/core/skill-template.js +21 -3
- package/dist/core/skill-template.js.map +1 -1
- package/dist/server/api.d.ts +5 -4
- package/dist/server/api.js +59 -26
- package/dist/server/api.js.map +1 -1
- package/dist/server/log-registry.d.ts +17 -8
- package/dist/server/log-registry.js +44 -36
- package/dist/server/log-registry.js.map +1 -1
- package/package.json +10 -5
- package/web/.output/public/200.html +1 -1
- package/web/.output/public/404.html +1 -1
- package/web/.output/public/_nuxt/B7wga9sP.js +6 -0
- package/web/.output/public/_nuxt/BDNMzG2s.js +1 -0
- package/web/.output/public/_nuxt/BqJkfZTJ.js +3 -0
- package/web/.output/public/_nuxt/CMgYIlaH.js +1 -0
- package/web/.output/public/_nuxt/CWl6nNLj.js +1 -0
- package/web/.output/public/_nuxt/DAvRMvMn.js +3 -0
- package/web/.output/public/_nuxt/DB7E78p3.js +1 -0
- package/web/.output/public/_nuxt/DK3Fl9T5.js +1 -0
- package/web/.output/public/_nuxt/DVm4N3tR.js +28 -0
- package/web/.output/public/_nuxt/ObQDjlGC.js +1 -0
- package/web/.output/public/_nuxt/S1m8Jgsd.js +1 -0
- package/web/.output/public/_nuxt/builds/latest.json +1 -1
- package/web/.output/public/_nuxt/builds/meta/d1ca25cf-550d-4bed-a4d1-2daf0b4cc292.json +1 -0
- package/web/.output/public/_nuxt/entry.C5Sa_xmV.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/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/_nuxt/qhIzkFe8.js +1 -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 -1
- 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/B4JKWaDj.js +0 -1
- package/web/.output/public/_nuxt/Bs-RnkRE.js +0 -37
- package/web/.output/public/_nuxt/DjtJytwR.js +0 -1
- package/web/.output/public/_nuxt/DlAUqK2U.js +0 -1
- package/web/.output/public/_nuxt/a71R3CFc.js +0 -1
- package/web/.output/public/_nuxt/builds/meta/bc129b23-5172-4e74-875d-2a24574a5dbe.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
|
@@ -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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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Parser } from "./parser.js";
|
|
2
2
|
import { type IgnoreRule } from "./ignore-file.js";
|
|
3
3
|
/** Ordered list of every known finding category (drives the `counts` map). */
|
|
4
|
-
export declare const CATEGORIES: readonly ["host-error-abort", "log-warn", "log-error", "log-fatal", "err-object", "config-migration", "abandoned-package", "repo-problem"];
|
|
4
|
+
export declare const CATEGORIES: readonly ["host-error-abort", "log-warn", "log-error", "log-fatal", "err-object", "config-migration", "invalid-config", "abandoned-package", "repo-problem"];
|
|
5
5
|
/** A finding category. */
|
|
6
6
|
export type Category = (typeof CATEGORIES)[number];
|
|
7
7
|
/** Finding severity. */
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
*
|
|
16
16
|
* The error/warning split is scoped to problems Renovate would *not* otherwise
|
|
17
17
|
* surface in a PR comment: `host-error-abort`, `log-error`, `log-fatal`,
|
|
18
|
-
* `config-migration`, and `abandoned-package` are errors
|
|
19
|
-
* `err-object`, and `repo-problem` are warnings.
|
|
18
|
+
* `config-migration`, `invalid-config`, and `abandoned-package` are errors
|
|
19
|
+
* (exit 1); `log-warn`, `err-object`, and `repo-problem` are warnings.
|
|
20
20
|
*/
|
|
21
21
|
import { ERROR_LEVELS, WARN_LEVEL } from "./levels.js";
|
|
22
22
|
import { matchIgnoreRule } from "./ignore-file.js";
|
|
@@ -29,6 +29,7 @@ export const CATEGORIES = [
|
|
|
29
29
|
"log-fatal",
|
|
30
30
|
"err-object",
|
|
31
31
|
"config-migration",
|
|
32
|
+
"invalid-config",
|
|
32
33
|
"abandoned-package",
|
|
33
34
|
"repo-problem",
|
|
34
35
|
];
|
|
@@ -40,6 +41,7 @@ export const SEVERITY = {
|
|
|
40
41
|
"log-fatal": "error",
|
|
41
42
|
"err-object": "warning",
|
|
42
43
|
"config-migration": "error",
|
|
44
|
+
"invalid-config": "error",
|
|
43
45
|
"abandoned-package": "error",
|
|
44
46
|
"repo-problem": "warning",
|
|
45
47
|
};
|
|
@@ -49,6 +51,13 @@ const REPOSITORY_FINISHED_MSG = "Repository finished";
|
|
|
49
51
|
const HOST_ERROR_RESULT = "external-host-error";
|
|
50
52
|
/** The exact `msg` that marks a required config migration. */
|
|
51
53
|
const CONFIG_MIGRATION_MSG = "Config migration necessary";
|
|
54
|
+
/**
|
|
55
|
+
* The exact `msg` Renovate logs when a repository's own Renovate config could
|
|
56
|
+
* not be used — either because the file is not parseable, or because it parses
|
|
57
|
+
* but fails schema validation. Both cases abort the repository during `init`,
|
|
58
|
+
* so nothing is extracted, looked up or updated.
|
|
59
|
+
*/
|
|
60
|
+
const INVALID_CONFIG_MSG = "Repository has invalid config";
|
|
52
61
|
/** The exact `msg` that carries abandoned-package statistics. */
|
|
53
62
|
const ABANDONED_PACKAGE_MSG = "Abandoned package statistics";
|
|
54
63
|
/**
|
|
@@ -80,6 +89,7 @@ export class ErrorDetector {
|
|
|
80
89
|
values: [
|
|
81
90
|
REPOSITORY_FINISHED_MSG,
|
|
82
91
|
CONFIG_MIGRATION_MSG,
|
|
92
|
+
INVALID_CONFIG_MSG,
|
|
83
93
|
ABANDONED_PACKAGE_MSG,
|
|
84
94
|
],
|
|
85
95
|
},
|
|
@@ -193,6 +203,11 @@ function collectFindings(entry, line, warnLogMessages, findings) {
|
|
|
193
203
|
entry.newConfig !== undefined) {
|
|
194
204
|
push("config-migration", msg, { keys: ["oldConfig", "newConfig"] });
|
|
195
205
|
}
|
|
206
|
+
// invalid-config — the repository's Renovate config could not be parsed or
|
|
207
|
+
// validated, so the run aborted during `init` without doing any work.
|
|
208
|
+
if (msg === INVALID_CONFIG_MSG) {
|
|
209
|
+
push("invalid-config", msg, validationDetails(entry));
|
|
210
|
+
}
|
|
196
211
|
// abandoned-package — one finding per package, keyed as `datasource:package`.
|
|
197
212
|
// The entry carries datasource-named objects (e.g. `npm`, `crate`) mapping a
|
|
198
213
|
// package name to its last-update timestamp; string/number metadata fields are
|
|
@@ -233,4 +248,29 @@ function errDetails(entry) {
|
|
|
233
248
|
}
|
|
234
249
|
return undefined;
|
|
235
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* Lift the config-validation fields off an entry's `err` object.
|
|
253
|
+
*
|
|
254
|
+
* Only the three `validation*` fields are kept, deliberately: they name the
|
|
255
|
+
* offending file and say what is wrong with it, which is the actionable part.
|
|
256
|
+
* The full `err` (including its multi-line `stack`) is already carried by the
|
|
257
|
+
* `err-object` finding produced for the very same line.
|
|
258
|
+
*/
|
|
259
|
+
function validationDetails(entry) {
|
|
260
|
+
const err = entry.err;
|
|
261
|
+
if (err === null || typeof err !== "object" || Array.isArray(err)) {
|
|
262
|
+
return undefined;
|
|
263
|
+
}
|
|
264
|
+
const details = {};
|
|
265
|
+
for (const field of [
|
|
266
|
+
"validationSource",
|
|
267
|
+
"validationError",
|
|
268
|
+
"validationMessage",
|
|
269
|
+
]) {
|
|
270
|
+
const value = err[field];
|
|
271
|
+
if (typeof value === "string")
|
|
272
|
+
details[field] = value;
|
|
273
|
+
}
|
|
274
|
+
return Object.keys(details).length > 0 ? details : undefined;
|
|
275
|
+
}
|
|
236
276
|
//# sourceMappingURL=error-detector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-detector.js","sourceRoot":"","sources":["../../src/core/error-detector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"error-detector.js","sourceRoot":"","sources":["../../src/core/error-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -205,9 +205,27 @@ 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
|
+
- \`invalid-config\`: when a repository's own Renovate config could not be parsed or
|
|
219
|
+
failed validation, so the run aborted before extracting anything; looks for a
|
|
220
|
+
\`Repository has invalid config\` entry, whose \`err\` names the offending file
|
|
221
|
+
(\`validationSource\`) and the reason (\`validationError\`, \`validationMessage\`)
|
|
222
|
+
- \`abandoned-package\`: when a repository contains one or more abandoned packages for
|
|
223
|
+
which Renovate would not create a PR; reports one finding per package in an
|
|
224
|
+
\`Abandoned package statistics\` entry
|
|
225
|
+
- **Warnings**:
|
|
226
|
+
- \`log-warn\`: lines with warning level (\`level=40\`)
|
|
227
|
+
- \`err-object\`: reports lines with an \`err\` object, such as rawExec errors
|
|
228
|
+
- \`repo-problem\`: reports entries in \`repoProblems\` lines (which is a string-array)
|
|
211
229
|
`;
|
|
212
230
|
}
|
|
213
231
|
/**
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BR,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"}
|
package/dist/server/api.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The `/api` Express router — the whole web backend.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* log
|
|
7
|
-
*
|
|
4
|
+
* The reads are stateless: every GET names the log it operates on with a
|
|
5
|
+
* required `md5` parameter, resolved against the
|
|
6
|
+
* {@link ./log-registry.js log registry}. The two POST routes are what put a log
|
|
7
|
+
* in that registry and hand its md5 back to the client. Handlers throw
|
|
8
|
+
* {@link HttpError}s, which {@link apiErrorHandler} renders as JSON.
|
|
8
9
|
*/
|
|
9
10
|
import { Router, type NextFunction, type Request, type Response } from "express";
|
|
10
11
|
/** Build the API router. */
|
package/dist/server/api.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The `/api` Express router — the whole web backend.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* log
|
|
7
|
-
*
|
|
4
|
+
* The reads are stateless: every GET names the log it operates on with a
|
|
5
|
+
* required `md5` parameter, resolved against the
|
|
6
|
+
* {@link ./log-registry.js log registry}. The two POST routes are what put a log
|
|
7
|
+
* in that registry and hand its md5 back to the client. Handlers throw
|
|
8
|
+
* {@link HttpError}s, which {@link apiErrorHandler} renders as JSON.
|
|
8
9
|
*/
|
|
9
10
|
import express, { Router, } from "express";
|
|
10
11
|
import { buildQuery, buildCountQuery } from "../core/query-builder.js";
|
|
11
12
|
import { extractExpr } from "../core/filters.js";
|
|
12
13
|
import { createError, HttpError } from "./http-error.js";
|
|
13
|
-
import {
|
|
14
|
+
import { getFindings, getLogInfo, getParser, loadLogFromBytes, loadLogFromPath, } from "./log-registry.js";
|
|
14
15
|
import { parseFilterWire, translateFilters } from "./translate-filters.js";
|
|
15
16
|
/** Default page size for `GET /api/rows` when the client omits a limit. */
|
|
16
17
|
const DEFAULT_LIMIT = 100;
|
|
@@ -20,12 +21,12 @@ const MAX_UPLOAD_SIZE = "2gb";
|
|
|
20
21
|
export function createApiRouter() {
|
|
21
22
|
const router = Router();
|
|
22
23
|
/**
|
|
23
|
-
* GET /api/fields — the distinct set of root-level JSON keys across the
|
|
24
|
-
*
|
|
24
|
+
* GET /api/fields — the distinct set of root-level JSON keys across the log
|
|
25
|
+
* named by `md5`. Powers the "ignored fields" checkboxes in the UI. The
|
|
25
26
|
* synthetic keys the Parser uses for blank / malformed lines are excluded.
|
|
26
27
|
*/
|
|
27
|
-
router.get("/fields", (
|
|
28
|
-
const parser =
|
|
28
|
+
router.get("/fields", (req, res) => {
|
|
29
|
+
const parser = getParser(requireMd5(req));
|
|
29
30
|
const rows = parser.query("SELECT DISTINCT je.key AS key FROM logs, json_each(logs.logentry) AS je");
|
|
30
31
|
const synthetic = new Set(["_blank", "_parseError", "_raw"]);
|
|
31
32
|
res.json(rows
|
|
@@ -34,28 +35,28 @@ export function createApiRouter() {
|
|
|
34
35
|
.sort());
|
|
35
36
|
});
|
|
36
37
|
/**
|
|
37
|
-
* GET /api/repositories — the distinct `repository` values across the
|
|
38
|
-
*
|
|
39
|
-
* is an `https://…` URL rather than an `owner/repo` slug — these
|
|
40
|
-
* repos and just clutter the dropdown (mirrors the exclusion in
|
|
38
|
+
* GET /api/repositories — the distinct `repository` values across the log
|
|
39
|
+
* named by `md5`, excluding git-URL sub-repos (e.g. pre-commit hooks) whose
|
|
40
|
+
* `repository` is an `https://…` URL rather than an `owner/repo` slug — these
|
|
41
|
+
* aren't real repos and just clutter the dropdown (mirrors the exclusion in
|
|
41
42
|
* `analyzer.ts`'s per-repo stats). The UI adds a "Repository-independent"
|
|
42
43
|
* pseudo-entry for entries with no `repository` — that is not returned here.
|
|
43
44
|
*/
|
|
44
|
-
router.get("/repositories", (
|
|
45
|
-
const parser =
|
|
45
|
+
router.get("/repositories", (req, res) => {
|
|
46
|
+
const parser = getParser(requireMd5(req));
|
|
46
47
|
const expr = extractExpr("repository");
|
|
47
48
|
const rows = parser.query(`SELECT DISTINCT ${expr} AS repo FROM logs WHERE ${expr} IS NOT NULL ORDER BY repo`);
|
|
48
49
|
res.json(rows.map((r) => r.repo).filter((repo) => !repo.startsWith("https://")));
|
|
49
50
|
});
|
|
50
51
|
/**
|
|
51
|
-
* GET /api/findings — the error-detector report for the
|
|
52
|
+
* GET /api/findings — the error-detector report for the log named by `md5`.
|
|
52
53
|
*
|
|
53
54
|
* Per-finding `details` are stripped: the Problems panel only needs
|
|
54
55
|
* category/severity/message/line/repo, and the full entry is already reachable
|
|
55
56
|
* via `GET /api/rows` + the details slide-over.
|
|
56
57
|
*/
|
|
57
|
-
router.get("/findings", (
|
|
58
|
-
const report =
|
|
58
|
+
router.get("/findings", (req, res) => {
|
|
59
|
+
const report = getFindings(requireMd5(req));
|
|
59
60
|
const findings = report.findings.map(
|
|
60
61
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- drop `details` from the wire payload
|
|
61
62
|
({ details, ...rest }) => rest);
|
|
@@ -66,8 +67,9 @@ export function createApiRouter() {
|
|
|
66
67
|
});
|
|
67
68
|
});
|
|
68
69
|
/**
|
|
69
|
-
* GET /api/rows — the paginated, filtered row feed for
|
|
70
|
+
* GET /api/rows — the paginated, filtered row feed for a log.
|
|
70
71
|
* Query params:
|
|
72
|
+
* - `md5` : which loaded log to read (required)
|
|
71
73
|
* - `filters` : URL-encoded JSON of the reactive filter object (optional)
|
|
72
74
|
* - `offset` : rows to skip (default 0)
|
|
73
75
|
* - `limit` : max rows to return (default 100)
|
|
@@ -78,7 +80,7 @@ export function createApiRouter() {
|
|
|
78
80
|
* so the client can drive virtualization.
|
|
79
81
|
*/
|
|
80
82
|
router.get("/rows", (req, res) => {
|
|
81
|
-
const parser =
|
|
83
|
+
const parser = getParser(requireMd5(req));
|
|
82
84
|
const wire = parseFilterWire(queryParam(req, "filters"));
|
|
83
85
|
const { filters, ignoredFields } = translateFilters(wire);
|
|
84
86
|
const offset = Math.max(0, parseIntParam(queryParam(req, "offset"), 0));
|
|
@@ -92,9 +94,23 @@ export function createApiRouter() {
|
|
|
92
94
|
res.json({ total, offset, limit, rows });
|
|
93
95
|
});
|
|
94
96
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
97
|
+
* GET /api/log/:md5 — the load metadata for an already-loaded log.
|
|
98
|
+
*
|
|
99
|
+
* Lets a tab that only remembers an md5 (it keeps one in its URL) restore
|
|
100
|
+
* itself after a reload without re-uploading the file. 404s once the server
|
|
101
|
+
* has restarted, which the client treats as "no log open".
|
|
102
|
+
*
|
|
103
|
+
* Declared before the POST routes for readability only — Express matches on
|
|
104
|
+
* method first, so `:md5` cannot shadow `/log/path` or `/log/contents`.
|
|
105
|
+
*/
|
|
106
|
+
router.get("/log/:md5", (req, res) => {
|
|
107
|
+
res.json(getLogInfo(req.params.md5));
|
|
108
|
+
});
|
|
109
|
+
/**
|
|
110
|
+
* POST /api/log/path — load a log from an absolute local path and register
|
|
111
|
+
* it. Body: `{ "path": "<absolute>" }`. Blocks until the log is parsed (or a
|
|
112
|
+
* valid cache is reused). Returns the load metadata, whose `md5` the client
|
|
113
|
+
* then passes to every GET.
|
|
98
114
|
*
|
|
99
115
|
* This reads any local absolute path unrestricted — the tool is a local,
|
|
100
116
|
* single-user utility.
|
|
@@ -110,9 +126,11 @@ export function createApiRouter() {
|
|
|
110
126
|
res.json(loadLogFromPath(path));
|
|
111
127
|
});
|
|
112
128
|
/**
|
|
113
|
-
* POST /api/log/contents — load a log from uploaded bytes (file picker)
|
|
114
|
-
* bytes are written to a temp file named by their md5, which
|
|
115
|
-
* `path`. The file contents are sent as the raw request
|
|
129
|
+
* POST /api/log/contents — load a log from uploaded bytes (file picker) and
|
|
130
|
+
* register it. The bytes are written to a temp file named by their md5, which
|
|
131
|
+
* becomes the log's `path`. The file contents are sent as the raw request
|
|
132
|
+
* body. Returns the load metadata, whose `md5` the client then passes to every
|
|
133
|
+
* GET.
|
|
116
134
|
*/
|
|
117
135
|
router.post("/log/contents", express.raw({ type: () => true, limit: MAX_UPLOAD_SIZE }), (req, res) => {
|
|
118
136
|
const bytes = Buffer.isBuffer(req.body) ? req.body : Buffer.alloc(0);
|
|
@@ -163,6 +181,21 @@ function queryParam(req, name) {
|
|
|
163
181
|
const value = req.query[name];
|
|
164
182
|
return typeof value === "string" ? value : undefined;
|
|
165
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Read the `md5` query parameter naming the log a GET operates on. Required —
|
|
186
|
+
* the reads carry no server-side "current log" to fall back to, so a missing
|
|
187
|
+
* md5 is a client bug rather than a state to guess at.
|
|
188
|
+
*/
|
|
189
|
+
function requireMd5(req) {
|
|
190
|
+
const md5 = queryParam(req, "md5");
|
|
191
|
+
if (md5 === undefined || md5.length === 0) {
|
|
192
|
+
throw createError({
|
|
193
|
+
statusCode: 400,
|
|
194
|
+
statusMessage: 'An "md5" query parameter is required.',
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return md5;
|
|
198
|
+
}
|
|
166
199
|
/** Parse a query-string integer, falling back to a default when absent/NaN. */
|
|
167
200
|
function parseIntParam(value, fallback) {
|
|
168
201
|
if (value === undefined)
|
package/dist/server/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/server/api.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/server/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export interface LoadedLogInfo {
|
|
|
8
8
|
levelCounts: Record<string, number>;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* Load a log from an absolute filesystem path and
|
|
11
|
+
* Load a log from an absolute filesystem path and register it.
|
|
12
12
|
*
|
|
13
13
|
* @throws {HttpError} when the path is not absolute / missing, or the parse
|
|
14
14
|
* fails — the route layer maps these to HTTP responses.
|
|
@@ -20,15 +20,24 @@ export declare function loadLogFromPath(rawPath: string): LoadedLogInfo;
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function loadLogFromBytes(bytes: Uint8Array): LoadedLogInfo;
|
|
22
22
|
/**
|
|
23
|
-
* Return the parser for
|
|
24
|
-
* The GET routes call
|
|
23
|
+
* Return the parser for a registered log, or throw a 404 when that md5 is
|
|
24
|
+
* unknown (never loaded, or the server restarted since). The GET routes call
|
|
25
|
+
* this first with the md5 the client asked for.
|
|
25
26
|
*/
|
|
26
|
-
export declare function
|
|
27
|
+
export declare function getParser(md5: string): Parser;
|
|
27
28
|
/**
|
|
28
|
-
* Return the error-detector report for
|
|
29
|
-
* it on first request. Runs without ignore rules — the web surfaces
|
|
30
|
-
* finding. Throws a
|
|
29
|
+
* Return the error-detector report for a registered log, computing (and
|
|
30
|
+
* caching) it on first request. Runs without ignore rules — the web surfaces
|
|
31
|
+
* every finding. Throws a 404 for an unknown md5 (via {@link requireEntry}).
|
|
31
32
|
*/
|
|
32
|
-
export declare function
|
|
33
|
+
export declare function getFindings(md5: string): DetectionReport;
|
|
34
|
+
/**
|
|
35
|
+
* Rebuild the load metadata for an already-registered log. Lets a client that
|
|
36
|
+
* only holds an md5 (e.g. a tab restoring itself from its URL after a reload)
|
|
37
|
+
* recover the full {@link LoadedLogInfo} without re-uploading the file.
|
|
38
|
+
*
|
|
39
|
+
* @throws {HttpError} 404 when the md5 is not registered.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getLogInfo(md5: string): LoadedLogInfo;
|
|
33
42
|
/** Count entries per numeric `level` via a single grouped SQL scan. */
|
|
34
43
|
export declare function computeLevelCounts(parser: Parser): Record<string, number>;
|