# Whitelist dotfiles
.*
!deps/**/.*
!test/fixtures/**/.*
!tools/node_modules/**/.*
!tools/doc/node_modules/**/.*
!.clang-format
!.editorconfig
!.eslintignore
!.eslintrc.js
!.flake8
!.gitattributes
!.github
!.gitignore
!.gitkeep
!.mailmap
!.nycrc
!.travis.yml
!.eslintrc.yaml
!.cpplint

core
vgcore.*
v8*.log
perf.data
perf.data.old
tags
*.pyc
doc/api.xml
tmp/
test/tmp*/
iojs
iojs_g
node
node_g
*.swp
icu_config.gypi
node_trace.*.log
coverage/
!**/node_modules/**/coverage

/out

# various stuff that VC++ produces/uses and is not in /out
/Debug/
/Release/
!doc/blog/**
*.sln
!nodemsi.sln
*.suo
*.vcxproj
!custom_actions.vcxproj
*.vcxproj.user
*.vcxproj.filters
UpgradeLog*.XML
_UpgradeReport_Files/
*.sdf
*.opensdf
*.VC.db
*.VC.opendb
/*.exe

/config.mk
/config.gypi
/config.status
/config_fips.gypi
*-nodegyp*
/gyp-mac-tool
/npm.wxs
/tools/msvs/npm.wixobj
/tools/msvs/genfiles/
/test/addons/??_*/
email.md
deps/v8-*
deps/icu
deps/icu*.zip
deps/icu*.tgz
deps/icu-tmp
./node_modules
android-toolchain/

# generated by gyp on Windows
deps/openssl/openssl.props
deps/openssl/openssl.targets
deps/openssl/openssl.xml

# generated by gyp on android
/*.target.mk
/*.host.mk
deps/openssl/openssl.target.mk
deps/zlib/zlib.target.mk

!deps/npm/node_modules
# not needed and causes issues for distro packagers
deps/npm/node_modules/.bin/

# build/release artifacts
/*.tar.*
/*.pkg
/SHASUMS*.txt*

# api docs artifacts
tools/doc/node_modules

# clang-format artifacts
tools/clang-format/node_modules

# test artifacts
icu_config.gypi
*.tap
/*.xml

# Xcode workspaces and project folders
*.xcodeproj
*.xcworkspace

# libuv book and GitHub template
deps/uv/.github/
deps/uv/docs/code/
deps/uv/docs/src/guide/

# do not override V8's .gitignore
!deps/v8/**
# ignore VS compiler output unhandled by V8's .gitignore
deps/v8/third_party/eu-strip/

.DS_Store
