From c5e7e4de29e519c56ec16835d5b09fa6c67a2614 Mon Sep 17 00:00:00 2001 From: 0xUXDesign <0xux@protonmail.com> Date: Sun, 8 Mar 2026 21:30:11 -0400 Subject: [PATCH 1/2] fix: skip constants with secret-like names in parser MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Defense-in-depth: extractConstants() now skips constants whose names end with KEY, SECRET, TOKEN, PASSWORD, or CREDENTIAL (as underscore- delimited word segments). Prevents accidental credential storage in the knowledge graph. Non-secret constants with partial matches (KEYBOARD_SHORTCUT, TOKEN_LIMIT, SECRET_SAUCE_RECIPE) are correctly preserved — the pattern only matches suffix positions. Co-Authored-By: Claude Opus 4.6 --- dist/tree-sitter.d.ts.map | 2 +- dist/tree-sitter.js | 10 +++++ dist/tree-sitter.js.map | 2 +- src/tree-sitter.ts | 11 +++++ tests/design-system.test.ts | 43 +++++++++++++++++-- tests/fixtures/design-system/src/constants.ts | 12 ++++++ 6 files changed, 74 insertions(+), 6 deletions(-) diff --git a/dist/tree-sitter.d.ts.map b/dist/tree-sitter.d.ts.map index 09f657a..c2553e9 100644 --- a/dist/tree-sitter.d.ts.map +++ b/dist/tree-sitter.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"tree-sitter.d.ts","sourceRoot":"","sources":["../src/tree-sitter.ts"],"names":[],"mappings":"AAMA,OAAO,EAIN,KAAK,UAAU,EAIf,MAAM,YAAY,CAAC;AACpB,OAAO,EAEN,KAAK,UAAU,EAGf,MAAM,gBAAgB,CAAC;AA8HxB,wBAAgB,SAAS,CACxB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GAClB,UAAU,CAsCZ;AAqGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAExD;AAQD,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEpD"} \ No newline at end of file +{"version":3,"file":"tree-sitter.d.ts","sourceRoot":"","sources":["../src/tree-sitter.ts"],"names":[],"mappings":"AAMA,OAAO,EAIN,KAAK,UAAU,EAIf,MAAM,YAAY,CAAC;AACpB,OAAO,EAEN,KAAK,UAAU,EAGf,MAAM,gBAAgB,CAAC;AAyIxB,wBAAgB,SAAS,CACxB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GAClB,UAAU,CAsCZ;AAqGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAExD;AAQD,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEpD"} \ No newline at end of file diff --git a/dist/tree-sitter.js b/dist/tree-sitter.js index e37c68c..bb0dce6 100644 --- a/dist/tree-sitter.js +++ b/dist/tree-sitter.js @@ -26,9 +26,16 @@ const JSX_EXTENSIONS = new Set([".tsx", ".jsx"]); const JS_EXTENSIONS = new Set([".js", ".jsx", ".mjs", ".cjs"]); /** Max length for extractable scalar constant values. */ const MAX_CONSTANT_VALUE_LENGTH = 128; +/** + * Secret-like name suffix pattern — constants whose names end with these + * segments (after `_` or as the full name) are skipped to prevent accidental + * credential storage in the knowledge graph. Defense-in-depth measure. + */ +const SECRET_NAME_SUFFIX = /(?:^|_)(KEY|SECRET|TOKEN|PASSWORD|CREDENTIAL)$/i; /** * Extract top-level const declarations from the program root. * Only captures constants at module scope — not inside functions. + * Skips constants whose names match secret-like patterns (defense-in-depth). */ function extractConstants(rootNode) { const constants = []; @@ -42,6 +49,9 @@ function extractConstants(rootNode) { const nameNode = declarator.childForFieldName("name"); if (!nameNode || nameNode.type !== "identifier") continue; + // Skip constants with secret-like names (defense-in-depth) + if (SECRET_NAME_SUFFIX.test(nameNode.text)) + continue; const valueNode = declarator.childForFieldName("value"); // Skip arrow functions — already handled as ParsedFunction if (valueNode?.type === "arrow_function") diff --git a/dist/tree-sitter.js.map b/dist/tree-sitter.js.map index 51603a3..aac0e3e 100644 --- a/dist/tree-sitter.js.map +++ b/dist/tree-sitter.js.map @@ -1 +1 @@ -{"version":3,"file":"tree-sitter.js","sourceRoot":"","sources":["../src/tree-sitter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tree-sitter.js","sourceRoot":"","sources":["../src/tree-sitter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/tree-sitter.ts b/src/tree-sitter.ts index 5536146..10e9f49 100644 --- a/src/tree-sitter.ts +++ b/src/tree-sitter.ts @@ -51,9 +51,17 @@ const JS_EXTENSIONS = new Set([".js", ".jsx", ".mjs", ".cjs"]); /** Max length for extractable scalar constant values. */ const MAX_CONSTANT_VALUE_LENGTH = 128; +/** + * Secret-like name suffix pattern — constants whose names end with these + * segments (after `_` or as the full name) are skipped to prevent accidental + * credential storage in the knowledge graph. Defense-in-depth measure. + */ +const SECRET_NAME_SUFFIX = /(?:^|_)(KEY|SECRET|TOKEN|PASSWORD|CREDENTIAL)$/i; + /** * Extract top-level const declarations from the program root. * Only captures constants at module scope — not inside functions. + * Skips constants whose names match secret-like patterns (defense-in-depth). */ function extractConstants(rootNode: SyntaxNode): ParsedConstant[] { const constants: ParsedConstant[] = []; @@ -68,6 +76,9 @@ function extractConstants(rootNode: SyntaxNode): ParsedConstant[] { const nameNode = declarator.childForFieldName("name"); if (!nameNode || nameNode.type !== "identifier") continue; + // Skip constants with secret-like names (defense-in-depth) + if (SECRET_NAME_SUFFIX.test(nameNode.text)) continue; + const valueNode = declarator.childForFieldName("value"); // Skip arrow functions — already handled as ParsedFunction diff --git a/tests/design-system.test.ts b/tests/design-system.test.ts index fdf860e..c32c39d 100644 --- a/tests/design-system.test.ts +++ b/tests/design-system.test.ts @@ -268,16 +268,14 @@ describe("constant extraction", () => { expect(colors!.isExported).toBe(true); }); - it("marks non-exported constants correctly", () => { + it("skips constants with secret-like names (INTERNAL_KEY)", () => { const result = parseFile( path.join(FIXTURES_DIR, "src/constants.ts"), "src/constants.ts", ); const internal = result.constants?.find((c) => c.name === "INTERNAL_KEY"); - expect(internal).toBeDefined(); - expect(internal!.value).toBe("secret-key-123"); - expect(internal!.isExported).toBe(false); + expect(internal).toBeUndefined(); }); it("extracts type annotation when present", () => { @@ -410,6 +408,43 @@ describe("constant extraction", () => { expect(another).toBeUndefined(); }); + it("skips exported constants with secret-like names", () => { + const result = parseFile( + path.join(FIXTURES_DIR, "src/constants.ts"), + "src/constants.ts", + ); + + // All of these should be skipped — names contain secret-like patterns + expect(result.constants?.find((c) => c.name === "DATABASE_PASSWORD")).toBeUndefined(); + expect(result.constants?.find((c) => c.name === "STRIPE_SECRET_KEY")).toBeUndefined(); + expect(result.constants?.find((c) => c.name === "AWS_ACCESS_KEY")).toBeUndefined(); + expect(result.constants?.find((c) => c.name === "AUTH_TOKEN")).toBeUndefined(); + expect(result.constants?.find((c) => c.name === "API_KEY")).toBeUndefined(); + expect(result.constants?.find((c) => c.name === "JWT_CREDENTIAL")).toBeUndefined(); + }); + + it("keeps constants whose names contain partial secret-like substrings in non-secret context", () => { + const result = parseFile( + path.join(FIXTURES_DIR, "src/constants.ts"), + "src/constants.ts", + ); + + // KEYBOARD_SHORTCUT contains "KEY" but is not a secret — word boundary matters + const keyboard = result.constants?.find((c) => c.name === "KEYBOARD_SHORTCUT"); + expect(keyboard).toBeDefined(); + expect(keyboard!.value).toBe("Ctrl+K"); + + // TOKEN_LIMIT contains "TOKEN" but is a numeric limit, not a secret + const tokenLimit = result.constants?.find((c) => c.name === "TOKEN_LIMIT"); + expect(tokenLimit).toBeDefined(); + expect(tokenLimit!.value).toBe("4096"); + + // SECRET_SAUCE_RECIPE contains "SECRET" but is not a credential + const sauce = result.constants?.find((c) => c.name === "SECRET_SAUCE_RECIPE"); + expect(sauce).toBeDefined(); + expect(sauce!.value).toBe("tomato"); + }); + it("omits constants field for files with no constants", () => { const result = parseFile( path.join(FIXTURES_DIR, "src/components.tsx"), diff --git a/tests/fixtures/design-system/src/constants.ts b/tests/fixtures/design-system/src/constants.ts index 516a1e6..adb1ef6 100644 --- a/tests/fixtures/design-system/src/constants.ts +++ b/tests/fixtures/design-system/src/constants.ts @@ -54,3 +54,15 @@ export const SIZES = ["sm", "md", "lg"] as const; let mutableVal = "x", anotherVal = "y"; export { mutableVal, anotherVal }; + +// Secret-named constants — should be skipped by parser (defense-in-depth) +export const DATABASE_PASSWORD = "hunter2"; +export const STRIPE_SECRET_KEY = "sk_test_abc123"; +const AWS_ACCESS_KEY = "AKIAIOSFODNN7EXAMPLE"; +export const AUTH_TOKEN = "eyJhbGciOiJIUzI1NiJ9"; +export const API_KEY = "pk_live_xxx"; +export const JWT_CREDENTIAL = "my-credential-value"; +// Non-secret constants that happen to contain partial matches should be KEPT +export const KEYBOARD_SHORTCUT = "Ctrl+K"; +export const TOKEN_LIMIT = 4096; +export const SECRET_SAUCE_RECIPE = "tomato"; From a2cf6d6ab3945f10a2049d7e630bb08261e4f5e0 Mon Sep 17 00:00:00 2001 From: 0xUXDesign <0xux@protonmail.com> Date: Sun, 8 Mar 2026 21:33:20 -0400 Subject: [PATCH 2/2] fix: biome formatting for test assertions Co-Authored-By: Claude Opus 4.6 --- tests/design-system.test.ts | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/tests/design-system.test.ts b/tests/design-system.test.ts index c32c39d..890f421 100644 --- a/tests/design-system.test.ts +++ b/tests/design-system.test.ts @@ -415,12 +415,22 @@ describe("constant extraction", () => { ); // All of these should be skipped — names contain secret-like patterns - expect(result.constants?.find((c) => c.name === "DATABASE_PASSWORD")).toBeUndefined(); - expect(result.constants?.find((c) => c.name === "STRIPE_SECRET_KEY")).toBeUndefined(); - expect(result.constants?.find((c) => c.name === "AWS_ACCESS_KEY")).toBeUndefined(); - expect(result.constants?.find((c) => c.name === "AUTH_TOKEN")).toBeUndefined(); + expect( + result.constants?.find((c) => c.name === "DATABASE_PASSWORD"), + ).toBeUndefined(); + expect( + result.constants?.find((c) => c.name === "STRIPE_SECRET_KEY"), + ).toBeUndefined(); + expect( + result.constants?.find((c) => c.name === "AWS_ACCESS_KEY"), + ).toBeUndefined(); + expect( + result.constants?.find((c) => c.name === "AUTH_TOKEN"), + ).toBeUndefined(); expect(result.constants?.find((c) => c.name === "API_KEY")).toBeUndefined(); - expect(result.constants?.find((c) => c.name === "JWT_CREDENTIAL")).toBeUndefined(); + expect( + result.constants?.find((c) => c.name === "JWT_CREDENTIAL"), + ).toBeUndefined(); }); it("keeps constants whose names contain partial secret-like substrings in non-secret context", () => { @@ -430,7 +440,9 @@ describe("constant extraction", () => { ); // KEYBOARD_SHORTCUT contains "KEY" but is not a secret — word boundary matters - const keyboard = result.constants?.find((c) => c.name === "KEYBOARD_SHORTCUT"); + const keyboard = result.constants?.find( + (c) => c.name === "KEYBOARD_SHORTCUT", + ); expect(keyboard).toBeDefined(); expect(keyboard!.value).toBe("Ctrl+K"); @@ -440,7 +452,9 @@ describe("constant extraction", () => { expect(tokenLimit!.value).toBe("4096"); // SECRET_SAUCE_RECIPE contains "SECRET" but is not a credential - const sauce = result.constants?.find((c) => c.name === "SECRET_SAUCE_RECIPE"); + const sauce = result.constants?.find( + (c) => c.name === "SECRET_SAUCE_RECIPE", + ); expect(sauce).toBeDefined(); expect(sauce!.value).toBe("tomato"); });