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

# generated files
licenses.txt

# compiled output
/dist
/tmp
/out-tsc
/coverage
/.scannerwork
/lint.styles.report.json
/lint.ts.report.json

# Only exists if Bazel was run
/bazel-out

# dependencies
/node_modules

# profiling files
chrome-profiler-events*.json
speed-measure-plugin*.json

# IDEs and editors
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - Jetbrains
# See: https://www.gitignore.io/api/jetbrains to share code style, etc.
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

.idea/modules.xml
.idea/*.iml
.idea/modules

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*

# misc
/.sass-cache
/connect.lock
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings

# System Files
.DS_Store
Thumbs.db
