project-shield 1.1.5 → 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.
Files changed (70) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +194 -4
  3. package/dist/auditor/checks/environment.d.ts +7 -0
  4. package/dist/auditor/checks/environment.d.ts.map +1 -0
  5. package/dist/auditor/checks/environment.js +463 -0
  6. package/dist/auditor/checks/environment.js.map +1 -0
  7. package/dist/auditor/checks/hooks.d.ts +13 -0
  8. package/dist/auditor/checks/hooks.d.ts.map +1 -0
  9. package/dist/auditor/checks/hooks.js +234 -0
  10. package/dist/auditor/checks/hooks.js.map +1 -0
  11. package/dist/auditor/engine.d.ts +7 -0
  12. package/dist/auditor/engine.d.ts.map +1 -0
  13. package/dist/auditor/engine.js +183 -0
  14. package/dist/auditor/engine.js.map +1 -0
  15. package/dist/auditor/providers/claude-code.d.ts +17 -0
  16. package/dist/auditor/providers/claude-code.d.ts.map +1 -0
  17. package/dist/auditor/providers/claude-code.js +176 -0
  18. package/dist/auditor/providers/claude-code.js.map +1 -0
  19. package/dist/auditor/providers/types.d.ts +36 -0
  20. package/dist/auditor/providers/types.d.ts.map +1 -0
  21. package/dist/auditor/providers/types.js +4 -0
  22. package/dist/auditor/providers/types.js.map +1 -0
  23. package/dist/index.js +99 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/license/gate.d.ts +3 -0
  26. package/dist/license/gate.d.ts.map +1 -1
  27. package/dist/license/gate.js +9 -0
  28. package/dist/license/gate.js.map +1 -1
  29. package/dist/license/index.d.ts +1 -1
  30. package/dist/license/index.d.ts.map +1 -1
  31. package/dist/license/index.js +3 -1
  32. package/dist/license/index.js.map +1 -1
  33. package/dist/license/storage.d.ts.map +1 -1
  34. package/dist/license/storage.js +5 -0
  35. package/dist/license/storage.js.map +1 -1
  36. package/dist/license/types.d.ts +5 -0
  37. package/dist/license/types.d.ts.map +1 -1
  38. package/dist/license/usage.d.ts +12 -0
  39. package/dist/license/usage.d.ts.map +1 -1
  40. package/dist/license/usage.js +47 -2
  41. package/dist/license/usage.js.map +1 -1
  42. package/dist/output/audit-evidence.d.ts +10 -0
  43. package/dist/output/audit-evidence.d.ts.map +1 -0
  44. package/dist/output/audit-evidence.js +82 -0
  45. package/dist/output/audit-evidence.js.map +1 -0
  46. package/dist/output/audit-fixit.d.ts +34 -0
  47. package/dist/output/audit-fixit.d.ts.map +1 -0
  48. package/dist/output/audit-fixit.js +267 -0
  49. package/dist/output/audit-fixit.js.map +1 -0
  50. package/dist/output/audit-terminal.d.ts +15 -0
  51. package/dist/output/audit-terminal.d.ts.map +1 -0
  52. package/dist/output/audit-terminal.js +200 -0
  53. package/dist/output/audit-terminal.js.map +1 -0
  54. package/dist/retention/expiry.d.ts +13 -0
  55. package/dist/retention/expiry.d.ts.map +1 -0
  56. package/dist/retention/expiry.js +37 -0
  57. package/dist/retention/expiry.js.map +1 -0
  58. package/dist/retention/hash-detect.d.ts +12 -0
  59. package/dist/retention/hash-detect.d.ts.map +1 -0
  60. package/dist/retention/hash-detect.js +29 -0
  61. package/dist/retention/hash-detect.js.map +1 -0
  62. package/dist/retention/storage.d.ts +17 -0
  63. package/dist/retention/storage.d.ts.map +1 -0
  64. package/dist/retention/storage.js +79 -0
  65. package/dist/retention/storage.js.map +1 -0
  66. package/dist/types/audit.d.ts +77 -0
  67. package/dist/types/audit.d.ts.map +1 -0
  68. package/dist/types/audit.js +4 -0
  69. package/dist/types/audit.js.map +1 -0
  70. package/package.json +17 -5
@@ -0,0 +1,36 @@
1
+ export interface ToolSettings {
2
+ permissions: Record<string, unknown>;
3
+ raw: Record<string, unknown>;
4
+ exists: boolean;
5
+ isProjectLevel: boolean;
6
+ filePath: string;
7
+ }
8
+ export interface HookConfig {
9
+ event: string;
10
+ matcher?: string;
11
+ command: string;
12
+ }
13
+ export interface EnvFileInfo {
14
+ filePath: string;
15
+ exists: boolean;
16
+ keys: string[];
17
+ }
18
+ export interface InstructionFileInfo {
19
+ filePath: string;
20
+ exists: boolean;
21
+ sizeBytes: number;
22
+ }
23
+ export interface AuditProvider {
24
+ readonly name: string;
25
+ /** Check if this environment is detected (any config file exists) */
26
+ detectEnvironment(): Promise<boolean>;
27
+ /** Parse settings from config files */
28
+ getSettings(): Promise<ToolSettings[]>;
29
+ /** Extract hook configurations */
30
+ getHooks(): Promise<HookConfig[]>;
31
+ /** Detect .env files and extract key names */
32
+ getEnvFiles(): Promise<EnvFileInfo[]>;
33
+ /** Detect instruction/prompt files */
34
+ getInstructionFiles(): Promise<InstructionFileInfo[]>;
35
+ }
36
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/auditor/providers/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,qEAAqE;IACrE,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,uCAAuC;IACvC,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEvC,kCAAkC;IAClC,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAElC,8CAA8C;IAC9C,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEtC,sCAAsC;IACtC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CACvD"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // ─── Audit Provider Types ───────────────────────────────────
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/auditor/providers/types.ts"],"names":[],"mappings":";AAAA,+DAA+D"}
package/dist/index.js CHANGED
@@ -50,11 +50,17 @@ const validator_js_1 = require("./license/validator.js");
50
50
  const usage_js_1 = require("./license/usage.js");
51
51
  const gate_js_1 = require("./license/gate.js");
52
52
  const commands_js_1 = require("./license/commands.js");
53
+ const engine_js_2 = require("./auditor/engine.js");
54
+ const audit_terminal_js_1 = require("./output/audit-terminal.js");
55
+ const audit_evidence_js_1 = require("./output/audit-evidence.js");
56
+ const expiry_js_1 = require("./retention/expiry.js");
57
+ const hash_detect_js_1 = require("./retention/hash-detect.js");
58
+ const storage_js_1 = require("./retention/storage.js");
53
59
  const program = new commander_1.Command();
54
60
  program
55
61
  .name('project-shield')
56
62
  .description('Security scanner for AI coders and MCP users')
57
- .version('1.0.0');
63
+ .version('2.0.0');
58
64
  program
59
65
  .command('scan')
60
66
  .description('Scan a directory for secrets, PII, and MCP config issues')
@@ -80,6 +86,12 @@ program
80
86
  // Show tier header
81
87
  const tierLabel = tier.isPro ? '\x1b[32mPro\x1b[0m' : 'Free';
82
88
  console.log(`Tier: ${tierLabel} (${tier.scansUsed}/${tier.maxScans} scans)`);
89
+ // Retention warnings (audit expiry + hash change)
90
+ const cwd = process.cwd();
91
+ const expiry = (0, expiry_js_1.checkAuditExpiry)(cwd);
92
+ if (expiry.message) {
93
+ console.log(`\x1b[33m\u26A0 ${expiry.message}\x1b[0m`);
94
+ }
83
95
  const resolvedPath = path.resolve(targetPath);
84
96
  const format = options.format;
85
97
  // Load ruleset info for display
@@ -138,7 +150,7 @@ program
138
150
  // Evidence Pack generation (Pro only)
139
151
  if (options.evidence) {
140
152
  if (!gate.canGenerateEvidence) {
141
- console.error('Error: Evidence Pack is a Pro feature. Upgrade: https://project-shield.dev/pro');
153
+ console.error('Error: Evidence Pack is a Pro feature. Upgrade: https://shield.codemeant.dev/#pricing');
142
154
  }
143
155
  else {
144
156
  const evidencePath = path.resolve(options.evidence);
@@ -196,6 +208,91 @@ program
196
208
  process.exit(1);
197
209
  }
198
210
  });
211
+ // ─── Audit command ───────────────────────────────────────────
212
+ program
213
+ .command('audit')
214
+ .description('Audit Claude Code environment security (F008 + F009)')
215
+ .option('-f, --format <format>', 'Output format (terminal or json)', 'terminal')
216
+ .option('--fix', 'Show fix-it remediation guides', false)
217
+ .option('--evidence <path>', 'Output path for Evidence Pack JSON (Pro)')
218
+ .action(async (options) => {
219
+ try {
220
+ // ─── License validation ───────────────────────────────
221
+ const tier = await (0, validator_js_1.validateLicense)();
222
+ const gate = (0, gate_js_1.getFeatureGate)(tier);
223
+ // Check audit limit
224
+ const auditCheck = (0, usage_js_1.canAudit)(tier);
225
+ if (!auditCheck.allowed) {
226
+ console.error(`Error: ${auditCheck.reason}`);
227
+ process.exit(1);
228
+ }
229
+ // Pro-only features check
230
+ const format = options.format;
231
+ if (options.evidence && !gate.canAuditEvidence) {
232
+ console.error('Error: Evidence Pack is a Pro feature. Upgrade: https://shield.codemeant.dev/#pricing');
233
+ process.exit(1);
234
+ }
235
+ if (format === 'json' && !gate.canAuditFull) {
236
+ console.error('Error: JSON output requires Pro tier. Upgrade: https://shield.codemeant.dev/#pricing');
237
+ process.exit(1);
238
+ }
239
+ // Show tier header
240
+ const tierLabel = tier.isPro ? '\x1b[32mPro\x1b[0m' : 'Free';
241
+ const usage = (await import('./license/usage.js')).getUsageForMonth();
242
+ const maxAudits = tier.isPro ? 20 : 3;
243
+ console.log(`Tier: ${tierLabel} (${usage.auditCount ?? 0}/${maxAudits} audits)`);
244
+ // Run audit
245
+ const config = {
246
+ projectDir: process.cwd(),
247
+ format,
248
+ fix: options.fix,
249
+ evidencePath: options.evidence,
250
+ };
251
+ const result = await (0, engine_js_2.audit)(config, gate);
252
+ // Hash change detection
253
+ const hashChange = (0, hash_detect_js_1.detectHashChange)(config.projectDir ?? process.cwd(), result.settingsHash);
254
+ if (hashChange.hasChanged && format !== 'json') {
255
+ console.log('\x1b[33m\u26A0 Settings have changed since last audit.\x1b[0m');
256
+ }
257
+ // Output
258
+ if (format === 'json') {
259
+ console.log((0, audit_terminal_js_1.formatAuditJson)(result, gate, { fix: options.fix }));
260
+ }
261
+ else {
262
+ console.log((0, audit_terminal_js_1.formatAuditTerminal)(result, gate, { fix: options.fix }));
263
+ }
264
+ // Evidence Pack (Pro only)
265
+ if (options.evidence && gate.canAuditEvidence) {
266
+ const evidencePath = path.resolve(options.evidence);
267
+ const pack = (0, audit_evidence_js_1.generateAuditEvidenceJSON)(result, config);
268
+ (0, audit_evidence_js_1.saveAuditEvidenceJSON)(pack, `${evidencePath}.json`);
269
+ console.log(`Audit evidence saved to: ${evidencePath}.json`);
270
+ }
271
+ // Record the audit AFTER successful completion
272
+ (0, usage_js_1.recordAudit)();
273
+ // Save retention state (expiry + hash tracking)
274
+ const projectDir = config.projectDir ?? process.cwd();
275
+ (0, storage_js_1.writeAuditState)(projectDir, {
276
+ lastAuditAt: result.scannedAt,
277
+ settingsHash: result.settingsHash,
278
+ score: result.score.total,
279
+ grade: result.score.grade,
280
+ findingsCount: result.summary.total,
281
+ criticalCount: result.summary.critical,
282
+ });
283
+ // Exit with code 1 if critical findings
284
+ const hasCritical = result.summary.critical > 0;
285
+ process.exit(hasCritical ? 1 : 0);
286
+ }
287
+ catch (error) {
288
+ if (error instanceof engine_js_2.AuditFailedError) {
289
+ console.error(`Error: ${error.message}`);
290
+ process.exit(1);
291
+ }
292
+ console.error('AUDIT_FAILED:', error instanceof Error ? error.message : String(error));
293
+ process.exit(1);
294
+ }
295
+ });
199
296
  // ─── License commands ─────────────────────────────────────────
200
297
  program
201
298
  .command('activate')
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":"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"}
@@ -9,6 +9,9 @@ import type { TierStatus, FeatureGate } from './types.js';
9
9
  * | cleanBadge | false | true |
10
10
  * | fullFixit | false | true |
11
11
  * | sealUUID | false | true |
12
+ * | auditFull | false | true |
13
+ * | auditHooks | false | true |
14
+ * | auditEvidence | false | true |
12
15
  */
13
16
  export declare function getFeatureGate(tier: TierStatus): FeatureGate;
14
17
  //# sourceMappingURL=gate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/license/gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAoB5D"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/license/gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CA0B5D"}
@@ -11,6 +11,9 @@ exports.getFeatureGate = getFeatureGate;
11
11
  * | cleanBadge | false | true |
12
12
  * | fullFixit | false | true |
13
13
  * | sealUUID | false | true |
14
+ * | auditFull | false | true |
15
+ * | auditHooks | false | true |
16
+ * | auditEvidence | false | true |
14
17
  */
15
18
  function getFeatureGate(tier) {
16
19
  if (tier.isPro) {
@@ -21,6 +24,9 @@ function getFeatureGate(tier) {
21
24
  canSeeCleanBadge: true,
22
25
  canSeeFullFixit: true,
23
26
  canGenerateSealUUID: true,
27
+ canAuditFull: true,
28
+ canAuditHooks: true,
29
+ canAuditEvidence: true,
24
30
  };
25
31
  }
26
32
  return {
@@ -30,6 +36,9 @@ function getFeatureGate(tier) {
30
36
  canSeeCleanBadge: false,
31
37
  canSeeFullFixit: false,
32
38
  canGenerateSealUUID: false,
39
+ canAuditFull: false,
40
+ canAuditHooks: false,
41
+ canAuditEvidence: false,
33
42
  };
34
43
  }
35
44
  //# sourceMappingURL=gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/license/gate.ts"],"names":[],"mappings":";;AAaA,wCAoBC;AA/BD;;;;;;;;;;GAUG;AACH,SAAgB,cAAc,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,IAAI;YACX,mBAAmB,EAAE,IAAI;YACzB,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;YACtB,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;QAC1B,gBAAgB,EAAE,KAAK;QACvB,gBAAgB,EAAE,KAAK;QACvB,eAAe,EAAE,KAAK;QACtB,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/license/gate.ts"],"names":[],"mappings":";;AAgBA,wCA0BC;AAxCD;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,IAAI;YACX,mBAAmB,EAAE,IAAI;YACzB,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;YACtB,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,mBAAmB,EAAE,KAAK;QAC1B,gBAAgB,EAAE,KAAK;QACvB,gBAAgB,EAAE,KAAK;QACvB,eAAe,EAAE,KAAK;QACtB,mBAAmB,EAAE,KAAK;QAC1B,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;QACpB,gBAAgB,EAAE,KAAK;KACxB,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { validateLicense, isValidKeyFormat, isCacheValid, isInGracePeriod } from './validator.js';
2
- export { canScan, recordScan, getCurrentMonthKey, getUsageForMonth } from './usage.js';
2
+ export { canScan, recordScan, canAudit, recordAudit, getCurrentMonthKey, getUsageForMonth } from './usage.js';
3
3
  export { getFeatureGate } from './gate.js';
4
4
  export { activateCommand, deactivateCommand, statusCommand } from './commands.js';
5
5
  export type { TierStatus, FeatureGate, LicenseInfo, LicenseCache, UsageData } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/license/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/license/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.statusCommand = exports.deactivateCommand = exports.activateCommand = exports.getFeatureGate = exports.getUsageForMonth = exports.getCurrentMonthKey = exports.recordScan = exports.canScan = exports.isInGracePeriod = exports.isCacheValid = exports.isValidKeyFormat = exports.validateLicense = void 0;
3
+ exports.statusCommand = exports.deactivateCommand = exports.activateCommand = exports.getFeatureGate = exports.getUsageForMonth = exports.getCurrentMonthKey = exports.recordAudit = exports.canAudit = exports.recordScan = exports.canScan = exports.isInGracePeriod = exports.isCacheValid = exports.isValidKeyFormat = exports.validateLicense = void 0;
4
4
  var validator_js_1 = require("./validator.js");
5
5
  Object.defineProperty(exports, "validateLicense", { enumerable: true, get: function () { return validator_js_1.validateLicense; } });
6
6
  Object.defineProperty(exports, "isValidKeyFormat", { enumerable: true, get: function () { return validator_js_1.isValidKeyFormat; } });
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "isInGracePeriod", { enumerable: true, get: funct
9
9
  var usage_js_1 = require("./usage.js");
10
10
  Object.defineProperty(exports, "canScan", { enumerable: true, get: function () { return usage_js_1.canScan; } });
11
11
  Object.defineProperty(exports, "recordScan", { enumerable: true, get: function () { return usage_js_1.recordScan; } });
12
+ Object.defineProperty(exports, "canAudit", { enumerable: true, get: function () { return usage_js_1.canAudit; } });
13
+ Object.defineProperty(exports, "recordAudit", { enumerable: true, get: function () { return usage_js_1.recordAudit; } });
12
14
  Object.defineProperty(exports, "getCurrentMonthKey", { enumerable: true, get: function () { return usage_js_1.getCurrentMonthKey; } });
13
15
  Object.defineProperty(exports, "getUsageForMonth", { enumerable: true, get: function () { return usage_js_1.getUsageForMonth; } });
14
16
  var gate_js_1 = require("./gate.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/license/index.ts"],"names":[],"mappings":";;;AAAA,+CAAkG;AAAzF,+GAAA,eAAe,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAAE,4GAAA,YAAY,OAAA;AAAE,+GAAA,eAAe,OAAA;AACzE,uCAAuF;AAA9E,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAClE,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,6CAAkF;AAAzE,8GAAA,eAAe,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,4GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/license/index.ts"],"names":[],"mappings":";;;AAAA,+CAAkG;AAAzF,+GAAA,eAAe,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAAE,4GAAA,YAAY,OAAA;AAAE,+GAAA,eAAe,OAAA;AACzE,uCAA8G;AAArG,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AACzF,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,6CAAkF;AAAzE,8GAAA,eAAe,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,4GAAA,aAAa,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/license/storage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIzD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAcpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAIxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAcD;;GAEG;AACH,wBAAgB,aAAa,IAAI,SAAS,CAazC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAIpD"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/license/storage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIzD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAcpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAIxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAgBD;;GAEG;AACH,wBAAgB,aAAa,IAAI,SAAS,CAgBzC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAIpD"}
@@ -105,6 +105,8 @@ function defaultUsage() {
105
105
  monthKey,
106
106
  scanCount: 0,
107
107
  lastScanAt: '',
108
+ auditCount: 0,
109
+ lastAuditAt: '',
108
110
  },
109
111
  };
110
112
  }
@@ -121,6 +123,9 @@ function readUsageFile() {
121
123
  if (!data.usage?.monthKey || typeof data.usage?.scanCount !== 'number') {
122
124
  return defaultUsage();
123
125
  }
126
+ // Backward-compat: fill missing audit fields
127
+ data.usage.auditCount = data.usage.auditCount ?? 0;
128
+ data.usage.lastAuditAt = data.usage.lastAuditAt ?? '';
124
129
  return data;
125
130
  }
126
131
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/license/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/license/storage.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export interface UsageData {
19
19
  monthKey: string;
20
20
  scanCount: number;
21
21
  lastScanAt: string;
22
+ auditCount?: number;
23
+ lastAuditAt?: string;
22
24
  }
23
25
  export interface UsageFile {
24
26
  usage: UsageData;
@@ -38,6 +40,9 @@ export interface FeatureGate {
38
40
  canSeeCleanBadge: boolean;
39
41
  canSeeFullFixit: boolean;
40
42
  canGenerateSealUUID: boolean;
43
+ canAuditFull: boolean;
44
+ canAuditHooks: boolean;
45
+ canAuditEvidence: boolean;
41
46
  }
42
47
  export interface ValidateResponse {
43
48
  valid: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/license/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/license/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -11,6 +11,18 @@ export declare function getUsageForMonth(monthKey?: string): UsageData;
11
11
  * Record a scan. Increments count for current month.
12
12
  */
13
13
  export declare function recordScan(): void;
14
+ /**
15
+ * Check if an audit is allowed based on tier limits.
16
+ * free: 3/month, pro: 20/month
17
+ */
18
+ export declare function canAudit(tier: TierStatus): {
19
+ allowed: boolean;
20
+ reason?: string;
21
+ };
22
+ /**
23
+ * Record an audit. Increments audit count for current month.
24
+ */
25
+ export declare function recordAudit(): void;
14
26
  /**
15
27
  * Check if a scan is allowed based on tier limits.
16
28
  * free: 5/month, pro: 50/month
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/license/usage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAc7D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAWjC;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAY/E"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/license/usage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAoB7D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAajC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBhF;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAalC;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAY/E"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCurrentMonthKey = getCurrentMonthKey;
4
4
  exports.getUsageForMonth = getUsageForMonth;
5
5
  exports.recordScan = recordScan;
6
+ exports.canAudit = canAudit;
7
+ exports.recordAudit = recordAudit;
6
8
  exports.canScan = canScan;
7
9
  const storage_js_1 = require("./storage.js");
8
10
  /**
@@ -24,9 +26,15 @@ function getUsageForMonth(monthKey) {
24
26
  monthKey: key,
25
27
  scanCount: 0,
26
28
  lastScanAt: '',
29
+ auditCount: 0,
30
+ lastAuditAt: '',
27
31
  };
28
32
  }
29
- return file.usage;
33
+ return {
34
+ ...file.usage,
35
+ auditCount: file.usage.auditCount ?? 0,
36
+ lastAuditAt: file.usage.lastAuditAt ?? '',
37
+ };
30
38
  }
31
39
  /**
32
40
  * Record a scan. Increments count for current month.
@@ -39,6 +47,43 @@ function recordScan() {
39
47
  monthKey,
40
48
  scanCount: current.scanCount + 1,
41
49
  lastScanAt: new Date().toISOString(),
50
+ auditCount: current.auditCount ?? 0,
51
+ lastAuditAt: current.lastAuditAt ?? '',
52
+ },
53
+ });
54
+ }
55
+ /**
56
+ * Check if an audit is allowed based on tier limits.
57
+ * free: 3/month, pro: 20/month
58
+ */
59
+ function canAudit(tier) {
60
+ const monthKey = getCurrentMonthKey();
61
+ const usage = getUsageForMonth(monthKey);
62
+ const auditCount = usage.auditCount ?? 0;
63
+ const maxAudits = tier.isPro ? 20 : 3;
64
+ if (auditCount >= maxAudits) {
65
+ return {
66
+ allowed: false,
67
+ reason: `Monthly audit limit reached (${auditCount}/${maxAudits}). ${tier.isPro
68
+ ? 'Your Pro plan allows 20 audits/month. Resets next month.'
69
+ : 'Upgrade to Pro for 20 audits/month: https://shield.codemeant.dev/#pricing'}`,
70
+ };
71
+ }
72
+ return { allowed: true };
73
+ }
74
+ /**
75
+ * Record an audit. Increments audit count for current month.
76
+ */
77
+ function recordAudit() {
78
+ const monthKey = getCurrentMonthKey();
79
+ const current = getUsageForMonth(monthKey);
80
+ (0, storage_js_1.writeUsageFile)({
81
+ usage: {
82
+ monthKey,
83
+ scanCount: current.scanCount,
84
+ lastScanAt: current.lastScanAt,
85
+ auditCount: (current.auditCount ?? 0) + 1,
86
+ lastAuditAt: new Date().toISOString(),
42
87
  },
43
88
  });
44
89
  }
@@ -52,7 +97,7 @@ function canScan(tier) {
52
97
  allowed: false,
53
98
  reason: `Monthly scan limit reached (${tier.maxScans}/${tier.maxScans}). ${tier.isPro
54
99
  ? 'Your Pro plan allows 50 scans/month. Resets next month.'
55
- : 'Upgrade to Pro for 50 scans/month: https://project-shield.dev/pro'}`,
100
+ : 'Upgrade to Pro for 50 scans/month: https://shield.codemeant.dev/#pricing'}`,
56
101
  };
57
102
  }
58
103
  return { allowed: true };
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/license/usage.ts"],"names":[],"mappings":";;AAMA,gDAGC;AAKD,4CAcC;AAKD,gCAWC;AAMD,0BAYC;AA9DD,6CAA6D;AAG7D;;GAEG;AACH,SAAgB,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAiB;IAChD,MAAM,GAAG,GAAG,QAAQ,IAAI,kBAAkB,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAA,0BAAa,GAAE,CAAC;IAE7B,yBAAyB;IACzB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO;YACL,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU;IACxB,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAA,2BAAc,EAAC;QACb,KAAK,EAAE;YACL,QAAQ;YACR,SAAS,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC;YAChC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,IAAgB;IACtC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,+BAA+B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,MACnE,IAAI,CAAC,KAAK;gBACR,CAAC,CAAC,yDAAyD;gBAC3D,CAAC,CAAC,mEACN,EAAE;SACH,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/license/usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { AuditResult, AuditConfig, AuditEvidencePack } from '../types/audit.js';
2
+ /**
3
+ * Generate an AuditEvidencePack JSON object from audit results.
4
+ */
5
+ export declare function generateAuditEvidenceJSON(result: AuditResult, config: AuditConfig): AuditEvidencePack;
6
+ /**
7
+ * Save AuditEvidencePack as JSON file.
8
+ */
9
+ export declare function saveAuditEvidenceJSON(pack: AuditEvidencePack, outputPath: string): void;
10
+ //# sourceMappingURL=audit-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-evidence.d.ts","sourceRoot":"","sources":["../../src/output/audit-evidence.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AASrF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,GAClB,iBAAiB,CA2BnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,EACvB,UAAU,EAAE,MAAM,GACjB,IAAI,CAEN"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ // ─── Audit Evidence Pack (Pro only) ──────────────────────────
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.generateAuditEvidenceJSON = generateAuditEvidenceJSON;
38
+ exports.saveAuditEvidenceJSON = saveAuditEvidenceJSON;
39
+ const fs = __importStar(require("node:fs"));
40
+ const os = __importStar(require("node:os"));
41
+ const audit_fixit_js_1 = require("./audit-fixit.js");
42
+ const DISCLAIMER = 'This audit covers: Claude Code environment configuration, permission settings, and hook commands. ' +
43
+ 'This is NOT a penetration test. Results do not guarantee complete security. ' +
44
+ 'Hook analysis is limited to pattern matching (base64+eval MVP). ' +
45
+ 'Generated by Project Shield v2.0.0.';
46
+ /**
47
+ * Generate an AuditEvidencePack JSON object from audit results.
48
+ */
49
+ function generateAuditEvidenceJSON(result, config) {
50
+ const allFindings = [...result.environment, ...result.hooks];
51
+ const guides = (0, audit_fixit_js_1.getAuditFixitGuides)(allFindings, { isPro: true });
52
+ return {
53
+ version: '2.0.0',
54
+ generatedAt: new Date().toISOString(),
55
+ result,
56
+ config,
57
+ environment: {
58
+ hostname: os.hostname(),
59
+ platform: process.platform,
60
+ nodeVersion: process.version,
61
+ },
62
+ fixitSummary: {
63
+ totalCritical: result.summary.critical,
64
+ totalWarning: result.summary.medium + result.summary.low,
65
+ totalInfo: result.summary.info,
66
+ guidesAvailable: guides.length,
67
+ },
68
+ fixitGuides: (0, audit_fixit_js_1.formatAuditFixitJson)(guides, true),
69
+ integrity: {
70
+ auditHash: result.settingsHash,
71
+ generatorVersion: '2.0.0',
72
+ },
73
+ disclaimer: DISCLAIMER,
74
+ };
75
+ }
76
+ /**
77
+ * Save AuditEvidencePack as JSON file.
78
+ */
79
+ function saveAuditEvidenceJSON(pack, outputPath) {
80
+ fs.writeFileSync(outputPath, JSON.stringify(pack, null, 2), 'utf-8');
81
+ }
82
+ //# sourceMappingURL=audit-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-evidence.js","sourceRoot":"","sources":["../../src/output/audit-evidence.ts"],"names":[],"mappings":";AAAA,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBhE,8DA8BC;AAKD,sDAKC;AAtDD,4CAA8B;AAC9B,4CAA8B;AAE9B,qDAA6E;AAE7E,MAAM,UAAU,GACd,oGAAoG;IACpG,8EAA8E;IAC9E,kEAAkE;IAClE,qCAAqC,CAAC;AAExC;;GAEG;AACH,SAAgB,yBAAyB,CACvC,MAAmB,EACnB,MAAmB;IAEnB,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAA,oCAAmB,EAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjE,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,MAAM;QACN,MAAM;QACN,WAAW,EAAE;YACX,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,OAAO;SAC7B;QACD,YAAY,EAAE;YACZ,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;YACtC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG;YACxD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAC9B,eAAe,EAAE,MAAM,CAAC,MAAM;SAC/B;QACD,WAAW,EAAE,IAAA,qCAAoB,EAAC,MAAM,EAAE,IAAI,CAAC;QAC/C,SAAS,EAAE;YACT,SAAS,EAAE,MAAM,CAAC,YAAY;YAC9B,gBAAgB,EAAE,OAAO;SAC1B;QACD,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,IAAuB,EACvB,UAAkB;IAElB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC"}