- Déduplication déterministe des identités, adresses, dates, entreprises, signatures et références - Implémentation dans src/services/ruleNer.ts et src/services/backendApi.ts - Clés de normalisation: prénom+nom, rue+CP+ville, nom+SIRET, type+valeur - Test ciblé tests/deduplication.test.ts pour valider la fonctionnalité - Documentation complète dans docs/deduplication_entites.md - Correction des tests existants (supertest, extractEntitiesFromText) - Compilation validée et services opérationnels
83 lines
3.1 KiB
JSON
83 lines
3.1 KiB
JSON
{
|
|
"name": "4nk-ia-front4nk",
|
|
"private": true,
|
|
"version": "0.1.4",
|
|
"type": "module",
|
|
"scripts": {
|
|
"predev": "node scripts/check-node.mjs",
|
|
"dev": "vite",
|
|
"prebuild": "node scripts/check-node.mjs",
|
|
"build": "tsc -b && vite build",
|
|
"clean:all": "rm -rf node_modules backend/node_modules dist cache log uploads backend/cache backend/uploads && mkdir -p uploads cache log backend/uploads backend/cache && npm ci --no-audit --no-fund && (cd backend && npm ci --no-audit --no-fund)",
|
|
"back:up": "npx --yes pm2 start ecosystem.config.cjs --only 4nk-ia-backend --env production",
|
|
"back:restart": "npx --yes pm2 restart 4nk-ia-backend || npx --yes pm2 start ecosystem.config.cjs --only 4nk-ia-backend --env production",
|
|
"prefront:up": "bash -lc 'p=$(ss -ltnp | grep :5174 | sed -n \"s/.*pid=\\([0-9]*\\).*/\\1/p\"); if [ -n \"$p\" ]; then kill $p; fi'",
|
|
"front:up": "vite",
|
|
"start:all": "npm run clean:all && concurrently -k -n back,front -c blue,green \"npm:back:restart\" \"npm:front:up\"",
|
|
"start:dev": "npm run clean:all && npm run back:restart && npm run front:up",
|
|
"lint": "eslint .",
|
|
"preview": "vite preview",
|
|
"format": "prettier --check .",
|
|
"format:fix": "prettier --write .",
|
|
"mdlint": "markdownlint . --ignore node_modules --ignore dist",
|
|
"test": "vitest run --coverage",
|
|
"test:ui": "vitest",
|
|
"test:collectors": "vitest run tests/collectors-simple.test.js",
|
|
"test:ocr": "vitest run tests/ocr.test.js",
|
|
"test:api": "vitest run tests/api.test.js",
|
|
"test:e2e": "vitest run tests/e2e.test.js",
|
|
"test:all": "npm run test:collectors && npm run test:ocr && npm run test:api && npm run test:e2e"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.19.0 <23",
|
|
"npm": ">=10"
|
|
},
|
|
"dependencies": {
|
|
"@emotion/react": "^11.14.0",
|
|
"@emotion/styled": "^11.14.1",
|
|
"@mui/icons-material": "^7.3.2",
|
|
"@mui/material": "^7.3.2",
|
|
"@reduxjs/toolkit": "^2.9.0",
|
|
"axios": "^1.11.0",
|
|
"canvas": "^3.2.0",
|
|
"jimp": "^1.6.0",
|
|
"pdf-parse": "^1.1.1",
|
|
"pdf-poppler": "^0.2.1",
|
|
"pdf2pic": "^3.2.0",
|
|
"react": "^19.1.1",
|
|
"react-dom": "^19.1.1",
|
|
"react-dropzone": "^14.3.8",
|
|
"react-redux": "^9.2.0",
|
|
"react-router-dom": "^7.9.1",
|
|
"sharp": "^0.34.3"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.33.0",
|
|
"@testing-library/jest-dom": "^6.8.0",
|
|
"@testing-library/react": "^16.3.0",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/react": "^19.1.10",
|
|
"@types/react-dom": "^19.1.7",
|
|
"@types/supertest": "^6.0.3",
|
|
"@vitejs/plugin-react": "^5.0.0",
|
|
"@vitest/coverage-v8": "^3.2.4",
|
|
"concurrently": "^9.2.1",
|
|
"eslint": "^9.33.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
"eslint-plugin-react-refresh": "^0.4.20",
|
|
"globals": "^16.3.0",
|
|
"jsdom": "^26.1.0",
|
|
"markdownlint": "^0.38.0",
|
|
"markdownlint-cli": "^0.45.0",
|
|
"pdfjs-dist": "^4.8.69",
|
|
"prettier": "^3.6.2",
|
|
"supertest": "^7.1.4",
|
|
"tesseract.js": "^5.1.0",
|
|
"typescript": "~5.8.3",
|
|
"typescript-eslint": "^8.39.1",
|
|
"vite": "^7.1.2",
|
|
"vitest": "^3.2.4"
|
|
}
|
|
}
|