.PHONY: build-frontend build-pypi build-npm publish-pypi publish-npm release clean qa-full coverage-critical

build-frontend:
	cd frontend && npm run build

build-pypi:
	python3 -m build

build-npm:
	cd npm && npm pack

publish-pypi:
	twine upload dist/*

publish-npm:
	cd npm && npm publish

release: build-pypi publish-pypi publish-npm
	@echo "Released to PyPI and npm"

clean:
	rm -rf dist/ build/ *.egg-info npm/*.tgz

qa-full:
	ruff check .
	mypy --strict backend/
	python3 -m pytest tests/ -v --tb=short --cov=backend --cov-report=term-missing --cov-fail-under=82

coverage-critical:
	python3 -m coverage report --include="backend/utils/log_sanitizer.py" --fail-under=95
	python3 -m coverage report --include="backend/auth/license.py" --fail-under=95
