node_modules
dist
.idea
.vscode
.vscode/settings.json
*.log
coverage

# Auth / secrets
.npmrc
.env
.env.*

# Firebase (legacy)
.firebaserc
firebase.json

# Test output
playwright-report/
test-results/
test-results.json
test-output*.txt
vitest-results.json
out.txt
test_output.txt

# Mutation testing (Stryker) — sandbox and generated report
.stryker-tmp/
reports/mutation/

# Local API spec dumps
openapi.json
openapi_paths.txt

# design-sync (claude.ai/design) — generated caches only.
# The `.design-sync/` and `.ds-sync/` scaffolding itself is tracked, so it must
# not be listed here: ignoring a tracked path has no effect and only misleads.
ds-bundle/
.design-sync/.cache/
.design-sync/learnings/
# The .ds-sync install is local tooling that never ships; its lockfile stays out of git
# so scanners do not report its transitive advisories against the project.
.ds-sync/package-lock.json
.design-sync/node_modules
.ds-sync/node_modules

# Generated by scripts/make-test-realm.mjs from helm/eddi/files/eddi-realm.json
# for the auth E2E tier. Never commit it: a committed copy is what let
# keycloak/eddi-realm.json drift until it matched nothing the backend serves.
.keycloak-test-realm/
