# Vendored dependencies — treat as binary so git never rewrites line
# endings between Windows and Linux checkouts. The framework's vendor
# manifest pins SHA-256 hashes on the on-disk content; CRLF/LF
# conversion would break the hash on the off-platform checkout.
lib/vendor/** -text binary

# Shell scripts MUST stay LF — they run inside Linux containers
# (OSS-Fuzz base-builder, ClusterFuzzLite, the wiki / release
# container Dockerfiles, npm-publish build steps) where bash chokes
# on CRLF with "$'\r': command not found". Without this rule, a
# Windows checkout's CRLF rewrite ships into the Docker copy + the
# script fails at line 1.
*.sh text eol=lf

# Derived artifacts the release-notes generator owns end-to-end —
# rebuild emits LF, so the on-disk file is pinned to LF on every
# platform. Without this, Windows checkouts would get CRLF and the
# generator's `--check` drift-gate in smoke would need to keep
# eating the cost of normalizing both sides before comparing.
CHANGELOG.md text eol=lf
release-notes/*.json text eol=lf

# Native modules — always binary.
*.node binary
*.so binary
*.dylib binary
*.dll binary
*.a binary
*.glibc binary
*.musl binary

# Standard binary types.
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.zip binary
*.gz binary
*.tar binary
*.tgz binary
*.pdf binary
