# =============================================================================
#  ReVoltVPN — .gitignore
#
#  Type-based by design. This repo ships Dart, Kotlin, XML and image assets;
#  everything else is excluded by extension or directory rather than by being
#  listed individually. A new file is therefore ignored by default instead of
#  needing to be named here, and this file does not enumerate what it protects.
#
#  Machine-local exclusions live in .git/info/exclude, which is never committed.
# =============================================================================

# ── OS & editor ────────────────────────────────────────────────────────────
*.swp
.DS_Store
.atom/
.history
.svn/
.java-version
.idea/
.vscode/

# ── Flutter / Dart build output ────────────────────────────────────────────
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.pub-cache/
.pub/
build/
**/build/
local_packages/*/build/
local_packages/*/.dart_tool/
*.dart_tool/
**/doc/api/
**/ios/Flutter/.last_build_id

# ── Android build output ───────────────────────────────────────────────────
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
**/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
**/android/.cxx/
**/android/app/build/
**/android/app/crashlytics-build.properties

# ── Python bytecode ────────────────────────────────────────────────────────
__pycache__/
*.pyc

# ── Credentials & machine-local config ─────────────────────────────────────
*.keystore
*.jks
android/key.properties
android/admob.properties
lib/logic/app_config.dart
devtools_options.yaml

# ── File types the shipped app does not contain ────────────────────────────
#  Server code, infrastructure configs, captures, archives and logs. None of
#  these extensions are tracked, so a blanket rule is safe and stays safe.
*.py
*.json
*.conf
*.sh
*.txt
*.html
*.zip
*.log
*.class

# ── Documentation ──────────────────────────────────────────────────────────
#  The published set is allow-listed; anything else, at any depth, is not.
#  Leading slashes anchor these to the repo root so a same-named file in a
#  subdirectory is NOT re-included by the negation.
*.md
!/README.md
!/CHANGELOG.md
!/CONTRIBUTING.md
!/PRIVACY_POLICY.md

# ── Local working directories ──────────────────────────────────────────────
#  Working material that is not part of the app. Needs a committed rule rather
#  than a local-only one, because it can hold source-file types the extension
#  rules above deliberately do not cover.
.local/
backup/
lib/logic/backup/
