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

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.ts text eol=lf
*.js text eol=lf
*.mjs text eol=lf
*.cjs text eol=lf
*.tsx text eol=lf
*.jsx text eol=lf
*.json text eol=lf
*.md text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.sh text eol=lf
*.env text eol=lf
*.example text eol=lf

# Declare files that will always have CRLF line endings on checkout
*.bat text eol=crlf

# Denote all files that are truly binary and should not be modified
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.svg binary
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary
*.mp3 binary
*.mp4 binary
*.wav binary
*.db binary
*.sqlite binary

# Archives
*.zip binary
*.tar binary
*.gz binary
*.bz2 binary
*.7z binary
*.rar binary

# Lock files - don't diff
package-lock.json -diff
bun.lock -diff
yarn.lock -diff

# Generated files - mark as generated to exclude from diffs
dist/** linguist-generated=true
coverage/** linguist-generated=true
*.min.js linguist-generated=true
*.min.css linguist-generated=true

# Documentation
docs/** linguist-documentation
*.md linguist-documentation

# Vendored code
.bun/** linguist-vendored
node_modules/** linguist-vendored
