diff --git a/docs/capabilities.md b/docs/capabilities.md index f374205..34770ea 100644 --- a/docs/capabilities.md +++ b/docs/capabilities.md @@ -32,7 +32,7 @@ import { MY_KEY } from '$env/static/public'; MY_KEY ``` -Default scanned file types: .ts, .js, jsx, tsx, vue, .mjs, .cjs, .svelte +Default scanned file types: .ts, .js, jsx, tsx, vue, .mjs, .mts, .cjs, .cts, .svelte ## What It Checks For diff --git a/src/core/scan/patterns.ts b/src/core/scan/patterns.ts index bec9e2b..496cbe3 100644 --- a/src/core/scan/patterns.ts +++ b/src/core/scan/patterns.ts @@ -120,7 +120,9 @@ export const DEFAULT_INCLUDE_EXTENSIONS = [ '.vue', '.svelte', '.mjs', + '.mts', '.cjs', + '.cts', ]; // Default patterns to exclude from scans diff --git a/test/unit/core/scan/patterns.test.ts b/test/unit/core/scan/patterns.test.ts index ddc18d4..177e2da 100644 --- a/test/unit/core/scan/patterns.test.ts +++ b/test/unit/core/scan/patterns.test.ts @@ -1,5 +1,6 @@ import { describe, it, expect } from 'vitest'; import { scanFile } from '../../../../src/core/scan/scanFile'; +import { DEFAULT_INCLUDE_EXTENSIONS } from '../../../../src/core/scan/patterns'; import type { ScanOptions } from '../../../../src/config/types'; describe('scanFile - Pattern Detection', () => { @@ -158,4 +159,25 @@ describe('scanFile - Pattern Detection', () => { }); }); }); + + describe('Default include extensions', () => { + it('includes .mts in default scan extensions', () => { + expect(DEFAULT_INCLUDE_EXTENSIONS).toContain('.mts'); + }); + + it('includes .cts in default scan extensions', () => { + expect(DEFAULT_INCLUDE_EXTENSIONS).toContain('.cts'); + }); + + it('will detect patterns in .mts files', () => { + const code = 'const val = process.env.MY_KEY;'; + const result = scanFile('test.mts', code, baseOpts); + + expect(result).toHaveLength(1); + expect(result[0]).toMatchObject({ + variable: 'MY_KEY', + pattern: 'process.env', + }); + }); + }); });