@vibe-agent-toolkit/cli 0.1.34-rc.2 → 0.1.34
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/bin.js +4 -0
- package/dist/bin.js.map +1 -1
- package/dist/commands/audit/git-url-clone.d.ts +32 -0
- package/dist/commands/audit/git-url-clone.d.ts.map +1 -0
- package/dist/commands/audit/git-url-clone.js +135 -0
- package/dist/commands/audit/git-url-clone.js.map +1 -0
- package/dist/commands/audit/provenance.d.ts +33 -0
- package/dist/commands/audit/provenance.d.ts.map +1 -0
- package/dist/commands/audit/provenance.js +57 -0
- package/dist/commands/audit/provenance.js.map +1 -0
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +218 -72
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +2 -1
- package/dist/commands/claude/marketplace/validate.js.map +1 -1
- package/dist/commands/corpus/index.d.ts +6 -0
- package/dist/commands/corpus/index.d.ts.map +1 -0
- package/dist/commands/corpus/index.js +53 -0
- package/dist/commands/corpus/index.js.map +1 -0
- package/dist/commands/corpus/report.d.ts +75 -0
- package/dist/commands/corpus/report.d.ts.map +1 -0
- package/dist/commands/corpus/report.js +83 -0
- package/dist/commands/corpus/report.js.map +1 -0
- package/dist/commands/corpus/runner.d.ts +24 -0
- package/dist/commands/corpus/runner.d.ts.map +1 -0
- package/dist/commands/corpus/runner.js +246 -0
- package/dist/commands/corpus/runner.js.map +1 -0
- package/dist/commands/corpus/scan.d.ts +15 -0
- package/dist/commands/corpus/scan.d.ts.map +1 -0
- package/dist/commands/corpus/scan.js +90 -0
- package/dist/commands/corpus/scan.js.map +1 -0
- package/dist/commands/corpus/seed.d.ts +178 -0
- package/dist/commands/corpus/seed.d.ts.map +1 -0
- package/dist/commands/corpus/seed.js +63 -0
- package/dist/commands/corpus/seed.js.map +1 -0
- package/dist/commands/inventory.d.ts +17 -0
- package/dist/commands/inventory.d.ts.map +1 -0
- package/dist/commands/inventory.js +90 -0
- package/dist/commands/inventory.js.map +1 -0
- package/dist/utils/git-url.d.ts +43 -0
- package/dist/utils/git-url.d.ts.map +1 -0
- package/dist/utils/git-url.js +135 -0
- package/dist/utils/git-url.js.map +1 -0
- package/docs/audit.md +54 -3
- package/package.json +11 -11
package/dist/bin.js
CHANGED
|
@@ -9,7 +9,9 @@ import { createAgentCommand, showAgentVerboseHelp } from './commands/agent/index
|
|
|
9
9
|
import { createAuditCommand } from './commands/audit.js';
|
|
10
10
|
import { createBuildTopLevelCommand } from './commands/build.js';
|
|
11
11
|
import { createClaudeCommand } from './commands/claude/index.js';
|
|
12
|
+
import { createCorpusCommand } from './commands/corpus/index.js';
|
|
12
13
|
import { doctorCommand } from './commands/doctor.js';
|
|
14
|
+
import { createInventoryCommand } from './commands/inventory.js';
|
|
13
15
|
import { createMCPCommand } from './commands/mcp/index.js';
|
|
14
16
|
import { createRagCommand, showRagVerboseHelp } from './commands/rag/index.js';
|
|
15
17
|
import { createResourcesCommand, showResourcesVerboseHelp } from './commands/resources/index.js';
|
|
@@ -107,6 +109,8 @@ if (process.argv.includes('agent') && process.argv.includes('--verbose')) {
|
|
|
107
109
|
}
|
|
108
110
|
// Add command groups (audit is common, should be first)
|
|
109
111
|
program.addCommand(createAuditCommand());
|
|
112
|
+
program.addCommand(createCorpusCommand());
|
|
113
|
+
program.addCommand(createInventoryCommand());
|
|
110
114
|
program.addCommand(createResourcesCommand());
|
|
111
115
|
program.addCommand(createRagCommand());
|
|
112
116
|
program.addCommand(createAgentCommand());
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shallow-clone-and-cleanup helper for `vat audit <git-url>`.
|
|
3
|
+
*
|
|
4
|
+
* Pipeline:
|
|
5
|
+
* 1. mkdtempSync('vat-audit-')
|
|
6
|
+
* 2. install SIGINT handler that removes the tempdir
|
|
7
|
+
* 3. git clone --depth 1 --single-branch [--branch <ref>]
|
|
8
|
+
* 4. git rev-parse HEAD → resolved commit SHA
|
|
9
|
+
* 5. yield (tempdir, targetDir, provenance) to caller
|
|
10
|
+
* 6. cleanup in finally — always rm tempdir unless `keepTempForDebug`
|
|
11
|
+
*/
|
|
12
|
+
import type { ParsedGitUrl } from '../../utils/git-url.js';
|
|
13
|
+
import type { Provenance } from './provenance.js';
|
|
14
|
+
export interface CloneAndAuditContext {
|
|
15
|
+
tempdir: string;
|
|
16
|
+
targetDir: string;
|
|
17
|
+
provenance: Provenance;
|
|
18
|
+
}
|
|
19
|
+
export interface CloneOptions {
|
|
20
|
+
/**
|
|
21
|
+
* If true, skip the tempdir cleanup at the end and print the path to
|
|
22
|
+
* stderr. Wired to the existing `--debug` flag in `auditCommand`.
|
|
23
|
+
*/
|
|
24
|
+
keepTempForDebug: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Run `body` against a freshly shallow-cloned repo. Always cleans up the
|
|
28
|
+
* tempdir unless `options.keepTempForDebug` is true. Re-raises any error
|
|
29
|
+
* from the clone or from `body`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function withClonedRepo<T>(parsed: ParsedGitUrl, options: CloneOptions, body: (ctx: CloneAndAuditContext) => Promise<T>): Promise<T>;
|
|
32
|
+
//# sourceMappingURL=git-url-clone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-url-clone.d.ts","sourceRoot":"","sources":["../../../src/commands/audit/git-url-clone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC9C,OAAO,CAAC,CAAC,CAAC,CA+EZ"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shallow-clone-and-cleanup helper for `vat audit <git-url>`.
|
|
3
|
+
*
|
|
4
|
+
* Pipeline:
|
|
5
|
+
* 1. mkdtempSync('vat-audit-')
|
|
6
|
+
* 2. install SIGINT handler that removes the tempdir
|
|
7
|
+
* 3. git clone --depth 1 --single-branch [--branch <ref>]
|
|
8
|
+
* 4. git rev-parse HEAD → resolved commit SHA
|
|
9
|
+
* 5. yield (tempdir, targetDir, provenance) to caller
|
|
10
|
+
* 6. cleanup in finally — always rm tempdir unless `keepTempForDebug`
|
|
11
|
+
*/
|
|
12
|
+
import { spawnSync } from 'node:child_process';
|
|
13
|
+
import { existsSync, mkdtempSync, readdirSync, rmSync } from 'node:fs';
|
|
14
|
+
import { normalizedTmpdir, safePath } from '@vibe-agent-toolkit/utils';
|
|
15
|
+
/**
|
|
16
|
+
* Run `body` against a freshly shallow-cloned repo. Always cleans up the
|
|
17
|
+
* tempdir unless `options.keepTempForDebug` is true. Re-raises any error
|
|
18
|
+
* from the clone or from `body`.
|
|
19
|
+
*/
|
|
20
|
+
export async function withClonedRepo(parsed, options, body) {
|
|
21
|
+
const tempdir = mkdtempSync(safePath.join(normalizedTmpdir(), 'vat-audit-'));
|
|
22
|
+
const sigintListener = () => {
|
|
23
|
+
try {
|
|
24
|
+
rmSync(tempdir, { recursive: true, force: true });
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
process.removeListener('SIGINT', sigintListener);
|
|
28
|
+
process.kill(process.pid, 'SIGINT');
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
process.on('SIGINT', sigintListener);
|
|
32
|
+
// The audit pipeline calls `process.exit()` on completion
|
|
33
|
+
// (`handleAuditResults` in audit.ts), which would skip any `finally`
|
|
34
|
+
// block here. Register an `'exit'` listener so cleanup runs even when
|
|
35
|
+
// the process is ending — this is Node's documented escape hatch for
|
|
36
|
+
// "always run this sync cleanup". We still keep the `finally` below so
|
|
37
|
+
// thrown errors and the non-exit path behave the same.
|
|
38
|
+
let cleaned = false;
|
|
39
|
+
const cleanup = () => {
|
|
40
|
+
if (cleaned)
|
|
41
|
+
return;
|
|
42
|
+
cleaned = true;
|
|
43
|
+
if (options.keepTempForDebug) {
|
|
44
|
+
process.stderr.write(`[vat: debug — temp dir preserved: ${tempdir}]\n`);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
rmSync(tempdir, { recursive: true, force: true });
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
const exitListener = () => {
|
|
51
|
+
cleanup();
|
|
52
|
+
};
|
|
53
|
+
process.on('exit', exitListener);
|
|
54
|
+
try {
|
|
55
|
+
const ref = cloneShallow(parsed, tempdir);
|
|
56
|
+
const commit = revParseHead(tempdir);
|
|
57
|
+
const { subpath } = parsed;
|
|
58
|
+
const targetDir = subpath ? safePath.join(tempdir, subpath) : tempdir;
|
|
59
|
+
// Reject subpaths that resolve outside the cloned tempdir. Without
|
|
60
|
+
// this check, an input like `repo#main:../../../etc` would still let
|
|
61
|
+
// the audit run against unrelated host paths and leak them into
|
|
62
|
+
// output (`rewritePathsInResults` only strips the tempRoot prefix).
|
|
63
|
+
if (subpath !== undefined) {
|
|
64
|
+
const resolvedTarget = safePath.resolve(targetDir);
|
|
65
|
+
const resolvedTemp = safePath.resolve(tempdir);
|
|
66
|
+
const inside = resolvedTarget === resolvedTemp ||
|
|
67
|
+
resolvedTarget.startsWith(`${resolvedTemp}/`);
|
|
68
|
+
if (!inside) {
|
|
69
|
+
throw new Error(`Subpath escapes the cloned repository: ${subpath}. ` +
|
|
70
|
+
`Subpaths must be relative paths inside the repo (no \`..\` traversal).`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- targetDir is composed from our own tempdir + validated subpath
|
|
74
|
+
if (!existsSync(targetDir)) {
|
|
75
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- tempdir is our own mkdtempSync-created directory
|
|
76
|
+
const topLevel = readdirSync(tempdir).join(', ');
|
|
77
|
+
throw new Error(`Subpath not found in cloned repo: ${subpath ?? '(none)'}. ` +
|
|
78
|
+
`Repo root contains: ${topLevel}.`);
|
|
79
|
+
}
|
|
80
|
+
const provenance = {
|
|
81
|
+
url: parsed.cloneUrl,
|
|
82
|
+
ref,
|
|
83
|
+
commit,
|
|
84
|
+
...(subpath ? { subpath } : {}),
|
|
85
|
+
};
|
|
86
|
+
return await body({ tempdir, targetDir, provenance });
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
process.removeListener('SIGINT', sigintListener);
|
|
90
|
+
process.removeListener('exit', exitListener);
|
|
91
|
+
cleanup();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function cloneShallow(parsed, tempdir) {
|
|
95
|
+
const args = ['clone', '--depth', '1', '--single-branch'];
|
|
96
|
+
if (parsed.ref !== undefined) {
|
|
97
|
+
args.push('--branch', parsed.ref);
|
|
98
|
+
}
|
|
99
|
+
args.push(parsed.cloneUrl, tempdir);
|
|
100
|
+
// eslint-disable-next-line sonarjs/no-os-command-from-path -- git is a standard system command
|
|
101
|
+
const result = spawnSync('git', args, {
|
|
102
|
+
encoding: 'utf-8',
|
|
103
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
104
|
+
});
|
|
105
|
+
const status = result.status ?? 1;
|
|
106
|
+
if (status !== 0) {
|
|
107
|
+
const stderr = (result.stderr ?? '').trim();
|
|
108
|
+
if (parsed.ref !== undefined && /not found|did not match/i.test(stderr)) {
|
|
109
|
+
throw new Error(`Reference not found in ${parsed.cloneUrl}: ${parsed.ref}. ` +
|
|
110
|
+
`Hint: --depth 1 cloning cannot resolve arbitrary deep commit SHAs; ` +
|
|
111
|
+
`try a branch or tag name.`);
|
|
112
|
+
}
|
|
113
|
+
throw new Error(`Clone failed:\n${stderr}`);
|
|
114
|
+
}
|
|
115
|
+
// The actual ref is what we asked for (--branch <ref>) or `HEAD` of the
|
|
116
|
+
// default branch. We cannot ask git for "what is the default branch
|
|
117
|
+
// name?" reliably from a shallow single-branch clone, so for the
|
|
118
|
+
// no-ref case we record 'HEAD' as the ref and rely on the commit SHA
|
|
119
|
+
// for precise reproduction.
|
|
120
|
+
return parsed.ref ?? 'HEAD';
|
|
121
|
+
}
|
|
122
|
+
function revParseHead(tempdir) {
|
|
123
|
+
// eslint-disable-next-line sonarjs/no-os-command-from-path -- git is a standard system command
|
|
124
|
+
const result = spawnSync('git', ['rev-parse', 'HEAD'], {
|
|
125
|
+
cwd: tempdir,
|
|
126
|
+
encoding: 'utf-8',
|
|
127
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
128
|
+
});
|
|
129
|
+
const status = result.status ?? 1;
|
|
130
|
+
if (status !== 0) {
|
|
131
|
+
throw new Error(`Failed to resolve HEAD commit in cloned repo: ${(result.stderr ?? '').trim()}`);
|
|
132
|
+
}
|
|
133
|
+
return (result.stdout ?? '').trim().slice(0, 8);
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=git-url-clone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-url-clone.js","sourceRoot":"","sources":["../../../src/commands/audit/git-url-clone.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance metadata for a `vat audit <git-url>` invocation. Captured
|
|
3
|
+
* after the shallow clone resolves, used to render the header that
|
|
4
|
+
* precedes audit output and to keep paths in output repo-relative
|
|
5
|
+
* (independent of the random tempdir name).
|
|
6
|
+
*/
|
|
7
|
+
export interface Provenance {
|
|
8
|
+
/** The URL the user typed, preserved as-is for reproducibility. */
|
|
9
|
+
url: string;
|
|
10
|
+
/** Branch or tag name (the actual ref cloned). */
|
|
11
|
+
ref: string;
|
|
12
|
+
/** Resolved commit SHA of the cloned ref's HEAD. */
|
|
13
|
+
commit: string;
|
|
14
|
+
/** Subpath within the cloned repo, if specified. */
|
|
15
|
+
subpath?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Render the provenance header for a URL audit. Each line is emitted as a
|
|
19
|
+
* YAML comment (`# `-prefixed) so that `vat audit <url> | yq` (or any
|
|
20
|
+
* downstream YAML consumer) can parse the rest of the output unchanged.
|
|
21
|
+
* Always ends with a newline.
|
|
22
|
+
*/
|
|
23
|
+
export declare function renderProvenanceHeader(p: Provenance): string;
|
|
24
|
+
/**
|
|
25
|
+
* Walk a JSON-serializable structure and replace any string value that
|
|
26
|
+
* begins with `tempRoot` with its repo-relative equivalent (no leading
|
|
27
|
+
* separator, forward slashes only — matches the format paths take in
|
|
28
|
+
* existing audit output).
|
|
29
|
+
*
|
|
30
|
+
* Pure: returns a new structure, does not mutate the input.
|
|
31
|
+
*/
|
|
32
|
+
export declare function rewritePathsInResults<T>(value: T, tempRoot: string): T;
|
|
33
|
+
//# sourceMappingURL=provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../../src/commands/audit/provenance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAM5D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAOtE"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render the provenance header for a URL audit. Each line is emitted as a
|
|
3
|
+
* YAML comment (`# `-prefixed) so that `vat audit <url> | yq` (or any
|
|
4
|
+
* downstream YAML consumer) can parse the rest of the output unchanged.
|
|
5
|
+
* Always ends with a newline.
|
|
6
|
+
*/
|
|
7
|
+
export function renderProvenanceHeader(p) {
|
|
8
|
+
let header = `# Audited: ${p.url} @ ${p.ref} (commit ${p.commit})\n`;
|
|
9
|
+
if (p.subpath) {
|
|
10
|
+
header += `# Subpath: ${p.subpath}\n`;
|
|
11
|
+
}
|
|
12
|
+
return header;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Walk a JSON-serializable structure and replace any string value that
|
|
16
|
+
* begins with `tempRoot` with its repo-relative equivalent (no leading
|
|
17
|
+
* separator, forward slashes only — matches the format paths take in
|
|
18
|
+
* existing audit output).
|
|
19
|
+
*
|
|
20
|
+
* Pure: returns a new structure, does not mutate the input.
|
|
21
|
+
*/
|
|
22
|
+
export function rewritePathsInResults(value, tempRoot) {
|
|
23
|
+
// Normalize tempRoot to ensure a clean prefix match. Both POSIX and
|
|
24
|
+
// Windows-style separators must be handled because audit outputs may
|
|
25
|
+
// include either depending on the host.
|
|
26
|
+
const root = tempRoot.endsWith('/') ? tempRoot.slice(0, -1) : tempRoot;
|
|
27
|
+
const rootForward = root.replaceAll('\\', '/');
|
|
28
|
+
return rewrite(value, root, rootForward);
|
|
29
|
+
}
|
|
30
|
+
function rewrite(value, root, rootForward) {
|
|
31
|
+
if (typeof value === 'string') {
|
|
32
|
+
return rewriteString(value, root, rootForward);
|
|
33
|
+
}
|
|
34
|
+
if (Array.isArray(value)) {
|
|
35
|
+
return value.map((item) => rewrite(item, root, rootForward));
|
|
36
|
+
}
|
|
37
|
+
if (value !== null && typeof value === 'object') {
|
|
38
|
+
const out = {};
|
|
39
|
+
for (const [k, v] of Object.entries(value)) {
|
|
40
|
+
out[k] = rewrite(v, root, rootForward);
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
function rewriteString(s, root, rootForward) {
|
|
47
|
+
if (s.startsWith(root)) {
|
|
48
|
+
const tail = s.slice(root.length).replace(/^[/\\]/, '');
|
|
49
|
+
return tail.replaceAll('\\', '/');
|
|
50
|
+
}
|
|
51
|
+
if (s.startsWith(rootForward)) {
|
|
52
|
+
const tail = s.slice(rootForward.length).replace(/^[/\\]/, '');
|
|
53
|
+
return tail.replaceAll('\\', '/');
|
|
54
|
+
}
|
|
55
|
+
return s;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../../src/commands/audit/provenance.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAa;IAClD,IAAI,MAAM,GAAG,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;IACrE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,cAAc,CAAC,CAAC,OAAO,IAAI,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAI,KAAQ,EAAE,QAAgB;IACjE,oEAAoE;IACpE,qEAAqE;IACrE,wCAAwC;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,OAAO,CAAI,KAAQ,EAAE,IAAY,EAAE,WAAmB;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAiB,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAiB,CAAC;IAC/E,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,GAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,CAAS,EAAE,IAAY,EAAE,WAAmB;IACjE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAaL,KAAK,oBAAoB,EAIzB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAWL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEvB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAelD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAOD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,6FAA6F;IAC7F,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CACjD;AAoRD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAiI5C;AAiRD,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAyBf;AAkJD;;GAEG;AACH,wBAAsB,oBAAoB,CACzC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,GACrC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiG7B;AAwED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,EACvC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,UAAU,GAAE,iBAAiB,GAAG,IAAW,GAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAiC3C;AAyXD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
|