# See http://help.github.com/ignore-files/ for more about ignoring files.

/logs

# compiled output
/dist
/tmp
/out-tsc
coverage

# dependencies
/node
/node_modules

### Eclipse ###
/.pydevproject
/.classpath
/.project
/.settings
target
/.mvn/wrapper/maven-wrapper.jar
/.tox

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
/build/

### visual studio ###
.vs
.vscode

# OSx cruft
**/.DS_Store
.history

# documentation
.tox
docs/_build/*
