@macrulez/devtoolz 0.4.3 → 0.5.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 +14 -172
- package/dist/cli.js +13 -125
- package/dist/cli.js.map +1 -1
- package/dist/commands/ui/cli.js +1 -1
- package/dist/commands/ui/cli.js.map +1 -1
- package/dist/commands/ui/fs-routes.d.ts +0 -4
- package/dist/commands/ui/fs-routes.js +5 -78
- package/dist/commands/ui/fs-routes.js.map +1 -1
- package/dist/commands/ui/modules/cleanup.js +2 -2
- package/dist/commands/ui/modules/cleanup.js.map +1 -1
- package/dist/commands/ui/modules/index.js +1 -8
- package/dist/commands/ui/modules/index.js.map +1 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -5
- package/dist/index.js.map +1 -1
- package/dist/ui/assets/ChecksPage-FhzZT8lq.js +1 -0
- package/dist/ui/assets/ChecksPage-ZoPlxU6J.css +1 -0
- package/dist/ui/assets/CleanupPage-9PuXSO_G.css +1 -0
- package/dist/ui/assets/CleanupPage-LpbZ2AB-.js +4 -0
- package/dist/ui/assets/highlight-Ba7TPCSA.js +2 -0
- package/dist/ui/assets/highlight-fNCqOka7.css +1 -0
- package/dist/ui/assets/{index-Ch5kTxCO.css → index-BzfkjuG8.css} +1 -1
- package/dist/ui/assets/index-DTj3rBik.js +3 -0
- package/dist/ui/index.html +2 -2
- package/dist/utils/atomic-write.d.ts +1 -0
- package/dist/utils/atomic-write.js +15 -0
- package/dist/utils/atomic-write.js.map +1 -0
- package/dist/utils/backup-error.d.ts +2 -0
- package/dist/utils/backup-error.js +3 -0
- package/dist/utils/backup-error.js.map +1 -0
- package/dist/utils/backup.d.ts +19 -0
- package/dist/utils/backup.js +33 -0
- package/dist/utils/backup.js.map +1 -0
- package/dist/utils/restore.d.ts +28 -0
- package/dist/utils/restore.js +88 -0
- package/dist/utils/restore.js.map +1 -0
- package/package.json +1 -6
- package/dist/ui/assets/ChecksPage-Ia4QJkV3.js +0 -1
- package/dist/ui/assets/ChecksPage-VewKhd5A.css +0 -1
- package/dist/ui/assets/CleanupPage-DqqrgWSI.js +0 -4
- package/dist/ui/assets/CleanupPage-nxJE8S0P.css +0 -1
- package/dist/ui/assets/FolderBrowser-Cdzt7edI.js +0 -1
- package/dist/ui/assets/FolderBrowser-CkH9R4jg.css +0 -1
- package/dist/ui/assets/ImageBatchPage-9HgS9uVf.js +0 -4
- package/dist/ui/assets/ImageBatchPage-EhlvnXbP.css +0 -1
- package/dist/ui/assets/ImageHashPage-BT4S8t3Y.css +0 -1
- package/dist/ui/assets/ImageHashPage-C0ltmpOF.js +0 -1
- package/dist/ui/assets/SourcePicker-6fQmtLgo.css +0 -1
- package/dist/ui/assets/SourcePicker-xk00AG2e.js +0 -1
- package/dist/ui/assets/UiSegmented-BT3dOelo.css +0 -1
- package/dist/ui/assets/UiSegmented-CsTRUZoX.js +0 -1
- package/dist/ui/assets/highlight-DT7vvdYt.js +0 -2
- package/dist/ui/assets/index-D8H-zVzo.js +0 -11
- package/dist/ui/assets/useCopy-i_vlQfC-.js +0 -1
|
@@ -1,39 +1,8 @@
|
|
|
1
|
-
import { existsSync,
|
|
1
|
+
import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
|
-
import { dirname,
|
|
4
|
-
import {
|
|
5
|
-
import { defaultSharpLoaderDeps } from '../image-hash/sharp-loader.js';
|
|
6
|
-
import { HttpError, sendBytes, sendJson } from './http.js';
|
|
7
|
-
const IMAGE_EXTENSIONS = new Set([...DEFAULT_IMAGE_EXTENSIONS, '.svg']);
|
|
8
|
-
const BROWSER_TYPES = {
|
|
9
|
-
'.jpg': 'image/jpeg',
|
|
10
|
-
'.jpeg': 'image/jpeg',
|
|
11
|
-
'.png': 'image/png',
|
|
12
|
-
'.webp': 'image/webp',
|
|
13
|
-
'.gif': 'image/gif',
|
|
14
|
-
'.avif': 'image/avif',
|
|
15
|
-
'.svg': 'image/svg+xml',
|
|
16
|
-
};
|
|
3
|
+
import { dirname, isAbsolute, parse, resolve } from 'node:path';
|
|
4
|
+
import { HttpError, sendJson } from './http.js';
|
|
17
5
|
const MAX_ENTRIES = 5000;
|
|
18
|
-
const MAX_RAW_BYTES = 20 * 1024 * 1024;
|
|
19
|
-
const SHARP_RETRY_MS = 5000;
|
|
20
|
-
let sharpCache;
|
|
21
|
-
export function findSharp(cwd) {
|
|
22
|
-
if (sharpCache?.factory)
|
|
23
|
-
return sharpCache.factory;
|
|
24
|
-
if (sharpCache && Date.now() - sharpCache.checked < SHARP_RETRY_MS)
|
|
25
|
-
return null;
|
|
26
|
-
const deps = defaultSharpLoaderDeps();
|
|
27
|
-
const factory = deps.resolveBundled() ?? deps.resolveFromCwd(cwd) ?? deps.resolveManaged();
|
|
28
|
-
sharpCache = { factory, checked: Date.now() };
|
|
29
|
-
return factory;
|
|
30
|
-
}
|
|
31
|
-
export function forgetSharp() {
|
|
32
|
-
sharpCache = undefined;
|
|
33
|
-
}
|
|
34
|
-
export function isImagePath(path) {
|
|
35
|
-
return IMAGE_EXTENSIONS.has(extname(path).toLowerCase());
|
|
36
|
-
}
|
|
37
6
|
function roots() {
|
|
38
7
|
if (process.platform !== 'win32')
|
|
39
8
|
return ['/'];
|
|
@@ -69,20 +38,13 @@ export const fsRoutes = [
|
|
|
69
38
|
throw new HttpError(403, error instanceof Error ? error.message : String(error));
|
|
70
39
|
}
|
|
71
40
|
const folders = [];
|
|
72
|
-
const images = [];
|
|
73
41
|
for (const entry of names) {
|
|
74
42
|
if (!showHidden && entry.name.startsWith('.'))
|
|
75
43
|
continue;
|
|
76
44
|
if (entry.isDirectory())
|
|
77
45
|
folders.push({ name: entry.name, kind: 'dir' });
|
|
78
|
-
else if (entry.isFile() && isImagePath(entry.name)) {
|
|
79
|
-
const size = statSync(join(path, entry.name), { throwIfNoEntry: false })?.size ?? 0;
|
|
80
|
-
images.push({ name: entry.name, kind: 'image', size });
|
|
81
|
-
}
|
|
82
46
|
}
|
|
83
47
|
folders.sort((a, b) => a.name.localeCompare(b.name));
|
|
84
|
-
images.sort((a, b) => a.name.localeCompare(b.name));
|
|
85
|
-
const entries = [...folders, ...images];
|
|
86
48
|
const parent = dirname(path);
|
|
87
49
|
sendJson(res, 200, {
|
|
88
50
|
path,
|
|
@@ -91,45 +53,10 @@ export const fsRoutes = [
|
|
|
91
53
|
cwd: server.cwd,
|
|
92
54
|
root: parse(path).root,
|
|
93
55
|
roots: roots(),
|
|
94
|
-
entries:
|
|
95
|
-
truncated:
|
|
56
|
+
entries: folders.slice(0, MAX_ENTRIES),
|
|
57
|
+
truncated: folders.length > MAX_ENTRIES,
|
|
96
58
|
});
|
|
97
59
|
},
|
|
98
60
|
},
|
|
99
|
-
{
|
|
100
|
-
method: 'GET',
|
|
101
|
-
path: '/api/fs/image',
|
|
102
|
-
handler: async ({ res, url, server }) => {
|
|
103
|
-
const path = resolveUserPath(url.searchParams.get('path'), server.cwd);
|
|
104
|
-
if (!isImagePath(path))
|
|
105
|
-
throw new HttpError(400, 'not an image file');
|
|
106
|
-
const stat = statSync(path, { throwIfNoEntry: false });
|
|
107
|
-
if (!stat?.isFile())
|
|
108
|
-
throw new HttpError(404, 'no such file');
|
|
109
|
-
const requested = Number(url.searchParams.get('size') ?? 0);
|
|
110
|
-
const size = Number.isFinite(requested) ? Math.min(Math.max(requested, 0), 2000) : 0;
|
|
111
|
-
const sharp = findSharp(server.cwd);
|
|
112
|
-
if (sharp && size > 0) {
|
|
113
|
-
try {
|
|
114
|
-
const bytes = await sharp(path, { failOn: 'none' })
|
|
115
|
-
.rotate()
|
|
116
|
-
.resize({ width: size, height: size, fit: 'inside', withoutEnlargement: true })
|
|
117
|
-
.webp({ quality: 78 })
|
|
118
|
-
.toBuffer();
|
|
119
|
-
sendBytes(res, 'image/webp', bytes, 'private, max-age=60');
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
throw new HttpError(422, 'this image could not be read');
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
const type = BROWSER_TYPES[extname(path).toLowerCase()];
|
|
127
|
-
if (!type)
|
|
128
|
-
throw new HttpError(415, 'this format needs sharp for a preview');
|
|
129
|
-
if (stat.size > MAX_RAW_BYTES)
|
|
130
|
-
throw new HttpError(413, 'too large to preview without sharp');
|
|
131
|
-
sendBytes(res, type, readFileSync(path), 'private, max-age=60');
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
61
|
];
|
|
135
62
|
//# sourceMappingURL=fs-routes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-routes.js","sourceRoot":"","sources":["../../../src/commands/ui/fs-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"fs-routes.js","sourceRoot":"","sources":["../../../src/commands/ui/fs-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { createHash } from 'node:crypto';
|
|
|
2
2
|
import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync, writeFileSync, } from 'node:fs';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { extname, join, relative, resolve, sep } from 'node:path';
|
|
5
|
-
import { copyIntoBackup, newJournal, saveJournal, } from '
|
|
6
|
-
import { runRestore } from '
|
|
5
|
+
import { copyIntoBackup, newJournal, saveJournal, } from '../../../utils/backup.js';
|
|
6
|
+
import { runRestore } from '../../../utils/restore.js';
|
|
7
7
|
import { runConsoleStrip } from '../../console-strip/run.js';
|
|
8
8
|
import { runStripComments } from '../../strip-comments/run.js';
|
|
9
9
|
import { resolveUserPath } from '../fs-routes.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../../src/commands/ui/modules/cleanup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../../src/commands/ui/modules/cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { checksModule } from './checks.js';
|
|
2
2
|
import { cleanupModule } from './cleanup.js';
|
|
3
|
-
|
|
4
|
-
import { imageHashModule } from './image-hash.js';
|
|
5
|
-
export const UI_MODULES = [
|
|
6
|
-
checksModule,
|
|
7
|
-
cleanupModule,
|
|
8
|
-
imageHashModule,
|
|
9
|
-
imageBatchModule,
|
|
10
|
-
];
|
|
3
|
+
export const UI_MODULES = [checksModule, cleanupModule];
|
|
11
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/ui/modules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/ui/modules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -94,12 +94,3 @@ export type { FullCheckCommandName, FullCheckCommandResult, FullCheckRunOptions,
|
|
|
94
94
|
export { renderFullCheckReport } from './commands/full-check/report.js';
|
|
95
95
|
export { walk } from './utils/walk.js';
|
|
96
96
|
export type { WalkOptions } from './utils/walk.js';
|
|
97
|
-
export { runImageHash } from './commands/image-hash/run.js';
|
|
98
|
-
export type { ImageHashRunOptions, ImageHashReport, ImageHashError, ImageHashProgress, OutdatedOutput, } from './commands/image-hash/run.js';
|
|
99
|
-
export { renderImageHashReport } from './commands/image-hash/report.js';
|
|
100
|
-
export type { Components, HashEntry, HashType, OutputFormat } from './commands/image-hash/core.js';
|
|
101
|
-
export { runImageBatch } from './commands/image-batch/run.js';
|
|
102
|
-
export type { BatchJobResult, BatchOverrides, ImageBatchOptions, ImageBatchReport, } from './commands/image-batch/run.js';
|
|
103
|
-
export { renderImageBatchReport } from './commands/image-batch/report.js';
|
|
104
|
-
export { parseConfig } from './commands/image-batch/config.js';
|
|
105
|
-
export type { BatchConfig } from './commands/image-batch/config.js';
|
package/dist/index.js
CHANGED
|
@@ -58,9 +58,4 @@ export { renderStaleTsIgnoreReport } from './commands/stale-ts-ignore/report.js'
|
|
|
58
58
|
export { runFullCheck, FULL_CHECK_COMMAND_NAMES, SLOW_FULL_CHECK_COMMAND, } from './commands/full-check/run.js';
|
|
59
59
|
export { renderFullCheckReport } from './commands/full-check/report.js';
|
|
60
60
|
export { walk } from './utils/walk.js';
|
|
61
|
-
export { runImageHash } from './commands/image-hash/run.js';
|
|
62
|
-
export { renderImageHashReport } from './commands/image-hash/report.js';
|
|
63
|
-
export { runImageBatch } from './commands/image-batch/run.js';
|
|
64
|
-
export { renderImageBatchReport } from './commands/image-batch/report.js';
|
|
65
|
-
export { parseConfig } from './commands/image-batch/config.js';
|
|
66
61
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAOnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAQ/D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAQjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAOpE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAO5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAOvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAA;AAEnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAIlE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAG7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAE5F,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAQrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAG1E,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAQ3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAEvE,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,GACb,MAAM,yCAAyC,CAAA;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAOhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAGnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAO7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAGjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAO7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAA;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAGjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAE7E,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iCAAiC,CAAA;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAE3E,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAG5F,OAAO,EACL,gBAAgB,EAChB,yBAAyB,GAE1B,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAOpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAEhF,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,8BAA8B,CAAA;AAQrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as oe,a as _,c as x,e as y,t as w,g as R,F,h as O,k as Z,l as ne,m as Ge,z as nt,f as pe,b as Q,n as H,r as L,q as T,_ as le,w as me,A as ge,o as ke,u as Ee,E as st,G as it,p as te,j as Ke,y as Le,H as Me,i as ye,v as ot,s as Te}from"./index-DTj3rBik.js";import{U as lt,p as Fe,h as at,a as rt,F as ut}from"./highlight-Ba7TPCSA.js";const ct={class:"overview"},ft={class:"card block"},vt={class:"head"},dt={key:0,class:"muted"},ht={key:1,class:"muted"},pt=["disabled"],gt={key:0,class:"check"},yt=["disabled"],_t={key:1,class:"progress-wrap",role:"status"},mt={class:"progress"},xt={class:"muted small"},wt={key:2,class:"chips"},kt={key:0,class:"sev sev--error"},$t={key:1,class:"sev sev--warning"},bt={key:2,class:"sev"},Ct={key:3,class:"sev sev--ok"},Mt={class:"group__title"},Nt={class:"cards"},St=["onClick"],It={class:"tile__top"},zt={class:"tile__state"},jt={class:"tile__text muted"},At={key:0,class:"tile__sev"},Ot={key:0,class:"sev sev--error"},Et={key:1,class:"sev sev--warning"},Lt={key:2,class:"sev"},Tt={key:1,class:"tile__slow muted"},Ft=oe({__name:"ChecksOverview",props:{checks:{},outcomes:{},running:{type:Boolean},progress:{},tookMs:{}},emits:["run-all","open"],setup(e,{emit:n}){const t=e,o=n,s=L(!1),i=[{id:"code",title:"Code"},{id:"dependencies",title:"Dependencies"},{id:"docs",title:"Documentation"}],u=T(()=>t.checks.filter(f=>f.slow).map(f=>f.title)),l=T(()=>i.map(f=>({...f,items:t.checks.filter(r=>r.group===f.id)})).filter(f=>f.items.length>0)),h=T(()=>t.progress.total>0?Math.round(t.progress.done/t.progress.total*100):0),a=T(()=>t.checks.filter(f=>t.outcomes[f.id])),c=T(()=>a.value.filter(f=>{const r=t.outcomes[f.id];return r&&r.findings.length===0&&!r.error}).length),d=T(()=>{const f={error:0,warning:0,info:0};for(const r of a.value)for(const v of t.outcomes[r.id]?.findings??[])f[v.severity]+=1;return f}),m=T(()=>d.value.error+d.value.warning+d.value.info);function g(f){const r={error:0,warning:0,info:0};for(const v of t.outcomes[f]?.findings??[])r[v.severity]+=1;return r}function k(f){const r=t.outcomes[f];return r?r.error?"broken":r.findings.length===0?"clean":"found":"idle"}return(f,r)=>(_(),x("div",ct,[y("section",ft,[y("div",vt,[y("div",null,[r[3]||(r[3]=y("h2",null,"Project health",-1)),a.value.length?(_(),x("p",dt,[y("strong",null,w(c.value)+" of "+w(a.value.length),1),r[2]||(r[2]=R(" checks are clean · ",-1)),y("strong",null,w(m.value),1),R(" finding"+w(m.value===1?"":"s")+" ",1),e.tookMs!==void 0?(_(),x(F,{key:0},[R(" · "+w((e.tookMs/1e3).toFixed(1))+" s",1)],64)):O("",!0)])):(_(),x("p",ht,"Run every check at once to see where the project stands."))]),y("button",{class:"btn btn--primary",disabled:e.running,onClick:r[0]||(r[0]=v=>o("run-all",s.value))},[Z(ne,{name:"play",size:15}),R(" "+w(e.running?"Checking…":a.value.length?"Run all again":"Run all checks"),1)],8,pt)]),u.value.length?(_(),x("label",gt,[Ge(y("input",{"onUpdate:modelValue":r[1]||(r[1]=v=>s.value=v),type:"checkbox",disabled:e.running},null,8,yt),[[nt,s.value]]),y("span",null,[R(" Include the slow check ("+w(u.value.join(", "))+") ",1),r[4]||(r[4]=y("small",{class:"muted"}," — it type-checks the whole project",-1))])])):O("",!0),e.running?(_(),x("div",_t,[y("div",mt,[y("div",{class:"progress__bar",style:pe({width:`${h.value}%`})},null,4)]),y("span",xt,[R(w(e.progress.done)+" of "+w(e.progress.total)+" ",1),e.progress.current?(_(),x(F,{key:0},[R(" · "+w(e.progress.current),1)],64)):O("",!0)])])):O("",!0),a.value.length?(_(),x("div",wt,[d.value.error?(_(),x("span",kt,w(d.value.error)+" error"+w(d.value.error===1?"":"s"),1)):O("",!0),d.value.warning?(_(),x("span",$t,w(d.value.warning)+" warning"+w(d.value.warning===1?"":"s"),1)):O("",!0),d.value.info?(_(),x("span",bt,w(d.value.info)+" note"+w(d.value.info===1?"":"s"),1)):O("",!0),m.value===0?(_(),x("span",Ct,"Everything is clean")):O("",!0)])):O("",!0)]),(_(!0),x(F,null,Q(l.value,v=>(_(),x("section",{key:v.id,class:"group"},[y("h3",Mt,w(v.title),1),y("div",Nt,[(_(!0),x(F,null,Q(v.items,p=>(_(),x("button",{key:p.id,class:H(["tile",`tile--${k(p.id)}`]),onClick:z=>o("open",p.id)},[y("span",It,[y("strong",null,w(p.title),1),y("span",zt,[k(p.id)==="idle"?(_(),x(F,{key:0},[R("not run")],64)):k(p.id)==="clean"?(_(),x(F,{key:1},[R("✓ clean")],64)):k(p.id)==="broken"?(_(),x(F,{key:2},[R("couldn’t run")],64)):(_(),x(F,{key:3},[R(w(e.outcomes[p.id]?.findings.length),1)],64))])]),y("span",jt,w(e.outcomes[p.id]?.summary??p.description),1),k(p.id)==="found"?(_(),x("span",At,[g(p.id).error?(_(),x("span",Ot,w(g(p.id).error)+" error",1)):O("",!0),g(p.id).warning?(_(),x("span",Et,w(g(p.id).warning)+" warning",1)):O("",!0),g(p.id).info?(_(),x("span",Lt,w(g(p.id).info)+" note",1)):O("",!0)])):O("",!0),p.slow&&k(p.id)==="idle"?(_(),x("span",Tt,"slow")):O("",!0)],10,St))),128))])]))),128))]))}}),Pt=le(Ft,[["__scopeId","data-v-0b1b992d"]]);function Dt(e,n){var t,o=1;e==null&&(e=0),n==null&&(n=0);function s(){var i,u=t.length,l,h=0,a=0;for(i=0;i<u;++i)l=t[i],h+=l.x,a+=l.y;for(h=(h/u-e)*o,a=(a/u-n)*o,i=0;i<u;++i)l=t[i],l.x-=h,l.y-=a}return s.initialize=function(i){t=i},s.x=function(i){return arguments.length?(e=+i,s):e},s.y=function(i){return arguments.length?(n=+i,s):n},s.strength=function(i){return arguments.length?(o=+i,s):o},s}function Rt(e){const n=+this._x.call(null,e),t=+this._y.call(null,e);return We(this.cover(n,t),n,t,e)}function We(e,n,t,o){if(isNaN(n)||isNaN(t))return e;var s,i=e._root,u={data:o},l=e._x0,h=e._y0,a=e._x1,c=e._y1,d,m,g,k,f,r,v,p;if(!i)return e._root=u,e;for(;i.length;)if((f=n>=(d=(l+a)/2))?l=d:a=d,(r=t>=(m=(h+c)/2))?h=m:c=m,s=i,!(i=i[v=r<<1|f]))return s[v]=u,e;if(g=+e._x.call(null,i.data),k=+e._y.call(null,i.data),n===g&&t===k)return u.next=i,s?s[v]=u:e._root=u,e;do s=s?s[v]=new Array(4):e._root=new Array(4),(f=n>=(d=(l+a)/2))?l=d:a=d,(r=t>=(m=(h+c)/2))?h=m:c=m;while((v=r<<1|f)===(p=(k>=m)<<1|g>=d));return s[p]=i,s[v]=u,e}function Bt(e){var n,t,o=e.length,s,i,u=new Array(o),l=new Array(o),h=1/0,a=1/0,c=-1/0,d=-1/0;for(t=0;t<o;++t)isNaN(s=+this._x.call(null,n=e[t]))||isNaN(i=+this._y.call(null,n))||(u[t]=s,l[t]=i,s<h&&(h=s),s>c&&(c=s),i<a&&(a=i),i>d&&(d=i));if(h>c||a>d)return this;for(this.cover(h,a).cover(c,d),t=0;t<o;++t)We(this,u[t],l[t],e[t]);return this}function Vt(e,n){if(isNaN(e=+e)||isNaN(n=+n))return this;var t=this._x0,o=this._y0,s=this._x1,i=this._y1;if(isNaN(t))s=(t=Math.floor(e))+1,i=(o=Math.floor(n))+1;else{for(var u=s-t||1,l=this._root,h,a;t>e||e>=s||o>n||n>=i;)switch(a=(n<o)<<1|e<t,h=new Array(4),h[a]=l,l=h,u*=2,a){case 0:s=t+u,i=o+u;break;case 1:t=s-u,i=o+u;break;case 2:s=t+u,o=i-u;break;case 3:t=s-u,o=i-u;break}this._root&&this._root.length&&(this._root=l)}return this._x0=t,this._y0=o,this._x1=s,this._y1=i,this}function Ut(){var e=[];return this.visit(function(n){if(!n.length)do e.push(n.data);while(n=n.next)}),e}function Ht(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function Y(e,n,t,o,s){this.node=e,this.x0=n,this.y0=t,this.x1=o,this.y1=s}function Yt(e,n,t){var o,s=this._x0,i=this._y0,u,l,h,a,c=this._x1,d=this._y1,m=[],g=this._root,k,f;for(g&&m.push(new Y(g,s,i,c,d)),t==null?t=1/0:(s=e-t,i=n-t,c=e+t,d=n+t,t*=t);k=m.pop();)if(!(!(g=k.node)||(u=k.x0)>c||(l=k.y0)>d||(h=k.x1)<s||(a=k.y1)<i))if(g.length){var r=(u+h)/2,v=(l+a)/2;m.push(new Y(g[3],r,v,h,a),new Y(g[2],u,v,r,a),new Y(g[1],r,l,h,v),new Y(g[0],u,l,r,v)),(f=(n>=v)<<1|e>=r)&&(k=m[m.length-1],m[m.length-1]=m[m.length-1-f],m[m.length-1-f]=k)}else{var p=e-+this._x.call(null,g.data),z=n-+this._y.call(null,g.data),C=p*p+z*z;if(C<t){var A=Math.sqrt(t=C);s=e-A,i=n-A,c=e+A,d=n+A,o=g.data}}return o}function Xt(e){if(isNaN(c=+this._x.call(null,e))||isNaN(d=+this._y.call(null,e)))return this;var n,t=this._root,o,s,i,u=this._x0,l=this._y0,h=this._x1,a=this._y1,c,d,m,g,k,f,r,v;if(!t)return this;if(t.length)for(;;){if((k=c>=(m=(u+h)/2))?u=m:h=m,(f=d>=(g=(l+a)/2))?l=g:a=g,n=t,!(t=t[r=f<<1|k]))return this;if(!t.length)break;(n[r+1&3]||n[r+2&3]||n[r+3&3])&&(o=n,v=r)}for(;t.data!==e;)if(s=t,!(t=t.next))return this;return(i=t.next)&&delete t.next,s?(i?s.next=i:delete s.next,this):n?(i?n[r]=i:delete n[r],(t=n[0]||n[1]||n[2]||n[3])&&t===(n[3]||n[2]||n[1]||n[0])&&!t.length&&(o?o[v]=t:this._root=t),this):(this._root=i,this)}function Gt(e){for(var n=0,t=e.length;n<t;++n)this.remove(e[n]);return this}function Kt(){return this._root}function Wt(){var e=0;return this.visit(function(n){if(!n.length)do++e;while(n=n.next)}),e}function Qt(e){var n=[],t,o=this._root,s,i,u,l,h;for(o&&n.push(new Y(o,this._x0,this._y0,this._x1,this._y1));t=n.pop();)if(!e(o=t.node,i=t.x0,u=t.y0,l=t.x1,h=t.y1)&&o.length){var a=(i+l)/2,c=(u+h)/2;(s=o[3])&&n.push(new Y(s,a,c,l,h)),(s=o[2])&&n.push(new Y(s,i,c,a,h)),(s=o[1])&&n.push(new Y(s,a,u,l,c)),(s=o[0])&&n.push(new Y(s,i,u,a,c))}return this}function Jt(e){var n=[],t=[],o;for(this._root&&n.push(new Y(this._root,this._x0,this._y0,this._x1,this._y1));o=n.pop();){var s=o.node;if(s.length){var i,u=o.x0,l=o.y0,h=o.x1,a=o.y1,c=(u+h)/2,d=(l+a)/2;(i=s[0])&&n.push(new Y(i,u,l,c,d)),(i=s[1])&&n.push(new Y(i,c,l,h,d)),(i=s[2])&&n.push(new Y(i,u,d,c,a)),(i=s[3])&&n.push(new Y(i,c,d,h,a))}t.push(o)}for(;o=t.pop();)e(o.node,o.x0,o.y0,o.x1,o.y1);return this}function Zt(e){return e[0]}function qt(e){return arguments.length?(this._x=e,this):this._x}function en(e){return e[1]}function tn(e){return arguments.length?(this._y=e,this):this._y}function Ae(e,n,t){var o=new Oe(n??Zt,t??en,NaN,NaN,NaN,NaN);return e==null?o:o.addAll(e)}function Oe(e,n,t,o,s,i){this._x=e,this._y=n,this._x0=t,this._y0=o,this._x1=s,this._y1=i,this._root=void 0}function Pe(e){for(var n={data:e.data},t=n;e=e.next;)t=t.next={data:e.data};return n}var G=Ae.prototype=Oe.prototype;G.copy=function(){var e=new Oe(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root,t,o;if(!n)return e;if(!n.length)return e._root=Pe(n),e;for(t=[{source:n,target:e._root=new Array(4)}];n=t.pop();)for(var s=0;s<4;++s)(o=n.source[s])&&(o.length?t.push({source:o,target:n.target[s]=new Array(4)}):n.target[s]=Pe(o));return e};G.add=Rt;G.addAll=Bt;G.cover=Vt;G.data=Ut;G.extent=Ht;G.find=Yt;G.remove=Xt;G.removeAll=Gt;G.root=Kt;G.size=Wt;G.visit=Qt;G.visitAfter=Jt;G.x=qt;G.y=tn;function X(e){return function(){return e}}function se(e){return(e()-.5)*1e-6}function nn(e){return e.x+e.vx}function sn(e){return e.y+e.vy}function on(e){var n,t,o,s=1,i=1;typeof e!="function"&&(e=X(e==null?1:+e));function u(){for(var a,c=n.length,d,m,g,k,f,r,v=0;v<i;++v)for(d=Ae(n,nn,sn).visitAfter(l),a=0;a<c;++a)m=n[a],f=t[m.index],r=f*f,g=m.x+m.vx,k=m.y+m.vy,d.visit(p);function p(z,C,A,P,N){var $=z.data,S=z.r,E=f+S;if($){if($.index>m.index){var D=g-$.x-$.vx,B=k-$.y-$.vy,j=D*D+B*B;j<E*E&&(D===0&&(D=se(o),j+=D*D),B===0&&(B=se(o),j+=B*B),j=(E-(j=Math.sqrt(j)))/j*s,m.vx+=(D*=j)*(E=(S*=S)/(r+S)),m.vy+=(B*=j)*E,$.vx-=D*(E=1-E),$.vy-=B*E)}return}return C>g+E||P<g-E||A>k+E||N<k-E}}function l(a){if(a.data)return a.r=t[a.data.index];for(var c=a.r=0;c<4;++c)a[c]&&a[c].r>a.r&&(a.r=a[c].r)}function h(){if(n){var a,c=n.length,d;for(t=new Array(c),a=0;a<c;++a)d=n[a],t[d.index]=+e(d,a,n)}}return u.initialize=function(a,c){n=a,o=c,h()},u.iterations=function(a){return arguments.length?(i=+a,u):i},u.strength=function(a){return arguments.length?(s=+a,u):s},u.radius=function(a){return arguments.length?(e=typeof a=="function"?a:X(+a),h(),u):e},u}function ln(e){return e.index}function De(e,n){var t=e.get(n);if(!t)throw new Error("node not found: "+n);return t}function an(e){var n=ln,t=d,o,s=X(30),i,u,l,h,a,c=1;e==null&&(e=[]);function d(r){return 1/Math.min(l[r.source.index],l[r.target.index])}function m(r){for(var v=0,p=e.length;v<c;++v)for(var z=0,C,A,P,N,$,S,E;z<p;++z)C=e[z],A=C.source,P=C.target,N=P.x+P.vx-A.x-A.vx||se(a),$=P.y+P.vy-A.y-A.vy||se(a),S=Math.sqrt(N*N+$*$),S=(S-i[z])/S*r*o[z],N*=S,$*=S,P.vx-=N*(E=h[z]),P.vy-=$*E,A.vx+=N*(E=1-E),A.vy+=$*E}function g(){if(u){var r,v=u.length,p=e.length,z=new Map(u.map((A,P)=>[n(A,P,u),A])),C;for(r=0,l=new Array(v);r<p;++r)C=e[r],C.index=r,typeof C.source!="object"&&(C.source=De(z,C.source)),typeof C.target!="object"&&(C.target=De(z,C.target)),l[C.source.index]=(l[C.source.index]||0)+1,l[C.target.index]=(l[C.target.index]||0)+1;for(r=0,h=new Array(p);r<p;++r)C=e[r],h[r]=l[C.source.index]/(l[C.source.index]+l[C.target.index]);o=new Array(p),k(),i=new Array(p),f()}}function k(){if(u)for(var r=0,v=e.length;r<v;++r)o[r]=+t(e[r],r,e)}function f(){if(u)for(var r=0,v=e.length;r<v;++r)i[r]=+s(e[r],r,e)}return m.initialize=function(r,v){u=r,a=v,g()},m.links=function(r){return arguments.length?(e=r,g(),m):e},m.id=function(r){return arguments.length?(n=r,m):n},m.iterations=function(r){return arguments.length?(c=+r,m):c},m.strength=function(r){return arguments.length?(t=typeof r=="function"?r:X(+r),k(),m):t},m.distance=function(r){return arguments.length?(s=typeof r=="function"?r:X(+r),f(),m):s},m}var rn={value:()=>{}};function Qe(){for(var e=0,n=arguments.length,t={},o;e<n;++e){if(!(o=arguments[e]+"")||o in t||/[\s.]/.test(o))throw new Error("illegal type: "+o);t[o]=[]}return new _e(t)}function _e(e){this._=e}function un(e,n){return e.trim().split(/^|\s+/).map(function(t){var o="",s=t.indexOf(".");if(s>=0&&(o=t.slice(s+1),t=t.slice(0,s)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:o}})}_e.prototype=Qe.prototype={constructor:_e,on:function(e,n){var t=this._,o=un(e+"",t),s,i=-1,u=o.length;if(arguments.length<2){for(;++i<u;)if((s=(e=o[i]).type)&&(s=cn(t[s],e.name)))return s;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++i<u;)if(s=(e=o[i]).type)t[s]=Re(t[s],e.name,n);else if(n==null)for(s in t)t[s]=Re(t[s],e.name,null);return this},copy:function(){var e={},n=this._;for(var t in n)e[t]=n[t].slice();return new _e(e)},call:function(e,n){if((s=arguments.length-2)>0)for(var t=new Array(s),o=0,s,i;o<s;++o)t[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],o=0,s=i.length;o<s;++o)i[o].value.apply(n,t)},apply:function(e,n,t){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],s=0,i=o.length;s<i;++s)o[s].value.apply(n,t)}};function cn(e,n){for(var t=0,o=e.length,s;t<o;++t)if((s=e[t]).name===n)return s.value}function Re(e,n,t){for(var o=0,s=e.length;o<s;++o)if(e[o].name===n){e[o]=rn,e=e.slice(0,o).concat(e.slice(o+1));break}return t!=null&&e.push({name:n,value:t}),e}var ae=0,ce=0,re=0,Je=1e3,xe,fe,we=0,ie=0,$e=0,ve=typeof performance=="object"&&performance.now?performance:Date,Ze=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function qe(){return ie||(Ze(fn),ie=ve.now()+$e)}function fn(){ie=0}function ze(){this._call=this._time=this._next=null}ze.prototype=et.prototype={constructor:ze,restart:function(e,n,t){if(typeof e!="function")throw new TypeError("callback is not a function");t=(t==null?qe():+t)+(n==null?0:+n),!this._next&&fe!==this&&(fe?fe._next=this:xe=this,fe=this),this._call=e,this._time=t,je()},stop:function(){this._call&&(this._call=null,this._time=1/0,je())}};function et(e,n,t){var o=new ze;return o.restart(e,n,t),o}function vn(){qe(),++ae;for(var e=xe,n;e;)(n=ie-e._time)>=0&&e._call.call(void 0,n),e=e._next;--ae}function Be(){ie=(we=ve.now())+$e,ae=ce=0;try{vn()}finally{ae=0,hn(),ie=0}}function dn(){var e=ve.now(),n=e-we;n>Je&&($e-=n,we=e)}function hn(){for(var e,n=xe,t,o=1/0;n;)n._call?(o>n._time&&(o=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:xe=t);fe=e,je(o)}function je(e){if(!ae){ce&&(ce=clearTimeout(ce));var n=e-ie;n>24?(e<1/0&&(ce=setTimeout(Be,e-ve.now()-$e)),re&&(re=clearInterval(re))):(re||(we=ve.now(),re=setInterval(dn,Je)),ae=1,Ze(Be))}}const pn=1664525,gn=1013904223,Ve=4294967296;function yn(){let e=1;return()=>(e=(pn*e+gn)%Ve)/Ve}function _n(e){return e.x}function mn(e){return e.y}var xn=10,wn=Math.PI*(3-Math.sqrt(5));function kn(e){var n,t=1,o=.001,s=1-Math.pow(o,1/300),i=0,u=.6,l=new Map,h=et(d),a=Qe("tick","end"),c=yn();e==null&&(e=[]);function d(){m(),a.call("tick",n),t<o&&(h.stop(),a.call("end",n))}function m(f){var r,v=e.length,p;f===void 0&&(f=1);for(var z=0;z<f;++z)for(t+=(i-t)*s,l.forEach(function(C){C(t)}),r=0;r<v;++r)p=e[r],p.fx==null?p.x+=p.vx*=u:(p.x=p.fx,p.vx=0),p.fy==null?p.y+=p.vy*=u:(p.y=p.fy,p.vy=0);return n}function g(){for(var f=0,r=e.length,v;f<r;++f){if(v=e[f],v.index=f,v.fx!=null&&(v.x=v.fx),v.fy!=null&&(v.y=v.fy),isNaN(v.x)||isNaN(v.y)){var p=xn*Math.sqrt(.5+f),z=f*wn;v.x=p*Math.cos(z),v.y=p*Math.sin(z)}(isNaN(v.vx)||isNaN(v.vy))&&(v.vx=v.vy=0)}}function k(f){return f.initialize&&f.initialize(e,c),f}return g(),n={tick:m,restart:function(){return h.restart(d),n},stop:function(){return h.stop(),n},nodes:function(f){return arguments.length?(e=f,g(),l.forEach(k),n):e},alpha:function(f){return arguments.length?(t=+f,n):t},alphaMin:function(f){return arguments.length?(o=+f,n):o},alphaDecay:function(f){return arguments.length?(s=+f,n):+s},alphaTarget:function(f){return arguments.length?(i=+f,n):i},velocityDecay:function(f){return arguments.length?(u=1-f,n):1-u},randomSource:function(f){return arguments.length?(c=f,l.forEach(k),n):c},force:function(f,r){return arguments.length>1?(r==null?l.delete(f):l.set(f,k(r)),n):l.get(f)},find:function(f,r,v){var p=0,z=e.length,C,A,P,N,$;for(v==null?v=1/0:v*=v,p=0;p<z;++p)N=e[p],C=f-N.x,A=r-N.y,P=C*C+A*A,P<v&&($=N,v=P);return $},on:function(f,r){return arguments.length>1?(a.on(f,r),n):a.on(f)}}}function $n(){var e,n,t,o,s=X(-30),i,u=1,l=1/0,h=.81;function a(g){var k,f=e.length,r=Ae(e,_n,mn).visitAfter(d);for(o=g,k=0;k<f;++k)n=e[k],r.visit(m)}function c(){if(e){var g,k=e.length,f;for(i=new Array(k),g=0;g<k;++g)f=e[g],i[f.index]=+s(f,g,e)}}function d(g){var k=0,f,r,v=0,p,z,C;if(g.length){for(p=z=C=0;C<4;++C)(f=g[C])&&(r=Math.abs(f.value))&&(k+=f.value,v+=r,p+=r*f.x,z+=r*f.y);g.x=p/v,g.y=z/v}else{f=g,f.x=f.data.x,f.y=f.data.y;do k+=i[f.data.index];while(f=f.next)}g.value=k}function m(g,k,f,r){if(!g.value)return!0;var v=g.x-n.x,p=g.y-n.y,z=r-k,C=v*v+p*p;if(z*z/h<C)return C<l&&(v===0&&(v=se(t),C+=v*v),p===0&&(p=se(t),C+=p*p),C<u&&(C=Math.sqrt(u*C)),n.vx+=v*g.value*o/C,n.vy+=p*g.value*o/C),!0;if(g.length||C>=l)return;(g.data!==n||g.next)&&(v===0&&(v=se(t),C+=v*v),p===0&&(p=se(t),C+=p*p),C<u&&(C=Math.sqrt(u*C)));do g.data!==n&&(z=i[g.data.index]*o/C,n.vx+=v*z,n.vy+=p*z);while(g=g.next)}return a.initialize=function(g,k){e=g,t=k,c()},a.strength=function(g){return arguments.length?(s=typeof g=="function"?g:X(+g),c(),a):s},a.distanceMin=function(g){return arguments.length?(u=g*g,a):Math.sqrt(u)},a.distanceMax=function(g){return arguments.length?(l=g*g,a):Math.sqrt(l)},a.theta=function(g){return arguments.length?(h=g*g,a):Math.sqrt(h)},a}function bn(e){var n=X(.1),t,o,s;typeof e!="function"&&(e=X(e==null?0:+e));function i(l){for(var h=0,a=t.length,c;h<a;++h)c=t[h],c.vx+=(s[h]-c.x)*o[h]*l}function u(){if(t){var l,h=t.length;for(o=new Array(h),s=new Array(h),l=0;l<h;++l)o[l]=isNaN(s[l]=+e(t[l],l,t))?0:+n(t[l],l,t)}}return i.initialize=function(l){t=l,u()},i.strength=function(l){return arguments.length?(n=typeof l=="function"?l:X(+l),u(),i):n},i.x=function(l){return arguments.length?(e=typeof l=="function"?l:X(+l),u(),i):e},i}function Cn(e){var n=X(.1),t,o,s;typeof e!="function"&&(e=X(e==null?0:+e));function i(l){for(var h=0,a=t.length,c;h<a;++h)c=t[h],c.vy+=(s[h]-c.y)*o[h]*l}function u(){if(t){var l,h=t.length;for(o=new Array(h),s=new Array(h),l=0;l<h;++l)o[l]=isNaN(s[l]=+e(t[l],l,t))?0:+n(t[l],l,t)}}return i.initialize=function(l){t=l,u()},i.strength=function(l){return arguments.length?(n=typeof l=="function"?l:X(+l),u(),i):n},i.y=function(l){return arguments.length?(e=typeof l=="function"?l:X(+l),u(),i):e},i}const Mn={class:"graph"},Nn=["viewBox"],Sn=["d","marker-end"],In=["transform","aria-label","onMouseenter","onFocus","onClick","onKeydown"],zn={class:"node__label",y:"-16","text-anchor":"middle"},jn={key:0,class:"node__dir",y:"26","text-anchor":"middle"},An={class:"graph__bar"},Ne=900,Se=560,ue=9,On=oe({__name:"CycleGraph",props:{cycles:{},selected:{}},emits:["select-cycle","open-file"],setup(e,{emit:n}){const t=e,o=n,s=L(null),i=L({x:0,y:0,w:Ne,h:Se}),u=L({x:0,y:0,w:Ne,h:Se}),l=L(null),h=L();function a(N){return N.split("/").pop()??N}function c(N){const $=N.split("/");return $.pop(),$.join("/")}const d=T(()=>{const N=new Map,$=new Map;for(const j of t.cycles)j.files.forEach((V,K)=>{const J=N.get(V)??{id:V,label:a(V),dir:c(V),cycles:new Set};J.cycles.add(j.id),N.set(V,J);const q=j.files[(K+1)%j.files.length],U=`${V}>${q}`,ee=$.get(U)??{key:U,from:V,to:q,cycles:new Set,typeOnly:!0};ee.cycles.add(j.id),j.typeOnly||(ee.typeOnly=!1),$.set(U,ee)});const S=[...N.values()];S.forEach((j,V)=>{const K=V/Math.max(S.length,1)*Math.PI*2;j.x=Math.cos(K)*160,j.y=Math.sin(K)*160});const E=[...$.values()].map(j=>({source:j.from,target:j.to})),D=kn(S).force("link",an(E).id(j=>j.id).distance(120)).force("charge",$n().strength(-300)).force("x",bn(0).strength(.09)).force("y",Cn(0).strength(.09)).force("center",Dt(0,0)).force("collide",on(46)).stop(),B=Math.min(400,120+S.length*4);for(let j=0;j<B;j++)D.tick();return{nodes:S,edges:[...$.values()]}}),m=T(()=>new Map(d.value.nodes.map(N=>[N.id,{x:N.x??0,y:N.y??0}])));function g(){const N=[...m.value.values()];if(N.length===0)return;const $=90,S=Math.min(...N.map(U=>U.x))-$,E=Math.max(...N.map(U=>U.x))+$,D=Math.min(...N.map(U=>U.y))-$,B=Math.max(...N.map(U=>U.y))+$;let j=E-S,V=B-D;const K=h.value?.getBoundingClientRect(),J=K&&K.height>0?K.width/K.height:Ne/Se;j/V<J?j=V*J:V=j/J;const q={x:(S+E)/2-j/2,y:(D+B)/2-V/2,w:j,h:V};u.value=q,i.value={...q}}me(d,()=>ge(g)),ke(g);const k=T(()=>t.cycles.find(N=>N.id===t.selected));function f(N){return k.value?N.cycles.has(k.value.id):s.value?N.id===s.value||d.value.edges.some($=>$.from===s.value&&$.to===N.id||$.to===s.value&&$.from===N.id):!0}function r(N){return k.value?N.cycles.has(k.value.id):s.value?N.from===s.value||N.to===s.value:!0}function v(N){const $=m.value.get(N.from),S=m.value.get(N.to);if(!$||!S)return"";const E=S.x-$.x,D=S.y-$.y,B=Math.hypot(E,D)||1,j=E/B,V=D/B,K=$.x+j*(ue+2),J=$.y+V*(ue+2),q=S.x-j*(ue+7),U=S.y-V*(ue+7),ee=Math.min(26,B*.18),be=(K+q)/2-V*ee,Ce=(J+U)/2+j*ee;return`M ${K} ${J} Q ${be} ${Ce} ${q} ${U}`}function p(N){N.preventDefault();const $=h.value?.getBoundingClientRect();if(!$)return;const S=N.deltaY>0?1.15:1/1.15,E=Math.min(Math.max(i.value.w*S,u.value.w/8),u.value.w*4),D=E/(i.value.w/i.value.h),B=(N.clientX-$.left)/$.width,j=(N.clientY-$.top)/$.height;i.value={x:i.value.x+(i.value.w-E)*B,y:i.value.y+(i.value.h-D)*j,w:E,h:D}}function z(N){N.target.closest(".node")||(l.value={x:N.clientX,y:N.clientY},N.currentTarget.setPointerCapture(N.pointerId))}function C(N){const $=l.value,S=h.value?.getBoundingClientRect();!$||!S||(i.value={...i.value,x:i.value.x-(N.clientX-$.x)/S.width*i.value.w,y:i.value.y-(N.clientY-$.y)/S.height*i.value.h},l.value={x:N.clientX,y:N.clientY})}function A(){l.value=null}function P(N){return N.cycles.size>1?"node--hub":"node--single"}return(N,$)=>(_(),x("div",Mn,[(_(),x("svg",{ref_key:"svg",ref:h,class:H(["graph__svg",{"graph__svg--drag":l.value}]),viewBox:`${i.value.x} ${i.value.y} ${i.value.w} ${i.value.h}`,role:"img","aria-label":"Graph of the import cycles",onWheel:p,onPointerdown:z,onPointermove:C,onPointerup:A,onClick:$[2]||($[2]=Ee(S=>o("select-cycle",null),["self"]))},[$[4]||($[4]=y("defs",null,[y("marker",{id:"arrow",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"7",markerHeight:"7",orient:"auto-start-reverse"},[y("path",{d:"M 0 0 L 10 5 L 0 10 z",class:"arrow"})]),y("marker",{id:"arrow-on",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"7",markerHeight:"7",orient:"auto-start-reverse"},[y("path",{d:"M 0 0 L 10 5 L 0 10 z",class:"arrow arrow--on"})])],-1)),(_(!0),x(F,null,Q(d.value.edges,S=>(_(),x("path",{key:S.key,class:H(["edge",{"edge--dim":!r(S),"edge--on":!!k.value&&r(S),"edge--type":S.typeOnly,"edge--strong":S.cycles.size>1}]),d:v(S),"marker-end":k.value&&r(S)?"url(#arrow-on)":"url(#arrow)"},null,10,Sn))),128)),(_(!0),x(F,null,Q(d.value.nodes,S=>(_(),x("g",{key:S.id,class:H(["node",[P(S),{"node--dim":!f(S)}]]),transform:`translate(${S.x??0}, ${S.y??0})`,tabindex:"0",role:"button","aria-label":`${S.id}, in ${S.cycles.size} cycle${S.cycles.size===1?"":"s"}`,onMouseenter:E=>s.value=S.id,onMouseleave:$[0]||($[0]=E=>s.value=null),onFocus:E=>s.value=S.id,onBlur:$[1]||($[1]=E=>s.value=null),onClick:Ee(E=>o("open-file",S.id),["stop"]),onKeydown:st(E=>o("open-file",S.id),["enter"])},[y("title",null,w(S.id)+" — in "+w(S.cycles.size)+" cycle"+w(S.cycles.size===1?"":"s"),1),y("circle",{r:ue,class:"node__dot"}),y("text",zn,w(S.label),1),S.dir?(_(),x("text",jn,w(S.dir),1)):O("",!0)],42,In))),128))],42,Nn)),y("div",An,[$[5]||($[5]=it('<span class="legend" data-v-2ff3fdf0><i class="legend__dot legend__dot--single" data-v-2ff3fdf0></i> in one cycle</span><span class="legend" data-v-2ff3fdf0><i class="legend__dot legend__dot--hub" data-v-2ff3fdf0></i> in several cycles</span><span class="legend" data-v-2ff3fdf0><i class="legend__line legend__line--type" data-v-2ff3fdf0></i> type-only import</span><span class="spacer" data-v-2ff3fdf0></span>',4)),y("button",{class:"btn btn--small",onClick:$[3]||($[3]=S=>i.value={...u.value})},"Fit to screen")]),$[6]||($[6]=y("p",{class:"muted small"}," Scroll to zoom, drag to move. Click a file to open it, or pick a cycle in the list to light it up. ",-1))]))}}),En=le(On,[["__scopeId","data-v-2ff3fdf0"]]),Ln={class:"groups"},Tn=["aria-expanded","onClick"],Fn={class:"group__file"},Pn={class:"group__count"},Dn={key:0,class:"items"},Rn=["onClick"],Bn={class:"item__place"},Vn=["title"],Un={class:"item__text"},Hn={class:"item__message"},Yn={key:0,class:"item__hint muted"},Xn={class:"item__code"},Gn={key:0,class:"more"},Ue=40,Kn=oe({__name:"FindingsList",props:{findings:{}},emits:["open"],setup(e,{emit:n}){const t=e,o=n,s=L(Ue),i=L(new Set),u=T(()=>{const a=new Map;for(const c of t.findings){const d=c.file??"Project",m=a.get(d);m?m.push(c):a.set(d,[c])}return[...a.entries()].map(([c,d])=>({file:c,items:[...d].sort((m,g)=>(m.line??0)-(g.line??0))})).sort((c,d)=>c.file.localeCompare(d.file))});function l(a){const c=new Set(i.value);c.has(a)?c.delete(a):c.add(a),i.value=c}function h(a){return a.line?a.column?`${a.line}:${a.column}`:String(a.line):""}return(a,c)=>(_(),x("div",Ln,[(_(!0),x(F,null,Q(u.value.slice(0,s.value),d=>(_(),x("section",{key:d.file,class:"group"},[y("button",{class:"group__head","aria-expanded":!i.value.has(d.file),onClick:m=>l(d.file)},[y("span",{class:H(["group__caret",{"group__caret--open":!i.value.has(d.file)}])},"▸",2),y("code",Fn,w(d.file),1),y("span",Pn,w(d.items.length),1)],8,Tn),i.value.has(d.file)?O("",!0):(_(),x("ul",Dn,[(_(!0),x(F,null,Q(d.items,(m,g)=>(_(),x("li",{key:g,class:"item"},[y("button",{class:"item__main",onClick:k=>o("open",m)},[y("span",Bn,w(h(m)),1),y("span",{class:H(["dot",`dot--${m.severity}`]),title:m.severity},null,10,Vn),y("span",Un,[y("span",Hn,w(m.message),1),m.hint?(_(),x("span",Yn,w(m.hint),1)):O("",!0)]),y("span",Xn,w(m.code),1)],8,Rn)]))),128))]))]))),128)),s.value<u.value.length?(_(),x("div",Gn,[y("button",{class:"btn",onClick:c[0]||(c[0]=d=>s.value+=Ue)}," Show more files ("+w(u.value.length-s.value)+" left) ",1),y("button",{class:"btn",onClick:c[1]||(c[1]=d=>s.value=u.value.length)},"Show all")])):O("",!0)]))}}),tt=le(Kn,[["__scopeId","data-v-86eeb72c"]]),Wn={class:"cycles"},Qn={key:0,class:"split"},Jn={class:"side","aria-label":"Cycles"},Zn={class:"side__title"},qn={class:"side__list"},es=["onClick"],ts={class:"cycle__head"},ns={class:"muted"},ss={key:0,class:"cycle__tag"},is={class:"cycle__chain"},os=oe({__name:"CyclesView",props:{findings:{}},emits:["open-file","open"],setup(e,{emit:n}){const t=e,o=n,s=L("graph"),i=L(null),u=T(()=>t.findings.filter(a=>a.files&&a.files.length>0).map((a,c)=>({id:c,files:a.files,typeOnly:a.code==="type-only"})));function l(a){i.value=i.value===a?null:a}function h(a){return[...a.files.map(c=>c.split("/").pop()??c),a.files[0]?.split("/").pop()].join(" → ")}return(a,c)=>(_(),x("div",Wn,[Z(lt,{modelValue:s.value,"onUpdate:modelValue":c[0]||(c[0]=d=>s.value=d),label:"View",options:[{value:"graph",label:"Graph"},{value:"list",label:"List"}]},null,8,["modelValue"]),s.value==="graph"?(_(),x("div",Qn,[Z(En,{cycles:u.value,selected:i.value,onSelectCycle:c[1]||(c[1]=d=>i.value=d),onOpenFile:c[2]||(c[2]=d=>o("open-file",d))},null,8,["cycles","selected"]),y("aside",Jn,[y("h3",Zn,w(u.value.length)+" cycle"+w(u.value.length===1?"":"s"),1),y("ul",qn,[(_(!0),x(F,null,Q(u.value,d=>(_(),x("li",{key:d.id},[y("button",{class:H(["cycle",{"cycle--on":i.value===d.id}]),onClick:m=>l(d.id)},[y("span",ts,[y("strong",null,"Cycle "+w(d.id+1),1),y("span",ns,w(d.files.length)+" files",1),d.typeOnly?(_(),x("span",ss,"types only")):O("",!0)]),y("span",is,w(h(d)),1)],10,es)]))),128))])])])):(_(),te(tt,{key:1,findings:e.findings,onOpen:c[3]||(c[3]=d=>o("open",d))},null,8,["findings"]))]))}}),ls=le(os,[["__scopeId","data-v-7482ac93"]]);function as(e=1200){const n=L("");async function t(o,s){try{await navigator.clipboard.writeText(s),n.value=o,setTimeout(()=>{n.value===o&&(n.value="")},e)}catch{n.value=""}}return{copied:n,copy:t}}const rs={key:0,class:"code__note"},us=["data-focus"],cs={class:"line__text"},fs={key:0},Ie=400,vs=1500,ds=oe({__name:"UiCode",props:{text:{},lang:{},focusLine:{},focusColumn:{}},setup(e){const n=e,t=L(Fe(n.text)),o=L(!1),s=L(),i=T(()=>t.value.length),u=T(()=>!o.value&&i.value>vs),l=T(()=>{if(!u.value)return 0;const g=n.focusLine??1;return Math.max(0,Math.min(g-1-Ie/2,i.value-Ie))}),h=T(()=>u.value?Math.min(i.value,l.value+Ie):i.value),a=T(()=>t.value.slice(l.value,h.value)),c=T(()=>String(i.value).length);async function d(){t.value=Fe(n.text),t.value=await at(n.text,n.lang),await ge(),m()}function m(){const g=s.value?.querySelector('[data-focus="true"]');if(g instanceof HTMLElement&&s.value){const k=s.value;k.scrollTop=g.offsetTop-k.clientHeight/2+g.clientHeight/2}}return me(()=>[n.text,n.lang],d),me(()=>[n.focusLine,n.focusColumn],async()=>{await ge(),m()}),ke(d),(g,k)=>(_(),x("div",{ref_key:"scroller",ref:s,class:"code",tabindex:"0",role:"region","aria-label":"Source code"},[u.value?(_(),x("p",rs,[R(" Showing lines "+w(l.value+1)+"–"+w(h.value)+" of "+w(i.value)+". ",1),y("button",{class:"code__link",onClick:k[0]||(k[0]=f=>(o.value=!0,ge().then(m)))}," Show the whole file ")])):O("",!0),(_(!0),x(F,null,Q(a.value,(f,r)=>(_(),x("div",{key:l.value+r,class:H(["line",{"line--focus":l.value+r+1===e.focusLine}]),"data-focus":l.value+r+1===e.focusLine},[y("span",{class:"line__no",style:pe({width:`${c.value+1}ch`})},w(l.value+r+1),5),y("span",cs,[(_(!0),x(F,null,Q(f,(v,p)=>(_(),x("span",{key:p,class:H(["tok",{"tok--bold":v.bold,"tok--italic":v.italic}]),style:pe({"--light":v.light||"var(--text)","--dark":v.dark||"var(--text)"})},w(v.text),7))),128)),!f.length||f.length===1&&f[0]?.text===""?(_(),x("span",fs," ")):O("",!0)]),l.value+r+1===e.focusLine&&e.focusColumn?(_(),x("span",{key:0,class:"line__marker",style:pe({left:`calc(${c.value+1}ch + ${Math.max(0,e.focusColumn-1)}ch + 12px)`})},null,4)):O("",!0)],10,us))),128))],512))}}),hs=le(ds,[["__scopeId","data-v-f2eb8c06"]]),ps={class:"muted counter"},gs=["disabled"],ys=["disabled"],_s={class:"body"},ms={class:"finding"},xs={key:0,class:"muted"},ws={key:0,class:"notice notice--error"},ks={key:1,class:"muted"},$s={key:2,class:"muted"},bs={class:"bar"},Cs={class:"path"},Ms=["href"],Ns=oe({__name:"SourceModal",props:{project:{},findings:{},index:{}},emits:["close","update:index"],setup(e,{emit:n}){const t=e,o=n,{copied:s,copy:i}=as(),u=L(),l=L(""),h=L(!1),a=new Map,c=T(()=>t.findings[t.index]),d=T(()=>t.index>0),m=T(()=>t.index<t.findings.length-1),g=T(()=>{if(!u.value)return"";const v=[u.value.abs.replace(/\\/g,"/")];return c.value.line&&v.push(String(c.value.line)),c.value.line&&c.value.column&&v.push(String(c.value.column)),`vscode://file/${v.join(":")}`});async function k(){const v=c.value.file;if(l.value="",!v){u.value=void 0;return}const p=a.get(v);if(p){u.value=p;return}h.value=!0;try{const z=await ye.get(`/api/source?project=${encodeURIComponent(t.project)}&path=${encodeURIComponent(v)}`);a.set(v,z),u.value=z}catch(z){u.value=void 0,l.value=z instanceof Error?z.message:String(z)}finally{h.value=!1}}function f(v){const p=t.index+v;p>=0&&p<t.findings.length&&o("update:index",p)}function r(v){v.target instanceof HTMLInputElement||(v.key==="ArrowLeft"&&f(-1),v.key==="ArrowRight"&&f(1))}return me(()=>t.index,k,{immediate:!0}),ke(()=>window.addEventListener("keydown",r)),Ke(()=>window.removeEventListener("keydown",r)),(v,p)=>(_(),te(rt,{title:c.value.file??"Project",width:"1100px",onClose:p[3]||(p[3]=z=>o("close"))},{actions:Le(()=>[y("span",ps,w(e.index+1)+" / "+w(e.findings.length),1),y("button",{class:"btn btn--small",disabled:!d.value,"aria-label":"Previous finding",onClick:p[0]||(p[0]=z=>f(-1))},[Z(ne,{name:"left",size:15})],8,gs),y("button",{class:"btn btn--small",disabled:!m.value,"aria-label":"Next finding",onClick:p[1]||(p[1]=z=>f(1))},[Z(ne,{name:"right",size:15})],8,ys)]),default:Le(()=>[y("div",_s,[y("div",ms,[y("span",{class:H(["badge",`badge--${c.value.severity}`])},w(c.value.code),3),y("strong",null,w(c.value.message),1),c.value.hint?(_(),x("p",xs,w(c.value.hint),1)):O("",!0)]),l.value?(_(),x("p",ws,w(l.value),1)):h.value?(_(),x("p",ks,"Loading…")):c.value.file?u.value?(_(),x(F,{key:3},[y("div",bs,[y("code",Cs,[R(w(u.value.path),1),c.value.line?(_(),x(F,{key:0},[R(":"+w(c.value.line),1)],64)):O("",!0)]),y("button",{class:"btn btn--small",onClick:p[2]||(p[2]=z=>Me(i)("path",u.value.abs))},[Z(ne,{name:Me(s)==="path"?"check":"copy",size:14},null,8,["name"]),R(" "+w(Me(s)==="path"?"Copied":"Copy path"),1)]),y("a",{class:"btn btn--small",href:g.value},[Z(ne,{name:"external",size:14}),p[4]||(p[4]=R(" Open in VS Code ",-1))],8,Ms)]),Z(hs,{class:"viewer",text:u.value.text,lang:u.value.lang,"focus-line":c.value.line,"focus-column":c.value.column},null,8,["text","lang","focus-line","focus-column"])],64)):O("",!0):(_(),x("p",$s,"This finding is not tied to a source file."))])]),_:1},8,["title"]))}}),He=le(Ns,[["__scopeId","data-v-07a7a162"]]);function de(e){return Object.fromEntries(e.options.map(n=>[n.key,n.default]))}const Ss={class:"page"},Is={class:"page__head"},zs={class:"muted"},js={class:"project"},As=["title"],Os={key:0,class:"notice notice--error"},Es={key:1,class:"layout"},Ls={class:"menu","aria-label":"Checks"},Ts=["aria-current"],Fs={key:0,class:"menu__title"},Ps=["aria-current","onClick"],Ds={class:"menu__name"},Rs={class:"main"},Bs={key:0,class:"notice notice--error"},Vs={class:"card block"},Us={class:"head"},Hs={class:"muted"},Ys=["disabled"],Xs={key:0,class:"options"},Gs={key:0,class:"check"},Ks=["checked","onChange"],Ws={class:"muted"},Qs={key:1,class:"field"},Js={class:"muted"},Zs=["value","onInput"],qs={key:0,class:"notice notice--error"},ei={key:1,class:"card block",role:"status"},ti={key:2,class:"card block"},ni={class:"head"},si={class:"muted small"},ii={key:0,class:"notice notice--error"},oi={key:1,class:"clean"},li={class:"filters"},ai={class:"chips"},ri=["onClick"],ui={key:0,class:"muted"},ci={key:3,class:"card block empty"},Ye="devtoolz-ui.checks-project",Xe="devtoolz-ui.checks-selected",he="overview",fi=oe({__name:"ChecksPage",props:{module:{},status:{}},setup(e){const n=e,t=L([]),o=L(""),s=L(""),i=L({}),u=L({}),l=L(""),h=L(""),a=L(!1),c=L(""),d=L(""),m=L(null),g=L(null),k=L(!1),f=L(!1),r=L({done:0,total:0,current:""}),v=L();let p;const z=T(()=>o.value===he),C=T(()=>t.value.find(I=>I.id===o.value)),A=T(()=>u.value[o.value]),P=T(()=>{const I=A.value?.findings??[],b=c.value.trim().toLowerCase();return I.filter(M=>(d.value===""||M.code===d.value)&&(b===""||`${M.file??""} ${M.message} ${M.code}`.toLowerCase().includes(b)))}),N=T(()=>{const I=new Map;for(const b of A.value?.findings??[]){const M=I.get(b.code);M?M.count+=1:I.set(b.code,{count:1,severity:b.severity})}return[...I.entries()].map(([b,M])=>({code:b,...M}))}),$=T(()=>[{id:"code",title:"Code",items:t.value.filter(I=>I.group==="code")},{id:"dependencies",title:"Dependencies",items:t.value.filter(I=>I.group==="dependencies")},{id:"docs",title:"Documentation",items:t.value.filter(I=>I.group==="docs")}]);function S(I,b){try{localStorage.setItem(I,b)}catch{return}}function E(I){try{return localStorage.getItem(I)??""}catch{return""}}function D(I){o.value=I,c.value="",d.value="",m.value=null,S(Xe,I)}function B(I){a.value=!1;const b=I[0];!b||b===s.value||(s.value=b,u.value={},v.value=void 0,S(Ye,b))}function j(I){return u.value[I]?.findings.length}async function V(I){if(!(f.value||l.value)){p?.(),f.value=!0,h.value="",r.value={done:0,total:0,current:""};try{const{jobId:b}=await ye.post("/api/checks/all/run",{project:s.value,includeSlow:I});p=Te(b,{onProgress:M=>{r.value=M},onDone:M=>{u.value={...u.value,...M.outcomes},v.value=M.tookMs,f.value=!1},onFailed:M=>{h.value=M,f.value=!1}})}catch(b){h.value=b instanceof Error?b.message:String(b),f.value=!1}}}async function K(){const I=C.value;if(!(!I||l.value)){p?.(),l.value=I.id,h.value="";try{const{jobId:b}=await ye.post(`/api/checks/${I.id}/run`,{project:s.value,options:i.value[I.id]??de(I)});p=Te(b,{onDone:M=>{u.value={...u.value,[I.id]:M},l.value="",c.value="",d.value=""},onFailed:M=>{h.value=M,l.value=""}})}catch(b){h.value=b instanceof Error?b.message:String(b),l.value=""}}}function J(I,b){const M=C.value;M&&(i.value={...i.value,[M.id]:{...i.value[M.id]??de(M),[I]:b}})}function q(I,b){const M=C.value;M&&(i.value={...i.value,[M.id]:{...i.value[M.id]??de(M),[I]:b}})}function U(I){const b=C.value;return b?(i.value[b.id]??de(b))[I]??"":""}function ee(I){g.value=[{file:I,severity:"info",code:"file",message:I}]}function be(I){I.file&&ee(I.file)}function Ce(I){const b=P.value.indexOf(I);m.value=b>=0?b:0}return ke(async()=>{s.value=E(Ye)||n.status?.cwd||"";try{t.value=await ye.get("/api/checks");const I=E(Xe);o.value=I===he||t.value.some(b=>b.id===I)?I:he}catch(I){h.value=I instanceof Error?I.message:String(I)}}),Ke(()=>p?.()),(I,b)=>(_(),x("div",Ss,[y("header",Is,[y("h1",null,w(e.module.title),1),y("p",zs,w(e.module.description),1),y("p",js,[Z(ne,{name:"folder",size:15}),b[9]||(b[9]=y("span",{class:"muted"},"Project",-1)),y("code",{title:s.value},w(s.value),9,As),y("button",{class:"btn btn--small",onClick:b[0]||(b[0]=M=>a.value=!0)},"Change…")])]),h.value&&!C.value?(_(),x("p",Os,w(h.value),1)):O("",!0),t.value.length?(_(),x("div",Es,[y("nav",Ls,[y("button",{class:H(["menu__item",{"menu__item--on":z.value}]),"aria-current":z.value?"page":void 0,onClick:b[1]||(b[1]=M=>D(he))},[...b[10]||(b[10]=[y("span",{class:"menu__name"},"Overview",-1)])],10,Ts),(_(!0),x(F,null,Q($.value,M=>(_(),x(F,{key:M.id},[M.items.length?(_(),x("h3",Fs,w(M.title),1)):O("",!0),(_(!0),x(F,null,Q(M.items,W=>(_(),x("button",{key:W.id,class:H(["menu__item",{"menu__item--on":W.id===o.value}]),"aria-current":W.id===o.value?"page":void 0,onClick:vi=>D(W.id)},[y("span",Ds,w(W.title),1),j(W.id)!==void 0?(_(),x("span",{key:0,class:H(["menu__count",{"menu__count--clean":j(W.id)===0}])},w(j(W.id)===0?"✓":j(W.id)),3)):O("",!0)],10,Ps))),128))],64))),128))]),y("main",Rs,[h.value&&z.value?(_(),x("p",Bs,w(h.value),1)):O("",!0),z.value?(_(),te(Pt,{key:1,checks:t.value,outcomes:u.value,running:f.value,progress:r.value,"took-ms":v.value,onRunAll:V,onOpen:D},null,8,["checks","outcomes","running","progress","took-ms"])):C.value?(_(),x(F,{key:2},[y("section",Vs,[y("div",Us,[y("div",null,[y("h2",null,w(C.value.title),1),y("p",Hs,w(C.value.description),1)]),y("button",{class:"btn btn--primary",disabled:l.value!==""||s.value==="",onClick:K},[Z(ne,{name:"play",size:15}),R(" "+w(l.value===C.value.id?"Checking…":A.value?"Run again":"Run check"),1)],8,Ys)]),y("button",{class:"link",onClick:b[2]||(b[2]=M=>k.value=!k.value)},w(k.value?"Hide":"Show")+" options ",1),k.value?(_(),x("div",Xs,[(_(!0),x(F,null,Q(C.value.options,M=>(_(),x(F,{key:M.key},[M.type==="boolean"?(_(),x("label",Gs,[y("input",{type:"checkbox",checked:U(M.key)===!0,onChange:W=>J(M.key,W.target.checked)},null,40,Ks),y("span",null,[R(w(M.label)+" ",1),y("small",Ws," — "+w(M.help),1)])])):(_(),x("label",Qs,[y("span",null,[R(w(M.label)+" ",1),y("small",Js,"— "+w(M.help),1)]),y("textarea",{class:"textarea",rows:"3",spellcheck:"false",value:String(U(M.key)),onInput:W=>q(M.key,W.target.value)},null,40,Zs)]))],64))),128))])):O("",!0)]),h.value?(_(),x("p",qs,w(h.value),1)):O("",!0),l.value===C.value.id?(_(),x("section",ei,[...b[11]||(b[11]=[y("p",{class:"muted"},"Scanning the project…",-1)])])):A.value?(_(),x("section",ti,[y("div",ni,[y("div",null,[y("h2",null,w(A.value.summary),1),y("p",si,[R(w((A.value.tookMs/1e3).toFixed(1))+" s ",1),A.value.filesScanned!==void 0?(_(),x(F,{key:0},[R(" · "+w(A.value.filesScanned)+" files scanned",1)],64)):O("",!0)])])]),(_(!0),x(F,null,Q(A.value.notes??[],M=>(_(),x("p",{key:M,class:"notice notice--warn"},w(M),1))),128)),A.value.error?(_(),x("p",ii,w(A.value.error),1)):O("",!0),A.value.findings.length===0&&!A.value.error?(_(),x("p",oi,[Z(ne,{name:"check",size:18}),b[12]||(b[12]=R(" Nothing to report. This check is clean. ",-1))])):O("",!0),C.value.id==="circular-imports"&&A.value.findings.length?(_(),te(ls,{key:2,findings:A.value.findings,onOpenFile:ee,onOpen:be},null,8,["findings"])):A.value.findings.length?(_(),x(F,{key:3},[y("div",li,[Ge(y("input",{"onUpdate:modelValue":b[3]||(b[3]=M=>c.value=M),class:"input search",placeholder:"Filter by file or text","aria-label":"Filter findings"},null,512),[[ot,c.value]]),y("div",ai,[y("button",{class:H(["chip",{"chip--on":d.value===""}]),onClick:b[4]||(b[4]=M=>d.value="")}," all "+w(A.value.findings.length),3),(_(!0),x(F,null,Q(N.value,M=>(_(),x("button",{key:M.code,class:H(["chip",[`chip--${M.severity}`,{"chip--on":d.value===M.code}]]),onClick:W=>d.value=d.value===M.code?"":M.code},w(M.code)+" "+w(M.count),11,ri))),128))])]),P.value.length===0?(_(),x("p",ui,"No findings match the filter.")):(_(),te(tt,{key:1,findings:P.value,onOpen:Ce},null,8,["findings"]))],64)):O("",!0)])):l.value?O("",!0):(_(),x("section",ci,[...b[13]||(b[13]=[y("p",{class:"muted"},"Press “Run check” to scan the project.",-1)])]))],64)):O("",!0)])])):O("",!0),g.value?(_(),te(He,{key:2,index:0,project:s.value,findings:g.value,onClose:b[5]||(b[5]=M=>g.value=null)},null,8,["project","findings"])):O("",!0),m.value!==null&&P.value.length?(_(),te(He,{key:3,index:m.value,"onUpdate:index":b[6]||(b[6]=M=>m.value=M),project:s.value,findings:P.value,onClose:b[7]||(b[7]=M=>m.value=null)},null,8,["index","project","findings"])):O("",!0),a.value?(_(),te(ut,{key:4,start:s.value||e.status?.cwd||"",title:"Choose the project folder",onClose:b[8]||(b[8]=M=>a.value=!1),onConfirm:B},null,8,["start"])):O("",!0)]))}}),pi=le(fi,[["__scopeId","data-v-0f9c2b48"]]);export{pi as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.overview[data-v-0b1b992d]{display:flex;flex-direction:column;gap:16px}.block[data-v-0b1b992d]{display:flex;flex-direction:column;gap:12px;padding:18px}.head[data-v-0b1b992d]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.small[data-v-0b1b992d]{font-size:12px}.progress-wrap[data-v-0b1b992d]{display:flex;flex-direction:column;gap:8px}.progress[data-v-0b1b992d]{height:8px;overflow:hidden;border-radius:999px;background:var(--surface-2)}.progress__bar[data-v-0b1b992d]{height:100%;background:var(--accent);transition:width .15s}.chips[data-v-0b1b992d]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sev[data-v-0b1b992d]{padding:2px 10px;border-radius:999px;background:var(--surface-2);font-size:12px}.sev--error[data-v-0b1b992d]{background:var(--danger-soft);color:var(--danger)}.sev--warning[data-v-0b1b992d]{background:var(--warn-soft);color:var(--warn)}.sev--ok[data-v-0b1b992d]{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.group[data-v-0b1b992d]{display:flex;flex-direction:column;gap:8px}.group__title[data-v-0b1b992d]{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);text-transform:uppercase}.cards[data-v-0b1b992d]{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.tile[data-v-0b1b992d]{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:12px 16px;text-align:left;cursor:pointer;transition:border-color .15s}.tile[data-v-0b1b992d]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tile[data-v-0b1b992d]:hover{border-color:var(--accent)}.tile--clean[data-v-0b1b992d]{border-left:3px solid var(--ok)}.tile--found[data-v-0b1b992d]{border-left:3px solid var(--warn)}.tile--broken[data-v-0b1b992d]{border-left:3px solid var(--danger)}.tile__top[data-v-0b1b992d]{display:flex;align-items:center;justify-content:space-between;gap:8px}.tile__state[data-v-0b1b992d]{color:var(--muted);font-size:12px;font-weight:600}.tile--clean .tile__state[data-v-0b1b992d]{color:var(--ok)}.tile--found .tile__state[data-v-0b1b992d]{color:var(--warn)}.tile--broken .tile__state[data-v-0b1b992d]{color:var(--danger)}.tile__text[data-v-0b1b992d]{font-size:12px}.tile__sev[data-v-0b1b992d]{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.tile__slow[data-v-0b1b992d]{font-size:11px}.graph[data-v-2ff3fdf0]{display:flex;flex-direction:column;gap:8px}.graph__svg[data-v-2ff3fdf0]{width:100%;height:520px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);cursor:grab;touch-action:none}.graph__svg--drag[data-v-2ff3fdf0]{cursor:grabbing}.graph__bar[data-v-2ff3fdf0]{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px}.spacer[data-v-2ff3fdf0]{flex:1}.small[data-v-2ff3fdf0]{font-size:12px}.edge[data-v-2ff3fdf0]{fill:none;stroke:var(--muted);stroke-width:1.4;opacity:.75;transition:opacity .15s}.edge--strong[data-v-2ff3fdf0]{stroke-width:2.2}.edge--type[data-v-2ff3fdf0]{stroke-dasharray:5 4}.edge--on[data-v-2ff3fdf0]{stroke:var(--accent);stroke-width:2.6;opacity:1}.edge--dim[data-v-2ff3fdf0]{opacity:.12}.arrow[data-v-2ff3fdf0]{fill:var(--muted)}.arrow--on[data-v-2ff3fdf0]{fill:var(--accent)}.node[data-v-2ff3fdf0]{cursor:pointer;outline:none;transition:opacity .15s}.node__dot[data-v-2ff3fdf0]{stroke:var(--surface);stroke-width:2}.node--single .node__dot[data-v-2ff3fdf0]{fill:var(--warn)}.node--hub .node__dot[data-v-2ff3fdf0]{fill:var(--danger)}.node:hover .node__dot[data-v-2ff3fdf0],.node:focus-visible .node__dot[data-v-2ff3fdf0]{stroke:var(--accent);stroke-width:3}.node--dim[data-v-2ff3fdf0]{opacity:.2}.node__label[data-v-2ff3fdf0]{fill:var(--text);font-size:13px;font-weight:600;paint-order:stroke;stroke:var(--surface-2);stroke-width:4px;stroke-linejoin:round}.node__dir[data-v-2ff3fdf0]{fill:var(--muted);font-size:10px;paint-order:stroke;stroke:var(--surface-2);stroke-width:3px}.legend[data-v-2ff3fdf0]{display:inline-flex;align-items:center;gap:6px}.legend__dot[data-v-2ff3fdf0]{width:10px;height:10px;border-radius:50%}.legend__dot--single[data-v-2ff3fdf0]{background:var(--warn)}.legend__dot--hub[data-v-2ff3fdf0]{background:var(--danger)}.legend__line[data-v-2ff3fdf0]{width:22px;border-top:2px dashed var(--muted)}.legend__line--type[data-v-2ff3fdf0]{border-top-style:dashed}.groups[data-v-86eeb72c]{display:flex;flex-direction:column;gap:8px}.group[data-v-86eeb72c]{border:1px solid var(--border);border-radius:9px;overflow:hidden}.group__head[data-v-86eeb72c]{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;background:var(--surface-2);text-align:left;cursor:pointer}.group__head[data-v-86eeb72c]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.group__caret[data-v-86eeb72c]{flex:none;color:var(--muted);transition:transform .15s}.group__caret--open[data-v-86eeb72c]{transform:rotate(90deg)}.group__file[data-v-86eeb72c]{flex:1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group__count[data-v-86eeb72c]{flex:none;padding:0 8px;border-radius:999px;background:var(--surface);color:var(--muted);font-size:11px}.items[data-v-86eeb72c]{margin:0;padding:0;list-style:none}.item[data-v-86eeb72c]{border-top:1px solid var(--border)}.item__main[data-v-86eeb72c]{display:flex;align-items:flex-start;gap:12px;width:100%;padding:8px 12px;border:0;background:transparent;text-align:left;cursor:pointer;transition:background .15s}.item__main[data-v-86eeb72c]:hover:not(:disabled){background:var(--surface-2)}.item__main[data-v-86eeb72c]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.item__place[data-v-86eeb72c]{flex:none;width:56px;color:var(--muted);font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:12px;text-align:right}.item__text[data-v-86eeb72c]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.item__hint[data-v-86eeb72c]{font-size:12px}.item__code[data-v-86eeb72c]{flex:none;padding:1px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:11px}.dot[data-v-86eeb72c]{flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--muted)}.dot--error[data-v-86eeb72c]{background:var(--danger)}.dot--warning[data-v-86eeb72c]{background:var(--warn)}.more[data-v-86eeb72c]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:center}.cycles[data-v-7482ac93]{display:flex;flex-direction:column;gap:12px}.split[data-v-7482ac93]{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}@media(max-width:1100px){.split[data-v-7482ac93]{grid-template-columns:1fr}}.side[data-v-7482ac93]{display:flex;flex-direction:column;gap:8px;max-height:600px;overflow-y:auto}.side__title[data-v-7482ac93]{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);text-transform:uppercase}.side__list[data-v-7482ac93]{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.cycle[data-v-7482ac93]{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);text-align:left;cursor:pointer}.cycle[data-v-7482ac93]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cycle--on[data-v-7482ac93]{border-color:var(--accent);background:var(--accent-soft)}.cycle__head[data-v-7482ac93]{display:flex;align-items:center;gap:8px;font-size:12px}.cycle__tag[data-v-7482ac93]{padding:0 8px;border-radius:999px;background:var(--surface-2);font-size:11px}.cycle__chain[data-v-7482ac93]{color:var(--muted);font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:11px;word-break:break-all}.code[data-v-f2eb8c06]{position:relative;overflow:auto;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;tab-size:2}.code[data-v-f2eb8c06]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.code__note[data-v-f2eb8c06]{position:sticky;top:0;z-index:1;padding:6px 12px;background:var(--warn-soft);color:var(--warn)}.code__link[data-v-f2eb8c06]{padding:0;border:0;background:transparent;color:inherit;text-decoration:underline;cursor:pointer}.line[data-v-f2eb8c06]{position:relative;display:flex;min-width:max-content}.line--focus[data-v-f2eb8c06]{background:color-mix(in srgb,var(--warn) 22%,transparent);box-shadow:inset 3px 0 0 var(--warn)}.line__no[data-v-f2eb8c06]{flex:none;padding:0 12px;color:var(--muted);text-align:right;user-select:none;box-sizing:content-box}.line__text[data-v-f2eb8c06]{white-space:pre;padding-right:16px}.line__marker[data-v-f2eb8c06]{position:absolute;bottom:0;width:1ch;height:2px;background:var(--danger);pointer-events:none}.tok[data-v-f2eb8c06]{color:var(--light)}.tok--bold[data-v-f2eb8c06]{font-weight:600}.tok--italic[data-v-f2eb8c06]{font-style:italic}@media(prefers-color-scheme:dark){.tok[data-v-f2eb8c06]{color:var(--dark)}}.counter[data-v-07a7a162]{font-size:12px}.body[data-v-07a7a162]{display:flex;flex-direction:column;gap:12px;padding:16px;min-height:0}.finding[data-v-07a7a162]{display:flex;flex-direction:column;gap:4px}.bar[data-v-07a7a162]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.path[data-v-07a7a162]{flex:1;min-width:0;font-size:12px;word-break:break-all}.viewer[data-v-07a7a162]{max-height:58vh}.badge[data-v-07a7a162]{align-self:flex-start;padding:1px 8px;border-radius:999px;background:var(--surface-2);font-size:11px;text-transform:uppercase;letter-spacing:.03em}.badge--error[data-v-07a7a162]{background:var(--danger-soft);color:var(--danger)}.badge--warning[data-v-07a7a162]{background:var(--warn-soft);color:var(--warn)}a.btn[data-v-07a7a162]{text-decoration:none}.page[data-v-0f9c2b48]{display:flex;flex-direction:column;gap:16px;padding:28px 28px 60px}@media(max-width:760px){.page[data-v-0f9c2b48]{padding:18px 14px 40px}}.page__head p[data-v-0f9c2b48]{margin-top:4px}.project[data-v-0f9c2b48]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:12px}.project code[data-v-0f9c2b48]{padding:2px 8px;border-radius:6px;background:var(--surface-2);word-break:break-all}.layout[data-v-0f9c2b48]{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}@media(max-width:760px){.layout[data-v-0f9c2b48]{grid-template-columns:1fr}}.menu[data-v-0f9c2b48]{display:flex;flex-direction:column;gap:2px}.menu__title[data-v-0f9c2b48]{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);text-transform:uppercase;margin:12px 0 4px 8px}.menu__item[data-v-0f9c2b48]{display:flex;align-items:center;gap:8px;padding:9px 10px;border:0;border-radius:9px;background:transparent;text-align:left;cursor:pointer;transition:background .15s}.menu__item[data-v-0f9c2b48]:hover:not(:disabled){background:var(--surface-2)}.menu__item[data-v-0f9c2b48]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.menu__item--on[data-v-0f9c2b48]{background:var(--accent-soft);color:var(--accent);font-weight:600}.menu__name[data-v-0f9c2b48]{flex:1}.menu__count[data-v-0f9c2b48]{padding:0 8px;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:11px;font-weight:600}.menu__count--clean[data-v-0f9c2b48]{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.main[data-v-0f9c2b48]{display:flex;flex-direction:column;gap:16px;min-width:0}.block[data-v-0f9c2b48]{display:flex;flex-direction:column;gap:12px;padding:18px}.head[data-v-0f9c2b48]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.small[data-v-0f9c2b48]{font-size:12px}.link[data-v-0f9c2b48]{align-self:flex-start;padding:0;border:0;background:transparent;color:var(--accent);cursor:pointer}.link[data-v-0f9c2b48]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.options[data-v-0f9c2b48]{display:flex;flex-direction:column;gap:12px}.textarea[data-v-0f9c2b48]{padding:8px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:12px}.textarea[data-v-0f9c2b48]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.filters[data-v-0f9c2b48]{display:flex;flex-direction:column;gap:8px}.search[data-v-0f9c2b48]{max-width:420px}.chips[data-v-0f9c2b48]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.chip[data-v-0f9c2b48]{padding:2px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:12px;cursor:pointer}.chip[data-v-0f9c2b48]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chip--on[data-v-0f9c2b48]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.clean[data-v-0f9c2b48]{display:flex;align-items:center;gap:8px;color:var(--ok);font-weight:600}.empty[data-v-0f9c2b48]{text-align:center}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.diff[data-v-9a9e1464]{overflow:auto;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;max-height:460px}.hunk[data-v-9a9e1464]{min-width:max-content}.hunk__head[data-v-9a9e1464]{padding:2px 12px;background:var(--accent-soft);color:var(--accent);font-size:11px}.row[data-v-9a9e1464]{display:flex}.row--add[data-v-9a9e1464]{background:color-mix(in srgb,var(--ok) 16%,transparent)}.row--del[data-v-9a9e1464]{background:color-mix(in srgb,var(--danger) 16%,transparent)}.row__no[data-v-9a9e1464]{flex:none;width:4ch;padding:0 6px;color:var(--muted);text-align:right;user-select:none}.row__sign[data-v-9a9e1464]{flex:none;width:2ch;color:var(--muted);user-select:none}.row--add .row__sign[data-v-9a9e1464]{color:var(--ok)}.row--del .row__sign[data-v-9a9e1464]{color:var(--danger)}.row__text[data-v-9a9e1464]{white-space:pre;padding-right:16px}.tok[data-v-9a9e1464]{color:var(--light)}@media(prefers-color-scheme:dark){.tok[data-v-9a9e1464]{color:var(--dark)}}.page[data-v-1e8c6f2b]{display:flex;flex-direction:column;gap:16px;padding:28px 28px 60px}@media(max-width:760px){.page[data-v-1e8c6f2b]{padding:18px 14px 40px}}.page__head p[data-v-1e8c6f2b]{margin-top:4px}.project[data-v-1e8c6f2b]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:12px}.project code[data-v-1e8c6f2b]{padding:2px 8px;border-radius:6px;background:var(--surface-2);word-break:break-all}.block[data-v-1e8c6f2b]{display:flex;flex-direction:column;gap:12px;padding:18px}.head[data-v-1e8c6f2b]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.small[data-v-1e8c6f2b]{font-size:12px}.link[data-v-1e8c6f2b]{align-self:flex-start;padding:0;border:0;background:transparent;color:var(--accent);cursor:pointer}.link[data-v-1e8c6f2b]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.options[data-v-1e8c6f2b]{display:flex;flex-direction:column;gap:12px}.textarea[data-v-1e8c6f2b]{padding:8px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:12px}.textarea[data-v-1e8c6f2b]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.toolbar[data-v-1e8c6f2b]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.search[data-v-1e8c6f2b]{width:260px}.spacer[data-v-1e8c6f2b]{flex:1}.actions[data-v-1e8c6f2b]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:center}.skipped[data-v-1e8c6f2b]{margin:8px 0 0;padding-left:20px;font-size:12px}.files[data-v-1e8c6f2b]{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.file[data-v-1e8c6f2b]{display:flex;flex-direction:column;gap:8px;padding:4px 12px 8px;border:1px solid var(--border);border-radius:9px}.file--done[data-v-1e8c6f2b]{opacity:.6}.file__row[data-v-1e8c6f2b]{display:flex;align-items:center;gap:12px}.file__main[data-v-1e8c6f2b]{display:flex;flex:1;align-items:center;gap:8px;min-width:0;padding:8px 0;border:0;background:transparent;text-align:left;cursor:pointer}.file__main[data-v-1e8c6f2b]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.file__caret[data-v-1e8c6f2b]{flex:none;color:var(--muted);transition:transform .15s}.file__caret--open[data-v-1e8c6f2b]{transform:rotate(90deg)}.file__name[data-v-1e8c6f2b]{flex:1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file__count[data-v-1e8c6f2b]{flex:none;color:var(--muted);font-size:12px}.file__stat[data-v-1e8c6f2b]{flex:none;font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:11px}.file__stat--del[data-v-1e8c6f2b]{color:var(--danger)}.file__stat--add[data-v-1e8c6f2b]{color:var(--ok)}.file__done[data-v-1e8c6f2b]{flex:none;color:var(--ok);font-size:12px}.results[data-v-1e8c6f2b]{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.result[data-v-1e8c6f2b]{display:flex;gap:12px;font-size:12px}.result--changed[data-v-1e8c6f2b],.result--error[data-v-1e8c6f2b],.result--refused[data-v-1e8c6f2b]{color:var(--danger)}.history[data-v-1e8c6f2b]{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.history__row[data-v-1e8c6f2b]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border:1px solid var(--border);border-radius:9px}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{d as se,r,w as ge,o as le,a as n,c as o,F as p,b as $,e as l,t as a,n as T,f as me,g as b,h,_ as ae,i as D,j as ye,k as G,l as Z,m as be,v as we,p as ee,q as R,s as xe}from"./index-DTj3rBik.js";import{h as Ce,U as Se,F as $e}from"./highlight-Ba7TPCSA.js";const Ne={class:"diff",role:"region","aria-label":"Changes in this file"},je={class:"hunk__head"},Ee={class:"row__no"},Ie={class:"row__no"},Fe={class:"row__sign"},Oe={class:"row__text"},Pe={key:2},Ue=se({__name:"DiffView",props:{diff:{},lang:{}},setup(I){const N=I;function z(k){const m=[];let f,v=0,c=0;for(const u of k.split(`
|
|
2
|
+
`)){const d=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@(.*)$/.exec(u);if(d){v=Number(d[1]),c=Number(d[2]),f={header:u,lines:[]},m.push(f);continue}if(!f||u.startsWith("\\"))continue;const g=u[0];g==="+"?f.lines.push({type:"add",text:u.slice(1),oldNo:null,newNo:c++}):g==="-"?f.lines.push({type:"del",text:u.slice(1),oldNo:v++,newNo:null}):g===" "&&f.lines.push({type:"ctx",text:u.slice(1),oldNo:v++,newNo:c++})}return m}const C=r(z(N.diff));async function w(){const k=z(N.diff);C.value=k;for(const m of k){const f=await Ce(m.lines.map(v=>v.text).join(`
|
|
3
|
+
`),N.lang);m.lines.forEach((v,c)=>{v.tokens=f[c]})}C.value=[...k]}ge(()=>[N.diff,N.lang],w),le(w);function _(k){return k==="add"?"+":k==="del"?"−":" "}return(k,m)=>(n(),o("div",Ne,[(n(!0),o(p,null,$(C.value,(f,v)=>(n(),o("section",{key:v,class:"hunk"},[l("div",je,a(f.header),1),(n(!0),o(p,null,$(f.lines,(c,u)=>(n(),o("div",{key:u,class:T(["row",`row--${c.type}`])},[l("span",Ee,a(c.oldNo??""),1),l("span",Ie,a(c.newNo??""),1),l("span",Fe,a(_(c.type)),1),l("span",Oe,[c.tokens?(n(!0),o(p,{key:0},$(c.tokens,(d,g)=>(n(),o("span",{key:g,class:"tok",style:me({"--light":d.light||"var(--text)","--dark":d.dark||"var(--text)"})},a(d.text),5))),128)):(n(),o(p,{key:1},[b(a(c.text),1)],64)),c.text===""?(n(),o("span",Pe," ")):h("",!0)])],2))),128))]))),128))]))}}),Ve=ae(Ue,[["__scopeId","data-v-9a9e1464"]]),Be={class:"page"},De={class:"page__head"},Re={class:"muted"},ze={class:"project"},Le=["title"],We={key:0,class:"card block"},Ae={class:"head"},Te=["disabled"],Me={class:"muted"},qe={key:0,class:"options"},He={key:0,class:"check"},Je=["checked","onChange"],Ge={class:"muted"},Ke={key:1,class:"field"},Ye={class:"muted"},Qe=["value","onInput"],Xe={key:1,class:"notice notice--error"},Ze={key:2,class:"notice"},et={key:3,class:"card block"},tt={class:"results"},st={class:"muted"},lt={key:0,class:"actions"},at={key:4,class:"card block",role:"status"},nt={key:5,class:"card block"},ot={class:"head"},ut={class:"muted small"},it={key:0,class:"notice notice--warn"},ct={class:"skipped"},rt={class:"toolbar"},dt=["disabled"],vt={class:"files"},ft={class:"file__row"},ht=["checked","disabled","aria-label","onChange"],pt=["aria-expanded","onClick"],_t={class:"file__name"},kt={class:"file__count"},gt={class:"file__stat file__stat--del"},mt={key:0,class:"file__stat file__stat--add"},yt={key:1,class:"file__done"},bt={key:0,class:"actions"},wt={key:6,class:"card block"},xt={class:"history"},Ct={class:"muted"},St=["onClick"],te="devtoolz-ui.checks-project",K=40,$t=se({__name:"CleanupPage",props:{module:{},status:{}},setup(I){const N=I,z={"embedded-in-expression":"inside a larger expression","braceless-body":"the only statement of an if/loop without braces"},C=r([]),w=r("strip-comments"),_=r(""),k=r({}),m=r(!1),f=r(!1),v=r(!1),c=r(!1),u=r(),d=r(new Set),g=r(new Set),S=r(new Set),M=r(""),x=r(""),P=r(""),U=r([]),j=r(""),L=r([]),F=r(K);let q;const E=R(()=>C.value.find(s=>s.id===w.value)),V=R(()=>{const s=M.value.trim().toLowerCase();return(u.value?.files??[]).filter(t=>s===""||t.file.toLowerCase().includes(s))}),ne=R(()=>V.value.slice(0,F.value)),O=R(()=>d.value.size),Y=R(()=>(u.value?.files??[]).filter(s=>d.value.has(s.file)).reduce((s,t)=>s+t.count,0));function oe(s){try{localStorage.setItem(te,s)}catch{return}}function ue(){try{return localStorage.getItem(te)??""}catch{return""}}function B(){const s=E.value;return s?{...Object.fromEntries(s.options.map(e=>[e.key,e.default])),...k.value[s.id]??{}}:{}}function Q(s,t){k.value={...k.value,[w.value]:{...B(),[s]:t}}}function ie(s){const t=s.slice(s.lastIndexOf(".")+1).toLowerCase();return t==="ts"?"ts":t==="tsx"?"tsx":t==="vue"?"vue":t==="jsx"?"jsx":"js"}function H(s){let t=0,e=0;for(const i of(s??"").split(`
|
|
4
|
+
`))i.startsWith("+")&&!i.startsWith("+++")?t+=1:i.startsWith("-")&&!i.startsWith("---")&&(e+=1);return{added:t,removed:e}}function ce(s){const t=new Set(d.value);t.has(s)?t.delete(s):t.add(s),d.value=t}function re(s){const t=new Set(g.value);t.has(s)?t.delete(s):t.add(s),g.value=t}function de(){d.value=new Set(V.value.filter(s=>!S.value.has(s.file)).map(s=>s.file))}function ve(){d.value=new Set}function fe(s){f.value=!1;const t=s[0];!t||t===_.value||(_.value=t,oe(t),J(),W())}function J(){u.value=void 0,d.value=new Set,g.value=new Set,S.value=new Set,U.value=[],j.value="",P.value="",x.value=""}function he(s){w.value=s,J()}async function pe(){if(!v.value){q?.(),J(),v.value=!0,F.value=K;try{const{jobId:s}=await D.post(`/api/cleanup/${w.value}/scan`,{project:_.value,options:B()});q=xe(s,{onDone:t=>{u.value=t,v.value=!1},onFailed:t=>{x.value=t,v.value=!1}})}catch(s){x.value=s instanceof Error?s.message:String(s),v.value=!1}}}async function W(){try{const s=await D.get(`/api/cleanup/history?project=${encodeURIComponent(_.value)}`);L.value=s.backups}catch{L.value=[]}}async function _e(){const s=u.value;if(!(!s||O.value===0||c.value||!window.confirm(`Change ${O.value} file${O.value===1?"":"s"}? ${Y.value} ${E.value?.verb??"item"}${Y.value===1?"":"s"} will be removed. A backup is saved first, and you can undo this afterwards.`))){c.value=!0,x.value="";try{const e=s.files.filter(y=>d.value.has(y.file)),i=await D.post(`/api/cleanup/${w.value}/apply`,{project:_.value,options:B(),files:e.map(y=>({file:y.file,hash:y.hash}))});U.value=i.results,j.value=i.backupDir??"";const A=i.results.filter(y=>y.status==="applied").map(y=>y.file);S.value=new Set([...S.value,...A]),d.value=new Set([...d.value].filter(y=>!A.includes(y))),P.value=`${A.length} file${A.length===1?"":"s"} changed.`,await W()}catch(e){x.value=e instanceof Error?e.message:String(e)}finally{c.value=!1}}}async function X(s){if(window.confirm("Put the files back as they were before this cleanup?"))try{const t=await D.post("/api/cleanup/undo",{project:_.value,dir:s}),e=t.counts.restored??0,i=t.counts.modified??0;P.value=`Restored ${e} file${e===1?"":"s"}.`+(i?` ${i} changed since and were left alone.`:""),s===j.value&&(j.value="",U.value=[],S.value=new Set),await W()}catch(t){x.value=t instanceof Error?t.message:String(t)}}function ke(s){const t=new Date(s);return Number.isNaN(t.getTime())?s:t.toLocaleString()}return le(async()=>{_.value=ue()||N.status?.cwd||"";try{C.value=await D.get("/api/cleanup/tools")}catch(s){x.value=s instanceof Error?s.message:String(s)}await W()}),ye(()=>q?.()),(s,t)=>(n(),o("div",Be,[l("header",De,[l("h1",null,a(I.module.title),1),l("p",Re,a(I.module.description),1),l("p",ze,[G(Z,{name:"folder",size:15}),t[7]||(t[7]=l("span",{class:"muted"},"Project",-1)),l("code",{title:_.value},a(_.value),9,Le),l("button",{class:"btn btn--small",onClick:t[0]||(t[0]=e=>f.value=!0)},"Change…")])]),E.value?(n(),o("section",We,[l("div",Ae,[G(Se,{"model-value":w.value,label:"What to remove",options:C.value.map(e=>({value:e.id,label:e.title})),"onUpdate:modelValue":he},null,8,["model-value","options"]),l("button",{class:"btn btn--primary",disabled:v.value||c.value||_.value==="",onClick:pe},[G(Z,{name:"search",size:15}),b(" "+a(v.value?"Scanning…":u.value?"Scan again":"Scan the project"),1)],8,Te)]),l("p",Me,a(E.value.description)+" Nothing is changed until you choose the files and confirm. ",1),l("button",{class:"link",onClick:t[1]||(t[1]=e=>m.value=!m.value)},a(m.value?"Hide":"Show")+" options ",1),m.value?(n(),o("div",qe,[(n(!0),o(p,null,$(E.value.options,e=>(n(),o(p,{key:e.key},[e.type==="boolean"?(n(),o("label",He,[l("input",{type:"checkbox",checked:B()[e.key]===!0,onChange:i=>Q(e.key,i.target.checked)},null,40,Je),l("span",null,[b(a(e.label)+" ",1),l("small",Ge,"— "+a(e.help),1)])])):(n(),o("label",Ke,[l("span",null,[b(a(e.label)+" ",1),l("small",Ye,"— "+a(e.help),1)]),l("textarea",{class:"textarea",rows:"3",spellcheck:"false",value:String(B()[e.key]??""),onInput:i=>Q(e.key,i.target.value)},null,40,Qe)]))],64))),128))])):h("",!0)])):h("",!0),x.value?(n(),o("p",Xe,a(x.value),1)):h("",!0),P.value?(n(),o("p",Ze,a(P.value),1)):h("",!0),j.value||U.value.length?(n(),o("section",et,[t[8]||(t[8]=l("h2",null,"Result",-1)),l("ul",tt,[(n(!0),o(p,null,$(U.value,e=>(n(),o("li",{key:e.file,class:T(["result",`result--${e.status}`])},[l("code",null,a(e.file),1),l("span",st,[e.status==="applied"?(n(),o(p,{key:0},[b("changed, "+a(e.count)+" removed",1)],64)):(n(),o(p,{key:1},[b(a(e.message??e.status),1)],64))])],2))),128))]),j.value?(n(),o("div",lt,[l("button",{class:"btn",onClick:t[2]||(t[2]=e=>X(j.value))},"Undo this cleanup")])):h("",!0)])):h("",!0),v.value?(n(),o("section",at,[...t[9]||(t[9]=[l("p",{class:"muted"},"Scanning the project…",-1)])])):u.value?(n(),o("section",nt,[l("div",ot,[l("div",null,[l("h2",null,[u.value.files.length===0?(n(),o(p,{key:0},[b("Nothing to remove")],64)):(n(),o(p,{key:1},[b(a(u.value.total)+" "+a(E.value?.verb)+a(u.value.total===1?"":"s")+" in "+a(u.value.files.length)+" file"+a(u.value.files.length===1?"":"s"),1)],64))]),l("p",ut,a(u.value.filesScanned)+" files scanned · "+a((u.value.tookMs/1e3).toFixed(1))+" s ",1)])]),u.value.skipped.length?(n(),o("div",it,[l("strong",null,a(u.value.skipped.length)+" call"+a(u.value.skipped.length===1?"":"s")+" left alone",1),t[10]||(t[10]=b(", because removing them is not safe: ",-1)),l("ul",ct,[(n(!0),o(p,null,$(u.value.skipped,(e,i)=>(n(),o("li",{key:i},[l("code",null,a(e.file)+":"+a(e.line),1),b(" — "+a(z[e.reason]??e.reason),1)]))),128))])])):h("",!0),u.value.files.length?(n(),o(p,{key:1},[l("div",rt,[be(l("input",{"onUpdate:modelValue":t[3]||(t[3]=e=>M.value=e),class:"input search",placeholder:"Filter files","aria-label":"Filter files"},null,512),[[we,M.value]]),l("button",{class:"btn btn--small",onClick:de},"Select all"),l("button",{class:"btn btn--small",onClick:ve},"Select none"),t[11]||(t[11]=l("span",{class:"spacer"},null,-1)),l("button",{class:"btn btn--primary",disabled:O.value===0||c.value,onClick:_e},a(c.value?"Changing…":`Change ${O.value} file${O.value===1?"":"s"}`),9,dt)]),l("ul",vt,[(n(!0),o(p,null,$(ne.value,e=>(n(),o("li",{key:e.file,class:T(["file",{"file--done":S.value.has(e.file)}])},[l("div",ft,[l("input",{type:"checkbox",checked:d.value.has(e.file),disabled:S.value.has(e.file),"aria-label":`Change ${e.file}`,onChange:i=>ce(e.file)},null,40,ht),l("button",{class:"file__main","aria-expanded":g.value.has(e.file),onClick:i=>re(e.file)},[l("span",{class:T(["file__caret",{"file__caret--open":g.value.has(e.file)}])},"▸",2),l("code",_t,a(e.file),1),l("span",kt,a(e.count)+" "+a(E.value?.verb)+a(e.count===1?"":"s"),1),l("span",gt,"−"+a(H(e.diff).removed),1),H(e.diff).added?(n(),o("span",mt,"+"+a(H(e.diff).added),1)):h("",!0),S.value.has(e.file)?(n(),o("span",yt,"✓ changed")):h("",!0)],8,pt)]),g.value.has(e.file)&&e.diff?(n(),ee(Ve,{key:0,diff:e.diff,lang:ie(e.file)},null,8,["diff","lang"])):h("",!0)],2))),128))]),F.value<V.value.length?(n(),o("div",bt,[l("button",{class:"btn",onClick:t[4]||(t[4]=e=>F.value+=K)}," Show more ("+a(V.value.length-F.value)+" left) ",1),l("button",{class:"btn",onClick:t[5]||(t[5]=e=>F.value=V.value.length)},"Show all")])):h("",!0)],64)):h("",!0)])):h("",!0),L.value.length?(n(),o("section",wt,[t[12]||(t[12]=l("h2",null,"Recent cleanups",-1)),l("ul",xt,[(n(!0),o(p,null,$(L.value,e=>(n(),o("li",{key:e.dir,class:"history__row"},[l("span",null,[l("strong",null,a(C.value.find(i=>i.id===e.tool)?.title??e.tool),1),l("span",Ct," · "+a(e.files)+" file"+a(e.files===1?"":"s")+" · "+a(ke(e.createdAt)),1)]),l("button",{class:"btn btn--small",onClick:i=>X(e.dir)},"Undo",8,St)]))),128))])])):h("",!0),f.value?(n(),ee($e,{key:7,start:_.value||I.status?.cwd||"",title:"Choose the project folder",onClose:t[6]||(t[6]=e=>f.value=!1),onConfirm:fe},null,8,["start"])):h("",!0)]))}}),Et=ae($t,[["__scopeId","data-v-1e8c6f2b"]]);export{Et as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/scss-Cw6XMfVs.js","assets/css-Z72CF80r.js","assets/html-BlS82ilI.js","assets/javascript-wDzz0qaB.js","assets/vue-CwSeJimo.js","assets/typescript-BPQ3VLAy.js","assets/json-Cp-IABpG.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{d as D,o as U,j as z,a as r,c as d,u as B,e as o,t as y,x as V,k as E,l as w,h as g,f as q,n as j,r as h,_ as A,p as K,y as x,g as C,F as I,b as L,m as O,v as G,z as J,q as R,i as Q,A as X,B as Y,C as Z,D as l}from"./index-DTj3rBik.js";const ee=["aria-label"],te={class:"dialog__head"},se={class:"dialog__title"},oe={class:"dialog__body"},ae={key:0,class:"dialog__foot"},le=D({__name:"UiModal",props:{title:{},width:{default:"820px"},fixedHeight:{type:Boolean,default:!1}},emits:["close"],setup(a,{emit:i}){const u=a,m=i,t=h();function c(n){n.key==="Escape"&&m("close")}return U(()=>{window.addEventListener("keydown",c),document.body.style.overflow="hidden",t.value?.focus()}),z(()=>{window.removeEventListener("keydown",c),document.body.style.overflow=""}),(n,_)=>(r(),d("div",{class:"overlay",onMousedown:_[1]||(_[1]=B(p=>m("close"),["self"]))},[o("div",{ref_key:"dialog",ref:t,class:j(["dialog",{"dialog--fixed":u.fixedHeight}]),style:q({"--dialog-width":u.width}),role:"dialog","aria-modal":"true","aria-label":u.title,tabindex:"-1"},[o("header",te,[o("h2",se,y(u.title),1),V(n.$slots,"actions",{},void 0),o("button",{class:"btn btn--ghost btn--small","aria-label":"Close",onClick:_[0]||(_[0]=p=>m("close"))},[E(w,{name:"close"})])]),o("div",oe,[V(n.$slots,"default",{},void 0)]),n.$slots.footer?(r(),d("footer",ae,[V(n.$slots,"footer",{},void 0)])):g("",!0)],14,ee)],32))}}),ie=A(le,[["__scopeId","data-v-e779e4b0"]]),ne={class:"bar"},re=["disabled"],de=["value"],ue=["value"],_e={class:"check muted"},ce={key:0,class:"notice notice--error notice-inset"},ve=["aria-busy"],me={key:0,class:"muted empty"},pe=["onClick"],fe={class:"row__icon"},he={class:"row__name"},be={key:1,class:"muted empty"},ge=["disabled"],ye=D({__name:"FolderBrowser",props:{start:{},title:{default:""}},emits:["close","confirm"],setup(a,{emit:i}){const u=a,m=i,t=h(),c=h(u.start),n=h(!1),_=h(!1),p=h(""),b=h(),k=new Map,$=R(()=>t.value?.path.includes("\\")?"\\":"/"),P=R(()=>t.value?.entries??[]);function H(v){const e=t.value?.path??"";return e.endsWith($.value)?e+v:e+$.value+v}function F(v,e){const s=e.endsWith("\\")||e.endsWith("/")?e:e+$.value;return v!==e&&v.startsWith(s)}async function f(v){const e=t.value?.path;e!==void 0&&k.set(e,b.value?.scrollTop??0),_.value=!0,p.value="";try{const s=await Q.get(`/api/fs/list?path=${encodeURIComponent(v)}&hidden=${n.value?1:0}`);t.value=s,c.value=s.path;for(const T of[...k.keys()])F(T,s.path)&&k.delete(T);await X(),b.value?.scrollTo({top:k.get(s.path)??0})}catch(s){p.value=s instanceof Error?s.message:String(s)}finally{_.value=!1}}function N(v){f(H(v.name))}function W(){t.value&&m("confirm",[t.value.path])}return U(()=>{f(u.start)}),(v,e)=>(r(),K(ie,{title:a.title||"Choose a folder","fixed-height":"",onClose:e[8]||(e[8]=s=>m("close"))},{footer:x(()=>[e[13]||(e[13]=o("span",{class:"spacer"},null,-1)),o("button",{class:"btn btn--primary",disabled:!t.value,onClick:W}," Use this folder ",8,ge)]),default:x(()=>[o("div",ne,[o("button",{class:"btn btn--small",disabled:!t.value?.parent,title:"Parent folder",onClick:e[0]||(e[0]=s=>t.value?.parent&&f(t.value.parent))},[E(w,{name:"up",size:15}),e[9]||(e[9]=C(" Up ",-1))],8,re),o("button",{class:"btn btn--small",title:"Home folder",onClick:e[1]||(e[1]=s=>t.value&&f(t.value.home))},[E(w,{name:"home",size:15}),e[10]||(e[10]=C(" Home ",-1))]),o("button",{class:"btn btn--small",title:"Start folder",onClick:e[2]||(e[2]=s=>t.value&&f(t.value.cwd))}," Start folder "),(t.value?.roots.length??0)>1?(r(),d("select",{key:0,class:"select bar__roots",value:t.value?.root,"aria-label":"Drive",onChange:e[3]||(e[3]=s=>f(s.target.value))},[(r(!0),d(I,null,L(t.value?.roots,s=>(r(),d("option",{key:s,value:s},y(s),9,ue))),128))],40,de)):g("",!0),o("form",{class:"bar__path",onSubmit:e[5]||(e[5]=B(s=>f(c.value),["prevent"]))},[O(o("input",{"onUpdate:modelValue":e[4]||(e[4]=s=>c.value=s),class:"input",spellcheck:"false","aria-label":"Folder path"},null,512),[[G,c.value]]),e[11]||(e[11]=o("button",{class:"btn btn--small",type:"submit"},"Go",-1))],32),o("label",_e,[O(o("input",{"onUpdate:modelValue":e[6]||(e[6]=s=>n.value=s),type:"checkbox",onChange:e[7]||(e[7]=s=>t.value&&f(t.value.path))},null,544),[[J,n.value]]),e[12]||(e[12]=C(" Hidden ",-1))])]),p.value?(r(),d("div",ce,y(p.value),1)):g("",!0),o("div",{ref_key:"list",ref:b,class:"list","aria-busy":_.value},[t.value&&P.value.length===0?(r(),d("div",me," This folder has no subfolders. ")):g("",!0),(r(!0),d(I,null,L(P.value,s=>(r(),d("div",{key:s.name,class:"row"},[o("button",{class:"row__main",onClick:T=>N(s)},[o("span",fe,[E(w,{name:"folder"})]),o("span",he,y(s.name),1)],8,pe)]))),128)),t.value?.truncated?(r(),d("div",be,"Only the first entries are shown.")):g("",!0)],8,ve)]),_:1},8,["title"]))}}),Ie=A(ye,[["__scopeId","data-v-8008fd3c"]]),ke=["aria-label"],Ee=["aria-checked","title","onClick"],we=D({__name:"UiSegmented",props:Z({options:{},label:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(a){const i=Y(a,"modelValue");return(u,m)=>(r(),d("div",{class:"seg",role:"radiogroup","aria-label":a.label},[(r(!0),d(I,null,L(a.options,t=>(r(),d("button",{key:t.value,class:j(["seg__btn",{"seg__btn--on":i.value===t.value}]),role:"radio","aria-checked":i.value===t.value,title:t.hint,onClick:c=>i.value=t.value},y(t.label),11,Ee))),128))],8,ke))}}),Le=A(we,[["__scopeId","data-v-56d7f4ee"]]),$e={ts:"typescript",js:"javascript",md:"markdown",yml:"yaml"},Te=new Set(["typescript","tsx","javascript","jsx","vue","json","css","scss","html","markdown","yaml"]);let S;function Ve(){return S??=(async()=>{const[{createHighlighterCore:a},{createJavaScriptRegexEngine:i}]=await Promise.all([l(()=>import("./core-DVezgdzc.js"),[]),l(()=>import("./engine-javascript-CNmxVhbB.js"),[])]);return a({themes:[l(()=>import("./github-light-DAi9KRSo.js"),[]),l(()=>import("./github-dark-DHJKELXO.js"),[])],langs:[l(()=>import("./typescript-BPQ3VLAy.js"),[]),l(()=>import("./tsx-COt5Ahok.js"),[]),l(()=>import("./javascript-wDzz0qaB.js"),[]),l(()=>import("./jsx-g9-lgVsj.js"),[]),l(()=>import("./css-Z72CF80r.js"),[]),l(()=>import("./scss-Cw6XMfVs.js"),__vite__mapDeps([0,1])),l(()=>import("./html-BlS82ilI.js"),__vite__mapDeps([2,3,1])),l(()=>import("./json-Cp-IABpG.js"),[]),l(()=>import("./markdown-Cvjx9yec.js"),[]),l(()=>import("./yaml-Buea-lGh.js"),[]),l(()=>import("./vue-CwSeJimo.js"),__vite__mapDeps([4,1,3,5,6,2]))],engine:i()})})(),S}function M(a){return a.split(/\r\n|\r|\n/).map(i=>[{text:i,light:"",dark:"",bold:!1,italic:!1}])}async function De(a,i){const u=$e[i]??i;if(!Te.has(u))return M(a);try{return(await Ve()).codeToTokensWithThemes(a,{lang:u,themes:{light:"github-light",dark:"github-dark"}}).map(c=>c.map(n=>{const _=n.variants.light,p=n.variants.dark,b=_?.fontStyle??0;return{text:n.content,light:_?.color??"",dark:p?.color??"",bold:(b&2)!==0,italic:(b&1)!==0}}))}catch{return M(a)}}export{Ie as F,Le as U,ie as a,De as h,M as p};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.overlay[data-v-e779e4b0]{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden;background:var(--backdrop)}.dialog[data-v-e779e4b0]{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;width:min(var(--dialog-width),100%);max-height:100%;outline:none}.dialog--fixed[data-v-e779e4b0]{height:min(680px,100%)}.dialog__head[data-v-e779e4b0],.dialog__foot[data-v-e779e4b0]{display:flex;align-items:center;gap:10px;padding:12px 16px}.dialog__head[data-v-e779e4b0]{border-bottom:1px solid var(--border)}.dialog__title[data-v-e779e4b0]{flex:1;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialog__body[data-v-e779e4b0]{flex:1;min-height:0;display:flex;flex-direction:column}.dialog__foot[data-v-e779e4b0]{border-top:1px solid var(--border)}.bar[data-v-8008fd3c]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px}.bar__path[data-v-8008fd3c]{display:flex;flex:1;gap:6px;min-width:200px}.bar__path .input[data-v-8008fd3c]{flex:1;height:28px;font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:12px}.bar__roots[data-v-8008fd3c]{height:28px}.notice-inset[data-v-8008fd3c]{margin:0 16px 12px}.spacer[data-v-8008fd3c]{flex:1}.list[data-v-8008fd3c]{flex:1;min-height:0;padding:0 8px 8px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.empty[data-v-8008fd3c]{padding:24px;text-align:center}.row[data-v-8008fd3c]{display:flex;align-items:center;gap:8px;padding:2px 8px;border-radius:9px}.row[data-v-8008fd3c]:hover{background:var(--surface-2)}.row__main[data-v-8008fd3c]{display:flex;flex:1;align-items:center;gap:10px;min-width:0;padding:4px 0;border:0;background:transparent;text-align:left;cursor:pointer}.row__icon[data-v-8008fd3c]{display:grid;place-items:center;width:40px;height:40px;color:var(--accent)}.row__name[data-v-8008fd3c]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seg[data-v-56d7f4ee]{display:inline-flex;align-self:flex-start;flex-wrap:wrap;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.seg__btn[data-v-56d7f4ee]{padding:5px 12px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.seg__btn[data-v-56d7f4ee]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.seg__btn--on[data-v-56d7f4ee]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.shell[data-v-
|
|
1
|
+
.shell[data-v-c69720fd]{display:grid;grid-template-columns:236px minmax(0,1fr);height:100%}@media(max-width:760px){.shell[data-v-c69720fd]{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}}.sidebar[data-v-c69720fd]{display:flex;flex-direction:column;gap:18px;padding:18px 12px;border-right:1px solid var(--border);background:var(--surface)}.sidebar__foot[data-v-c69720fd]{margin-top:auto;padding:0 8px;color:var(--muted);font-size:12px}@media(max-width:760px){.sidebar[data-v-c69720fd]{flex-direction:row;align-items:center;gap:12px;padding:10px 12px;border-right:0;border-bottom:1px solid var(--border);overflow-x:auto}.sidebar__foot[data-v-c69720fd]{display:none}}.brand[data-v-c69720fd]{display:flex;align-items:center;gap:10px;padding:0 8px}.brand__mark[data-v-c69720fd]{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--accent-ink)}.brand__name[data-v-c69720fd]{font-size:16px;font-weight:700;letter-spacing:-.01em}.menu[data-v-c69720fd]{display:flex;flex-direction:column;gap:2px}@media(max-width:760px){.menu[data-v-c69720fd]{flex-direction:row}}.menu__item[data-v-c69720fd]{display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:9px;background:transparent;text-align:left;cursor:pointer;transition:background .15s}.menu__item[data-v-c69720fd]:hover:not(:disabled){background:var(--surface-2)}.menu__item[data-v-c69720fd]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.menu__item--active[data-v-c69720fd]{background:var(--accent-soft);color:var(--accent);font-weight:600}.menu__item--planned[data-v-c69720fd]{color:var(--muted);cursor:default}.menu__title[data-v-c69720fd]{flex:1}.menu__badge[data-v-c69720fd]{padding:1px 7px;border-radius:999px;background:var(--surface-2);font-size:11px}.main[data-v-c69720fd]{min-width:0;overflow-y:auto}.page-pad[data-v-c69720fd]{margin:24px}:root{--bg: #f5f6fa;--surface: #ffffff;--surface-2: #f0f2f8;--border: #dde1ec;--text: #1b1f2e;--muted: #667089;--accent: #496cff;--accent-ink: #ffffff;--accent-soft: #e8edff;--danger: #c93c3c;--danger-soft: #fdeaea;--warn: #8a5a00;--warn-soft: #fff4dd;--ok: #1f8f55;--backdrop: rgba(20, 28, 60, .45);--shadow: 0 1px 2px rgba(20, 28, 60, .06), 0 6px 20px rgba(20, 28, 60, .05);--shadow-lg: 0 10px 40px rgba(20, 28, 60, .25);color-scheme:light;--radius: 12px;--mono: ui-monospace, Cascadia Code, SF Mono, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--bg: #0f1220;--surface: #171b2d;--surface-2: #1e233a;--border: #2b3150;--text: #e6e9f5;--muted: #94a0c4;--accent: #7b93ff;--accent-ink: #0c1130;--accent-soft: #232c55;--danger: #ff7b7b;--danger-soft: #3a1f26;--warn: #f3c969;--warn-soft: #3a3118;--ok: #55d08c;--backdrop: rgba(5, 8, 20, .65);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 48px rgba(0, 0, 0, .55);color-scheme:dark}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{margin:0;line-height:1.25}p{margin:0}button,input,select{font:inherit;color:inherit}code,pre{font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace}.btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:pointer;white-space:nowrap;transition:background .15s}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn--primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.btn--small{height:28px;padding:0 10px;font-size:13px}.btn--ghost{border-color:transparent;background:transparent}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);text-transform:uppercase}.label{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);text-transform:uppercase}.input,.select{height:36px;padding:0 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);min-width:0}.input:focus-visible,.select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.muted{color:var(--muted)}.notice{padding:10px 14px;border-radius:10px;background:var(--accent-soft)}.notice--warn{background:var(--warn-soft);color:var(--warn)}.notice--error{background:var(--danger-soft);color:var(--danger)}.check{display:flex;align-items:center;gap:8px}.btn--danger{color:var(--danger)}.btn--danger:hover:not(:disabled){background:var(--danger-soft)}
|