project-shield 1.1.6 → 2.0.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 +176 -6
- package/dist/auditor/checks/environment.d.ts +7 -0
- package/dist/auditor/checks/environment.d.ts.map +1 -0
- package/dist/auditor/checks/environment.js +463 -0
- package/dist/auditor/checks/environment.js.map +1 -0
- package/dist/auditor/checks/hooks.d.ts +13 -0
- package/dist/auditor/checks/hooks.d.ts.map +1 -0
- package/dist/auditor/checks/hooks.js +234 -0
- package/dist/auditor/checks/hooks.js.map +1 -0
- package/dist/auditor/engine.d.ts +7 -0
- package/dist/auditor/engine.d.ts.map +1 -0
- package/dist/auditor/engine.js +183 -0
- package/dist/auditor/engine.js.map +1 -0
- package/dist/auditor/providers/claude-code.d.ts +17 -0
- package/dist/auditor/providers/claude-code.d.ts.map +1 -0
- package/dist/auditor/providers/claude-code.js +176 -0
- package/dist/auditor/providers/claude-code.js.map +1 -0
- package/dist/auditor/providers/types.d.ts +36 -0
- package/dist/auditor/providers/types.d.ts.map +1 -0
- package/dist/auditor/providers/types.js +4 -0
- package/dist/auditor/providers/types.js.map +1 -0
- package/dist/index.js +99 -2
- package/dist/index.js.map +1 -1
- package/dist/license/gate.d.ts +3 -0
- package/dist/license/gate.d.ts.map +1 -1
- package/dist/license/gate.js +9 -0
- package/dist/license/gate.js.map +1 -1
- package/dist/license/index.d.ts +1 -1
- package/dist/license/index.d.ts.map +1 -1
- package/dist/license/index.js +3 -1
- package/dist/license/index.js.map +1 -1
- package/dist/license/storage.d.ts.map +1 -1
- package/dist/license/storage.js +5 -0
- package/dist/license/storage.js.map +1 -1
- package/dist/license/types.d.ts +5 -0
- package/dist/license/types.d.ts.map +1 -1
- package/dist/license/usage.d.ts +12 -0
- package/dist/license/usage.d.ts.map +1 -1
- package/dist/license/usage.js +47 -2
- package/dist/license/usage.js.map +1 -1
- package/dist/output/audit-evidence.d.ts +10 -0
- package/dist/output/audit-evidence.d.ts.map +1 -0
- package/dist/output/audit-evidence.js +82 -0
- package/dist/output/audit-evidence.js.map +1 -0
- package/dist/output/audit-fixit.d.ts +34 -0
- package/dist/output/audit-fixit.d.ts.map +1 -0
- package/dist/output/audit-fixit.js +267 -0
- package/dist/output/audit-fixit.js.map +1 -0
- package/dist/output/audit-terminal.d.ts +15 -0
- package/dist/output/audit-terminal.d.ts.map +1 -0
- package/dist/output/audit-terminal.js +200 -0
- package/dist/output/audit-terminal.js.map +1 -0
- package/dist/retention/expiry.d.ts +13 -0
- package/dist/retention/expiry.d.ts.map +1 -0
- package/dist/retention/expiry.js +37 -0
- package/dist/retention/expiry.js.map +1 -0
- package/dist/retention/hash-detect.d.ts +12 -0
- package/dist/retention/hash-detect.d.ts.map +1 -0
- package/dist/retention/hash-detect.js +29 -0
- package/dist/retention/hash-detect.js.map +1 -0
- package/dist/retention/storage.d.ts +17 -0
- package/dist/retention/storage.d.ts.map +1 -0
- package/dist/retention/storage.js +79 -0
- package/dist/retention/storage.js.map +1 -0
- package/dist/types/audit.d.ts +77 -0
- package/dist/types/audit.d.ts.map +1 -0
- package/dist/types/audit.js +4 -0
- package/dist/types/audit.js.map +1 -0
- package/package.json +6 -3
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─── Settings Hash Change Detection ─────────────────────────
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.detectHashChange = detectHashChange;
|
|
5
|
+
const storage_js_1 = require("./storage.js");
|
|
6
|
+
/**
|
|
7
|
+
* Compare stored settings hash with current hash.
|
|
8
|
+
* Returns change detection result.
|
|
9
|
+
*/
|
|
10
|
+
function detectHashChange(projectDir, currentHash) {
|
|
11
|
+
const state = (0, storage_js_1.readAuditState)(projectDir);
|
|
12
|
+
if (!state || !state.settingsHash) {
|
|
13
|
+
return {
|
|
14
|
+
hasChanged: false,
|
|
15
|
+
previousHash: '',
|
|
16
|
+
currentHash,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const hasChanged = state.settingsHash !== currentHash && currentHash !== '';
|
|
20
|
+
return {
|
|
21
|
+
hasChanged,
|
|
22
|
+
previousHash: state.settingsHash,
|
|
23
|
+
currentHash,
|
|
24
|
+
message: hasChanged
|
|
25
|
+
? 'Claude Code settings have changed since last audit. Run `project-shield audit` to re-check.'
|
|
26
|
+
: undefined,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=hash-detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-detect.js","sourceRoot":"","sources":["../../src/retention/hash-detect.ts"],"names":[],"mappings":";AAAA,+DAA+D;;AAe/D,4CAwBC;AArCD,6CAA8C;AAS9C;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,UAAkB,EAClB,WAAmB;IAEnB,MAAM,KAAK,GAAG,IAAA,2BAAc,EAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAClC,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,EAAE;YAChB,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,KAAK,WAAW,IAAI,WAAW,KAAK,EAAE,CAAC;IAE5E,OAAO;QACL,UAAU;QACV,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW;QACX,OAAO,EAAE,UAAU;YACjB,CAAC,CAAC,6FAA6F;YAC/F,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface AuditState {
|
|
2
|
+
lastAuditAt: string;
|
|
3
|
+
settingsHash: string;
|
|
4
|
+
score: number;
|
|
5
|
+
grade: string;
|
|
6
|
+
findingsCount: number;
|
|
7
|
+
criticalCount: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Read audit state for a project. Returns null if not found or corrupted.
|
|
11
|
+
*/
|
|
12
|
+
export declare function readAuditState(projectDir: string): AuditState | null;
|
|
13
|
+
/**
|
|
14
|
+
* Write audit state for a project.
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeAuditState(projectDir: string, state: AuditState): void;
|
|
17
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/retention/storage.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAgBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAWpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAI3E"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─── Retention Storage ──────────────────────────────────────
|
|
3
|
+
// Stores audit state per-project in .claude/.shield/audit-state.json
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
+
var ownKeys = function(o) {
|
|
22
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
+
var ar = [];
|
|
24
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
return ownKeys(o);
|
|
28
|
+
};
|
|
29
|
+
return function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
})();
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.readAuditState = readAuditState;
|
|
39
|
+
exports.writeAuditState = writeAuditState;
|
|
40
|
+
const fs = __importStar(require("node:fs"));
|
|
41
|
+
const path = __importStar(require("node:path"));
|
|
42
|
+
const STATE_DIR = '.claude/.shield';
|
|
43
|
+
const STATE_FILE = 'audit-state.json';
|
|
44
|
+
function getStatePath(projectDir) {
|
|
45
|
+
return path.join(projectDir, STATE_DIR, STATE_FILE);
|
|
46
|
+
}
|
|
47
|
+
function ensureStateDir(projectDir) {
|
|
48
|
+
const dir = path.join(projectDir, STATE_DIR);
|
|
49
|
+
if (!fs.existsSync(dir)) {
|
|
50
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Read audit state for a project. Returns null if not found or corrupted.
|
|
55
|
+
*/
|
|
56
|
+
function readAuditState(projectDir) {
|
|
57
|
+
try {
|
|
58
|
+
const filePath = getStatePath(projectDir);
|
|
59
|
+
if (!fs.existsSync(filePath))
|
|
60
|
+
return null;
|
|
61
|
+
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
62
|
+
const data = JSON.parse(raw);
|
|
63
|
+
if (!data.lastAuditAt || typeof data.settingsHash !== 'string')
|
|
64
|
+
return null;
|
|
65
|
+
return data;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Write audit state for a project.
|
|
73
|
+
*/
|
|
74
|
+
function writeAuditState(projectDir, state) {
|
|
75
|
+
ensureStateDir(projectDir);
|
|
76
|
+
const filePath = getStatePath(projectDir);
|
|
77
|
+
fs.writeFileSync(filePath, JSON.stringify(state, null, 2), 'utf-8');
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/retention/storage.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BrE,wCAWC;AAKD,0CAIC;AAjDD,4CAA8B;AAC9B,gDAAkC;AAWlC,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEtC,SAAS,YAAY,CAAC,UAAkB;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,UAAkB,EAAE,KAAiB;IACnE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export type AuditSeverity = 'critical' | 'high' | 'medium' | 'low' | 'info';
|
|
2
|
+
export type AuditTier = 'free' | 'pro';
|
|
3
|
+
export interface AuditFinding {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
severity: AuditSeverity;
|
|
8
|
+
tier: AuditTier;
|
|
9
|
+
category: 'environment' | 'hooks';
|
|
10
|
+
remediation: string;
|
|
11
|
+
evidence?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AuditScore {
|
|
14
|
+
total: number;
|
|
15
|
+
grade: 'A' | 'B' | 'C' | 'D' | 'E' | 'F';
|
|
16
|
+
breakdown: {
|
|
17
|
+
environment: number;
|
|
18
|
+
hooks: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface AuditResult {
|
|
22
|
+
environment: AuditFinding[];
|
|
23
|
+
hooks: AuditFinding[];
|
|
24
|
+
score: AuditScore;
|
|
25
|
+
summary: {
|
|
26
|
+
total: number;
|
|
27
|
+
critical: number;
|
|
28
|
+
high: number;
|
|
29
|
+
medium: number;
|
|
30
|
+
low: number;
|
|
31
|
+
info: number;
|
|
32
|
+
freeVisible: number;
|
|
33
|
+
proOnly: number;
|
|
34
|
+
};
|
|
35
|
+
settingsHash: string;
|
|
36
|
+
scannedAt: string;
|
|
37
|
+
projectDir: string;
|
|
38
|
+
}
|
|
39
|
+
export interface AuditConfig {
|
|
40
|
+
projectDir?: string;
|
|
41
|
+
format?: 'terminal' | 'json';
|
|
42
|
+
fix?: boolean;
|
|
43
|
+
evidencePath?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface AuditEvidencePack {
|
|
46
|
+
version: string;
|
|
47
|
+
generatedAt: string;
|
|
48
|
+
result: AuditResult;
|
|
49
|
+
config: AuditConfig;
|
|
50
|
+
environment?: {
|
|
51
|
+
hostname: string;
|
|
52
|
+
platform: string;
|
|
53
|
+
nodeVersion: string;
|
|
54
|
+
};
|
|
55
|
+
fixitSummary?: {
|
|
56
|
+
totalCritical: number;
|
|
57
|
+
totalWarning: number;
|
|
58
|
+
totalInfo: number;
|
|
59
|
+
guidesAvailable: number;
|
|
60
|
+
};
|
|
61
|
+
fixitGuides?: Array<{
|
|
62
|
+
id: string;
|
|
63
|
+
severity: string;
|
|
64
|
+
title: string;
|
|
65
|
+
description: string;
|
|
66
|
+
steps: string[];
|
|
67
|
+
command?: string;
|
|
68
|
+
references?: string[];
|
|
69
|
+
}>;
|
|
70
|
+
integrity?: {
|
|
71
|
+
auditHash: string;
|
|
72
|
+
generatorVersion: string;
|
|
73
|
+
};
|
|
74
|
+
disclaimer?: string;
|
|
75
|
+
}
|
|
76
|
+
export type RetentionState = 'active' | 'stale' | 'expired';
|
|
77
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/types/audit.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAC5E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzC,SAAS,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,SAAS,CAAC,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/types/audit.ts"],"names":[],"mappings":";AAAA,+DAA+D"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "project-shield",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Security scanner for AI coders and MCP users —
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Security scanner for AI coders and MCP users — secrets, PII, injection, and Claude Code environment audit",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"project-shield": "dist/index.js"
|
|
@@ -30,7 +30,10 @@
|
|
|
30
30
|
"prompt-injection",
|
|
31
31
|
"ai-security",
|
|
32
32
|
"claude",
|
|
33
|
-
"llm"
|
|
33
|
+
"llm",
|
|
34
|
+
"audit",
|
|
35
|
+
"environment-security",
|
|
36
|
+
"hooks"
|
|
34
37
|
],
|
|
35
38
|
"author": "ShovelMaker91",
|
|
36
39
|
"license": "MIT",
|