codeslick-cli 1.1.0 → 1.1.2

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 CHANGED
@@ -528,7 +528,8 @@ MIT License - see [LICENSE](../../LICENSE) for details.
528
528
 
529
529
  ## Support
530
530
 
531
- - **Documentation**: https://codeslick.dev/docs/cli
531
+ - **Website**: https://codeslick.dev
532
+ - **GitHub**: https://github.com/VitorLourenco/codeslick2
532
533
  - **Issues**: https://github.com/VitorLourenco/codeslick2/issues
533
534
  - **Email**: support@codeslick.dev
534
535
 
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../../../src/commands/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAyBH;;GAEG;AACH,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAwCD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA0L/D"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../../../src/commands/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA0BH;;GAEG;AACH,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAwCD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA0M/D"}
@@ -63,6 +63,7 @@ const chalk_1 = __importDefault(require("chalk"));
63
63
  const local_scanner_1 = require("../scanner/local-scanner");
64
64
  const cli_reporter_1 = require("../reporters/cli-reporter");
65
65
  const config_loader_1 = require("../config/config-loader");
66
+ const telemetry_1 = require("../utils/telemetry");
66
67
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
67
68
  /**
68
69
  * Get list of staged files from git
@@ -252,12 +253,26 @@ async function scanCommand(args) {
252
253
  // Check if results exceed threshold
253
254
  const threshold = scannerConfig.severityThreshold || 'critical';
254
255
  const shouldBlock = (0, local_scanner_1.exceedsThreshold)(results, threshold);
256
+ // Calculate totals for telemetry and display
257
+ const totalCritical = results.reduce((sum, r) => sum + r.critical, 0);
258
+ const totalHigh = results.reduce((sum, r) => sum + r.high, 0);
259
+ const totalMedium = results.reduce((sum, r) => sum + r.medium, 0);
260
+ const totalLow = results.reduce((sum, r) => sum + r.low, 0);
261
+ // Collect unique languages scanned
262
+ const languages = [...new Set(results.map(r => r.language))];
263
+ // Send telemetry (fire-and-forget, won't block exit)
264
+ (0, telemetry_1.trackScan)({
265
+ filesScanned: results.length,
266
+ languages,
267
+ vulnerabilities: {
268
+ critical: totalCritical,
269
+ high: totalHigh,
270
+ medium: totalMedium,
271
+ low: totalLow,
272
+ },
273
+ scanDuration: duration,
274
+ }).catch(() => { }); // Ignore telemetry errors
255
275
  if (shouldBlock) {
256
- // Calculate totals for display
257
- const totalCritical = results.reduce((sum, r) => sum + r.critical, 0);
258
- const totalHigh = results.reduce((sum, r) => sum + r.high, 0);
259
- const totalMedium = results.reduce((sum, r) => sum + r.medium, 0);
260
- const totalLow = results.reduce((sum, r) => sum + r.low, 0);
261
276
  if (!args.json) {
262
277
  (0, cli_reporter_1.printCommitBlocked)(threshold, totalCritical, totalHigh, totalMedium, totalLow);
263
278
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../../src/commands/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../../src/commands/scan.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFH,kCA0MC;AAhSD,iDAAqC;AACrC,+BAAiC;AACjC,+BAA+B;AAC/B,+BAA4B;AAC5B,8CAAsB;AACtB,kDAA0B;AAC1B,4DAA2F;AAC3F,4DAWmC;AACnC,2DAAqD;AACrD,kDAA+C;AAE/C,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAgBlC;;GAEG;AACH,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,iDAAiD,CAAC,CAAC;QACtF,OAAO,MAAM;aACV,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,QAAkB,EAAE,OAAkB;IACtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAA,WAAI,EAAC,OAAO,EAAE;YAChC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE,yCAAyC;SACjE,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,oBAAoB;IACpB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAU,GAAE,CAAC;QAElC,sCAAsC;QACtC,MAAM,aAAa,GAAkB;YACnC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,UAAU;YACjE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK;YAC5C,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;SAC/B,CAAC;QAEF,gCAAgC;QAChC,wDAAwD;QACxD,IAAI,SAAS,GAAa,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,4DAA4D;YAC5D,SAAS,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAEjE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAA,yBAAU,EAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,wDAAwD;YACxD,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrD,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,YAAY;wBACf,OAAO,eAAe,CAAC;oBACzB,KAAK,YAAY;wBACf,OAAO,eAAe,CAAC;oBACzB,KAAK,QAAQ;wBACX,OAAO,SAAS,CAAC;oBACnB,KAAK,MAAM;wBACT,OAAO,WAAW,CAAC;oBACrB;wBACE,OAAO,EAAE,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAEvD,SAAS,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAEtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAA,yBAAU,EAAC,yBAAyB,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,mCAAmC;YACnC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,0BAA0B,GAAC,CAAC;gBACnE,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,OAAQ,CAAC,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,WAAW,CAAC;YAC1B,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,sEAAsE;gBACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;gBACxF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBACpG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBAC7F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACzF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,6BAAc,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAEjC,8BAA8B;YAC9B,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0BAA0B,SAAS,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;gBAC/E,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,CAAC;oBACrG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;gBACvF,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,aAAG,EAAC;YAC/B,IAAI,EAAE,aAAa,SAAS,CAAC,MAAM,WAAW;YAC9C,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAElB,iBAAiB;QACjB,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAS,EAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAE1D,4BAA4B;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,YAAY,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,wEAAwE;QACxE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnE,sDAAsD;QACtD,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAEzG,iBAAiB;QACjB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,+BAA+B;YAC/B,IAAA,+BAAgB,EAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,oBAAoB,GAAG,EAAE,EAAE,CAAC;YAC5D,mEAAmE;YACnE,wDAAwD;YACxD,MAAM,UAAU,GAAG,IAAA,qCAAsB,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC3E,IAAA,gCAAiB,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,iDAAiD;YACjD,IAAA,gCAAiB,EAAC,QAAQ,CAAC,CAAC;YAC5B,IAAA,gCAAiB,EAAC,OAAO,CAAC,CAAC;YAC3B,IAAA,mCAAoB,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,SAAS,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,6BAA6B,CAAC,CAAC,CAAC;gBACzJ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBACzF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBAC3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACjF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC,CAAC;gBACvG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,MAAM,SAAS,GAAG,aAAa,CAAC,iBAAiB,IAAI,UAAU,CAAC;QAChE,MAAM,WAAW,GAAG,IAAA,gCAAgB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEzD,6CAA6C;QAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE5D,mCAAmC;QACnC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE7D,qDAAqD;QACrD,IAAA,qBAAS,EAAC;YACR,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,SAAS;YACT,eAAe,EAAE;gBACf,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,WAAW;gBACnB,GAAG,EAAE,QAAQ;aACd;YACD,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;QAE9C,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,IAAA,iCAAkB,EAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YACjF,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,IAAA,iCAAkB,GAAE,CAAC;YACvB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;QACvC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAA,yBAAU,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAA,yBAAU,EAAC,2BAA2B,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -26,6 +26,7 @@ export interface CodeSlickConfig {
26
26
  autofix: boolean;
27
27
  exclude: string[];
28
28
  languages: ('javascript' | 'typescript' | 'python' | 'java')[];
29
+ telemetry?: boolean;
29
30
  }
30
31
  /**
31
32
  * Default configuration
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../../../src/config/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,CAAC,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;CAChE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,eAe5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAEjE;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoBtF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,eAAe,EAC1B,KAAK,EAAE,OAAO,EACd,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../../../src/config/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,CAAC,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,eAe5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAEjE;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoBtF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,eAAe,EAC1B,KAAK,EAAE,OAAO,EACd,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsDf"}
@@ -138,6 +138,12 @@ async function updateConfig(key, value, cwd = process.cwd()) {
138
138
  }
139
139
  config.languages = value;
140
140
  break;
141
+ case 'telemetry':
142
+ if (typeof value !== 'boolean' && value !== 'true' && value !== 'false') {
143
+ throw new Error(`Invalid telemetry value: ${value}. Must be true or false`);
144
+ }
145
+ config.telemetry = value === true || value === 'true';
146
+ break;
141
147
  default:
142
148
  throw new Error(`Unknown configuration key: ${key}`);
143
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../../src/config/config-loader.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAwCH,sCAEC;AAKD,oCAEC;AAWD,gCAoBC;AAQD,gCAQC;AASD,oCAmDC;AA1JD,0CAAkD;AAClD,+BAA+B;AAC/B,2BAAgC;AAahC;;GAEG;AACU,QAAA,cAAc,GAAoB;IAC7C,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE;QACP,iBAAiB;QACjB,SAAS;QACT,UAAU;QACV,aAAa;QACb,mBAAmB;QACnB,mBAAmB;QACnB,YAAY;QACZ,aAAa;KACd;IACD,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC;CAC1D,CAAC;AAEF;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACvD,OAAO,IAAA,cAAO,EAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACtD,OAAO,IAAA,eAAU,EAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,UAAU,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,8CAA8C;QAC9C,OAAO,sBAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAQ,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,+CAA+C;QAC/C,OAAO;YACL,GAAG,sBAAc;YACjB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAClH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAuB,EACvB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhD,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAChC,GAA0B,EAC1B,KAAc,EACd,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IAErC,mCAAmC;IACnC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,UAAU;YACb,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAe,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,+CAA+C,CAChF,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,KAA+C,CAAC;YAClE,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,yBAAyB,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,gCAAgC,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,MAAM;QAER,KAAK,WAAW;YACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,oBAAoB,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,OAAO,GAAI,KAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3F,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,SAAS,GAAG,KAA4D,CAAC;YAChF,MAAM;QAER;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * CLI Telemetry - Anonymous Usage Tracking
3
+ *
4
+ * Sends anonymous usage statistics to CodeSlick analytics.
5
+ * No code, file paths, or sensitive data is ever sent.
6
+ *
7
+ * Data collected:
8
+ * - Scan count, file count, vulnerability counts
9
+ * - CLI version, languages scanned
10
+ * - Scan duration
11
+ *
12
+ * Users can disable telemetry with: cs config set telemetry false
13
+ */
14
+ interface TelemetryPayload {
15
+ eventType: 'scan' | 'init' | 'fix';
16
+ filesScanned?: number;
17
+ languages?: string[];
18
+ vulnerabilities?: {
19
+ critical: number;
20
+ high: number;
21
+ medium: number;
22
+ low: number;
23
+ };
24
+ scanDuration?: number;
25
+ cliVersion?: string;
26
+ authToken?: string;
27
+ }
28
+ /**
29
+ * Send telemetry data to CodeSlick analytics
30
+ * This is fire-and-forget - errors are silently ignored to not disrupt the CLI
31
+ */
32
+ export declare function sendTelemetry(payload: TelemetryPayload): Promise<void>;
33
+ /**
34
+ * Track a scan event
35
+ */
36
+ export declare function trackScan(data: {
37
+ filesScanned: number;
38
+ languages: string[];
39
+ vulnerabilities: {
40
+ critical: number;
41
+ high: number;
42
+ medium: number;
43
+ low: number;
44
+ };
45
+ scanDuration: number;
46
+ }): Promise<void>;
47
+ /**
48
+ * Track an init event
49
+ */
50
+ export declare function trackInit(): Promise<void>;
51
+ export {};
52
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../../../src/utils/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C5E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhB;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAI/C"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * CLI Telemetry - Anonymous Usage Tracking
4
+ *
5
+ * Sends anonymous usage statistics to CodeSlick analytics.
6
+ * No code, file paths, or sensitive data is ever sent.
7
+ *
8
+ * Data collected:
9
+ * - Scan count, file count, vulnerability counts
10
+ * - CLI version, languages scanned
11
+ * - Scan duration
12
+ *
13
+ * Users can disable telemetry with: cs config set telemetry false
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.sendTelemetry = sendTelemetry;
50
+ exports.trackScan = trackScan;
51
+ exports.trackInit = trackInit;
52
+ const config_loader_1 = require("../config/config-loader");
53
+ const TELEMETRY_URL = 'https://codeslick.dev/api/cli/telemetry';
54
+ const TIMEOUT_MS = 3000; // 3 second timeout - don't slow down the CLI
55
+ /**
56
+ * Send telemetry data to CodeSlick analytics
57
+ * This is fire-and-forget - errors are silently ignored to not disrupt the CLI
58
+ */
59
+ async function sendTelemetry(payload) {
60
+ try {
61
+ // Check if telemetry is disabled
62
+ const config = await (0, config_loader_1.loadConfig)();
63
+ if (config.telemetry === false) {
64
+ return; // Telemetry disabled by user
65
+ }
66
+ // Get CLI version from package.json
67
+ const version = require('../../package.json').version;
68
+ // Get auth token if user is logged in
69
+ let authToken;
70
+ try {
71
+ const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
72
+ const os = await Promise.resolve().then(() => __importStar(require('os')));
73
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
74
+ const tokenPath = path.join(os.homedir(), '.codeslick', 'cli-token');
75
+ authToken = await fs.readFile(tokenPath, 'utf-8').then(t => t.trim()).catch(() => undefined);
76
+ }
77
+ catch {
78
+ // No auth token - that's fine, will track as anonymous
79
+ }
80
+ // Send telemetry with timeout
81
+ const controller = new AbortController();
82
+ const timeoutId = setTimeout(() => controller.abort(), TIMEOUT_MS);
83
+ await fetch(TELEMETRY_URL, {
84
+ method: 'POST',
85
+ headers: {
86
+ 'Content-Type': 'application/json',
87
+ 'User-Agent': `codeslick-cli/${version}`,
88
+ },
89
+ body: JSON.stringify({
90
+ ...payload,
91
+ cliVersion: version,
92
+ authToken,
93
+ }),
94
+ signal: controller.signal,
95
+ });
96
+ clearTimeout(timeoutId);
97
+ }
98
+ catch {
99
+ // Silently ignore telemetry errors - never disrupt the user's workflow
100
+ }
101
+ }
102
+ /**
103
+ * Track a scan event
104
+ */
105
+ async function trackScan(data) {
106
+ await sendTelemetry({
107
+ eventType: 'scan',
108
+ ...data,
109
+ });
110
+ }
111
+ /**
112
+ * Track an init event
113
+ */
114
+ async function trackInit() {
115
+ await sendTelemetry({
116
+ eventType: 'init',
117
+ });
118
+ }
119
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../../src/utils/telemetry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BH,sCA6CC;AAKD,8BAeC;AAKD,8BAIC;AAlGD,2DAAqD;AAErD,MAAM,aAAa,GAAG,yCAAyC,CAAC;AAChE,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,6CAA6C;AAiBtE;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,OAAyB;IAC3D,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAU,GAAE,CAAC;QAClC,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,CAAC,6BAA6B;QACvC,CAAC;QAED,oCAAoC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;QAEtD,sCAAsC;QACtC,IAAI,SAA6B,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;YACvC,MAAM,EAAE,GAAG,wDAAa,IAAI,GAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,wDAAa,MAAM,GAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YACrE,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/F,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;QAED,8BAA8B;QAC9B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;QAEnE,MAAM,KAAK,CAAC,aAAa,EAAE;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,iBAAiB,OAAO,EAAE;aACzC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,OAAO;gBACV,UAAU,EAAE,OAAO;gBACnB,SAAS;aACV,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,SAAS,CAAC,IAU/B;IACC,MAAM,aAAa,CAAC;QAClB,SAAS,EAAE,MAAM;QACjB,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,SAAS;IAC7B,MAAM,aAAa,CAAC;QAClB,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeslick-cli",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "CodeSlick CLI tool for pre-commit security scanning",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -36,6 +36,7 @@ import {
36
36
  printBriefSummary,
37
37
  } from '../reporters/cli-reporter';
38
38
  import { loadConfig } from '../config/config-loader';
39
+ import { trackScan } from '../utils/telemetry';
39
40
 
40
41
  const execAsync = promisify(exec);
41
42
 
@@ -260,13 +261,29 @@ export async function scanCommand(args: ScanArgs): Promise<void> {
260
261
  const threshold = scannerConfig.severityThreshold || 'critical';
261
262
  const shouldBlock = exceedsThreshold(results, threshold);
262
263
 
263
- if (shouldBlock) {
264
- // Calculate totals for display
265
- const totalCritical = results.reduce((sum, r) => sum + r.critical, 0);
266
- const totalHigh = results.reduce((sum, r) => sum + r.high, 0);
267
- const totalMedium = results.reduce((sum, r) => sum + r.medium, 0);
268
- const totalLow = results.reduce((sum, r) => sum + r.low, 0);
264
+ // Calculate totals for telemetry and display
265
+ const totalCritical = results.reduce((sum, r) => sum + r.critical, 0);
266
+ const totalHigh = results.reduce((sum, r) => sum + r.high, 0);
267
+ const totalMedium = results.reduce((sum, r) => sum + r.medium, 0);
268
+ const totalLow = results.reduce((sum, r) => sum + r.low, 0);
269
+
270
+ // Collect unique languages scanned
271
+ const languages = [...new Set(results.map(r => r.language))];
272
+
273
+ // Send telemetry (fire-and-forget, won't block exit)
274
+ trackScan({
275
+ filesScanned: results.length,
276
+ languages,
277
+ vulnerabilities: {
278
+ critical: totalCritical,
279
+ high: totalHigh,
280
+ medium: totalMedium,
281
+ low: totalLow,
282
+ },
283
+ scanDuration: duration,
284
+ }).catch(() => {}); // Ignore telemetry errors
269
285
 
286
+ if (shouldBlock) {
270
287
  if (!args.json) {
271
288
  printCommitBlocked(threshold, totalCritical, totalHigh, totalMedium, totalLow);
272
289
  }
@@ -31,6 +31,7 @@ export interface CodeSlickConfig {
31
31
  autofix: boolean;
32
32
  exclude: string[];
33
33
  languages: ('javascript' | 'typescript' | 'python' | 'java')[];
34
+ telemetry?: boolean; // Enable/disable anonymous usage tracking (default: true)
34
35
  }
35
36
 
36
37
  /**
@@ -167,6 +168,13 @@ export async function updateConfig(
167
168
  config.languages = value as ('javascript' | 'typescript' | 'python' | 'java')[];
168
169
  break;
169
170
 
171
+ case 'telemetry':
172
+ if (typeof value !== 'boolean' && value !== 'true' && value !== 'false') {
173
+ throw new Error(`Invalid telemetry value: ${value}. Must be true or false`);
174
+ }
175
+ config.telemetry = value === true || value === 'true';
176
+ break;
177
+
170
178
  default:
171
179
  throw new Error(`Unknown configuration key: ${key}`);
172
180
  }
@@ -0,0 +1,113 @@
1
+ /**
2
+ * CLI Telemetry - Anonymous Usage Tracking
3
+ *
4
+ * Sends anonymous usage statistics to CodeSlick analytics.
5
+ * No code, file paths, or sensitive data is ever sent.
6
+ *
7
+ * Data collected:
8
+ * - Scan count, file count, vulnerability counts
9
+ * - CLI version, languages scanned
10
+ * - Scan duration
11
+ *
12
+ * Users can disable telemetry with: cs config set telemetry false
13
+ */
14
+
15
+ import { loadConfig } from '../config/config-loader';
16
+
17
+ const TELEMETRY_URL = 'https://codeslick.dev/api/cli/telemetry';
18
+ const TIMEOUT_MS = 3000; // 3 second timeout - don't slow down the CLI
19
+
20
+ interface TelemetryPayload {
21
+ eventType: 'scan' | 'init' | 'fix';
22
+ filesScanned?: number;
23
+ languages?: string[];
24
+ vulnerabilities?: {
25
+ critical: number;
26
+ high: number;
27
+ medium: number;
28
+ low: number;
29
+ };
30
+ scanDuration?: number;
31
+ cliVersion?: string;
32
+ authToken?: string;
33
+ }
34
+
35
+ /**
36
+ * Send telemetry data to CodeSlick analytics
37
+ * This is fire-and-forget - errors are silently ignored to not disrupt the CLI
38
+ */
39
+ export async function sendTelemetry(payload: TelemetryPayload): Promise<void> {
40
+ try {
41
+ // Check if telemetry is disabled
42
+ const config = await loadConfig();
43
+ if (config.telemetry === false) {
44
+ return; // Telemetry disabled by user
45
+ }
46
+
47
+ // Get CLI version from package.json
48
+ const version = require('../../package.json').version;
49
+
50
+ // Get auth token if user is logged in
51
+ let authToken: string | undefined;
52
+ try {
53
+ const fs = await import('fs/promises');
54
+ const os = await import('os');
55
+ const path = await import('path');
56
+ const tokenPath = path.join(os.homedir(), '.codeslick', 'cli-token');
57
+ authToken = await fs.readFile(tokenPath, 'utf-8').then(t => t.trim()).catch(() => undefined);
58
+ } catch {
59
+ // No auth token - that's fine, will track as anonymous
60
+ }
61
+
62
+ // Send telemetry with timeout
63
+ const controller = new AbortController();
64
+ const timeoutId = setTimeout(() => controller.abort(), TIMEOUT_MS);
65
+
66
+ await fetch(TELEMETRY_URL, {
67
+ method: 'POST',
68
+ headers: {
69
+ 'Content-Type': 'application/json',
70
+ 'User-Agent': `codeslick-cli/${version}`,
71
+ },
72
+ body: JSON.stringify({
73
+ ...payload,
74
+ cliVersion: version,
75
+ authToken,
76
+ }),
77
+ signal: controller.signal,
78
+ });
79
+
80
+ clearTimeout(timeoutId);
81
+ } catch {
82
+ // Silently ignore telemetry errors - never disrupt the user's workflow
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Track a scan event
88
+ */
89
+ export async function trackScan(data: {
90
+ filesScanned: number;
91
+ languages: string[];
92
+ vulnerabilities: {
93
+ critical: number;
94
+ high: number;
95
+ medium: number;
96
+ low: number;
97
+ };
98
+ scanDuration: number;
99
+ }): Promise<void> {
100
+ await sendTelemetry({
101
+ eventType: 'scan',
102
+ ...data,
103
+ });
104
+ }
105
+
106
+ /**
107
+ * Track an init event
108
+ */
109
+ export async function trackInit(): Promise<void> {
110
+ await sendTelemetry({
111
+ eventType: 'init',
112
+ });
113
+ }