diff --git a/package.json b/package.json index 14b2946..115924a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "llm-context", "type": "module", - "version": "1.2.2", + "version": "1.2.3", "packageManager": "pnpm@9.15.0+sha512.76e2379760a4328ec4415815bcd6628dee727af3779aaa4c914e3944156c4299921a89f976381ee107d41f12cfa4b66681ca9c718f0668fa0831ed4c6d8ba56c", "description": "A CLI tool to build context files to attach to Large Language Models (LLMs).", "author": { diff --git a/src/ignore.ts b/src/ignore.ts index 87a7155..7f1f6db 100644 --- a/src/ignore.ts +++ b/src/ignore.ts @@ -1,7 +1,7 @@ export function matchesPattern(path: string, pattern: string): boolean { - const regexString = pattern - .replace(/\*/g, '.*') - .replace(/\?/g, '.') + const escaped = pattern.replace(/\./g, '\\.') + const regexString = escaped.replace(/\*/g, '.*') + const regex = new RegExp(regexString) return regex.test(path) } diff --git a/tests/files.test.ts b/tests/files.test.ts index e28f69f..4a9bc56 100644 --- a/tests/files.test.ts +++ b/tests/files.test.ts @@ -130,3 +130,23 @@ describe('readFilesInDirectory', () => { expect(tokensMap.get('test.txt')).toBeGreaterThanOrEqual(1) }) }) + +describe('login dir ignore check', () => { + const testDir = join(__dirname, 'test-login') + + beforeAll(() => { + rmSync(testDir, { recursive: true, force: true }) + mkdirSync(join(testDir, 'login'), { recursive: true }) + // Some dummy file to ensure the dir has content + writeFileSync(join(testDir, 'login', 'stuff.ts'), 'console.log("Login stuff")') + }) + + afterAll(() => { + rmSync(testDir, { recursive: true, force: true }) + }) + + it('should NOT ignore login folder by default', () => { + const { context } = readFilesInDirectory(testDir, testDir) + expect(context).toContain('') + }) +}) diff --git a/tests/tree.test.ts b/tests/tree.test.ts index 405fd58..dfa0f78 100644 --- a/tests/tree.test.ts +++ b/tests/tree.test.ts @@ -63,4 +63,22 @@ describe('tree.util', () => { expect(result).not.toContain('foofile.md') }) }) + + it('should NOT ignore "login" folder by default', () => { + // Make sure the folder exists and has some file + mkdirSync(join(testDir, 'login'), { recursive: true }) + writeFileSync(join(testDir, 'login', 'stuff.ts'), 'console.log("Login stuff")') + + // Run getTreeOutput without custom ignores + const result = getTreeOutput( + testDir, + [], + new Map(), + testDir, + ) + + // Confirm that "login" is present in the tree + expect(result).toContain('login') + expect(result).toContain('stuff.ts') + }) })