.PHONY: precommit format test deps credo audit hex-audit cargo-audit

precommit:
	@EXIT=0; \
	$(MAKE) format || EXIT=1; \
	$(MAKE) test || EXIT=1; \
	$(MAKE) deps || EXIT=1; \
	$(MAKE) credo || EXIT=1; \
	exit $$EXIT

# Security audit targets — run independently (network-dependent, not in precommit).
# Add these to CI pipeline in addition to precommit.

audit: hex-audit cargo-audit

hex-audit:
	MIX_ENV=test mix hex.audit

cargo-audit:
	cargo audit --file rust/prop_grid_rs/Cargo.lock

format:
	MIX_ENV=test mix format --check-formatted

test:
	MIX_ENV=test mix test

deps:
	MIX_ENV=test mix deps.unlock --check-unused

credo:
	MIX_ENV=test mix credo --strict
