{ "name": "metalfromeu", "version": "0.0.1", "private": true, "type": "module", "description": "Monorepo metalfrom.eu — outillage qualité (lint, types, tests). Chaque app garde son propre runtime.", "workspaces": [ "apps/api" ], "scripts": { "lint": "eslint .", "lint:fix": "eslint . --fix", "typecheck": "tsc -p jsconfig.json", "test": "vitest run", "test:watch": "vitest", "test:cov": "vitest run --coverage", "test:mutation": "stryker run", "test:mutation:full": "stryker run stryker.full.config.json", "lint:py": "ruff check .", "lint:py:fix": "ruff check . --fix", "test:py": "npm run test:py:geocoder && npm run test:py:crawler", "test:py:geocoder": "cd apps/geocoder && python -m pytest tests -q", "test:py:crawler": "cd apps/crawler && python -m pytest tests -q", "audit:js": "npm audit --audit-level=high", "audit:py": "pip-audit -r apps/api/../crawler/requirements.txt -r apps/geocoder/requirements.txt", "_comment_check": "`check` = la porte de qualité lancée avant chaque push (~30s). Les tests de mutation et les audits de dépendances en sont exclus : trop lents / dépendants du réseau. Lancer `npm run check:full` avant une release.", "check": "npm run lint && npm run lint:py && npm run typecheck && npm run test && npm run test:py", "check:full": "npm run check && npm run audit:js && npm run audit:py && npm run test:mutation:full", "hooks:install": "git config core.hooksPath .githooks" }, "devDependencies": { "@eslint/js": "^9.17.0", "@stryker-mutator/core": "^8.7.1", "@stryker-mutator/vitest-runner": "^8.7.1", "@vitest/coverage-v8": "^2.1.8", "axe-core": "^4.10.2", "eslint": "^9.17.0", "globals": "^15.14.0", "jsdom": "^25.0.1", "typescript": "^5.7.2", "vitest": "^2.1.8" } }