# ==============================================================================
# GLOBAL & OS
# ==============================================================================
.DS_Store
.DS_Store?
._*
.AppleDouble
.LSOverride
.Spotlight-V100
.Trashes
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
desktop.ini
$RECYCLE.BIN/
.Trash-*

# IDE & Editors
.idea/
*.iml
*.iws
*.swp
*.swo
*~
\#*\#
.\#*

# Logs & Cache
*.log
*.cache
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
*.pid
*.seed
*.pid.lock

# Temporary Files
*.tmp
*.temp
tmp/
temp/

# ==============================================================================
# SECURITY (CRITICAL)
# ==============================================================================
# Secrets directory (contains API keys, service accounts)
secrets/
# Environment files
.env
.env.local
.env.*.local
.env.development
.env.production
.env.test
!.env.example

# Certificates & Keys
*.pem
*.key
*.jks
*.keystore
*.p12
*.cer

# GCP Service Account Keys
gcp_keys/
**/*.service-account.json
**/sa.json

# NPM Auth
.npmrc
**/.npmrc
!**/.npmrc.template

# ==============================================================================
# NODE.JS / WEB (React, Vite, Functions)
# ==============================================================================
node_modules/
dist/
dist-ssr/
coverage/
.nyc_output/
.vite/
.temp/
*.local
.eslintcache
.stylelintcache
.npm
.turbo
.vercel

# Vite timestamps
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

# Generated Data Connect SDKs in web projects
# Generally ignored as they are regenerated on build
**/dataconnect-generated/

# ==============================================================================
# FLUTTER / MOBILE
# ==============================================================================
# Flutter/Dart
.dart_tool/
.pub-cache/
.flutter-plugins
.flutter-plugins-dependencies

# Firebase Data Connect Generated SDK (regenerated via make mobile-install)
**/dataconnect_generated/

# Android
.gradle/
**/android/app/libs/
**/android/key.properties
**/android/local.properties

# Build outputs
build/

# iOS
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/flutter_export_environment.sh
**/ios/Podfile.lock
**/ios/Pods/
**/ios/.symlinks/

# Ephemeral files (generated by Flutter for desktop platforms)
**/linux/flutter/ephemeral/
**/windows/flutter/ephemeral/
**/macos/Flutter/ephemeral/
**/ios/Flutter/ephemeral/

# ==============================================================================
# FIREBASE & BACKEND
# ==============================================================================
# Firebase Cache & Emulators
.firebase/
dataconnect/.dataconnect/
backend/dataconnect/.dataconnect/
backend/dataconnect/dataconnect.yaml

# Debug Logs (Recursive)
**/firebase-debug.log
**/firebase-debug.*.log
**/firestore-debug.log
**/ui-debug.log
**/database-debug.log
**/pubsub-debug.log

# Python Virtual Envs (if used)
venv/
env/
ENV/
__pycache__/
*.py[cod]
*$py.class
*.so

# ==============================================================================
# PROJECT SPECIFIC
# ==============================================================================
# Secure hashes are committed, but the raw user list is usually kept for reference
# unless it contains sensitive info. Here we explicitly ignore the raw file.
internal/launchpad/iap-users.txt

# Generated Prototypes (must be synced locally via 'make sync-prototypes')
internal/launchpad/prototypes/web/*
!internal/launchpad/prototypes/web/.keep
internal/launchpad/prototypes/mobile/**/*
!internal/launchpad/prototypes/mobile/**/.keep

# Prototype Source Code (synced for AI/Claude context, not for version control)
internal/launchpad/prototypes-src/

# Temporary migration artifacts
_legacy/
krow-workforce-export-latest/

# Data Connect Generated SDKs (Explicit)
apps/mobile/packages/data_connect/lib/src/dataconnect_generated/
apps/web/src/dataconnect-generated/
