@prism-d1/cli 1.7.0 → 1.7.1
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/dist/src/commands/_top/dashboard.d.ts +4 -0
- package/dist/src/commands/_top/dashboard.d.ts.map +1 -1
- package/dist/src/commands/_top/dashboard.js +36 -3
- package/dist/src/commands/_top/dashboard.js.map +1 -1
- package/dist/src/dashboard/page.d.ts +1 -1
- package/dist/src/dashboard/page.d.ts.map +1 -1
- package/dist/src/dashboard/page.js +45 -14
- package/dist/src/dashboard/page.js.map +1 -1
- package/dist/src/dashboard/payload.d.ts +28 -1
- package/dist/src/dashboard/payload.d.ts.map +1 -1
- package/dist/src/dashboard/payload.js +34 -7
- package/dist/src/dashboard/payload.js.map +1 -1
- package/dist/src/dashboard/server.d.ts +2 -2
- package/dist/src/dashboard/server.d.ts.map +1 -1
- package/dist/src/dashboard/server.js +1 -1
- package/dist/src/dashboard/server.js.map +1 -1
- package/dist/src/dashboard/setup.d.ts +51 -1
- package/dist/src/dashboard/setup.d.ts.map +1 -1
- package/dist/src/dashboard/setup.js +125 -15
- package/dist/src/dashboard/setup.js.map +1 -1
- package/dist/src/dashboard/summary.d.ts +2 -0
- package/dist/src/dashboard/summary.d.ts.map +1 -1
- package/dist/src/dashboard/summary.js +1 -1
- package/dist/src/dashboard/summary.js.map +1 -1
- package/dist/src/dashboard/usage-cache.d.ts +44 -0
- package/dist/src/dashboard/usage-cache.d.ts.map +1 -0
- package/dist/src/dashboard/usage-cache.js +90 -0
- package/dist/src/dashboard/usage-cache.js.map +1 -0
- package/dist/src/dashboard/usage.d.ts +14 -1
- package/dist/src/dashboard/usage.d.ts.map +1 -1
- package/dist/src/dashboard/usage.js +45 -12
- package/dist/src/dashboard/usage.js.map +1 -1
- package/dist/src/utils/private-json.d.ts +5 -0
- package/dist/src/utils/private-json.d.ts.map +1 -0
- package/dist/src/utils/private-json.js +29 -0
- package/dist/src/utils/private-json.js.map +1 -0
- package/dist/src/utils/tool-check.d.ts +9 -0
- package/dist/src/utils/tool-check.d.ts.map +1 -1
- package/dist/src/utils/tool-check.js +37 -2
- package/dist/src/utils/tool-check.js.map +1 -1
- package/package.json +1 -1
|
@@ -25,6 +25,8 @@ export interface MachineDeps {
|
|
|
25
25
|
systemdAvailable?: () => boolean;
|
|
26
26
|
/** Global codewatch hooks state; computed once by the payload builder. */
|
|
27
27
|
global?: GlobalStatus;
|
|
28
|
+
/** File that remembers tool versions by binary mtime and size (tool-check.ts cachedToolVersion); unset runs the probes. */
|
|
29
|
+
versionCache?: string;
|
|
28
30
|
}
|
|
29
31
|
export declare const GLOBAL_INSTALL_CMD = "prism-cli enable codewatch --global";
|
|
30
32
|
export declare const GLOBAL_FORCE_CMD = "prism-cli enable codewatch --global --force";
|
|
@@ -35,6 +37,50 @@ export { gitleaksInstallHint };
|
|
|
35
37
|
export declare function codeburnSyncCheck(home: string, deps?: MachineDeps): CheckItem;
|
|
36
38
|
/** Checks that do not depend on a repository. */
|
|
37
39
|
export declare function machineChecks(deps?: MachineDeps): CheckItem[];
|
|
40
|
+
/**
|
|
41
|
+
* What codewatchSetup needs from git, read with one `git config --list` per
|
|
42
|
+
* repo instead of one git call per question. Each field gives the same answer
|
|
43
|
+
* as the call named beside it.
|
|
44
|
+
*/
|
|
45
|
+
export interface GitFacts {
|
|
46
|
+
/** `git rev-parse --path-format=absolute --git-path hooks`, else <repo>/.git/hooks. */
|
|
47
|
+
hooksDir: string;
|
|
48
|
+
/** `git config --get prism.reviewer` (the last value wins), or null. */
|
|
49
|
+
reviewer: string | null;
|
|
50
|
+
/** `git config --bool --get prism.codewatch` is false. */
|
|
51
|
+
optedOut: boolean;
|
|
52
|
+
/** `git config --local --get core.hooksPath` (this repo's own file, no includes), or null when unset or empty. */
|
|
53
|
+
localHooksPath: string | null;
|
|
54
|
+
}
|
|
55
|
+
/** Runs `git -C <repo> <args>`; stdout, or null when git fails. Injected in tests. */
|
|
56
|
+
export type GitRunner = (repo: string, args: string[]) => Promise<string | null>;
|
|
57
|
+
export declare const gitRunner: GitRunner;
|
|
58
|
+
export declare const GIT_CONFIG_LIST: string[];
|
|
59
|
+
export interface ConfigEntry {
|
|
60
|
+
scope: string;
|
|
61
|
+
origin: string;
|
|
62
|
+
key: string;
|
|
63
|
+
value: string | null;
|
|
64
|
+
}
|
|
65
|
+
/** `git config --list --show-origin --show-scope -z`: scope NUL origin NUL key[LF value] NUL; a key with no `=` has no value. */
|
|
66
|
+
export declare function parseConfigList(out: string): ConfigEntry[];
|
|
67
|
+
/**
|
|
68
|
+
* `git config --bool`: true or false, or null where git would fail. A key with
|
|
69
|
+
* no value is true; integers count as true unless zero (git also accepts k/m/g suffixes).
|
|
70
|
+
*/
|
|
71
|
+
export declare function gitBool(v: string | null): boolean | null;
|
|
72
|
+
/** The repo's common git directory (where hooks/ and config live), read from .git the way git does; null when it cannot be read. */
|
|
73
|
+
export declare function gitCommonDir(repo: string): string | null;
|
|
74
|
+
/**
|
|
75
|
+
* GitFacts from a `git config --list` result (null when that call failed).
|
|
76
|
+
* Returns hooksDir undefined when only git can say (a `~user` path, an
|
|
77
|
+
* unreadable .git); the caller then asks rev-parse.
|
|
78
|
+
*/
|
|
79
|
+
export declare function gitFactsFromConfig(repo: string, out: string | null, home?: string): Omit<GitFacts, 'hooksDir'> & {
|
|
80
|
+
hooksDir: string | undefined;
|
|
81
|
+
};
|
|
82
|
+
/** GitFacts for a repo: one `git config --list`, plus a rev-parse only in the rare case gitFactsFromConfig cannot decide. */
|
|
83
|
+
export declare function readGitFacts(repo: string, run?: GitRunner, home?: string): Promise<GitFacts>;
|
|
38
84
|
export interface CodewatchSetup {
|
|
39
85
|
/**
|
|
40
86
|
* ok: codewatch runs here (per-repo hooks, or the global hooks).
|
|
@@ -60,7 +106,11 @@ export declare function enableCodewatchFix(repo: string): string;
|
|
|
60
106
|
export declare function codewatchSetup(repo: string, deps?: {
|
|
61
107
|
pathEnv?: string;
|
|
62
108
|
global?: GlobalStatus;
|
|
63
|
-
|
|
109
|
+
git?: GitRunner;
|
|
110
|
+
home?: string;
|
|
111
|
+
}): Promise<CodewatchSetup>;
|
|
112
|
+
/** codewatchSetup from facts already read. */
|
|
113
|
+
export declare function codewatchSetupFrom(repo: string, facts: GitFacts, g: GlobalStatus, pathEnv?: string): CodewatchSetup;
|
|
64
114
|
export interface SecuritySetup {
|
|
65
115
|
/**
|
|
66
116
|
* ok: `prism-cli enable security` finished here (.prism/security.local.json, or a legacy .prism/config.json block).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/dashboard/setup.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/dashboard/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* Setup checklist. Local evidence only: no AWS, GitHub or GitLab calls, and no
|
|
3
3
|
* credential file is opened (only its existence is checked).
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
5
|
+
import { execFile } from 'node:child_process';
|
|
6
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
7
7
|
import { homedir } from 'node:os';
|
|
8
8
|
import { join, resolve } from 'node:path';
|
|
9
9
|
import { checkTool } from '../utils/tool-check.js';
|
|
10
10
|
import { ENABLE_CODEBURN_CMD, lastSync, scheduleExists, schedulerName, systemdUserAvailable } from '../utils/otel-sync-schedule.js';
|
|
11
11
|
import { HOOK_MARKER, MANAGED_HOOKS } from '../codewatch/hooks.js';
|
|
12
12
|
import { gitleaksInstallHint } from '../codewatch/gitleaks.js';
|
|
13
|
-
import { globalHooksDir, globalStatus,
|
|
13
|
+
import { globalHooksDir, globalStatus, OPT_OUT_KEY } from '../codewatch/globalHooks.js';
|
|
14
14
|
import { realpathSync } from 'node:fs';
|
|
15
15
|
import { readEvalConfig, REVIEWER_GIT_CONFIG_KEY } from '../codewatch/config.js';
|
|
16
16
|
import { detectReviewers, resolveReviewer } from '../codewatch/reviewers/index.js';
|
|
@@ -30,7 +30,8 @@ export function globalHooksCheck(g) {
|
|
|
30
30
|
case 'incomplete':
|
|
31
31
|
return item('codewatch-global', label, 'warn', 'core.hooksPath points to ~/.prism/hooks but its hooks are missing', GLOBAL_INSTALL_CMD);
|
|
32
32
|
default:
|
|
33
|
-
|
|
33
|
+
// Optional, so info: it is not counted as a setup warning. The command stays in the detail.
|
|
34
|
+
return item('codewatch-global', label, 'info', `not installed (optional: covers every repo at once with ${GLOBAL_INSTALL_CMD})`);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
// Shared with enable codewatch and the pre-commit warning so the three cannot drift.
|
|
@@ -79,10 +80,10 @@ export function machineChecks(deps = {}) {
|
|
|
79
80
|
const env = deps.env || process.env;
|
|
80
81
|
const home = deps.home || homedir();
|
|
81
82
|
const out = [];
|
|
82
|
-
const cb = checkTool('codeburn', { pathEnv: deps.pathEnv });
|
|
83
|
+
const cb = checkTool('codeburn', { pathEnv: deps.pathEnv, versionCache: deps.versionCache });
|
|
83
84
|
out.push(item('codeburn', 'codeburn installed', cb.installed ? 'ok' : 'missing', cb.installed ? (cb.version || 'version unknown') : 'not on PATH', ENABLE_CODEBURN_CMD));
|
|
84
85
|
out.push(codeburnSyncCheck(home, deps));
|
|
85
|
-
const gl = checkTool('gitleaks', { pathEnv: deps.pathEnv, versionArgs: ['version'] });
|
|
86
|
+
const gl = checkTool('gitleaks', { pathEnv: deps.pathEnv, versionArgs: ['version'], versionCache: deps.versionCache });
|
|
86
87
|
// warn, not missing: commits are still allowed, just not secret-scanned (decided).
|
|
87
88
|
out.push(item('gitleaks', 'gitleaks available', gl.installed ? 'ok' : 'warn', gl.installed ? (gl.version || 'version unknown') : 'not on PATH; secret scanning is off and commits are not scanned', gitleaksInstallHint()));
|
|
88
89
|
// Presence only. STS is never called and no credential or config file is read.
|
|
@@ -97,9 +98,113 @@ export function machineChecks(deps = {}) {
|
|
|
97
98
|
out.push(globalHooksCheck(deps.global || globalStatus(home)));
|
|
98
99
|
return out;
|
|
99
100
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
export const gitRunner = (repo, args) => new Promise((done) => {
|
|
102
|
+
execFile('git', ['-C', repo, ...args], { encoding: 'utf8', maxBuffer: 16 * 1024 * 1024, timeout: 30_000 }, (err, stdout) => done(err ? null : stdout));
|
|
103
|
+
});
|
|
104
|
+
export const GIT_CONFIG_LIST = ['config', '--list', '--show-origin', '--show-scope', '-z'];
|
|
105
|
+
/** `git config --list --show-origin --show-scope -z`: scope NUL origin NUL key[LF value] NUL; a key with no `=` has no value. */
|
|
106
|
+
export function parseConfigList(out) {
|
|
107
|
+
const parts = out.split('\0');
|
|
108
|
+
const entries = [];
|
|
109
|
+
for (let i = 0; i + 2 < parts.length; i += 3) {
|
|
110
|
+
const kv = parts[i + 2];
|
|
111
|
+
const nl = kv.indexOf('\n');
|
|
112
|
+
entries.push({ scope: parts[i], origin: parts[i + 1].replace(/^file:/, ''), key: (nl < 0 ? kv : kv.slice(0, nl)).toLowerCase(), value: nl < 0 ? null : kv.slice(nl + 1) });
|
|
113
|
+
}
|
|
114
|
+
return entries;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* `git config --bool`: true or false, or null where git would fail. A key with
|
|
118
|
+
* no value is true; integers count as true unless zero (git also accepts k/m/g suffixes).
|
|
119
|
+
*/
|
|
120
|
+
export function gitBool(v) {
|
|
121
|
+
if (v === null)
|
|
122
|
+
return true;
|
|
123
|
+
const s = v.trim().toLowerCase();
|
|
124
|
+
if (s === 'true' || s === 'yes' || s === 'on')
|
|
125
|
+
return true;
|
|
126
|
+
if (s === 'false' || s === 'no' || s === 'off' || s === '')
|
|
127
|
+
return false;
|
|
128
|
+
const n = /^([+-]?\d+)[kmg]?$/.exec(s);
|
|
129
|
+
return n ? Number(n[1]) !== 0 : null;
|
|
130
|
+
}
|
|
131
|
+
/** The repo's common git directory (where hooks/ and config live), read from .git the way git does; null when it cannot be read. */
|
|
132
|
+
export function gitCommonDir(repo) {
|
|
133
|
+
const dotGit = join(repo, '.git');
|
|
134
|
+
let gitDir;
|
|
135
|
+
try {
|
|
136
|
+
if (statSync(dotGit).isDirectory())
|
|
137
|
+
gitDir = dotGit;
|
|
138
|
+
else {
|
|
139
|
+
const m = /^gitdir: (.+)$/m.exec(readFileSync(dotGit, 'utf8'));
|
|
140
|
+
if (!m)
|
|
141
|
+
return null;
|
|
142
|
+
gitDir = resolve(repo, m[1].trim());
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
const common = readText(join(gitDir, 'commondir'));
|
|
149
|
+
return common === null ? gitDir : resolve(gitDir, common.trim());
|
|
150
|
+
}
|
|
151
|
+
const lastValue = (entries, key) => {
|
|
152
|
+
for (let i = entries.length - 1; i >= 0; i--)
|
|
153
|
+
if (entries[i].key === key)
|
|
154
|
+
return entries[i];
|
|
155
|
+
return undefined;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* GitFacts from a `git config --list` result (null when that call failed).
|
|
159
|
+
* Returns hooksDir undefined when only git can say (a `~user` path, an
|
|
160
|
+
* unreadable .git); the caller then asks rev-parse.
|
|
161
|
+
*/
|
|
162
|
+
export function gitFactsFromConfig(repo, out, home = homedir()) {
|
|
163
|
+
const fallback = resolve(repo, '.git/hooks');
|
|
164
|
+
const entries = out === null ? null : parseConfigList(out);
|
|
165
|
+
if (!entries)
|
|
166
|
+
return { hooksDir: fallback, reviewer: null, optedOut: false, localHooksPath: null };
|
|
167
|
+
const reviewer = lastValue(entries, REVIEWER_GIT_CONFIG_KEY.toLowerCase());
|
|
168
|
+
const optOut = lastValue(entries, OPT_OUT_KEY.toLowerCase());
|
|
169
|
+
const local = entries.filter((e) => e.scope === 'local');
|
|
170
|
+
const common = gitCommonDir(repo);
|
|
171
|
+
// --local reads only <common dir>/config; an include from it has scope local too but another origin.
|
|
172
|
+
const localFile = common && join(common, 'config');
|
|
173
|
+
const ownLocal = localFile ? local.filter((e) => e.key === 'core.hookspath' && samePath(resolve(repo, e.origin), localFile)) : [];
|
|
174
|
+
const localHooksPath = (ownLocal.length ? (ownLocal[ownLocal.length - 1].value ?? '').trim() : '') || null;
|
|
175
|
+
let hooksDir;
|
|
176
|
+
const hp = lastValue(entries, 'core.hookspath');
|
|
177
|
+
// rev-parse fails, and the old code used the fallback, when git ignored the repo (not a repo, or not
|
|
178
|
+
// trusted) or when any core.hooksPath has no value ("missing value for 'core.hookspath'").
|
|
179
|
+
if (!local.length || entries.some((e) => e.key === 'core.hookspath' && e.value === null))
|
|
180
|
+
hooksDir = fallback;
|
|
181
|
+
else if (hp) {
|
|
182
|
+
const v = hp.value;
|
|
183
|
+
if (v === '')
|
|
184
|
+
hooksDir = fallback; // git: "The empty string is not a valid path"
|
|
185
|
+
else if (v === '~' || v.startsWith('~/'))
|
|
186
|
+
hooksDir = join(home, v.slice(1));
|
|
187
|
+
else if (v.startsWith('~'))
|
|
188
|
+
hooksDir = undefined;
|
|
189
|
+
else
|
|
190
|
+
hooksDir = resolve(repo, v);
|
|
191
|
+
}
|
|
192
|
+
else
|
|
193
|
+
hooksDir = common ? join(common, 'hooks') : undefined;
|
|
194
|
+
return {
|
|
195
|
+
hooksDir,
|
|
196
|
+
reviewer: reviewer ? (reviewer.value ?? '').trim() : null,
|
|
197
|
+
optedOut: optOut ? gitBool(optOut.value) === false : false,
|
|
198
|
+
localHooksPath,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/** GitFacts for a repo: one `git config --list`, plus a rev-parse only in the rare case gitFactsFromConfig cannot decide. */
|
|
202
|
+
export async function readGitFacts(repo, run = gitRunner, home = homedir()) {
|
|
203
|
+
const f = gitFactsFromConfig(repo, await run(repo, GIT_CONFIG_LIST), home);
|
|
204
|
+
if (f.hooksDir !== undefined)
|
|
205
|
+
return f;
|
|
206
|
+
const r = await run(repo, ['rev-parse', '--path-format=absolute', '--git-path', 'hooks']);
|
|
207
|
+
return { ...f, hooksDir: (r && r.trim()) || resolve(repo, '.git/hooks') };
|
|
103
208
|
}
|
|
104
209
|
function readText(p) {
|
|
105
210
|
try {
|
|
@@ -126,29 +231,34 @@ function samePath(a, b) {
|
|
|
126
231
|
return n(a) === n(b);
|
|
127
232
|
}
|
|
128
233
|
/** The only per-repo check: does codewatch run here (per repo or globally), and which reviewer would run. */
|
|
129
|
-
export function codewatchSetup(repo, deps = {}) {
|
|
234
|
+
export async function codewatchSetup(repo, deps = {}) {
|
|
130
235
|
const g = deps.global || globalStatus();
|
|
131
|
-
const
|
|
236
|
+
const facts = await readGitFacts(repo, deps.git, deps.home);
|
|
237
|
+
return codewatchSetupFrom(repo, facts, g, deps.pathEnv);
|
|
238
|
+
}
|
|
239
|
+
/** codewatchSetup from facts already read. */
|
|
240
|
+
export function codewatchSetupFrom(repo, facts, g, pathEnv) {
|
|
241
|
+
const hooksDir = facts.hooksDir;
|
|
132
242
|
const viaGlobal = g.state === 'installed' && samePath(hooksDir, globalHooksDir());
|
|
133
243
|
const state = MANAGED_HOOKS.map((h) => {
|
|
134
244
|
const t = readText(resolve(hooksDir, h));
|
|
135
245
|
return { h, ours: !!t && t.includes(HOOK_MARKER), old: !!t && !t.includes(HOOK_MARKER) && t.includes('# prism-cli enable security') };
|
|
136
246
|
});
|
|
137
247
|
const choice = resolveReviewer({
|
|
138
|
-
gitConfigValue:
|
|
248
|
+
gitConfigValue: facts.reviewer,
|
|
139
249
|
prismConfigValue: readEvalConfig(repo).reviewer,
|
|
140
|
-
available: detectReviewers(
|
|
250
|
+
available: detectReviewers(pathEnv),
|
|
141
251
|
});
|
|
142
252
|
const reviewer = choice.id;
|
|
143
253
|
const base = { reviewer, reviewerSource: choice.source, global: viaGlobal };
|
|
144
|
-
if (
|
|
254
|
+
if (facts.optedOut) {
|
|
145
255
|
return { ...base, status: 'opted-out', fix: '', detail: `opted out (git config ${OPT_OUT_KEY} false)` };
|
|
146
256
|
}
|
|
147
257
|
if (state.every((x) => x.ours)) {
|
|
148
258
|
const where = viaGlobal ? 'covered by the global hooks (global)' : 'pre-commit and pre-push installed';
|
|
149
259
|
return { ...base, status: 'ok', fix: '', detail: reviewer ? where : `${where}; no reviewer on PATH (install kiro-cli or Claude Code)` };
|
|
150
260
|
}
|
|
151
|
-
const local =
|
|
261
|
+
const local = facts.localHooksPath;
|
|
152
262
|
if (local && g.state === 'installed') {
|
|
153
263
|
return { ...base, status: 'warn', fix: enableCodewatchFix(repo),
|
|
154
264
|
detail: `this repo's core.hooksPath (${local}) bypasses the global hooks; install codewatch into it` };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/dashboard/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/dashboard/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,12 +22,14 @@ export interface DashboardSummary {
|
|
|
22
22
|
/** Result id, for the report link. */
|
|
23
23
|
id: string;
|
|
24
24
|
} | null;
|
|
25
|
+
/** updatedAt: when the usage was collected (it may come from the cache). */
|
|
25
26
|
spend: {
|
|
26
27
|
status: UsagePanel['status'];
|
|
27
28
|
currency: string;
|
|
28
29
|
today: number | null;
|
|
29
30
|
month: number | null;
|
|
30
31
|
message: string | null;
|
|
32
|
+
updatedAt: string | null;
|
|
31
33
|
};
|
|
32
34
|
/** Machine checks that are missing or warn (as in the checklist), then repos whose own hooks bypass codewatch. */
|
|
33
35
|
warnings: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/dashboard/summary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,6FAA6F;IAC7F,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,8CAA8C;QAC9C,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,sCAAsC;QACtC,EAAE,EAAE,MAAM,CAAC;KACZ,GAAG,IAAI,CAAC;IACT,KAAK,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/dashboard/summary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,6FAA6F;IAC7F,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,8CAA8C;QAC9C,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,sCAAsC;QACtC,EAAE,EAAE,MAAM,CAAC;KACZ,GAAG,IAAI,CAAC;IACT,4EAA4E;IAC5E,KAAK,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACxJ,kHAAkH;IAClH,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACzC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;CAClD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAkB5G"}
|
|
@@ -13,7 +13,7 @@ export function buildSummary(repos, usage, machine) {
|
|
|
13
13
|
];
|
|
14
14
|
return {
|
|
15
15
|
review,
|
|
16
|
-
spend: { status: usage.status, currency: usage.currency, today: usage.today?.cost ?? null, month: usage.month?.cost ?? null, message: usage.message },
|
|
16
|
+
spend: { status: usage.status, currency: usage.currency, today: usage.today?.cost ?? null, month: usage.month?.cost ?? null, message: usage.message, updatedAt: usage.updatedAt },
|
|
17
17
|
warnings: { count: warnings.length, first: warnings[0] ?? null },
|
|
18
18
|
};
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/dashboard/summary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/dashboard/summary.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,YAAY,CAAC,KAAoB,EAAE,KAAiB,EAAE,OAAoB;IACxF,IAAI,MAAM,GAA+B,IAAI,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QAC/C,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACzK,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG;QACf,0HAA0H;QAC1H,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACpI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;KAC9F,CAAC;IACF,OAAO;QACL,MAAM;QACN,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;QACjL,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;KACjE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type UsagePanel } from './usage.js';
|
|
2
|
+
export declare const USAGE_CACHE_SCHEMA = "prism.usage-cache.v1";
|
|
3
|
+
export declare const USAGE_TTL_MS: number;
|
|
4
|
+
export declare function prismCacheDir(home: string): string;
|
|
5
|
+
export declare function usageCachePath(home: string): string;
|
|
6
|
+
/** Tool versions by binary mtime and size (tool-check.ts cachedToolVersion). */
|
|
7
|
+
export declare function versionCachePath(home: string): string;
|
|
8
|
+
export interface UsageCacheDeps {
|
|
9
|
+
file: string;
|
|
10
|
+
/** Runs the codeburn exports (collectUsage). */
|
|
11
|
+
collect: () => Promise<UsagePanel>;
|
|
12
|
+
now?: () => Date;
|
|
13
|
+
ttlMs?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface UsageResult {
|
|
16
|
+
usage: UsagePanel;
|
|
17
|
+
cacheHit: boolean;
|
|
18
|
+
/** The background refresh started for a stale hit; null when none was needed. */
|
|
19
|
+
refresh: Promise<UsagePanel> | null;
|
|
20
|
+
}
|
|
21
|
+
export declare class UsageCache {
|
|
22
|
+
private readonly d;
|
|
23
|
+
private refreshing;
|
|
24
|
+
private lastError;
|
|
25
|
+
/** The last refresh's result when it was a failure; kept in memory only, never written. */
|
|
26
|
+
private lastFailure;
|
|
27
|
+
private readonly now;
|
|
28
|
+
private readonly ttl;
|
|
29
|
+
constructor(d: UsageCacheDeps);
|
|
30
|
+
/** The cached panel for today, marked stale past the TTL, without running codeburn; null when there is none. */
|
|
31
|
+
peek(): UsagePanel | null;
|
|
32
|
+
/** What to show without running codeburn: the cached panel, else the last failure, else null (not loaded yet). */
|
|
33
|
+
current(): UsagePanel | null;
|
|
34
|
+
/** Runs the exports now; one at a time, so concurrent callers share the same run. Writes only real data. */
|
|
35
|
+
refresh(): Promise<UsagePanel>;
|
|
36
|
+
/**
|
|
37
|
+
* fresh: wait for new exports. Otherwise the cached panel at once (with a
|
|
38
|
+
* background refresh when it is stale), or new exports when there is no cache.
|
|
39
|
+
*/
|
|
40
|
+
get(opts?: {
|
|
41
|
+
fresh?: boolean;
|
|
42
|
+
}): Promise<UsageResult>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=usage-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-cache.d.ts","sourceRoot":"","sources":["../../../src/dashboard/usage-cache.ts"],"names":[],"mappings":"AAUA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxD,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AACzD,eAAO,MAAM,YAAY,QAAa,CAAC;AAEvC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,OAAO,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,UAAU;IAQT,OAAO,CAAC,QAAQ,CAAC,CAAC;IAP9B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,SAAS,CAAuB;IACxC,2FAA2F;IAC3F,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEA,CAAC,EAAE,cAAc;IAK9C,gHAAgH;IAChH,IAAI,IAAI,UAAU,GAAG,IAAI;IAOzB,kHAAkH;IAClH,OAAO,IAAI,UAAU,GAAG,IAAI;IAI5B,4GAA4G;IAC5G,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAsB9B;;;OAGG;IACG,GAAG,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,WAAW,CAAC;CAUhE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache for the usage panel: ~/.prism/cache/usage.json (dir 0700, file 0600).
|
|
3
|
+
*
|
|
4
|
+
* codeburn exports take seconds, so the dashboard serves the cached panel at
|
|
5
|
+
* once and refreshes it in the background once it is older than the TTL. Only
|
|
6
|
+
* real data (status ok or no-data) is written: a failed or missing codeburn is
|
|
7
|
+
* never cached, so it cannot be shown later as if it were data. A cache from
|
|
8
|
+
* an earlier local day is ignored, since its "today" is no longer today.
|
|
9
|
+
*/
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { localDate } from './usage.js';
|
|
12
|
+
import { readJson, writePrivateJson } from '../utils/private-json.js';
|
|
13
|
+
export const USAGE_CACHE_SCHEMA = 'prism.usage-cache.v1';
|
|
14
|
+
export const USAGE_TTL_MS = 5 * 60_000;
|
|
15
|
+
export function prismCacheDir(home) {
|
|
16
|
+
return join(home, '.prism', 'cache');
|
|
17
|
+
}
|
|
18
|
+
export function usageCachePath(home) {
|
|
19
|
+
return join(prismCacheDir(home), 'usage.json');
|
|
20
|
+
}
|
|
21
|
+
/** Tool versions by binary mtime and size (tool-check.ts cachedToolVersion). */
|
|
22
|
+
export function versionCachePath(home) {
|
|
23
|
+
return join(prismCacheDir(home), 'tool-versions.json');
|
|
24
|
+
}
|
|
25
|
+
const cacheable = (u) => u.status === 'ok' || u.status === 'no-data';
|
|
26
|
+
export class UsageCache {
|
|
27
|
+
d;
|
|
28
|
+
refreshing = null;
|
|
29
|
+
lastError = null;
|
|
30
|
+
/** The last refresh's result when it was a failure; kept in memory only, never written. */
|
|
31
|
+
lastFailure = null;
|
|
32
|
+
now;
|
|
33
|
+
ttl;
|
|
34
|
+
constructor(d) {
|
|
35
|
+
this.d = d;
|
|
36
|
+
this.now = d.now || (() => new Date());
|
|
37
|
+
this.ttl = d.ttlMs ?? USAGE_TTL_MS;
|
|
38
|
+
}
|
|
39
|
+
/** The cached panel for today, marked stale past the TTL, without running codeburn; null when there is none. */
|
|
40
|
+
peek() {
|
|
41
|
+
const c = readJson(this.d.file);
|
|
42
|
+
const now = this.now();
|
|
43
|
+
if (!c || c.schema !== USAGE_CACHE_SCHEMA || c.day !== localDate(now) || typeof c.savedAt !== 'number' || !c.panel || !cacheable(c.panel))
|
|
44
|
+
return null;
|
|
45
|
+
return { ...c.panel, stale: now.getTime() - c.savedAt >= this.ttl, refreshError: this.lastError };
|
|
46
|
+
}
|
|
47
|
+
/** What to show without running codeburn: the cached panel, else the last failure, else null (not loaded yet). */
|
|
48
|
+
current() {
|
|
49
|
+
return this.peek() || this.lastFailure;
|
|
50
|
+
}
|
|
51
|
+
/** Runs the exports now; one at a time, so concurrent callers share the same run. Writes only real data. */
|
|
52
|
+
refresh() {
|
|
53
|
+
if (!this.refreshing) {
|
|
54
|
+
this.refreshing = (async () => {
|
|
55
|
+
const u = await this.d.collect();
|
|
56
|
+
if (cacheable(u)) {
|
|
57
|
+
this.lastError = null;
|
|
58
|
+
this.lastFailure = null;
|
|
59
|
+
try {
|
|
60
|
+
writePrivateJson(this.d.file, { schema: USAGE_CACHE_SCHEMA, savedAt: this.now().getTime(), day: localDate(this.now()), panel: u });
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
process.stderr.write(`prism dashboard: could not write the usage cache: ${e?.message || e}\n`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.lastError = u.message || u.status;
|
|
68
|
+
this.lastFailure = u;
|
|
69
|
+
}
|
|
70
|
+
return u;
|
|
71
|
+
})().finally(() => { this.refreshing = null; });
|
|
72
|
+
}
|
|
73
|
+
return this.refreshing;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* fresh: wait for new exports. Otherwise the cached panel at once (with a
|
|
77
|
+
* background refresh when it is stale), or new exports when there is no cache.
|
|
78
|
+
*/
|
|
79
|
+
async get(opts = {}) {
|
|
80
|
+
if (!opts.fresh) {
|
|
81
|
+
const hit = this.peek();
|
|
82
|
+
if (hit) {
|
|
83
|
+
const refresh = hit.stale ? this.refresh().catch((e) => { this.lastError = String(e?.message || e); return hit; }) : null;
|
|
84
|
+
return { usage: hit, cacheHit: true, refresh };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { usage: await this.refresh(), cacheHit: false, refresh: null };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=usage-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-cache.js","sourceRoot":"","sources":["../../../src/dashboard/usage-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@ export interface Totals {
|
|
|
5
5
|
sessions: number;
|
|
6
6
|
}
|
|
7
7
|
export interface UsagePanel {
|
|
8
|
-
|
|
8
|
+
/** loading: the page's first paint, before /api/usage answers; never in `dashboard --json`. */
|
|
9
|
+
status: 'ok' | 'not-installed' | 'no-data' | 'error' | 'loading';
|
|
9
10
|
message: string | null;
|
|
10
11
|
currency: string;
|
|
11
12
|
today: Totals | null;
|
|
@@ -32,6 +33,12 @@ export interface UsagePanel {
|
|
|
32
33
|
sessions: number;
|
|
33
34
|
}[];
|
|
34
35
|
generated: string | null;
|
|
36
|
+
/** When this data was collected (ISO); null when nothing was collected. */
|
|
37
|
+
updatedAt: string | null;
|
|
38
|
+
/** Served from the cache past its TTL while a refresh runs (usage-cache.ts). */
|
|
39
|
+
stale: boolean;
|
|
40
|
+
/** The last background refresh failed; the data shown is the older cached copy. */
|
|
41
|
+
refreshError: string | null;
|
|
35
42
|
/** Shown as a note, never a link: codeburn web is a CLI command. */
|
|
36
43
|
fullView: string;
|
|
37
44
|
}
|
|
@@ -51,6 +58,12 @@ export interface RepoSpend {
|
|
|
51
58
|
* outside every repo are not counted.
|
|
52
59
|
*/
|
|
53
60
|
export declare function spendByRepo(projects: UsagePanel['projects'], repoPaths: string[]): Map<string, RepoSpend>;
|
|
61
|
+
/**
|
|
62
|
+
* Today's totals from a month export's per-day rows; null when the export has
|
|
63
|
+
* no per-day breakdown. No row for today means no usage today (codeburn lists
|
|
64
|
+
* only days with usage).
|
|
65
|
+
*/
|
|
66
|
+
export declare function todayFromDaily(month: any, today: string): Totals | null;
|
|
54
67
|
export declare function collectUsage(opts?: {
|
|
55
68
|
now?: Date;
|
|
56
69
|
exporter?: CodeburnExport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/dashboard/usage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/dashboard/usage.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,KAAK,IAAI,CAAC;AAGvB,MAAM,WAAW,MAAM;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AACzE,MAAM,WAAW,UAAU;IACzB,+FAA+F;IAC/F,MAAM,EAAE,IAAI,GAAG,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACtD,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3D,wFAAwF;IACxF,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9E,iFAAiF;IACjF,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gFAAgF;IAChF,KAAK,EAAE,OAAO,CAAC;IACf,mFAAmF;IACnF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qGAAqG;AACrG,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAWjE;AAQD,uCAAuC;AACvC,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAGzC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAEpF;AAMD,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAE7D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAUzG;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKvE;AAED,wBAAsB,YAAY,CAAC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAsD9H"}
|