@vaultcompass/vault-guard-core 1.0.0 → 1.0.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/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export { fingerprintForMatch } from './match-fingerprint';
9
9
  export * from './scan-output';
10
10
  export * from './diagnostics';
11
11
  export { shannonEntropy, DEFAULT_ENTROPY_THRESHOLD } from './utils/entropy';
12
- export { isPlaceholderSecret, isNonSecretConnectionString, isSampleJwt } from './utils/placeholder';
12
+ export { isPlaceholderSecret, isNonSecretConnectionString, isSampleJwt, isRedactedTemplateValue, isEnvVarNameToken } from './utils/placeholder';
13
13
  export { getGitStagedFilePaths, isInsideGitWorkTree } from './utils/git-utils';
14
14
  export { validateRegexSafety, validateRegexLength, mapRegexSafetyReasonToDiagnosticCode, mapPatternRejectionReasonToDiagnosticCode, REGEX_REASON_TO_DIAGNOSTIC_CODE, REGEX_MAX_LENGTH, REGEX_MAX_QUANTIFIERS, } from './utils/regex-safety';
15
15
  export { scanTextFileAsync, scanTextFileSync } from './utils/scan-file';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oCAAoC,EACpC,yCAAyC,EACzC,+BAA+B,EAC/B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,WAAW,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChJ,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oCAAoC,EACpC,yCAAyC,EACzC,+BAA+B,EAC/B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.isTestFilePath = exports.applyPathAwareSeverity = exports.scanTextFileSync = exports.scanTextFileAsync = exports.REGEX_MAX_QUANTIFIERS = exports.REGEX_MAX_LENGTH = exports.REGEX_REASON_TO_DIAGNOSTIC_CODE = exports.mapPatternRejectionReasonToDiagnosticCode = exports.mapRegexSafetyReasonToDiagnosticCode = exports.validateRegexLength = exports.validateRegexSafety = exports.isInsideGitWorkTree = exports.getGitStagedFilePaths = exports.isSampleJwt = exports.isNonSecretConnectionString = exports.isPlaceholderSecret = exports.DEFAULT_ENTROPY_THRESHOLD = exports.shannonEntropy = exports.fingerprintForMatch = void 0;
17
+ exports.isTestFilePath = exports.applyPathAwareSeverity = exports.scanTextFileSync = exports.scanTextFileAsync = exports.REGEX_MAX_QUANTIFIERS = exports.REGEX_MAX_LENGTH = exports.REGEX_REASON_TO_DIAGNOSTIC_CODE = exports.mapPatternRejectionReasonToDiagnosticCode = exports.mapRegexSafetyReasonToDiagnosticCode = exports.validateRegexLength = exports.validateRegexSafety = exports.isInsideGitWorkTree = exports.getGitStagedFilePaths = exports.isEnvVarNameToken = exports.isRedactedTemplateValue = exports.isSampleJwt = exports.isNonSecretConnectionString = exports.isPlaceholderSecret = exports.DEFAULT_ENTROPY_THRESHOLD = exports.shannonEntropy = exports.fingerprintForMatch = void 0;
18
18
  __exportStar(require("./types"), exports);
19
19
  __exportStar(require("./errors"), exports);
20
20
  __exportStar(require("./scanners"), exports);
@@ -33,6 +33,8 @@ var placeholder_1 = require("./utils/placeholder");
33
33
  Object.defineProperty(exports, "isPlaceholderSecret", { enumerable: true, get: function () { return placeholder_1.isPlaceholderSecret; } });
34
34
  Object.defineProperty(exports, "isNonSecretConnectionString", { enumerable: true, get: function () { return placeholder_1.isNonSecretConnectionString; } });
35
35
  Object.defineProperty(exports, "isSampleJwt", { enumerable: true, get: function () { return placeholder_1.isSampleJwt; } });
36
+ Object.defineProperty(exports, "isRedactedTemplateValue", { enumerable: true, get: function () { return placeholder_1.isRedactedTemplateValue; } });
37
+ Object.defineProperty(exports, "isEnvVarNameToken", { enumerable: true, get: function () { return placeholder_1.isEnvVarNameToken; } });
36
38
  var git_utils_1 = require("./utils/git-utils");
37
39
  Object.defineProperty(exports, "getGitStagedFilePaths", { enumerable: true, get: function () { return git_utils_1.getGitStagedFilePaths; } });
38
40
  Object.defineProperty(exports, "isInsideGitWorkTree", { enumerable: true, get: function () { return git_utils_1.isInsideGitWorkTree; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,qDAAmC;AACnC,2CAAyB;AACzB,oDAAkC;AAClC,6CAA2B;AAC3B,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,2CAA4E;AAAnE,yGAAA,cAAc,OAAA;AAAE,oHAAA,yBAAyB,OAAA;AAClD,mDAAoG;AAA3F,kHAAA,mBAAmB,OAAA;AAAE,0HAAA,2BAA2B,OAAA;AAAE,0GAAA,WAAW,OAAA;AACtE,+CAA+E;AAAtE,kHAAA,qBAAqB,OAAA;AAAE,gHAAA,mBAAmB,OAAA;AACnD,qDAQ8B;AAP5B,mHAAA,mBAAmB,OAAA;AACnB,mHAAA,mBAAmB,OAAA;AACnB,oIAAA,oCAAoC,OAAA;AACpC,yIAAA,yCAAyC,OAAA;AACzC,+HAAA,+BAA+B,OAAA;AAC/B,gHAAA,gBAAgB,OAAA;AAChB,qHAAA,qBAAqB,OAAA;AAGvB,+CAAwE;AAA/D,8GAAA,iBAAiB,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAC5C,uDAA+E;AAAtE,uHAAA,sBAAsB,OAAA;AAAE,+GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,qDAAmC;AACnC,2CAAyB;AACzB,oDAAkC;AAClC,6CAA2B;AAC3B,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,2CAA4E;AAAnE,yGAAA,cAAc,OAAA;AAAE,oHAAA,yBAAyB,OAAA;AAClD,mDAAgJ;AAAvI,kHAAA,mBAAmB,OAAA;AAAE,0HAAA,2BAA2B,OAAA;AAAE,0GAAA,WAAW,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAClH,+CAA+E;AAAtE,kHAAA,qBAAqB,OAAA;AAAE,gHAAA,mBAAmB,OAAA;AACnD,qDAQ8B;AAP5B,mHAAA,mBAAmB,OAAA;AACnB,mHAAA,mBAAmB,OAAA;AACnB,oIAAA,oCAAoC,OAAA;AACpC,yIAAA,yCAAyC,OAAA;AACzC,+HAAA,+BAA+B,OAAA;AAC/B,gHAAA,gBAAgB,OAAA;AAChB,qHAAA,qBAAqB,OAAA;AAGvB,+CAAwE;AAA/D,8GAAA,iBAAiB,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAC5C,uDAA+E;AAAtE,uHAAA,sBAAsB,OAAA;AAAE,+GAAA,cAAc,OAAA"}
@@ -39,11 +39,16 @@ export declare class SecretScanner {
39
39
  * Scan arbitrary UTF-8 text (editor buffer, pasted snippet, MCP payload).
40
40
  * Line numbers and byte offsets are relative to this string.
41
41
  *
42
+ * Pass `opts.filePath` when the content comes from a file on disk so
43
+ * documentation-site suppressions (Algolia search keys, etc.) can apply.
44
+ *
42
45
  * Each call uses fresh `RegExp` instances so overlapping `scanContent` work
43
46
  * (e.g. after an `await` in a concurrent worker pool) cannot corrupt
44
47
  * `lastIndex` on shared patterns.
45
48
  */
46
- scanContent(content: string): SecretMatch[];
49
+ scanContent(content: string, opts?: {
50
+ filePath?: string;
51
+ }): SecretMatch[];
47
52
  /**
48
53
  * Merge matches produced from chunked reads (e.g. line-by-line streaming)
49
54
  * using the same overlap / severity rules as a full-file scan.
@@ -56,6 +61,8 @@ export declare class SecretScanner {
56
61
  private buildLineIndex;
57
62
  /** Binary-search the line index to return a 1-based line number. */
58
63
  private lineFromIndex;
64
+ /** Return the full text of a 1-based line number (without trailing newline). */
65
+ private lineContentAt;
59
66
  /**
60
67
  * Parse inline ignore directives from file content.
61
68
  *
@@ -1 +1 @@
1
- {"version":3,"file":"secret-scanner.d.ts","sourceRoot":"","sources":["../../src/scanners/secret-scanner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAoI7C;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0DAA0D;AAC1D,wBAAgB,2BAA2B,IAAI,sBAAsB,EAAE,CAQtE;AAgBD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,MAAM,CAAC,EAAE,gBAAgB;IA4ErC;;;;;;OAMG;IACH,QAAQ,CAAC,sBAAsB,EAAE,KAAK,CAAC;QACrC,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAM;IAER,8FAA8F;IAC9F,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IASrC;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAkF3C;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IAQ1D;;;OAGG;IACH,OAAO,CAAC,cAAc;IAQtB,oEAAoE;IACpE,OAAO,CAAC,aAAa;IAWrB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IA4C1B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,SAAS;CAQlB"}
1
+ {"version":3,"file":"secret-scanner.d.ts","sourceRoot":"","sources":["../../src/scanners/secret-scanner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAqI7C;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0DAA0D;AAC1D,wBAAgB,2BAA2B,IAAI,sBAAsB,EAAE,CAQtE;AAgBD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,MAAM,CAAC,EAAE,gBAAgB;IA4ErC;;;;;;OAMG;IACH,QAAQ,CAAC,sBAAsB,EAAE,KAAK,CAAC;QACrC,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAM;IAER,8FAA8F;IAC9F,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IASrC;;;;;;;;;;OAUG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IA0GzE;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IAQ1D;;;OAGG;IACH,OAAO,CAAC,cAAc;IAQtB,oEAAoE;IACpE,OAAO,CAAC,aAAa;IAWrB,gFAAgF;IAChF,OAAO,CAAC,aAAa;IAMrB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IA4C1B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,SAAS;CAQlB"}
@@ -9,6 +9,7 @@ const fs_1 = __importDefault(require("fs"));
9
9
  const entropy_1 = require("../utils/entropy");
10
10
  const placeholder_1 = require("../utils/placeholder");
11
11
  const path_severity_1 = require("../utils/path-severity");
12
+ const doc_context_1 = require("../utils/doc-context");
12
13
  const regex_safety_1 = require("../utils/regex-safety");
13
14
  /**
14
15
  * Vendor-specific patterns anchored to known prefixes / structures.
@@ -206,17 +207,20 @@ class SecretScanner {
206
207
  // Path-aware severity is applied here (not in scanContent) because it needs
207
208
  // the file path. scanContent callers that know the path (scanTextFile*)
208
209
  // apply it themselves, so this does not double-apply.
209
- return (0, path_severity_1.applyPathAwareSeverity)(this.scanContent(content), filePath);
210
+ return (0, path_severity_1.applyPathAwareSeverity)(this.scanContent(content, { filePath }), filePath);
210
211
  }
211
212
  /**
212
213
  * Scan arbitrary UTF-8 text (editor buffer, pasted snippet, MCP payload).
213
214
  * Line numbers and byte offsets are relative to this string.
214
215
  *
216
+ * Pass `opts.filePath` when the content comes from a file on disk so
217
+ * documentation-site suppressions (Algolia search keys, etc.) can apply.
218
+ *
215
219
  * Each call uses fresh `RegExp` instances so overlapping `scanContent` work
216
220
  * (e.g. after an `await` in a concurrent worker pool) cannot corrupt
217
221
  * `lastIndex` on shared patterns.
218
222
  */
219
- scanContent(content) {
223
+ scanContent(content, opts) {
220
224
  const lineIndex = this.buildLineIndex(content);
221
225
  const ignoredLines = this.parseIgnoreDirectives(content, lineIndex);
222
226
  const raw = [];
@@ -246,6 +250,17 @@ class SecretScanner {
246
250
  if ((0, placeholder_1.isPlaceholderSecret)(rawValue, { aggressive: aggressivePlaceholder === true })) {
247
251
  continue;
248
252
  }
253
+ if ((0, placeholder_1.isRedactedTemplateValue)(rawValue)) {
254
+ continue;
255
+ }
256
+ if (GENERIC_ASSIGNMENT_IDS.has(type) && (0, placeholder_1.isEnvVarNameToken)(rawValue)) {
257
+ continue;
258
+ }
259
+ if (GENERIC_ASSIGNMENT_IDS.has(type) &&
260
+ opts?.filePath?.endsWith('.py') &&
261
+ (0, doc_context_1.isInsidePythonTripleQuoted)(content, match.index)) {
262
+ continue;
263
+ }
249
264
  // Suppress local/dev/example/placeholder connection strings — the
250
265
  // dominant FP source on real repos (docker-compose, `.env.example`,
251
266
  // test fixtures all carry `postgres://user:pass@localhost/db`).
@@ -269,6 +284,11 @@ class SecretScanner {
269
284
  continue;
270
285
  }
271
286
  const line = this.lineFromIndex(lineIndex, match.index);
287
+ const lineContent = this.lineContentAt(content, lineIndex, line);
288
+ if (opts?.filePath &&
289
+ (0, doc_context_1.shouldSuppressDocContextMatch)(type, opts.filePath, rawValue, fullMatch, lineContent)) {
290
+ continue;
291
+ }
272
292
  if (ignoredLines.has(line))
273
293
  continue;
274
294
  raw.push({
@@ -318,6 +338,12 @@ class SecretScanner {
318
338
  }
319
339
  return lo; // 1-based
320
340
  }
341
+ /** Return the full text of a 1-based line number (without trailing newline). */
342
+ lineContentAt(content, lineIndex, lineNum) {
343
+ const start = lineIndex[lineNum - 1] ?? 0;
344
+ const end = lineNum < lineIndex.length ? lineIndex[lineNum] - 1 : content.length;
345
+ return content.slice(start, end);
346
+ }
321
347
  /**
322
348
  * Parse inline ignore directives from file content.
323
349
  *
@@ -1 +1 @@
1
- {"version":3,"file":"secret-scanner.js","sourceRoot":"","sources":["../../src/scanners/secret-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-scanner.js","sourceRoot":"","sources":["../../src/scanners/secret-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Return `true` when `filePath` lives in a documentation or doc-site tree
3
+ * (e.g. `docs/extra/algolia.js`, `website/docusaurus.config.js`, `README.md`,
4
+ * `docs/tutorial/foo/index.md`, `CLAUDE.md`).
5
+ */
6
+ export declare function isDocumentationPath(filePath: string): boolean;
7
+ /** Algolia search-only keys are 32-char hex strings shipped in public doc frontends. */
8
+ export declare function isAlgoliaSearchOnlyKey(value: string): boolean;
9
+ /**
10
+ * Return `true` when `byteOffset` falls inside a Python triple-quoted string
11
+ * region (`"""…"""` or `'''…'''`, optional `r` prefix). Used to skip generic
12
+ * assignment patterns inside module docstring examples (e.g. Ansible `EXAMPLES`).
13
+ */
14
+ export declare function isInsidePythonTripleQuoted(content: string, byteOffset: number): boolean;
15
+ /**
16
+ * Suppress low-precision generic pattern matches that are expected in public
17
+ * documentation (Algolia search keys, tutorial placeholders, etc.).
18
+ */
19
+ export declare function shouldSuppressDocContextMatch(patternId: string, filePath: string, rawValue: string, fullMatch: string, lineContent: string): boolean;
20
+ //# sourceMappingURL=doc-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-context.d.ts","sourceRoot":"","sources":["../../src/utils/doc-context.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAW7D;AAmBD,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAyBvF;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAiBT"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isDocumentationPath = isDocumentationPath;
7
+ exports.isAlgoliaSearchOnlyKey = isAlgoliaSearchOnlyKey;
8
+ exports.isInsidePythonTripleQuoted = isInsidePythonTripleQuoted;
9
+ exports.shouldSuppressDocContextMatch = shouldSuppressDocContextMatch;
10
+ const path_1 = __importDefault(require("path"));
11
+ const placeholder_1 = require("./placeholder");
12
+ const path_parts_1 = require("./path-parts");
13
+ /** Directory segments that indicate static documentation / marketing sites. */
14
+ const DOC_SITE_SEGMENTS = new Set(['docs', 'doc', 'website']);
15
+ /** Config files that routinely embed public search-only API keys. */
16
+ const DOC_CONFIG_BASENAMES = new Set(['algolia.js', 'docusaurus.config.js']);
17
+ /** Markdown extensions (any `.md` / `.mdx` file is treated as documentation). */
18
+ const DOC_MARKDOWN_NAME = /\.(md|mdx)$/i;
19
+ /**
20
+ * Return `true` when `filePath` lives in a documentation or doc-site tree
21
+ * (e.g. `docs/extra/algolia.js`, `website/docusaurus.config.js`, `README.md`,
22
+ * `docs/tutorial/foo/index.md`, `CLAUDE.md`).
23
+ */
24
+ function isDocumentationPath(filePath) {
25
+ const parts = (0, path_parts_1.splitPathParts)(filePath);
26
+ if (parts.some(p => DOC_SITE_SEGMENTS.has(p.toLowerCase())))
27
+ return true;
28
+ const base = path_1.default.basename(filePath);
29
+ const baseLower = base.toLowerCase();
30
+ if (DOC_CONFIG_BASENAMES.has(baseLower))
31
+ return true;
32
+ if (DOC_MARKDOWN_NAME.test(base))
33
+ return true;
34
+ return false;
35
+ }
36
+ /** Placeholder shapes like `your_posthog_api_key` in docs (no regex; bounded scan). */
37
+ function isYourUnderscoreKeyPlaceholder(value) {
38
+ const MAX = 256;
39
+ if (value.length > MAX || value.length < 10)
40
+ return false;
41
+ const lower = value.toLowerCase();
42
+ if (!lower.startsWith('your_') || !lower.endsWith('_key'))
43
+ return false;
44
+ const mid = lower.slice(5, -4);
45
+ if (!mid.length)
46
+ return false;
47
+ for (let i = 0; i < mid.length; i++) {
48
+ const c = mid.charCodeAt(i);
49
+ const isDigit = c >= 48 && c <= 57;
50
+ const isLower = c >= 97 && c <= 122;
51
+ if (!isDigit && !isLower && c !== 95)
52
+ return false;
53
+ }
54
+ return true;
55
+ }
56
+ /** Algolia search-only keys are 32-char hex strings shipped in public doc frontends. */
57
+ function isAlgoliaSearchOnlyKey(value) {
58
+ return /^[a-f0-9]{32}$/i.test(value);
59
+ }
60
+ /**
61
+ * Return `true` when `byteOffset` falls inside a Python triple-quoted string
62
+ * region (`"""…"""` or `'''…'''`, optional `r` prefix). Used to skip generic
63
+ * assignment patterns inside module docstring examples (e.g. Ansible `EXAMPLES`).
64
+ */
65
+ function isInsidePythonTripleQuoted(content, byteOffset) {
66
+ const len = content.length;
67
+ let i = 0;
68
+ while (i < len - 2) {
69
+ let quote = '';
70
+ if (content.startsWith('"""', i) || content.startsWith("'''", i)) {
71
+ quote = content.slice(i, i + 3);
72
+ }
73
+ else if ((content[i] === 'r' || content[i] === 'R') &&
74
+ (content.startsWith('"""', i + 1) || content.startsWith("'''", i + 1))) {
75
+ quote = content.slice(i + 1, i + 4);
76
+ i += 1;
77
+ }
78
+ if (quote) {
79
+ const start = i + 3;
80
+ const close = content.indexOf(quote, start);
81
+ if (close === -1)
82
+ return false;
83
+ if (byteOffset >= start && byteOffset < close)
84
+ return true;
85
+ i = close + 3;
86
+ continue;
87
+ }
88
+ i++;
89
+ }
90
+ return false;
91
+ }
92
+ /**
93
+ * Suppress low-precision generic pattern matches that are expected in public
94
+ * documentation (Algolia search keys, tutorial placeholders, etc.).
95
+ */
96
+ function shouldSuppressDocContextMatch(patternId, filePath, rawValue, fullMatch, lineContent) {
97
+ if (!isDocumentationPath(filePath))
98
+ return false;
99
+ if ((0, placeholder_1.isRedactedTemplateValue)(rawValue))
100
+ return true;
101
+ if (patternId === 'api-key-generic') {
102
+ const line = lineContent.toLowerCase();
103
+ if (isAlgoliaSearchOnlyKey(rawValue))
104
+ return true;
105
+ if (line.includes('algolia') || line.includes('appid'))
106
+ return true;
107
+ if (/YOUR[_-]?API[_-]?KEY/i.test(fullMatch))
108
+ return true;
109
+ if (/insert[_-]?your/i.test(rawValue))
110
+ return true;
111
+ if (isYourUnderscoreKeyPlaceholder(rawValue))
112
+ return true;
113
+ }
114
+ if (patternId === 'password-in-code' && /MySekret/i.test(rawValue))
115
+ return true;
116
+ return false;
117
+ }
118
+ //# sourceMappingURL=doc-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-context.js","sourceRoot":"","sources":["../../src/utils/doc-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Pattern IDs downgraded to `low` in test/fixture/documentation paths (not suppressed).
3
+ */
4
+ export declare const LOW_PRECISION_PATH_DOWNGRADE_IDS: Set<string>;
5
+ /**
6
+ * Vendor-anchored patterns downgraded to `low` in documentation paths only.
7
+ */
8
+ export declare const DOCS_VENDOR_DOWNGRADE_IDS: Set<string>;
9
+ //# sourceMappingURL=path-downgrade-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-downgrade-ids.d.ts","sourceRoot":"","sources":["../../src/utils/path-downgrade-ids.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gCAAgC,aAW3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB,aAcpC,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DOCS_VENDOR_DOWNGRADE_IDS = exports.LOW_PRECISION_PATH_DOWNGRADE_IDS = void 0;
4
+ /**
5
+ * Pattern IDs downgraded to `low` in test/fixture/documentation paths (not suppressed).
6
+ */
7
+ exports.LOW_PRECISION_PATH_DOWNGRADE_IDS = new Set([
8
+ 'password-in-code',
9
+ 'api-key-generic',
10
+ 'secret-generic',
11
+ 'bearer-token',
12
+ 'postgresql-url',
13
+ 'mysql-url',
14
+ 'mongodb-url',
15
+ 'redis-url',
16
+ 'ssh-private-key',
17
+ 'jwt-token',
18
+ ]);
19
+ /**
20
+ * Vendor-anchored patterns downgraded to `low` in documentation paths only.
21
+ */
22
+ exports.DOCS_VENDOR_DOWNGRADE_IDS = new Set([
23
+ 'anthropic',
24
+ 'openai',
25
+ 'openai-project',
26
+ 'stripe',
27
+ 'stripe-test',
28
+ 'aws-access',
29
+ 'gcp-api-key',
30
+ 'gcp-oauth',
31
+ 'resend-api',
32
+ 'github-token',
33
+ 'sendgrid-api',
34
+ 'slack-webhook',
35
+ 'slack-token',
36
+ ]);
37
+ //# sourceMappingURL=path-downgrade-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-downgrade-ids.js","sourceRoot":"","sources":["../../src/utils/path-downgrade-ids.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,gCAAgC,GAAG,IAAI,GAAG,CAAC;IACtD,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,WAAW;IACX,iBAAiB;IACjB,WAAW;CACZ,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,yBAAyB,GAAG,IAAI,GAAG,CAAC;IAC/C,WAAW;IACX,QAAQ;IACR,gBAAgB;IAChB,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,aAAa;IACb,WAAW;IACX,YAAY;IACZ,cAAc;IACd,cAAc;IACd,eAAe;IACf,aAAa;CACd,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Split a file path into directory/file segments (handles mixed `/` and platform sep).
3
+ */
4
+ export declare function splitPathParts(filePath: string): string[];
5
+ //# sourceMappingURL=path-parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-parts.d.ts","sourceRoot":"","sources":["../../src/utils/path-parts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzD"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitPathParts = splitPathParts;
4
+ /**
5
+ * Split a file path into directory/file segments (handles mixed `/` and platform sep).
6
+ */
7
+ function splitPathParts(filePath) {
8
+ return filePath.split(/[/\\]/).filter(Boolean);
9
+ }
10
+ //# sourceMappingURL=path-parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-parts.js","sourceRoot":"","sources":["../../src/utils/path-parts.ts"],"names":[],"mappings":";;AAGA,wCAEC;AALD;;GAEG;AACH,SAAgB,cAAc,CAAC,QAAgB;IAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC"}
@@ -3,15 +3,5 @@ import type { SecretMatch } from '../types';
3
3
  * Return `true` when `filePath` looks like a test or fixture file.
4
4
  */
5
5
  export declare function isTestFilePath(filePath: string): boolean;
6
- /**
7
- * Downgrade low-precision generic pattern findings to `'low'` severity when
8
- * they appear inside a test / fixture file.
9
- *
10
- * Rationale: password assignments, bearer tokens, and generic api-key patterns
11
- * are common in test scaffolding (`const password = 'Admin1234!'`) and are
12
- * rarely real leaked credentials in that context. Vendor-anchored patterns
13
- * (aws-access, anthropic, stripe, …) are unaffected — a real key in a test
14
- * file is still worth a `critical` alert.
15
- */
16
6
  export declare function applyPathAwareSeverity(matches: SecretMatch[], filePath: string): SecretMatch[];
17
7
  //# sourceMappingURL=path-severity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-severity.d.ts","sourceRoot":"","sources":["../../src/utils/path-severity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA2D5C;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EAAE,EACtB,QAAQ,EAAE,MAAM,GACf,WAAW,EAAE,CASf"}
1
+ {"version":3,"file":"path-severity.d.ts","sourceRoot":"","sources":["../../src/utils/path-severity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA8F5C;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CASxD;AAgBD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EAAE,EACtB,QAAQ,EAAE,MAAM,GACf,WAAW,EAAE,CAiBf"}
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.isTestFilePath = isTestFilePath;
7
7
  exports.applyPathAwareSeverity = applyPathAwareSeverity;
8
8
  const path_1 = __importDefault(require("path"));
9
+ const doc_context_1 = require("./doc-context");
10
+ const path_parts_1 = require("./path-parts");
11
+ const path_downgrade_ids_1 = require("./path-downgrade-ids");
9
12
  /**
10
13
  * Pattern IDs whose severity is downgraded to `low` in obvious test / fixture
11
14
  * paths. Two groups:
@@ -18,24 +21,12 @@ const path_1 = __importDefault(require("path"));
18
21
  * keeps them visible at `low` without drowning real criticals.
19
22
  *
20
23
  * Hard vendor-anchored API-key patterns (anthropic, aws-access, stripe,
21
- * github-token, …) are intentionally **absent**: a real provider key is a real
22
- * key even in a test file, and those patterns have near-zero false positives.
24
+ * github-token, …) are intentionally **absent** from test-path downgrades: a real
25
+ * provider key is a real key even in a test file, and those patterns have
26
+ * near-zero false positives. Documentation paths additionally downgrade a small
27
+ * vendor allowlist via {@link DOCS_VENDOR_DOWNGRADE_IDS}.
23
28
  */
24
- const TEST_PATH_DOWNGRADE_IDS = new Set([
25
- // generic / assignment
26
- 'password-in-code',
27
- 'api-key-generic',
28
- 'secret-generic',
29
- 'bearer-token',
30
- // connection strings
31
- 'postgresql-url',
32
- 'mysql-url',
33
- 'mongodb-url',
34
- 'redis-url',
35
- // key / token shapes
36
- 'ssh-private-key',
37
- 'jwt-token',
38
- ]);
29
+ const TEST_PATH_DOWNGRADE_IDS = path_downgrade_ids_1.LOW_PRECISION_PATH_DOWNGRADE_IDS;
39
30
  /**
40
31
  * Segments that indicate a file lives in a test / fixture tree.
41
32
  * Matched against every directory component in the file path.
@@ -49,7 +40,15 @@ const TEST_DIR_SEGMENTS = new Set([
49
40
  'testdata',
50
41
  'spec',
51
42
  'e2e',
43
+ 'examples',
44
+ 'example',
45
+ 'samples',
46
+ 'sample',
52
47
  ]);
48
+ /**
49
+ * Directory names ending in `test` that are **not** test roots (e.g. `contest/`).
50
+ */
51
+ const NON_TEST_TEST_SUFFIX_DIRS = new Set(['contest', 'latest', 'shortest']);
53
52
  /**
54
53
  * File name suffixes / extensions that mark test or fixture files.
55
54
  * Checked against `path.basename(filePath)`.
@@ -59,15 +58,47 @@ const TEST_FILE_PATTERNS = [
59
58
  /\.spec\.[jt]sx?$/,
60
59
  /\.test\.api\.[jt]sx?$/,
61
60
  /\.fixture\.[jt]sx?$/,
61
+ /_test\.go$/,
62
+ /^test_[^/]+\.py$/i,
63
+ /^[^/]+_test\.py$/i,
62
64
  ];
65
+ /** Env template basenames — never production secrets. */
66
+ const FIXTURE_ENV_BASENAME = /^\.env(\.[a-z0-9_-]+)*\.(example|sample|template)$/i;
67
+ /**
68
+ * True when a path segment names a test/fixture directory, including common
69
+ * `*test` suffixes (`caddytest/`, `integrationtest/`) but not `contest/`.
70
+ */
71
+ function isTestDirectorySegment(seg) {
72
+ if (TEST_DIR_SEGMENTS.has(seg))
73
+ return true;
74
+ return (seg.endsWith('test') &&
75
+ seg.length >= 7 &&
76
+ !NON_TEST_TEST_SUFFIX_DIRS.has(seg));
77
+ }
78
+ /**
79
+ * Celery / Perl-style test root: `t/unit/…`, `t/integration/…`.
80
+ */
81
+ function isCeleryStyleTestRoot(parts) {
82
+ for (let i = 0; i < parts.length - 1; i++) {
83
+ const next = parts[i + 1];
84
+ if (parts[i] === 't' && (next === 'unit' || next === 'integration')) {
85
+ return true;
86
+ }
87
+ }
88
+ return false;
89
+ }
63
90
  /**
64
91
  * Return `true` when `filePath` looks like a test or fixture file.
65
92
  */
66
93
  function isTestFilePath(filePath) {
67
- const parts = filePath.split(path_1.default.sep).flatMap(p => p.split('/'));
68
- if (parts.some(seg => TEST_DIR_SEGMENTS.has(seg)))
94
+ const parts = (0, path_parts_1.splitPathParts)(filePath);
95
+ if (parts.some(isTestDirectorySegment))
96
+ return true;
97
+ if (isCeleryStyleTestRoot(parts))
69
98
  return true;
70
99
  const basename = path_1.default.basename(filePath);
100
+ if (FIXTURE_ENV_BASENAME.test(basename))
101
+ return true;
71
102
  return TEST_FILE_PATTERNS.some(re => re.test(basename));
72
103
  }
73
104
  /**
@@ -80,17 +111,24 @@ function isTestFilePath(filePath) {
80
111
  * (aws-access, anthropic, stripe, …) are unaffected — a real key in a test
81
112
  * file is still worth a `critical` alert.
82
113
  */
114
+ function isLowPrecisionContextPath(filePath) {
115
+ return isTestFilePath(filePath) || (0, doc_context_1.isDocumentationPath)(filePath);
116
+ }
83
117
  function applyPathAwareSeverity(matches, filePath) {
84
118
  if (matches.length === 0)
85
119
  return matches;
86
- if (!isTestFilePath(filePath))
120
+ if (!isLowPrecisionContextPath(filePath))
87
121
  return matches;
88
122
  return matches.map(m => {
89
- if (!TEST_PATH_DOWNGRADE_IDS.has(m.type))
90
- return m;
91
- if (m.severity === 'low')
92
- return m;
93
- return { ...m, severity: 'low' };
123
+ if (TEST_PATH_DOWNGRADE_IDS.has(m.type) && m.severity !== 'low') {
124
+ return { ...m, severity: 'low' };
125
+ }
126
+ if ((0, doc_context_1.isDocumentationPath)(filePath) &&
127
+ path_downgrade_ids_1.DOCS_VENDOR_DOWNGRADE_IDS.has(m.type) &&
128
+ m.severity !== 'low') {
129
+ return { ...m, severity: 'low' };
130
+ }
131
+ return m;
94
132
  });
95
133
  }
96
134
  //# sourceMappingURL=path-severity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-severity.js","sourceRoot":"","sources":["../../src/utils/path-severity.ts"],"names":[],"mappings":";;;;;AA+DA,wCAKC;AAYD,wDAYC;AA5FD,gDAAwB;AAGxB;;;;;;;;;;;;;;GAcG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,uBAAuB;IACvB,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,qBAAqB;IACrB,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,WAAW;IACX,qBAAqB;IACrB,iBAAiB;IACjB,WAAW;CACZ,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,WAAW;IACX,WAAW;IACX,OAAO;IACP,MAAM;IACN,UAAU;IACV,UAAU;IACV,MAAM;IACN,KAAK;CACN,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,kBAAkB,GAAG;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;IACvB,qBAAqB;CACtB,CAAC;AAEF;;GAEG;AACH,SAAgB,cAAc,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,sBAAsB,CACpC,OAAsB,EACtB,QAAgB;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAE9C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACrB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QACnC,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAc,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"path-severity.js","sourceRoot":"","sources":["../../src/utils/path-severity.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,12 @@
19
19
  * be long/specific enough that a real high-entropy secret will not contain them
20
20
  * by chance.
21
21
  */
22
+ export declare function isRedactedTemplateValue(value: string): boolean;
23
+ /**
24
+ * ALL_CAPS identifiers (e.g. `PLAID_TOKEN_ENCRYPTION_KEY`) are env-var names,
25
+ * not secret values — common in GitHub Actions `secret:NAME` checks.
26
+ */
27
+ export declare function isEnvVarNameToken(value: string): boolean;
22
28
  /**
23
29
  * Return `true` when a database/Redis connection string is **not** a real
24
30
  * credential leak — i.e. it targets a local/dev/docker/example host, or uses
@@ -1 +1 @@
1
- {"version":3,"file":"placeholder.d.ts","sourceRoot":"","sources":["../../src/utils/placeholder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA0FH;;;;;;;;;;;;;;;GAeG;AACH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAclD;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAwBhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,OAAO,CAiBT"}
1
+ {"version":3,"file":"placeholder.d.ts","sourceRoot":"","sources":["../../src/utils/placeholder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAuEH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAW9D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AA4CD;;;;;;;;;;;;;;;GAeG;AACH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAclD;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAwBhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,OAAO,CAiBT"}
@@ -21,6 +21,8 @@
21
21
  * by chance.
22
22
  */
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.isRedactedTemplateValue = isRedactedTemplateValue;
25
+ exports.isEnvVarNameToken = isEnvVarNameToken;
24
26
  exports.isSampleJwt = isSampleJwt;
25
27
  exports.isNonSecretConnectionString = isNonSecretConnectionString;
26
28
  exports.isPlaceholderSecret = isPlaceholderSecret;
@@ -48,6 +50,8 @@ const STANDARD_MARKERS = [
48
50
  'insert_your',
49
51
  'replace_me',
50
52
  'replaceme',
53
+ 'replace-with',
54
+ 'replace_with',
51
55
  'loremipsum',
52
56
  // Pure character repetition (e.g. `xxxxxxxx`, `00000000`) is handled by the
53
57
  // low-variety check below rather than literal markers, so it does not clash
@@ -64,10 +68,54 @@ const AGGRESSIVE_MARKERS = [
64
68
  'password',
65
69
  'passw0rd',
66
70
  'secret',
71
+ 'sensitive',
67
72
  'hunter2',
68
73
  'qwerty',
69
74
  'letmein',
75
+ 'your_', // your_google_places_key, your_api_key_here
70
76
  ];
77
+ /** Known vendor key prefixes whose remainder is often redacted with X/* in docs. */
78
+ const REDACTED_PREFIXES = [
79
+ /^sk_live_/i,
80
+ /^sk_test_/i,
81
+ /^sk-ant-api\d+-/i,
82
+ /^sk-proj-/i,
83
+ /^sk-/i,
84
+ /^pk_live_/i,
85
+ /^pk_test_/i,
86
+ /^re_/i,
87
+ /^whsec_/i,
88
+ /^phc_/i,
89
+ /^AIza/i,
90
+ /^ghp_/i,
91
+ /^gho_/i,
92
+ /^npm_/i,
93
+ /^xox[baprs]-/i,
94
+ ];
95
+ function isRedactedTemplateValue(value) {
96
+ if (!value)
97
+ return false;
98
+ if (/^replace-with-/i.test(value))
99
+ return true;
100
+ if (value.length >= 8 && /^[Xx*]+$/.test(value))
101
+ return true;
102
+ for (const prefix of REDACTED_PREFIXES) {
103
+ const m = prefix.exec(value);
104
+ if (!m)
105
+ continue;
106
+ const rest = value.slice(m[0].length);
107
+ if (rest.length >= 8 && /^[Xx*_.-]+$/.test(rest))
108
+ return true;
109
+ }
110
+ return false;
111
+ }
112
+ /**
113
+ * ALL_CAPS identifiers (e.g. `PLAID_TOKEN_ENCRYPTION_KEY`) are env-var names,
114
+ * not secret values — common in GitHub Actions `secret:NAME` checks.
115
+ */
116
+ function isEnvVarNameToken(value) {
117
+ return /^[A-Z][A-Z0-9_]{7,}$/.test(value);
118
+ }
71
119
  /**
72
120
  * A value made of one or two distinct characters (e.g. `xxxxxxxx`, `00000000`)
73
121
  * is padding, never a real secret.
@@ -1 +1 @@
1
- {"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../src/utils/placeholder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../src/utils/placeholder.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ async function scanTextFileAsync(scanner, filePath, options) {
59
59
  const st = await fs_1.default.promises.stat(filePath);
60
60
  if (st.size <= options.maxFileBytes) {
61
61
  const content = await fs_1.default.promises.readFile(filePath, 'utf-8');
62
- return (0, path_severity_1.applyPathAwareSeverity)(scanner.scanContent(content), filePath);
62
+ return (0, path_severity_1.applyPathAwareSeverity)(scanner.scanContent(content, { filePath }), filePath);
63
63
  }
64
64
  const raw = [];
65
65
  let utf16Offset = 0;
@@ -109,7 +109,7 @@ async function scanTextFileAsync(scanner, filePath, options) {
109
109
  function scanTextFileSync(scanner, filePath, options) {
110
110
  const st = fs_1.default.statSync(filePath);
111
111
  if (st.size <= options.maxFileBytes) {
112
- return (0, path_severity_1.applyPathAwareSeverity)(scanner.scanContent(fs_1.default.readFileSync(filePath, 'utf-8')), filePath);
112
+ return (0, path_severity_1.applyPathAwareSeverity)(scanner.scanContent(fs_1.default.readFileSync(filePath, 'utf-8'), { filePath }), filePath);
113
113
  }
114
114
  options.bus?.add({
115
115
  code: 'file.too_large',
@@ -1 +1 @@
1
- {"version":3,"file":"scan-file.js","sourceRoot":"","sources":["../../src/utils/scan-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan-file.js","sourceRoot":"","sources":["../../src/utils/scan-file.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaultcompass/vault-guard-core",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Core engine for Vault Guard - security scanning",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",