Estabelece a fundação operacional de apps/api conforme STACK.md v2.2 e
CODING-RULES.md v2.0, substituindo o hello-world scaffolded.
- tracing.ts primeiro import (PGD-OBS-001) — stub OTel ativável por env
- EnvSchema Zod 4 com fail-fast (superRefine guarda prod) + EnvModule global
- nestjs-pino com redact LGPD (*.cpf|*.cardNumber|*.password|auth|cookie)
- main.ts hardenizado: helmet, CORS por env, compression, versionamento URI
/api/v1, graceful shutdown
- ProblemDetailsFilter global (RFC 9457 application/problem+json), Zod -> 422
- Health endpoints /api/v1/health/{live,ready} com memory.checkHeap(350MB)
(ready skeleton documenta K=3 LRU pool conforme PGD-OBS-003)
- WorkspaceModule via ClsModule.forRootAsync — requestId+workspaceId no CLS,
idGenerator alinhado com pino-http para mesmo UUID em header e body
- GET /api/v1/ping retornando workspaceId+requestId (alvo de smoke test e
futuro healthcheck do docker compose)
- ZodValidationPipe (nestjs-zod) como APP_PIPE global
- tsconfig.app.json target ES2023 (alinhado ao base)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
108 lines
3.1 KiB
JSON
108 lines
3.1 KiB
JSON
{
|
|
"name": "sar",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "SAR — Força de Vendas · JCS Sistemas (monorepo Nx)",
|
|
"license": "UNLICENSED",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=24.0.0",
|
|
"pnpm": ">=11.1.0"
|
|
},
|
|
"packageManager": "pnpm@11.1.0",
|
|
"scripts": {
|
|
"build": "nx run-many -t build",
|
|
"lint": "nx run-many -t lint",
|
|
"test": "nx run-many -t test",
|
|
"e2e": "nx run-many -t e2e",
|
|
"dev:api": "nx run api:serve",
|
|
"dev:web": "nx run web:serve",
|
|
"dev:up": "docker compose -f docker-compose.dev.yml up -d",
|
|
"dev:down": "docker compose -f docker-compose.dev.yml down",
|
|
"dev:logs": "docker compose -f docker-compose.dev.yml logs -f",
|
|
"graph": "nx graph",
|
|
"affected": "nx affected",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check ."
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.8.0",
|
|
"@nestjs/schematics": "^11.0.0",
|
|
"@nestjs/testing": "^11.0.0",
|
|
"@nx/devkit": "22.7.4",
|
|
"@nx/eslint": "^22.7.4",
|
|
"@nx/eslint-plugin": "22.7.4",
|
|
"@nx/jest": "22.7.4",
|
|
"@nx/js": "^22.7.4",
|
|
"@nx/nest": "^22.7.4",
|
|
"@nx/node": "^22.7.4",
|
|
"@nx/playwright": "^22.7.4",
|
|
"@nx/react": "^22.7.4",
|
|
"@nx/vite": "^22.7.4",
|
|
"@nx/vitest": "22.7.4",
|
|
"@nx/web": "^22.7.4",
|
|
"@nx/webpack": "22.7.4",
|
|
"@nx/workspace": "^22.7.4",
|
|
"@playwright/test": "^1.36.0",
|
|
"@swc-node/register": "~1.11.1",
|
|
"@swc/cli": "~0.8.0",
|
|
"@swc/core": "~1.15.5",
|
|
"@swc/helpers": "~0.5.18",
|
|
"@testing-library/dom": "10.4.0",
|
|
"@testing-library/react": "16.3.0",
|
|
"@types/compression": "^1.8.1",
|
|
"@types/express": "^5.0.6",
|
|
"@types/jest": "~30.0.0",
|
|
"@types/node": "catalog:",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@vitejs/plugin-react": "^6.0.0",
|
|
"@vitest/coverage-v8": "~4.1.0",
|
|
"@vitest/ui": "~4.1.0",
|
|
"eslint": "^9.8.0",
|
|
"eslint-config-prettier": "^10.0.0",
|
|
"eslint-plugin-import": "2.31.0",
|
|
"eslint-plugin-jsx-a11y": "6.10.1",
|
|
"eslint-plugin-playwright": "^1.6.2",
|
|
"eslint-plugin-react": "7.35.0",
|
|
"eslint-plugin-react-hooks": "5.0.0",
|
|
"jest": "~30.3.0",
|
|
"jest-environment-node": "~30.3.0",
|
|
"jest-util": "~30.3.0",
|
|
"jiti": "2.4.2",
|
|
"jsdom": "~22.1.0",
|
|
"jsonc-eslint-parser": "^2.1.0",
|
|
"nx": "^22.7.4",
|
|
"prettier": "^3.8.3",
|
|
"ts-jest": "^29.4.0",
|
|
"ts-node": "10.9.1",
|
|
"typescript": "catalog:",
|
|
"typescript-eslint": "^8.40.0",
|
|
"vite": "^8.0.0",
|
|
"vitest": "~4.1.0",
|
|
"webpack-cli": "^5.1.4"
|
|
},
|
|
"dependencies": {
|
|
"@nestjs/common": "^11.0.0",
|
|
"@nestjs/config": "^4.0.4",
|
|
"@nestjs/core": "^11.0.0",
|
|
"@nestjs/platform-express": "^11.0.0",
|
|
"@nestjs/terminus": "^11.1.1",
|
|
"axios": "^1.6.0",
|
|
"compression": "^1.8.1",
|
|
"helmet": "^8.2.0",
|
|
"nestjs-cls": "^5.4.3",
|
|
"nestjs-pino": "^4.6.1",
|
|
"nestjs-zod": "^4.3.1",
|
|
"pino": "^9.14.0",
|
|
"pino-http": "^10.5.0",
|
|
"pino-pretty": "^13.1.3",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"reflect-metadata": "^0.1.13",
|
|
"rxjs": "^7.8.0",
|
|
"tslib": "^2.3.0",
|
|
"zod": "catalog:"
|
|
}
|
|
}
|