# Auto detect text files and perform LF normalization
* text=auto eol=lf

# Source code
*.py    text eol=lf
*.pyi   text eol=lf
*.ts    text eol=lf
*.tsx   text eol=lf
*.js    text eol=lf
*.jsx   text eol=lf
*.mjs   text eol=lf
*.cjs   text eol=lf
*.json  text eol=lf
*.jsonc text eol=lf
*.json5 text eol=lf
*.yml   text eol=lf
*.yaml  text eol=lf
*.toml  text eol=lf
*.md    text eol=lf
*.mdx   text eol=lf
*.html  text eol=lf
*.css   text eol=lf
*.scss  text eol=lf
*.sass  text eol=lf
*.less  text eol=lf
*.sh    text eol=lf
*.bash  text eol=lf
*.zsh   text eol=lf
*.fish  text eol=lf
*.sql   text eol=lf
*.xml   text eol=lf
*.svg   text eol=lf
*.txt   text eol=lf
*.conf  text eol=lf
*.cfg   text eol=lf
*.ini   text eol=lf
*.env   text eol=lf
*.gitignore   text eol=lf
*.gitattributes text eol=lf
*.editorconfig  text eol=lf
Dockerfile      text eol=lf
docker-compose.yml text eol=lf
Makefile        text eol=lf
LICENSE         text eol=lf
.gitkeep        text eol=lf
.git-blame-ignore-revs text eol=lf

# Shell scripts that require LF (avoid CRLF on Windows checkouts)
*.bat   text eol=crlf
*.cmd   text eol=crlf
*.ps1   text eol=crlf

# Binary / non-text
*.png   binary
*.jpg   binary
*.jpeg  binary
*.gif   binary
*.webp  binary
*.ico   binary
*.icns  binary
*.pdf   binary
*.zip   binary
*.gz    binary
*.tar   binary
*.tgz   binary
*.bz2   binary
*.xz    binary
*.7z    binary
*.rar   binary
*.woff  binary
*.woff2 binary
*.ttf   binary
*.otf   binary
*.eot   binary
*.mp3   binary
*.mp4   binary
*.webm  binary
*.mov   binary
*.wasm  binary
*.node  binary
*.pyc   binary
*.pyd   binary
*.so    binary
*.dll   binary
*.dylib binary

# Diff / merge drivers
package-lock.json binary
pnpm-lock.yaml  text eol=lf -diff
yarn.lock       text eol=lf -diff

# Mark vendored / generated dirs that should not show language stats
docs/internal/* linguist-documentation
servers/*        linguist-vendored
frontend/dist/*  linguist-generated
