From 13745e5874e9ac4d86ea4cc318af510a8e5fbabc Mon Sep 17 00:00:00 2001 From: admin Date: Sun, 19 Apr 2026 18:31:30 +0700 Subject: [PATCH] 690419:1831 feat: update CI/CD to use SSH key authentication #05 --- backend/.env.example | 57 + backend/docker-compose.yml | 14 + backend/eslint-backend-src.json | 1 + backend/npm-audit-backend.json | 2172 +++++++++++++++ backend/package.json | 13 +- backend/src/app.module.ts | 2 + .../common/auth/casl/ability.factory.spec.ts | 2 +- .../src/common/exceptions/base.exception.ts | 27 + backend/src/common/exceptions/index.ts | 1 + .../file-storage/file-storage.module.ts | 2 + .../file-storage/file-storage.service.ts | 41 +- .../audit-log.interceptor.spec.ts | 11 +- .../correspondence.controller.spec.ts | 12 +- .../migration/migration.controller.spec.ts | 25 +- .../rag/__tests__/ingestion.service.spec.ts | 86 + .../modules/rag/__tests__/rag.service.spec.ts | 206 ++ backend/src/modules/rag/dto/rag-query.dto.ts | 11 + .../src/modules/rag/dto/rag-response.dto.ts | 16 + backend/src/modules/rag/embedding.service.ts | 46 + .../rag/entities/document-chunk.entity.ts | 47 + backend/src/modules/rag/ingestion.service.ts | 30 + .../rag/processors/embedding.processor.ts | 110 + .../modules/rag/processors/ocr.processor.ts | 68 + .../processors/thai-preprocess.processor.ts | 56 + backend/src/modules/rag/qdrant.service.ts | 179 ++ backend/src/modules/rag/rag.controller.ts | 93 + backend/src/modules/rag/rag.module.ts | 55 + backend/src/modules/rag/rag.service.ts | 255 ++ backend/src/modules/rag/typhoon.service.ts | 115 + .../workflow-engine/workflow-engine.module.ts | 15 + .../workflow-engine.service.spec.ts | 62 +- .../workflow-engine.service.ts | 99 +- backend/test/simple.e2e-spec.ts | 2 +- frontend/app/(dashboard)/rag/page.tsx | 54 + .../components/rag/rag-fallback-badge.tsx | 12 + frontend/components/rag/rag-result-card.tsx | 74 + frontend/components/rag/rag-search-bar.tsx | 64 + frontend/eslint-frontend.json | 1 + .../__tests__/use-workflow-action.test.ts | 109 +- frontend/hooks/use-rag.ts | 36 + frontend/hooks/use-workflow-action.ts | 18 +- frontend/npm-audit-frontend.json | 794 ++++++ frontend/package.json | 7 +- npm-audit.json | 22 + package.json | 16 +- pnpm-lock.yaml | 2358 +++++++++-------- scripts/perf/RUNBOOK-windows.md | 214 ++ scripts/perf/workflow-transition.k6.js | 46 +- .../08-add-rag-status-to-attachments.sql | 11 + .../deltas/08b-create-document-chunks.sql | 25 + .../deltas/08c-seed-rag-permissions.sql | 8 + .../ASUSTOR/monitoring/.env.example | 2 +- .../ASUSTOR/monitoring/docker-compose.yml | 2 +- .../QNAP/app/.env.example | 94 +- .../QNAP/n8n/.env.example | 4 +- .../QNAP/n8n/docker-compose.yml | 7 +- .../QNAP/n8n/n8n-custom/Dockerfile | 4 +- .../QNAP/service/.env.example | 12 +- .../QNAP/service/docker-compose.yml | 11 +- ...cker-compse.yml => docker-compose.yml.bak} | 0 .../ADR-021-workflow-context/tasks.md | 14 +- 61 files changed, 6709 insertions(+), 1241 deletions(-) create mode 100644 backend/.env.example create mode 100644 backend/eslint-backend-src.json create mode 100644 backend/npm-audit-backend.json create mode 100644 backend/src/modules/rag/__tests__/ingestion.service.spec.ts create mode 100644 backend/src/modules/rag/__tests__/rag.service.spec.ts create mode 100644 backend/src/modules/rag/dto/rag-query.dto.ts create mode 100644 backend/src/modules/rag/dto/rag-response.dto.ts create mode 100644 backend/src/modules/rag/embedding.service.ts create mode 100644 backend/src/modules/rag/entities/document-chunk.entity.ts create mode 100644 backend/src/modules/rag/ingestion.service.ts create mode 100644 backend/src/modules/rag/processors/embedding.processor.ts create mode 100644 backend/src/modules/rag/processors/ocr.processor.ts create mode 100644 backend/src/modules/rag/processors/thai-preprocess.processor.ts create mode 100644 backend/src/modules/rag/qdrant.service.ts create mode 100644 backend/src/modules/rag/rag.controller.ts create mode 100644 backend/src/modules/rag/rag.module.ts create mode 100644 backend/src/modules/rag/rag.service.ts create mode 100644 backend/src/modules/rag/typhoon.service.ts create mode 100644 frontend/app/(dashboard)/rag/page.tsx create mode 100644 frontend/components/rag/rag-fallback-badge.tsx create mode 100644 frontend/components/rag/rag-result-card.tsx create mode 100644 frontend/components/rag/rag-search-bar.tsx create mode 100644 frontend/eslint-frontend.json create mode 100644 frontend/hooks/use-rag.ts create mode 100644 frontend/npm-audit-frontend.json create mode 100644 npm-audit.json create mode 100644 scripts/perf/RUNBOOK-windows.md create mode 100644 specs/03-Data-and-Storage/deltas/08-add-rag-status-to-attachments.sql create mode 100644 specs/03-Data-and-Storage/deltas/08b-create-document-chunks.sql create mode 100644 specs/03-Data-and-Storage/deltas/08c-seed-rag-permissions.sql rename specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/{docker-compse.yml => docker-compose.yml.bak} (100%) diff --git a/backend/.env.example b/backend/.env.example new file mode 100644 index 0000000..2cd0c8e --- /dev/null +++ b/backend/.env.example @@ -0,0 +1,57 @@ +# ======================================== +# LCBP3 Backend — Environment Variables +# Copy to .env and fill in real values +# หมายเหตุ: ค่า DB_PASSWORD, REDIS_PASSWORD, +# ELASTICSEARCH_PASSWORD ต้องตรงกับที่ตั้งไว้ใน +# services stack (MariaDB/Redis/Elasticsearch +# ดูจาก .env ของ services stack ที่รันอยู่แล้วบน QNAP +# ======================================== + +# Database +DB_HOST=localhost +DB_PORT=3306 +DB_USERNAME=admin +DB_PASSWORD=Center2025 +DB_DATABASE=lcbp3_dev + +# Redis +REDIS_HOST=localhost +REDIS_PORT=16379 +REDIS_PASSWORD=Center2025 + +# JWT +JWT_SECRET=change-me-in-production +JWT_EXPIRES_IN=7d + +# File Storage +UPLOAD_DEST=./uploads +MAX_FILE_SIZE=52428800 + +# ClamAV +CLAMAV_HOST=localhost +CLAMAV_PORT=3310 + +# ======================================== +# ADR-022 RAG — Retrieval-Augmented Generation +# ======================================== + +# Qdrant vector store (local docker-compose or QNAP) +QDRANT_URL=http://localhost:6333 + +# Ollama (Admin Desktop Desk-5439 — ADR-018 AI boundary) +OLLAMA_EMBED_MODEL=nomic-embed-text +OLLAMA_RAG_MODEL=gemma3:12b +OLLAMA_URL=http://192.168.10.100:11434 + +# Thai preprocessing microservice (PyThaiNLP — Admin Desktop) +THAI_PREPROCESS_URL=http://192.168.10.100:8765 + +# Typhoon API (cloud LLM — PUBLIC/INTERNAL only, never CONFIDENTIAL) +TYPHOON_API_KEY=your-typhoon-api-key-here +TYPHOON_API_URL=https://api.opentyphoon.ai/v1 + +# RAG query config +RAG_TOPK=20 +RAG_FINAL_K=5 +RAG_TIMEOUT_MS=5000 +RAG_QUERY_CACHE_TTL=300 diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 1df6e97..13d0fe2 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -54,10 +54,24 @@ services: - esdata:/usr/share/elasticsearch/data networks: - lcbp3-net + # ADR-022 RAG: Qdrant vector store (tiered multitenancy for project isolation) + qdrant: + image: qdrant/qdrant:v1.16.1 + container_name: lcbp3-qdrant-local + restart: always + ports: + - '6333:6333' # REST API + - '6334:6334' # gRPC + volumes: + - qdrant_data:/qdrant/storage + networks: + - lcbp3-net + volumes: db_data: redis_data: # เพิ่ม Volume esdata: + qdrant_data: # ADR-022 RAG vector store networks: lcbp3-net: diff --git a/backend/eslint-backend-src.json b/backend/eslint-backend-src.json new file mode 100644 index 0000000..93439a4 --- /dev/null +++ b/backend/eslint-backend-src.json @@ -0,0 +1 @@ +[{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\app.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\app.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\app.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\auth.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\auth.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\auth.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\casl\\ability.factory.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\casl\\casl.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\dto\\login.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\dto\\register.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\entities\\refresh-token.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\guards\\permissions.guard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\session.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\strategies\\jwt-refresh.strategy.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\auth\\strategies\\jwt.strategy.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\common.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\config\\env.validation.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\config\\redis.config.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\decorators\\audit.decorator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\decorators\\bypass-maintenance.decorator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\decorators\\circuit-breaker.decorator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\decorators\\current-user.decorator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\decorators\\idempotency.decorator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\decorators\\require-permission.decorator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\decorators\\retry.decorator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\entities\\audit-log.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\entities\\base.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\entities\\uuid-base.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\exceptions\\base.exception.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\exceptions\\http-exception.filter.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\exceptions\\index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\file-storage\\entities\\attachment.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\file-storage\\file-cleanup.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\file-storage\\file-storage.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\file-storage\\file-storage.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\file-storage\\file-storage.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\filters\\global-exception.filter.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\guards\\jwt-auth.guard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\guards\\jwt-refresh.guard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\guards\\maintenance-mode.guard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\guards\\rbac.guard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\interceptors\\audit-log.interceptor.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\interceptors\\idempotency.interceptor.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\interceptors\\performance.interceptor.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\interceptors\\transform.interceptor.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\interfaces\\request-with-user.interface.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\pipes\\parse-uuid.pipe.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\resilience\\resilience.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\services\\crypto.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\services\\request-context.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\services\\uuid-resolver.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\common\\utils\\uuid-guard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\config\\database.config.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\database\\migrations\\1701676800000-v1-5-1-schema-update.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\database\\migrations\\initial-schema.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\database\\seeds\\organization.seed.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\database\\seeds\\run-seed.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\database\\seeds\\user.seed.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\database\\seeds\\workflow-definitions.seed.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\main.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\ai-validation.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\ai.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\ai.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\ai.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\dto\\ai-callback.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\dto\\extract-document.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\dto\\migration-query.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\dto\\migration-update.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\entities\\ai-audit-log.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\ai\\entities\\migration-log.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\audit-log\\audit-log.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\audit-log\\audit-log.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\audit-log\\audit-log.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\auth\\entities\\role.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\circulation-workflow.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\circulation.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\circulation.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\circulation.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\dto\\create-circulation.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\dto\\force-close-circulation.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\dto\\reassign-routing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\dto\\search-circulation.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\dto\\update-circulation-routing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\entities\\circulation-routing.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\entities\\circulation-status-code.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\circulation\\entities\\circulation.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\contract\\contract.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\contract\\contract.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\contract\\contract.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\contract\\dto\\create-contract.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\contract\\dto\\search-contract.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\contract\\dto\\update-contract.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\contract\\entities\\contract-organization.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\contract\\entities\\contract.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\correspondence-workflow.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\correspondence.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\correspondence.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\correspondence.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\add-reference.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\bulk-cancel.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\cancel-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\create-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\create-routing-template.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\search-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\submit-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\update-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\dto\\workflow-action.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\due-date-reminder.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-recipient.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-reference.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-revision-attachment.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-revision.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-routing.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-status.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-sub-type.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-tag.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence-type.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\correspondence.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\routing-template-step.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\correspondence\\entities\\routing-template.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\dashboard\\dashboard.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\dashboard\\dashboard.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\dashboard\\dashboard.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\dashboard\\dto\\dashboard-stats.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\dashboard\\dto\\get-activity.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\dashboard\\dto\\get-pending.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\dashboard\\dto\\get-stats.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\dashboard\\dto\\index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\controllers\\document-numbering-admin.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\controllers\\document-numbering.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\controllers\\numbering-metrics.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\document-numbering.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\dto\\confirm-reservation.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\dto\\counter-key.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\dto\\manual-override.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\dto\\preview-number.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\dto\\reserve-number.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\entities\\document-number-audit.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\entities\\document-number-counter.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\entities\\document-number-error.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\entities\\document-number-format.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\entities\\document-number-reservation.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\interfaces\\document-numbering.interface.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\audit.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\counter.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\document-numbering-lock.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\document-numbering.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\format.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\manual-override.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\metrics.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\reservation.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\document-numbering\\services\\template.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\asbuilt-drawing.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\asbuilt-drawing.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\contract-drawing.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\contract-drawing.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\drawing-master-data.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\drawing-master-data.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\drawing.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\create-asbuilt-drawing-revision.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\create-asbuilt-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\create-contract-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\create-shop-drawing-revision.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\create-shop-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\search-asbuilt-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\search-contract-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\search-shop-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\dto\\update-contract-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\asbuilt-drawing-revision.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\asbuilt-drawing.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\contract-drawing-category.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\contract-drawing-sub-category.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\contract-drawing-subcat-cat-map.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\contract-drawing-volume.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\contract-drawing.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\shop-drawing-main-category.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\shop-drawing-revision.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\shop-drawing-sub-category.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\entities\\shop-drawing.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\shop-drawing.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\drawing\\shop-drawing.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\dto\\create-json-schema.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\dto\\migrate-data.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\dto\\search-json-schema.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\dto\\update-json-schema.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\entities\\json-schema.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\interfaces\\ui-schema.interface.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\interfaces\\validation-result.interface.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\json-schema.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\json-schema.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\json-schema.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\services\\json-security.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\services\\schema-migration.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\services\\ui-schema.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\json-schema\\services\\virtual-column.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\dto\\create-discipline.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\dto\\create-sub-type.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\dto\\create-tag.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\dto\\save-number-format.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\dto\\search-tag.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\dto\\update-tag.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\entities\\discipline.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\entities\\tag.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\master.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\master.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\master\\master.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\dto\\commit-batch.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\dto\\create-migration-error.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\dto\\enqueue-migration.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\dto\\import-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\dto\\migration-queue-query.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\entities\\import-transaction.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\entities\\migration-error.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\entities\\migration-review-queue.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\migration.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\migration.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\migration\\migration.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\monitoring\\controllers\\health.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\monitoring\\dto\\set-maintenance.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\monitoring\\logger\\winston.config.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\monitoring\\monitoring.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\monitoring\\monitoring.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\monitoring\\monitoring.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\monitoring\\services\\metrics.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\dto\\create-notification.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\dto\\search-notification.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\entities\\notification.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\notification-cleanup.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\notification.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\notification.gateway.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\notification.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\notification.processor.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\notification\\notification.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\organization\\dto\\create-organization.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\organization\\dto\\search-organization.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\organization\\dto\\update-organization.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\organization\\entities\\organization-role.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\organization\\entities\\organization.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\organization\\organization.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\organization\\organization.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\organization\\organization.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\project\\dto\\create-project.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\project\\dto\\search-project.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\project\\dto\\update-project.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\project\\entities\\project-organization.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\project\\entities\\project.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\project\\project.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\project\\project.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\project\\project.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\dto\\rag-query.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\dto\\rag-response.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\embedding.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\entities\\document-chunk.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\ingestion.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\processors\\embedding.processor.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\processors\\ocr.processor.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\processors\\thai-preprocess.processor.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\qdrant.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\rag.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\rag.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\rag.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rag\\typhoon.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\dto\\create-rfa-revision.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\dto\\create-rfa-workflow.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\dto\\create-rfa.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\dto\\search-rfa.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\dto\\submit-rfa.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\dto\\update-rfa.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa-approve-code.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa-item.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa-revision.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa-status-code.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa-type.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa-workflow-template-step.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa-workflow-template.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa-workflow.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\entities\\rfa.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\rfa-workflow.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\rfa.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\rfa.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\rfa\\rfa.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\search\\dto\\search-query.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\search\\search.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\search\\search.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\search\\search.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\transmittal\\dto\\create-transmittal.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\transmittal\\dto\\search-transmittal.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\transmittal\\dto\\update-transmittal.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\transmittal\\entities\\transmittal-item.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\transmittal\\entities\\transmittal.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\transmittal\\transmittal.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\transmittal\\transmittal.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\transmittal\\transmittal.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\dto\\assign-role.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\dto\\bulk-assignment.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\dto\\create-user.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\dto\\search-user.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\dto\\update-preference.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\dto\\update-user.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\entities\\permission.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\entities\\role.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\entities\\user-assignment.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\entities\\user-preference.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\entities\\user.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\user-assignment.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\user-preference.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\user.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\user.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\user\\user.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\dsl\\parser.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\dsl\\workflow-dsl.schema.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\dto\\create-workflow-definition.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\dto\\evaluate-workflow.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\dto\\get-available-actions.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\dto\\update-workflow-definition.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\dto\\workflow-history-item.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\dto\\workflow-transition.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\entities\\workflow-definition.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\entities\\workflow-history.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\entities\\workflow-instance.entity.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\guards\\workflow-transition.guard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\interfaces\\workflow.interface.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\workflow-dsl.service.ts","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-implied-eval","severity":2,"message":"Implied eval. Do not use the Function constructor to create functions.","line":294,"column":20,"nodeType":"NewExpression","messageId":"noFunctionConstructor","endLine":294,"endColumn":68,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of a `Function` typed value.","line":296,"column":16,"nodeType":"Identifier","messageId":"unsafeCall","endLine":296,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\workflow-engine.controller.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\workflow-engine.module.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\workflow-engine.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\modules\\workflow-engine\\workflow-event.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\redlock.d.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"E:\\np-dms\\lcbp3\\backend\\src\\scripts\\migrate-storage-v2.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]}] \ No newline at end of file diff --git a/backend/npm-audit-backend.json b/backend/npm-audit-backend.json new file mode 100644 index 0000000..fee7d75 --- /dev/null +++ b/backend/npm-audit-backend.json @@ -0,0 +1,2172 @@ +{ + "auditReportVersion": 2, + "vulnerabilities": { + "@angular-devkit/core": { + "name": "@angular-devkit/core", + "severity": "moderate", + "isDirect": false, + "via": [ + "ajv", + "picomatch" + ], + "effects": [ + "@angular-devkit/schematics", + "@angular-devkit/schematics-cli", + "@nestjs/cli", + "@nestjs/schematics" + ], + "range": "12.0.0-next.0 - 19.2.22 || 20.0.0-next.0 - 20.3.21 || 21.0.0-next.0 - 21.2.4 || 22.0.0-next.0 - 22.0.0-next.3", + "nodes": [ + "node_modules/@angular-devkit/core", + "node_modules/@compodoc/compodoc/node_modules/@angular-devkit/core", + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core" + ], + "fixAvailable": { + "name": "@compodoc/compodoc", + "version": "1.1.23", + "isSemVerMajor": true + } + }, + "@angular-devkit/schematics": { + "name": "@angular-devkit/schematics", + "severity": "moderate", + "isDirect": false, + "via": [ + "@angular-devkit/core" + ], + "effects": [ + "@compodoc/compodoc" + ], + "range": "17.2.0-next.0 - 19.2.22 || 20.0.0-next.0 - 20.3.21 || 21.0.0-next.0 - 21.2.4 || 22.0.0-next.0 - 22.0.0-next.3", + "nodes": [ + "node_modules/@angular-devkit/schematics", + "node_modules/@compodoc/compodoc/node_modules/@angular-devkit/schematics", + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics" + ], + "fixAvailable": { + "name": "@compodoc/compodoc", + "version": "1.1.23", + "isSemVerMajor": true + } + }, + "@angular-devkit/schematics-cli": { + "name": "@angular-devkit/schematics-cli", + "severity": "moderate", + "isDirect": false, + "via": [ + "@angular-devkit/core", + "@angular-devkit/schematics" + ], + "effects": [], + "range": "17.2.0-next.0 - 19.2.22 || 20.0.0-next.0 - 20.3.21 || 21.0.0-next.0 - 21.2.4 || 22.0.0-next.0 - 22.0.0-next.3", + "nodes": [ + "node_modules/@angular-devkit/schematics-cli" + ], + "fixAvailable": true + }, + "@aws-sdk/client-sesv2": { + "name": "@aws-sdk/client-sesv2", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core", + "@aws-sdk/credential-provider-node", + "@aws-sdk/middleware-user-agent", + "@aws-sdk/signature-v4-multi-region", + "@aws-sdk/util-user-agent-node" + ], + "effects": [], + "range": "3.894.0 - 3.978.0", + "nodes": [ + "node_modules/@aws-sdk/client-sesv2" + ], + "fixAvailable": true + }, + "@aws-sdk/client-sso": { + "name": "@aws-sdk/client-sso", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core", + "@aws-sdk/middleware-user-agent", + "@aws-sdk/util-user-agent-node" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/client-sso" + ], + "fixAvailable": true + }, + "@aws-sdk/core": { + "name": "@aws-sdk/core", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/xml-builder" + ], + "effects": [ + "@aws-sdk/client-sesv2", + "@aws-sdk/client-sso", + "@aws-sdk/credential-provider-env", + "@aws-sdk/credential-provider-http", + "@aws-sdk/credential-provider-ini", + "@aws-sdk/credential-provider-login", + "@aws-sdk/credential-provider-process", + "@aws-sdk/credential-provider-sso", + "@aws-sdk/credential-provider-web-identity", + "@aws-sdk/middleware-sdk-s3", + "@aws-sdk/middleware-user-agent", + "@aws-sdk/nested-clients", + "@aws-sdk/token-providers" + ], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/core" + ], + "fixAvailable": true + }, + "@aws-sdk/credential-provider-env": { + "name": "@aws-sdk/credential-provider-env", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/credential-provider-env" + ], + "fixAvailable": true + }, + "@aws-sdk/credential-provider-http": { + "name": "@aws-sdk/credential-provider-http", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core" + ], + "effects": [ + "@aws-sdk/credential-provider-node" + ], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/credential-provider-http" + ], + "fixAvailable": true + }, + "@aws-sdk/credential-provider-ini": { + "name": "@aws-sdk/credential-provider-ini", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core", + "@aws-sdk/credential-provider-env", + "@aws-sdk/credential-provider-http", + "@aws-sdk/credential-provider-login", + "@aws-sdk/credential-provider-process", + "@aws-sdk/credential-provider-sso", + "@aws-sdk/credential-provider-web-identity", + "@aws-sdk/nested-clients" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/credential-provider-ini" + ], + "fixAvailable": true + }, + "@aws-sdk/credential-provider-login": { + "name": "@aws-sdk/credential-provider-login", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core", + "@aws-sdk/nested-clients" + ], + "effects": [ + "@aws-sdk/credential-provider-ini" + ], + "range": "<=3.972.0", + "nodes": [ + "node_modules/@aws-sdk/credential-provider-login" + ], + "fixAvailable": true + }, + "@aws-sdk/credential-provider-node": { + "name": "@aws-sdk/credential-provider-node", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/credential-provider-env", + "@aws-sdk/credential-provider-http", + "@aws-sdk/credential-provider-ini", + "@aws-sdk/credential-provider-process", + "@aws-sdk/credential-provider-sso", + "@aws-sdk/credential-provider-web-identity" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/credential-provider-node" + ], + "fixAvailable": true + }, + "@aws-sdk/credential-provider-process": { + "name": "@aws-sdk/credential-provider-process", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/credential-provider-process" + ], + "fixAvailable": true + }, + "@aws-sdk/credential-provider-sso": { + "name": "@aws-sdk/credential-provider-sso", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/client-sso", + "@aws-sdk/core", + "@aws-sdk/token-providers" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/credential-provider-sso" + ], + "fixAvailable": true + }, + "@aws-sdk/credential-provider-web-identity": { + "name": "@aws-sdk/credential-provider-web-identity", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core", + "@aws-sdk/nested-clients" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/credential-provider-web-identity" + ], + "fixAvailable": true + }, + "@aws-sdk/middleware-sdk-s3": { + "name": "@aws-sdk/middleware-sdk-s3", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core" + ], + "effects": [ + "@aws-sdk/signature-v4-multi-region" + ], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/middleware-sdk-s3" + ], + "fixAvailable": true + }, + "@aws-sdk/middleware-user-agent": { + "name": "@aws-sdk/middleware-user-agent", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core" + ], + "effects": [ + "@aws-sdk/util-user-agent-node" + ], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/middleware-user-agent" + ], + "fixAvailable": true + }, + "@aws-sdk/nested-clients": { + "name": "@aws-sdk/nested-clients", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core", + "@aws-sdk/middleware-user-agent", + "@aws-sdk/util-user-agent-node" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/nested-clients" + ], + "fixAvailable": true + }, + "@aws-sdk/signature-v4-multi-region": { + "name": "@aws-sdk/signature-v4-multi-region", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/middleware-sdk-s3" + ], + "effects": [ + "@aws-sdk/client-sesv2" + ], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/signature-v4-multi-region" + ], + "fixAvailable": true + }, + "@aws-sdk/token-providers": { + "name": "@aws-sdk/token-providers", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/core", + "@aws-sdk/nested-clients" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/token-providers" + ], + "fixAvailable": true + }, + "@aws-sdk/util-user-agent-node": { + "name": "@aws-sdk/util-user-agent-node", + "severity": "high", + "isDirect": false, + "via": [ + "@aws-sdk/middleware-user-agent" + ], + "effects": [], + "range": "3.894.0 - 3.972.0", + "nodes": [ + "node_modules/@aws-sdk/util-user-agent-node" + ], + "fixAvailable": true + }, + "@aws-sdk/xml-builder": { + "name": "@aws-sdk/xml-builder", + "severity": "high", + "isDirect": false, + "via": [ + "fast-xml-parser" + ], + "effects": [ + "@aws-sdk/core" + ], + "range": "3.894.0 - 3.972.2", + "nodes": [ + "node_modules/@aws-sdk/xml-builder" + ], + "fixAvailable": true + }, + "@casl/ability": { + "name": "@casl/ability", + "severity": "critical", + "isDirect": true, + "via": [ + { + "source": 1113148, + "name": "@casl/ability", + "dependency": "@casl/ability", + "title": "CASL Ability is Vulnerable to Prototype Pollution", + "url": "https://github.com/advisories/GHSA-x9vf-53q3-cvx6", + "severity": "critical", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 9.8, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + "range": ">=2.4.0 <=6.7.4" + } + ], + "effects": [], + "range": "2.4.0 - 6.7.3", + "nodes": [ + "node_modules/@casl/ability" + ], + "fixAvailable": true + }, + "@compodoc/compodoc": { + "name": "@compodoc/compodoc", + "severity": "moderate", + "isDirect": true, + "via": [ + "@angular-devkit/schematics" + ], + "effects": [], + "range": ">=1.1.24", + "nodes": [ + "node_modules/@compodoc/compodoc" + ], + "fixAvailable": { + "name": "@compodoc/compodoc", + "version": "1.1.23", + "isSemVerMajor": true + } + }, + "@elastic/elasticsearch": { + "name": "@elastic/elasticsearch", + "severity": "moderate", + "isDirect": true, + "via": [ + "@elastic/transport" + ], + "effects": [], + "range": "8.0.0-alpha.0 - 8.0.0-beta.1 || 8.6.1 || 8.7.3 || 8.8.2 || 8.9.2 || 8.10.1 || 8.11.1 || 8.12.3 || 8.13.1", + "nodes": [ + "node_modules/@elastic/elasticsearch" + ], + "fixAvailable": true + }, + "@elastic/transport": { + "name": "@elastic/transport", + "severity": "moderate", + "isDirect": false, + "via": [ + "undici" + ], + "effects": [ + "@elastic/elasticsearch" + ], + "range": "<=8.4.1", + "nodes": [ + "node_modules/@elastic/transport" + ], + "fixAvailable": true + }, + "@isaacs/brace-expansion": { + "name": "@isaacs/brace-expansion", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1112954, + "name": "@isaacs/brace-expansion", + "dependency": "@isaacs/brace-expansion", + "title": "@isaacs/brace-expansion has Uncontrolled Resource Consumption", + "url": "https://github.com/advisories/GHSA-7h2j-956f-4vf2", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=5.0.0" + } + ], + "effects": [], + "range": "5.0.0", + "nodes": [ + "node_modules/@isaacs/brace-expansion" + ], + "fixAvailable": true + }, + "@nestjs-modules/ioredis": { + "name": "@nestjs-modules/ioredis", + "severity": "moderate", + "isDirect": true, + "via": [ + "@nestjs/terminus" + ], + "effects": [], + "range": "1.2.0 - 2.0.2", + "nodes": [ + "node_modules/@nestjs-modules/ioredis" + ], + "fixAvailable": true + }, + "@nestjs/cli": { + "name": "@nestjs/cli", + "severity": "moderate", + "isDirect": true, + "via": [ + "@angular-devkit/core", + "@angular-devkit/schematics", + "@angular-devkit/schematics-cli", + "webpack" + ], + "effects": [], + "range": "8.1.3 - 11.0.17 || >=12.0.0-alpha.0", + "nodes": [ + "node_modules/@nestjs/cli" + ], + "fixAvailable": true + }, + "@nestjs/common": { + "name": "@nestjs/common", + "severity": "moderate", + "isDirect": true, + "via": [ + "file-type" + ], + "effects": [], + "range": "10.4.16 - 10.4.22 || 11.0.16 - 11.1.16 || >=12.0.0-alpha.0", + "nodes": [ + "node_modules/@nestjs/common" + ], + "fixAvailable": true + }, + "@nestjs/config": { + "name": "@nestjs/config", + "severity": "moderate", + "isDirect": true, + "via": [ + "lodash" + ], + "effects": [], + "range": "1.1.6 - 4.0.2", + "nodes": [ + "node_modules/@nestjs/config" + ], + "fixAvailable": true + }, + "@nestjs/core": { + "name": "@nestjs/core", + "severity": "high", + "isDirect": true, + "via": [ + { + "source": 1116226, + "name": "@nestjs/core", + "dependency": "@nestjs/core", + "title": "@nestjs/core Improperly Neutralizes Special Elements in Output Used by a Downstream Component ('Injection')", + "url": "https://github.com/advisories/GHSA-36xv-jgw5-4q75", + "severity": "moderate", + "cwe": [ + "CWE-74" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=11.1.17" + }, + "path-to-regexp" + ], + "effects": [ + "@nestjs/terminus", + "@nestjs/typeorm" + ], + "range": "<=11.1.17 || >=12.0.0-alpha.0", + "nodes": [ + "node_modules/@nestjs/core" + ], + "fixAvailable": true + }, + "@nestjs/platform-express": { + "name": "@nestjs/platform-express", + "severity": "high", + "isDirect": true, + "via": [ + "multer", + "path-to-regexp" + ], + "effects": [], + "range": "<=11.1.17 || >=12.0.0-alpha.0", + "nodes": [ + "node_modules/@nestjs/platform-express" + ], + "fixAvailable": true + }, + "@nestjs/schematics": { + "name": "@nestjs/schematics", + "severity": "moderate", + "isDirect": true, + "via": [ + "@angular-devkit/core", + "@angular-devkit/schematics" + ], + "effects": [], + "range": "10.1.2 - 11.0.9 || >=12.0.0-alpha.0", + "nodes": [ + "node_modules/@nestjs/schematics" + ], + "fixAvailable": true + }, + "@nestjs/swagger": { + "name": "@nestjs/swagger", + "severity": "high", + "isDirect": true, + "via": [ + "lodash", + "path-to-regexp" + ], + "effects": [], + "range": "1.1.0 - 1.1.4 || 3.0.1 - 11.2.6", + "nodes": [ + "node_modules/@nestjs/swagger" + ], + "fixAvailable": true + }, + "@nestjs/terminus": { + "name": "@nestjs/terminus", + "severity": "moderate", + "isDirect": false, + "via": [ + "@nestjs/core", + "@nestjs/typeorm" + ], + "effects": [ + "@nestjs-modules/ioredis" + ], + "range": "<=10.3.0", + "nodes": [ + "node_modules/@nestjs-modules/ioredis/node_modules/@nestjs/terminus" + ], + "fixAvailable": true + }, + "@nestjs/typeorm": { + "name": "@nestjs/typeorm", + "severity": "moderate", + "isDirect": false, + "via": [ + "@nestjs/core" + ], + "effects": [ + "@nestjs/terminus" + ], + "range": "5.1.0 - 10.0.2", + "nodes": [ + "node_modules/@nestjs-modules/ioredis/node_modules/@nestjs/typeorm" + ], + "fixAvailable": true + }, + "ajv": { + "name": "ajv", + "severity": "moderate", + "isDirect": true, + "via": [ + { + "source": 1113714, + "name": "ajv", + "dependency": "ajv", + "title": "ajv has ReDoS when using `$data` option", + "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", + "severity": "moderate", + "cwe": [ + "CWE-400", + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<6.14.0" + }, + { + "source": 1113715, + "name": "ajv", + "dependency": "ajv", + "title": "ajv has ReDoS when using `$data` option", + "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", + "severity": "moderate", + "cwe": [ + "CWE-400", + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=7.0.0-alpha.0 <8.18.0" + } + ], + "effects": [ + "@angular-devkit/core" + ], + "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0", + "nodes": [ + "node_modules/@eslint/eslintrc/node_modules/ajv", + "node_modules/ajv", + "node_modules/eslint/node_modules/ajv", + "node_modules/schema-utils/node_modules/ajv" + ], + "fixAvailable": { + "name": "@compodoc/compodoc", + "version": "1.1.23", + "isSemVerMajor": true + } + }, + "axios": { + "name": "axios", + "severity": "high", + "isDirect": true, + "via": [ + { + "source": 1113275, + "name": "axios", + "dependency": "axios", + "title": "Axios is Vulnerable to Denial of Service via __proto__ Key in mergeConfig", + "url": "https://github.com/advisories/GHSA-43fc-jf86-j433", + "severity": "high", + "cwe": [ + "CWE-754" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=1.0.0 <=1.13.4" + }, + { + "source": 1116673, + "name": "axios", + "dependency": "axios", + "title": "Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF", + "url": "https://github.com/advisories/GHSA-3p68-rc4w-qgx5", + "severity": "moderate", + "cwe": [ + "CWE-441", + "CWE-918" + ], + "cvss": { + "score": 4.8, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + }, + "range": ">=1.0.0 <1.15.0" + }, + { + "source": 1116675, + "name": "axios", + "dependency": "axios", + "title": "Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain", + "url": "https://github.com/advisories/GHSA-fvcv-3m26-pcqx", + "severity": "moderate", + "cwe": [ + "CWE-113", + "CWE-444", + "CWE-918" + ], + "cvss": { + "score": 4.8, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + }, + "range": ">=1.0.0 <1.15.0" + } + ], + "effects": [], + "range": "1.0.0 - 1.14.0", + "nodes": [ + "node_modules/axios" + ], + "fixAvailable": true + }, + "body-parser": { + "name": "body-parser", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1110858, + "name": "body-parser", + "dependency": "body-parser", + "title": "body-parser is vulnerable to denial of service when url encoding is used", + "url": "https://github.com/advisories/GHSA-wqch-xfxh-vrr4", + "severity": "moderate", + "cwe": [ + "CWE-400" + ], + "cvss": { + "score": 5.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" + }, + "range": ">=2.2.0 <2.2.1" + } + ], + "effects": [], + "range": "2.2.0", + "nodes": [ + "node_modules/body-parser" + ], + "fixAvailable": true + }, + "brace-expansion": { + "name": "brace-expansion", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1115540, + "name": "brace-expansion", + "dependency": "brace-expansion", + "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion", + "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v", + "severity": "moderate", + "cwe": [ + "CWE-400" + ], + "cvss": { + "score": 6.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H" + }, + "range": "<1.1.13" + }, + { + "source": 1115541, + "name": "brace-expansion", + "dependency": "brace-expansion", + "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion", + "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v", + "severity": "moderate", + "cwe": [ + "CWE-400" + ], + "cvss": { + "score": 6.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H" + }, + "range": ">=2.0.0 <2.0.3" + } + ], + "effects": [], + "range": "<1.1.13 || >=2.0.0 <2.0.3", + "nodes": [ + "node_modules/@jest/reporters/node_modules/brace-expansion", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion", + "node_modules/brace-expansion", + "node_modules/jest-config/node_modules/brace-expansion", + "node_modules/jest-runtime/node_modules/brace-expansion", + "node_modules/typeorm/node_modules/brace-expansion" + ], + "fixAvailable": true + }, + "diff": { + "name": "diff", + "severity": "low", + "isDirect": false, + "via": [ + { + "source": 1112704, + "name": "diff", + "dependency": "diff", + "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch", + "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx", + "severity": "low", + "cwe": [ + "CWE-400", + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=4.0.0 <4.0.4" + } + ], + "effects": [], + "range": "4.0.0 - 4.0.3", + "nodes": [ + "node_modules/diff" + ], + "fixAvailable": true + }, + "fast-xml-parser": { + "name": "fast-xml-parser", + "severity": "critical", + "isDirect": false, + "via": [ + { + "source": 1113153, + "name": "fast-xml-parser", + "dependency": "fast-xml-parser", + "title": "fast-xml-parser has RangeError DoS Numeric Entities Bug", + "url": "https://github.com/advisories/GHSA-37qj-frw5-hhjh", + "severity": "high", + "cwe": [ + "CWE-20", + "CWE-248" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=5.0.9 <=5.3.3" + }, + { + "source": 1113568, + "name": "fast-xml-parser", + "dependency": "fast-xml-parser", + "title": "fast-xml-parser has an entity encoding bypass via regex injection in DOCTYPE entity names", + "url": "https://github.com/advisories/GHSA-m7jm-9gc2-mpf2", + "severity": "critical", + "cwe": [ + "CWE-185" + ], + "cvss": { + "score": 9.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:H/A:N" + }, + "range": ">=5.0.0 <5.3.5" + }, + { + "source": 1113569, + "name": "fast-xml-parser", + "dependency": "fast-xml-parser", + "title": "fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)", + "url": "https://github.com/advisories/GHSA-jmr7-xgp7-cmfj", + "severity": "high", + "cwe": [ + "CWE-776" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=5.0.0 <5.3.6" + }, + { + "source": 1114153, + "name": "fast-xml-parser", + "dependency": "fast-xml-parser", + "title": "fast-xml-parser has stack overflow in XMLBuilder with preserveOrder", + "url": "https://github.com/advisories/GHSA-fj3w-jwp8-x2g3", + "severity": "low", + "cwe": [ + "CWE-120" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=5.0.0 <5.3.8" + }, + { + "source": 1115339, + "name": "fast-xml-parser", + "dependency": "fast-xml-parser", + "title": "fast-xml-parser affected by numeric entity expansion bypassing all entity expansion limits (incomplete fix for CVE-2026-26278)", + "url": "https://github.com/advisories/GHSA-8gc5-j5rx-235r", + "severity": "high", + "cwe": [ + "CWE-776" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=5.0.0 <5.5.6" + }, + { + "source": 1116307, + "name": "fast-xml-parser", + "dependency": "fast-xml-parser", + "title": "Entity Expansion Limits Bypassed When Set to Zero Due to JavaScript Falsy Evaluation in fast-xml-parser", + "url": "https://github.com/advisories/GHSA-jp2q-39xq-3w4g", + "severity": "moderate", + "cwe": [ + "CWE-1284" + ], + "cvss": { + "score": 5.9, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=5.0.0 <5.5.7" + } + ], + "effects": [ + "@aws-sdk/xml-builder" + ], + "range": "5.0.0 - 5.5.6", + "nodes": [ + "node_modules/fast-xml-parser" + ], + "fixAvailable": true + }, + "file-type": { + "name": "file-type", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1114301, + "name": "file-type", + "dependency": "file-type", + "title": "file-type affected by infinite loop in ASF parser on malformed input with zero-size sub-header", + "url": "https://github.com/advisories/GHSA-5v7r-6r5c-r473", + "severity": "moderate", + "cwe": [ + "CWE-835" + ], + "cvss": { + "score": 5.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" + }, + "range": ">=13.0.0 <21.3.1" + }, + { + "source": 1114726, + "name": "file-type", + "dependency": "file-type", + "title": "file-type: ZIP Decompression Bomb DoS via [Content_Types].xml entry", + "url": "https://github.com/advisories/GHSA-j47w-4g3g-c36v", + "severity": "moderate", + "cwe": [ + "CWE-400", + "CWE-409" + ], + "cvss": { + "score": 5.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" + }, + "range": ">=20.0.0 <=21.3.1" + } + ], + "effects": [ + "@nestjs/common" + ], + "range": "13.0.0 - 21.3.1", + "nodes": [ + "node_modules/file-type" + ], + "fixAvailable": true + }, + "flatted": { + "name": "flatted", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1114526, + "name": "flatted", + "dependency": "flatted", + "title": "flatted vulnerable to unbounded recursion DoS in parse() revive phase", + "url": "https://github.com/advisories/GHSA-25h7-pfq9-p65f", + "severity": "high", + "cwe": [ + "CWE-674" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<3.4.0" + }, + { + "source": 1115357, + "name": "flatted", + "dependency": "flatted", + "title": "Prototype Pollution via parse() in NodeJS flatted", + "url": "https://github.com/advisories/GHSA-rf6f-7fwh-wjgh", + "severity": "high", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=3.4.1" + } + ], + "effects": [], + "range": "<=3.4.1", + "nodes": [ + "node_modules/flatted" + ], + "fixAvailable": true + }, + "follow-redirects": { + "name": "follow-redirects", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1116560, + "name": "follow-redirects", + "dependency": "follow-redirects", + "title": "follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets", + "url": "https://github.com/advisories/GHSA-r4q5-vmmm-2653", + "severity": "moderate", + "cwe": [ + "CWE-200" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=1.15.11" + } + ], + "effects": [], + "range": "<=1.15.11", + "nodes": [ + "node_modules/follow-redirects" + ], + "fixAvailable": true + }, + "handlebars": { + "name": "handlebars", + "severity": "critical", + "isDirect": false, + "via": [ + { + "source": 1115538, + "name": "handlebars", + "dependency": "handlebars", + "title": "Handlebars.js has JavaScript Injection via AST Type Confusion by tampering @partial-block", + "url": "https://github.com/advisories/GHSA-3mfm-83xf-c92r", + "severity": "high", + "cwe": [ + "CWE-94", + "CWE-843" + ], + "cvss": { + "score": 8.1, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + "range": ">=4.0.0 <=4.7.8" + }, + { + "source": 1115539, + "name": "handlebars", + "dependency": "handlebars", + "title": "Handlebars.js has JavaScript Injection via AST Type Confusion", + "url": "https://github.com/advisories/GHSA-2w6w-674q-4c4q", + "severity": "critical", + "cwe": [ + "CWE-94", + "CWE-843" + ], + "cvss": { + "score": 9.8, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + "range": ">=4.0.0 <=4.7.8" + }, + { + "source": 1115544, + "name": "handlebars", + "dependency": "handlebars", + "title": "Handlebars.js has Prototype Pollution Leading to XSS through Partial Template Injection", + "url": "https://github.com/advisories/GHSA-2qvq-rjwj-gvw9", + "severity": "moderate", + "cwe": [ + "CWE-79", + "CWE-1321" + ], + "cvss": { + "score": 4.7, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" + }, + "range": ">=4.0.0 <4.7.9" + }, + { + "source": 1115588, + "name": "handlebars", + "dependency": "handlebars", + "title": "Handlebars.js has a Prototype Method Access Control Gap via Missing __lookupSetter__ Blocklist Entry", + "url": "https://github.com/advisories/GHSA-7rx3-28cr-v5wh", + "severity": "moderate", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 4.8, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + }, + "range": ">=4.6.0 <=4.7.8" + }, + { + "source": 1115589, + "name": "handlebars", + "dependency": "handlebars", + "title": "Handlebars.js has a Property Access Validation Bypass in container.lookup", + "url": "https://github.com/advisories/GHSA-442j-39wm-28r2", + "severity": "low", + "cwe": [ + "CWE-367" + ], + "cvss": { + "score": 3.7, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" + }, + "range": ">=4.0.0 <=4.7.8" + }, + { + "source": 1115692, + "name": "handlebars", + "dependency": "handlebars", + "title": "Handlebars.js has JavaScript Injection in CLI Precompiler via Unescaped Names and Options", + "url": "https://github.com/advisories/GHSA-xjpj-3mr7-gcpf", + "severity": "high", + "cwe": [ + "CWE-79", + "CWE-94", + "CWE-116" + ], + "cvss": { + "score": 8.3, + "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H" + }, + "range": ">=4.0.0 <=4.7.8" + }, + { + "source": 1115693, + "name": "handlebars", + "dependency": "handlebars", + "title": "Handlebars.js has JavaScript Injection via AST Type Confusion when passing an object as dynamic partial", + "url": "https://github.com/advisories/GHSA-xhpv-hc6g-r9c6", + "severity": "high", + "cwe": [ + "CWE-94", + "CWE-843" + ], + "cvss": { + "score": 8.1, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + "range": ">=4.0.0 <=4.7.8" + }, + { + "source": 1115694, + "name": "handlebars", + "dependency": "handlebars", + "title": "Handlebars.js has Denial of Service via Malformed Decorator Syntax in Template Compilation", + "url": "https://github.com/advisories/GHSA-9cx6-37pm-9jff", + "severity": "high", + "cwe": [ + "CWE-754" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=4.0.0 <=4.7.8" + } + ], + "effects": [], + "range": "4.0.0 - 4.7.8", + "nodes": [ + "node_modules/handlebars" + ], + "fixAvailable": true + }, + "jws": { + "name": "jws", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1111244, + "name": "jws", + "dependency": "jws", + "title": "auth0/node-jws Improperly Verifies HMAC Signature", + "url": "https://github.com/advisories/GHSA-869p-cjfg-cm3x", + "severity": "high", + "cwe": [ + "CWE-347" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N" + }, + "range": "<3.2.3" + } + ], + "effects": [], + "range": "<3.2.3", + "nodes": [ + "node_modules/jws" + ], + "fixAvailable": true + }, + "lodash": { + "name": "lodash", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1112455, + "name": "lodash", + "dependency": "lodash", + "title": "Lodash has Prototype Pollution Vulnerability in `_.unset` and `_.omit` functions", + "url": "https://github.com/advisories/GHSA-xxjr-mmjv-4gpg", + "severity": "moderate", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 6.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L" + }, + "range": ">=4.0.0 <=4.17.22" + }, + { + "source": 1115806, + "name": "lodash", + "dependency": "lodash", + "title": "lodash vulnerable to Code Injection via `_.template` imports key names", + "url": "https://github.com/advisories/GHSA-r5fr-rjxr-66jc", + "severity": "high", + "cwe": [ + "CWE-94" + ], + "cvss": { + "score": 8.1, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + "range": ">=4.0.0 <=4.17.23" + }, + { + "source": 1115810, + "name": "lodash", + "dependency": "lodash", + "title": "lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit`", + "url": "https://github.com/advisories/GHSA-f23m-r3pf-42rh", + "severity": "moderate", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 6.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L" + }, + "range": "<=4.17.23" + } + ], + "effects": [ + "@nestjs/config", + "@nestjs/swagger" + ], + "range": "<=4.17.23", + "nodes": [ + "node_modules/lodash" + ], + "fixAvailable": true + }, + "minimatch": { + "name": "minimatch", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1113459, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", + "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<3.1.3" + }, + { + "source": 1113465, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", + "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=9.0.0 <9.0.6" + }, + { + "source": 1113466, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", + "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=10.0.0 <10.2.1" + }, + { + "source": 1113538, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", + "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", + "severity": "high", + "cwe": [ + "CWE-407" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<3.1.3" + }, + { + "source": 1113544, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", + "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", + "severity": "high", + "cwe": [ + "CWE-407" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=9.0.0 <9.0.7" + }, + { + "source": 1113545, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", + "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", + "severity": "high", + "cwe": [ + "CWE-407" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=10.0.0 <10.2.3" + }, + { + "source": 1113546, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", + "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<3.1.4" + }, + { + "source": 1113552, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", + "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=9.0.0 <9.0.7" + }, + { + "source": 1113553, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", + "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=10.0.0 <10.2.3" + } + ], + "effects": [], + "range": "<=3.1.3 || 9.0.0 - 9.0.6 || 10.0.0 - 10.2.2", + "nodes": [ + "node_modules/@compodoc/compodoc/node_modules/minimatch", + "node_modules/@jest/reporters/node_modules/minimatch", + "node_modules/@ts-morph/common/node_modules/minimatch", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch", + "node_modules/glob/node_modules/minimatch", + "node_modules/jest-config/node_modules/minimatch", + "node_modules/jest-runtime/node_modules/minimatch", + "node_modules/minimatch", + "node_modules/typeorm/node_modules/minimatch" + ], + "fixAvailable": true + }, + "multer": { + "name": "multer", + "severity": "high", + "isDirect": true, + "via": [ + { + "source": 1113635, + "name": "multer", + "dependency": "multer", + "title": "Multer vulnerable to Denial of Service via incomplete cleanup", + "url": "https://github.com/advisories/GHSA-xf7r-hgr6-v32p", + "severity": "high", + "cwe": [ + "CWE-459" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<2.1.0" + }, + { + "source": 1113636, + "name": "multer", + "dependency": "multer", + "title": "Multer vulnerable to Denial of Service via resource exhaustion", + "url": "https://github.com/advisories/GHSA-v52c-386h-88mc", + "severity": "high", + "cwe": [ + "CWE-772" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<2.1.0" + }, + { + "source": 1113996, + "name": "multer", + "dependency": "multer", + "title": "Multer Vulnerable to Denial of Service via Uncontrolled Recursion", + "url": "https://github.com/advisories/GHSA-5528-5vmv-3xc2", + "severity": "high", + "cwe": [ + "CWE-674" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<2.1.1" + } + ], + "effects": [ + "@nestjs/platform-express" + ], + "range": "<=2.1.0", + "nodes": [ + "node_modules/multer" + ], + "fixAvailable": true + }, + "nodemailer": { + "name": "nodemailer", + "severity": "high", + "isDirect": true, + "via": [ + { + "source": 1113165, + "name": "nodemailer", + "dependency": "nodemailer", + "title": "Nodemailer’s addressparser is vulnerable to DoS caused by recursive calls", + "url": "https://github.com/advisories/GHSA-rcmh-qjqh-p98v", + "severity": "high", + "cwe": [ + "CWE-703" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<=7.0.10" + }, + { + "source": 1115470, + "name": "nodemailer", + "dependency": "nodemailer", + "title": "Nodemailer has SMTP command injection due to unsanitized `envelope.size` parameter", + "url": "https://github.com/advisories/GHSA-c7w3-x93f-qmm8", + "severity": "low", + "cwe": [ + "CWE-93" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<8.0.4" + }, + { + "source": 1116270, + "name": "nodemailer", + "dependency": "nodemailer", + "title": "Nodemailer Vulnerable to SMTP Command Injection via CRLF in Transport name Option (EHLO/HELO) ", + "url": "https://github.com/advisories/GHSA-vvjj-xcjg-gr5g", + "severity": "moderate", + "cwe": [ + "CWE-93" + ], + "cvss": { + "score": 4.9, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N" + }, + "range": "<=8.0.4" + } + ], + "effects": [], + "range": "<=8.0.4", + "nodes": [ + "node_modules/nodemailer" + ], + "fixAvailable": true + }, + "path-to-regexp": { + "name": "path-to-regexp", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1115573, + "name": "path-to-regexp", + "dependency": "path-to-regexp", + "title": "path-to-regexp vulnerable to Denial of Service via sequential optional groups", + "url": "https://github.com/advisories/GHSA-j3q9-mxjg-w52f", + "severity": "high", + "cwe": [ + "CWE-400", + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=8.0.0 <8.4.0" + }, + { + "source": 1115582, + "name": "path-to-regexp", + "dependency": "path-to-regexp", + "title": "path-to-regexp vulnerable to Regular Expression Denial of Service via multiple wildcards", + "url": "https://github.com/advisories/GHSA-27v5-c462-wpq7", + "severity": "moderate", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 5.9, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=8.0.0 <8.4.0" + } + ], + "effects": [ + "@nestjs/core", + "@nestjs/platform-express", + "@nestjs/swagger" + ], + "range": "8.0.0 - 8.3.0", + "nodes": [ + "node_modules/path-to-regexp" + ], + "fixAvailable": true + }, + "picomatch": { + "name": "picomatch", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1115549, + "name": "picomatch", + "dependency": "picomatch", + "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", + "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", + "severity": "moderate", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 5.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" + }, + "range": "<2.3.2" + }, + { + "source": 1115551, + "name": "picomatch", + "dependency": "picomatch", + "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", + "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", + "severity": "moderate", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 5.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" + }, + "range": ">=4.0.0 <4.0.4" + }, + { + "source": 1115552, + "name": "picomatch", + "dependency": "picomatch", + "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", + "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<2.3.2" + }, + { + "source": 1115554, + "name": "picomatch", + "dependency": "picomatch", + "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", + "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=4.0.0 <4.0.4" + } + ], + "effects": [ + "@angular-devkit/core" + ], + "range": "<=2.3.1 || 4.0.0 - 4.0.3", + "nodes": [ + "node_modules/@compodoc/compodoc/node_modules/picomatch", + "node_modules/@compodoc/live-server/node_modules/picomatch", + "node_modules/anymatch/node_modules/picomatch", + "node_modules/micromatch/node_modules/picomatch", + "node_modules/picomatch", + "node_modules/tinyglobby/node_modules/picomatch" + ], + "fixAvailable": { + "name": "@compodoc/compodoc", + "version": "1.1.23", + "isSemVerMajor": true + } + }, + "qs": { + "name": "qs", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1113161, + "name": "qs", + "dependency": "qs", + "title": "qs's arrayLimit bypass in comma parsing allows denial of service", + "url": "https://github.com/advisories/GHSA-w7fw-mjwx-w883", + "severity": "low", + "cwe": [ + "CWE-20" + ], + "cvss": { + "score": 3.7, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" + }, + "range": ">=6.7.0 <=6.14.1" + }, + { + "source": 1113719, + "name": "qs", + "dependency": "qs", + "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion", + "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p", + "severity": "moderate", + "cwe": [ + "CWE-20" + ], + "cvss": { + "score": 3.7, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" + }, + "range": "<6.14.1" + } + ], + "effects": [], + "range": "<=6.14.1", + "nodes": [ + "node_modules/qs" + ], + "fixAvailable": true + }, + "serialize-javascript": { + "name": "serialize-javascript", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1113686, + "name": "serialize-javascript", + "dependency": "serialize-javascript", + "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()", + "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq", + "severity": "high", + "cwe": [ + "CWE-96" + ], + "cvss": { + "score": 8.1, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + "range": "<=7.0.2" + }, + { + "source": 1115723, + "name": "serialize-javascript", + "dependency": "serialize-javascript", + "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects", + "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v", + "severity": "moderate", + "cwe": [ + "CWE-400", + "CWE-834" + ], + "cvss": { + "score": 5.9, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<7.0.5" + } + ], + "effects": [ + "terser-webpack-plugin" + ], + "range": "<=7.0.4", + "nodes": [ + "node_modules/serialize-javascript" + ], + "fixAvailable": true + }, + "socket.io-parser": { + "name": "socket.io-parser", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1115154, + "name": "socket.io-parser", + "dependency": "socket.io-parser", + "title": "socket.io allows an unbounded number of binary attachments", + "url": "https://github.com/advisories/GHSA-677m-j7p3-52f9", + "severity": "high", + "cwe": [ + "CWE-754" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=4.0.0 <4.2.6" + } + ], + "effects": [], + "range": "4.0.0 - 4.2.5", + "nodes": [ + "node_modules/socket.io-parser" + ], + "fixAvailable": true + }, + "terser-webpack-plugin": { + "name": "terser-webpack-plugin", + "severity": "high", + "isDirect": false, + "via": [ + "serialize-javascript" + ], + "effects": [], + "range": "<=5.3.16", + "nodes": [ + "node_modules/terser-webpack-plugin" + ], + "fixAvailable": true + }, + "undici": { + "name": "undici", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1112496, + "name": "undici", + "dependency": "undici", + "title": "Undici has an unbounded decompression chain in HTTP responses on Node.js Fetch API via Content-Encoding leads to resource exhaustion", + "url": "https://github.com/advisories/GHSA-g9mf-h72j-4rw9", + "severity": "moderate", + "cwe": [ + "CWE-770" + ], + "cvss": { + "score": 5.9, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<6.23.0" + }, + { + "source": 1112497, + "name": "undici", + "dependency": "undici", + "title": "Undici has an unbounded decompression chain in HTTP responses on Node.js Fetch API via Content-Encoding leads to resource exhaustion", + "url": "https://github.com/advisories/GHSA-g9mf-h72j-4rw9", + "severity": "moderate", + "cwe": [ + "CWE-770" + ], + "cvss": { + "score": 5.9, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=7.0.0 <7.18.2" + }, + { + "source": 1114591, + "name": "undici", + "dependency": "undici", + "title": "Undici: Malicious WebSocket 64-bit length overflows parser and crashes the client", + "url": "https://github.com/advisories/GHSA-f269-vfmq-vjvj", + "severity": "high", + "cwe": [ + "CWE-248", + "CWE-1284" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=7.0.0 <7.24.0" + }, + { + "source": 1114593, + "name": "undici", + "dependency": "undici", + "title": "Undici has an HTTP Request/Response Smuggling issue", + "url": "https://github.com/advisories/GHSA-2mjp-6q6p-2qxm", + "severity": "moderate", + "cwe": [ + "CWE-444" + ], + "cvss": { + "score": 6.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L" + }, + "range": ">=7.0.0 <7.24.0" + }, + { + "source": 1114594, + "name": "undici", + "dependency": "undici", + "title": "Undici has an HTTP Request/Response Smuggling issue", + "url": "https://github.com/advisories/GHSA-2mjp-6q6p-2qxm", + "severity": "moderate", + "cwe": [ + "CWE-444" + ], + "cvss": { + "score": 6.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L" + }, + "range": "<6.24.0" + }, + { + "source": 1114637, + "name": "undici", + "dependency": "undici", + "title": "Undici has Unbounded Memory Consumption in WebSocket permessage-deflate Decompression", + "url": "https://github.com/advisories/GHSA-vrm6-8vpv-qv8q", + "severity": "high", + "cwe": [ + "CWE-409" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=7.0.0 <7.24.0" + }, + { + "source": 1114638, + "name": "undici", + "dependency": "undici", + "title": "Undici has Unbounded Memory Consumption in WebSocket permessage-deflate Decompression", + "url": "https://github.com/advisories/GHSA-vrm6-8vpv-qv8q", + "severity": "high", + "cwe": [ + "CWE-409" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<6.24.0" + }, + { + "source": 1114639, + "name": "undici", + "dependency": "undici", + "title": "Undici has Unhandled Exception in WebSocket Client Due to Invalid server_max_window_bits Validation", + "url": "https://github.com/advisories/GHSA-v9p9-hfj2-hcw8", + "severity": "high", + "cwe": [ + "CWE-248" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=7.0.0 <7.24.0" + }, + { + "source": 1114640, + "name": "undici", + "dependency": "undici", + "title": "Undici has Unhandled Exception in WebSocket Client Due to Invalid server_max_window_bits Validation", + "url": "https://github.com/advisories/GHSA-v9p9-hfj2-hcw8", + "severity": "high", + "cwe": [ + "CWE-248" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<6.24.0" + }, + { + "source": 1114641, + "name": "undici", + "dependency": "undici", + "title": "Undici has CRLF Injection in undici via `upgrade` option", + "url": "https://github.com/advisories/GHSA-4992-7rv2-5pvq", + "severity": "moderate", + "cwe": [ + "CWE-93" + ], + "cvss": { + "score": 4.6, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N" + }, + "range": ">=7.0.0 <7.24.0" + }, + { + "source": 1114642, + "name": "undici", + "dependency": "undici", + "title": "Undici has CRLF Injection in undici via `upgrade` option", + "url": "https://github.com/advisories/GHSA-4992-7rv2-5pvq", + "severity": "moderate", + "cwe": [ + "CWE-93" + ], + "cvss": { + "score": 4.6, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N" + }, + "range": "<6.24.0" + } + ], + "effects": [ + "@elastic/transport" + ], + "range": "<=6.23.0 || 7.0.0 - 7.23.0", + "nodes": [ + "node_modules/cheerio/node_modules/undici", + "node_modules/undici" + ], + "fixAvailable": true + }, + "webpack": { + "name": "webpack", + "severity": "low", + "isDirect": false, + "via": [ + { + "source": 1113041, + "name": "webpack", + "dependency": "webpack", + "title": "webpack buildHttp: allowedUris allow-list bypass via URL userinfo (@) leading to build-time SSRF behavior", + "url": "https://github.com/advisories/GHSA-8fgc-7cc6-rx7x", + "severity": "low", + "cwe": [ + "CWE-918" + ], + "cvss": { + "score": 3.7, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N" + }, + "range": ">=5.49.0 <=5.104.0" + }, + { + "source": 1113042, + "name": "webpack", + "dependency": "webpack", + "title": "webpack buildHttp HttpUriPlugin allowedUris bypass via HTTP redirects → SSRF + cache persistence", + "url": "https://github.com/advisories/GHSA-38r7-794h-5758", + "severity": "low", + "cwe": [ + "CWE-918" + ], + "cvss": { + "score": 3.7, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N" + }, + "range": ">=5.49.0 <5.104.0" + } + ], + "effects": [ + "@nestjs/cli" + ], + "range": "5.49.0 - 5.104.0", + "nodes": [ + "node_modules/@nestjs/cli/node_modules/webpack", + "node_modules/webpack" + ], + "fixAvailable": true + } + }, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 2, + "moderate": 19, + "high": 35, + "critical": 3, + "total": 59 + }, + "dependencies": { + "prod": 487, + "dev": 819, + "optional": 58, + "peer": 32, + "peerOptional": 0, + "total": 1328 + } + } +} diff --git a/backend/package.json b/backend/package.json index 1ad2798..0a3da79 100644 --- a/backend/package.json +++ b/backend/package.json @@ -24,19 +24,19 @@ "seed": "ts-node -r tsconfig-paths/register src/database/seeds/run-seed.ts" }, "dependencies": { - "@casl/ability": "^6.7.5", + "@casl/ability": "6.8.0", "@elastic/elasticsearch": "^8.13.0", "@nestjs-modules/ioredis": "^2.0.2", "@nestjs/axios": "^4.0.1", "@nestjs/bullmq": "^11.0.4", "@nestjs/cache-manager": "^3.0.1", - "@nestjs/common": "^11.0.1", + "@nestjs/common": "^11.1.19", "@nestjs/config": "^4.0.2", - "@nestjs/core": "^11.0.1", + "@nestjs/core": "^11.1.19", "@nestjs/elasticsearch": "^11.1.0", "@nestjs/jwt": "^11.0.1", "@nestjs/passport": "^11.0.5", - "@nestjs/platform-express": "^11.0.1", + "@nestjs/platform-express": "^11.1.19", "@nestjs/platform-socket.io": "^11.1.9", "@nestjs/schedule": "^6.0.1", "@nestjs/swagger": "^11.2.3", @@ -44,12 +44,13 @@ "@nestjs/throttler": "^6.4.0", "@nestjs/typeorm": "^11.0.0", "@nestjs/websockets": "^11.1.9", + "@qdrant/js-client-rest": "^1.17.0", "@types/nodemailer": "^7.0.4", "@willsoto/nestjs-prometheus": "^6.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "async-retry": "^1.3.3", - "axios": "^1.13.2", + "axios": "^1.15.0", "bcrypt": "^6.0.0", "bullmq": "^5.63.2", "cache-manager": "^7.2.5", @@ -81,7 +82,7 @@ "zod": "^4.1.13" }, "devDependencies": { - "@compodoc/compodoc": "^1.1.32", + "@compodoc/compodoc": "^1.1.23", "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.18.0", "@nestjs/cli": "^11.0.0", diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts index 4ced00d..12fdc45 100644 --- a/backend/src/app.module.ts +++ b/backend/src/app.module.ts @@ -52,6 +52,7 @@ import { SearchModule } from './modules/search/search.module'; import { AuditLogModule } from './modules/audit-log/audit-log.module'; import { MigrationModule } from './modules/migration/migration.module'; import { AiModule } from './modules/ai/ai.module'; +import { RagModule } from './modules/rag/rag.module'; @Module({ imports: [ @@ -189,6 +190,7 @@ import { AiModule } from './modules/ai/ai.module'; AuditLogModule, MigrationModule, AiModule, + RagModule, ], controllers: [AppController], providers: [ diff --git a/backend/src/common/auth/casl/ability.factory.spec.ts b/backend/src/common/auth/casl/ability.factory.spec.ts index 1de2cab..ac30e55 100644 --- a/backend/src/common/auth/casl/ability.factory.spec.ts +++ b/backend/src/common/auth/casl/ability.factory.spec.ts @@ -2,7 +2,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { AbilityFactory, ScopeContext } from './ability.factory'; import { User } from '../../../modules/user/entities/user.entity'; import { UserAssignment } from '../../../modules/user/entities/user-assignment.entity'; -import { Role } from '../../../modules/auth/entities/role.entity'; +import { Role } from '../../../modules/user/entities/role.entity'; describe('AbilityFactory', () => { let factory: AbilityFactory; diff --git a/backend/src/common/exceptions/base.exception.ts b/backend/src/common/exceptions/base.exception.ts index d379a12..38e0aea 100644 --- a/backend/src/common/exceptions/base.exception.ts +++ b/backend/src/common/exceptions/base.exception.ts @@ -14,6 +14,7 @@ export enum ErrorType { DATABASE_ERROR = 'DATABASE_ERROR', EXTERNAL_SERVICE = 'EXTERNAL_SERVICE', INFRASTRUCTURE = 'INFRASTRUCTURE', + SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE', // 503 — ระบบไม่พร้อมให้บริการชั่วคราว (Redlock fail, Redis down) } // ระดับความรุนแรงของ Error @@ -49,6 +50,8 @@ export function getStatusCode(type: ErrorType): number { case ErrorType.EXTERNAL_SERVICE: case ErrorType.INFRASTRUCTURE: return HttpStatus.INTERNAL_SERVER_ERROR; + case ErrorType.SERVICE_UNAVAILABLE: + return HttpStatus.SERVICE_UNAVAILABLE; // 503 default: return HttpStatus.INTERNAL_SERVER_ERROR; } @@ -233,3 +236,27 @@ export class DatabaseException extends BaseException { ); } } + +// Service Unavailable (503) - ระบบไม่พร้อมให้บริการชั่วคราว +// ADR-021 C1: Redlock Fail-closed — retry ครบแล้ว ยัง acquire ไม่ได้ +export class ServiceUnavailableException extends BaseException { + constructor( + code: string, + message: string, + userMessage?: string, + recoveryActions?: string[] + ) { + super( + ErrorType.SERVICE_UNAVAILABLE, + code, + message, + userMessage || 'ระบบยุ่งชั่วคราว กรุณาลองใหม่ภายหลัง', + ErrorSeverity.HIGH, + undefined, + recoveryActions || [ + 'รอสักครู่แล้วลองใหม่', + 'แจ้งผู้ดูแลระบบหากยังพบปัญหา', + ] + ); + } +} diff --git a/backend/src/common/exceptions/index.ts b/backend/src/common/exceptions/index.ts index 9ac0401..ee79587 100644 --- a/backend/src/common/exceptions/index.ts +++ b/backend/src/common/exceptions/index.ts @@ -14,6 +14,7 @@ export { WorkflowException, SystemException, DatabaseException, + ServiceUnavailableException, } from './base.exception'; export type { ValidationErrorDetail, ErrorPayload } from './base.exception'; diff --git a/backend/src/common/file-storage/file-storage.module.ts b/backend/src/common/file-storage/file-storage.module.ts index c77bdcd..a892b2f 100644 --- a/backend/src/common/file-storage/file-storage.module.ts +++ b/backend/src/common/file-storage/file-storage.module.ts @@ -1,5 +1,6 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; +import { BullModule } from '@nestjs/bullmq'; import { ScheduleModule } from '@nestjs/schedule'; // ✅ Import import { FileStorageService } from './file-storage.service.js'; import { FileStorageController } from './file-storage.controller.js'; @@ -12,6 +13,7 @@ import { UserModule } from '../../modules/user/user.module'; TypeOrmModule.forFeature([Attachment]), ScheduleModule.forRoot(), // ✅ เปิดใช้งาน Cron Job], UserModule, + BullModule.registerQueue({ name: 'rag:ocr' }), ], controllers: [FileStorageController], providers: [ diff --git a/backend/src/common/file-storage/file-storage.service.ts b/backend/src/common/file-storage/file-storage.service.ts index 11e0470..649e6d0 100644 --- a/backend/src/common/file-storage/file-storage.service.ts +++ b/backend/src/common/file-storage/file-storage.service.ts @@ -4,10 +4,13 @@ import { NotFoundException, BadRequestException, Logger, + Optional, } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository, In } from 'typeorm'; import { ConfigService } from '@nestjs/config'; +import { InjectQueue } from '@nestjs/bullmq'; +import { Queue } from 'bullmq'; import * as fs from 'fs-extra'; import * as path from 'path'; import * as crypto from 'crypto'; @@ -24,7 +27,8 @@ export class FileStorageService { constructor( @InjectRepository(Attachment) private attachmentRepository: Repository, - private configService: ConfigService + private configService: ConfigService, + @Optional() @InjectQueue('rag:ocr') private readonly ragOcrQueue?: Queue ) { // ใช้ env vars จาก docker-compose สำหรับ Production // ถ้าไม่ได้กำหนดจะ fallback เป็น ./uploads/temp และ ./uploads/permanent @@ -90,7 +94,18 @@ export class FileStorageService { */ async commit( tempIds: string[], - options?: { issueDate?: Date; documentType?: string } + options?: { + issueDate?: Date; + documentType?: string; + ragMeta?: { + docType: string; + docNumber: string | null; + revision: string | null; + projectCode: string; + projectPublicId: string; + classification: 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL'; + }; + } ): Promise { if (!tempIds || tempIds.length === 0) { return []; @@ -149,7 +164,27 @@ export class FileStorageService { att.expiresAt = undefined; // เคลียร์วันหมดอายุ att.referenceDate = effectiveDate; // Save reference date - committedAttachments.push(await this.attachmentRepository.save(att)); + const saved = await this.attachmentRepository.save(att); + committedAttachments.push(saved); + + if (this.ragOcrQueue && options?.ragMeta) { + await this.ragOcrQueue + .add( + 'ocr', + { + attachmentPublicId: saved.publicId, + filePath: saved.filePath, + ...options.ragMeta, + }, + { jobId: saved.publicId } + ) + .catch((err: unknown) => { + this.logger.error( + `Failed to enqueue rag:ocr for ${saved.publicId}`, + err instanceof Error ? err.stack : String(err) + ); + }); + } } else { this.logger.error(`File missing during commit: ${oldPath}`); throw new NotFoundException( diff --git a/backend/src/common/interceptors/audit-log.interceptor.spec.ts b/backend/src/common/interceptors/audit-log.interceptor.spec.ts index 0842b6c..332848d 100644 --- a/backend/src/common/interceptors/audit-log.interceptor.spec.ts +++ b/backend/src/common/interceptors/audit-log.interceptor.spec.ts @@ -10,10 +10,15 @@ import { of, lastValueFrom } from 'rxjs'; import { Request } from 'express'; import type { Socket } from 'net'; +type MockAuditLogRepo = { + create: jest.Mock; + save: jest.Mock; +}; + describe('AuditLogInterceptor', () => { let interceptor: AuditLogInterceptor; let reflector: Reflector; - let auditLogRepo: jest.Mocked>; + let auditLogRepo: MockAuditLogRepo; const createMockUser = (userId: number): User => { const user = new User(); @@ -55,7 +60,7 @@ describe('AuditLogInterceptor', () => { }); beforeEach(async () => { - const mockRepository = { + const mockRepository: MockAuditLogRepo = { create: jest.fn().mockReturnValue({}), save: jest.fn().mockResolvedValue({}), }; @@ -78,7 +83,7 @@ describe('AuditLogInterceptor', () => { interceptor = module.get(AuditLogInterceptor); reflector = module.get(Reflector); - auditLogRepo = module.get(getRepositoryToken(AuditLog)); + auditLogRepo = module.get(getRepositoryToken(AuditLog)); }); afterEach(() => { diff --git a/backend/src/modules/correspondence/correspondence.controller.spec.ts b/backend/src/modules/correspondence/correspondence.controller.spec.ts index 53acd98..8124bd1 100644 --- a/backend/src/modules/correspondence/correspondence.controller.spec.ts +++ b/backend/src/modules/correspondence/correspondence.controller.spec.ts @@ -99,7 +99,17 @@ describe('CorrespondenceController', () => { mockResult ); - const mockReq = { user: { user_id: 1, roles: [] } }; + const mockReq = { + user: { + user_id: 1, + username: 'testuser', + password: 'hashedpassword', + email: 'test@example.com', + publicId: '019505a1-7c3e-7000-8000-abc123def456', + createdAt: new Date(), + updatedAt: new Date(), + }, + }; (mockCorrespondenceService.findOneByUuid as jest.Mock).mockResolvedValue({ id: 1, uuid: 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', diff --git a/backend/src/modules/migration/migration.controller.spec.ts b/backend/src/modules/migration/migration.controller.spec.ts index 4567d90..e62b6f7 100644 --- a/backend/src/modules/migration/migration.controller.spec.ts +++ b/backend/src/modules/migration/migration.controller.spec.ts @@ -2,6 +2,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { MigrationController } from './migration.controller'; import { MigrationService } from './migration.service'; import { ImportCorrespondenceDto } from './dto/import-correspondence.dto'; +import { User } from '../user/entities/user.entity'; describe('MigrationController', () => { let controller: MigrationController; @@ -32,17 +33,29 @@ describe('MigrationController', () => { it('should call importCorrespondence on service', async () => { const dto: ImportCorrespondenceDto = { - document_number: 'DOC-001', + documentNumber: 'DOC-001', subject: 'Legacy Record', category: 'Correspondence', - source_file_path: '/staging_ai/test.pdf', - migrated_by: 'SYSTEM_IMPORT', - batch_id: 'batch1', - project_id: 1, + sourceFilePath: '/staging_ai/test.pdf', + migratedBy: 'SYSTEM_IMPORT', + batchId: 'batch1', + projectId: 1, }; const idempotencyKey = 'key123'; - const user = { userId: 5 }; + const user: User = { + user_id: 5, + username: 'testuser', + password: 'hashedpassword', + email: 'test@example.com', + publicId: '019505a1-7c3e-7000-8000-abc123def456', + createdAt: new Date(), + updatedAt: new Date(), + isActive: true, + failedAttempts: 0, + primaryOrganizationPublicId: undefined, + generatePublicId: jest.fn(), + }; const result = await controller.importCorrespondence( dto, diff --git a/backend/src/modules/rag/__tests__/ingestion.service.spec.ts b/backend/src/modules/rag/__tests__/ingestion.service.spec.ts new file mode 100644 index 0000000..a5ff79d --- /dev/null +++ b/backend/src/modules/rag/__tests__/ingestion.service.spec.ts @@ -0,0 +1,86 @@ +import { Test, TestingModule } from '@nestjs/testing'; + +import { IngestionService } from '../ingestion.service'; + +const QUEUE_TOKEN = 'BullQueue_rag:ocr'; + +const mockOcrQueue = { + getJob: jest.fn(), + add: jest.fn(), +}; + +const baseJobData = { + attachmentPublicId: 'att-uuid-001', + filePath: '/uploads/permanent/CORR/2026/04/file.pdf', + docType: 'CORR', + docNumber: 'REF-001', + revision: null, + projectCode: 'PRJ-001', + projectPublicId: 'proj-uuid-001', + classification: 'INTERNAL' as const, +}; + +describe('IngestionService', () => { + let service: IngestionService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + IngestionService, + { provide: QUEUE_TOKEN, useValue: mockOcrQueue }, + ], + }).compile(); + + service = module.get(IngestionService); + jest.clearAllMocks(); + }); + + it('should enqueue rag:ocr job with attachmentPublicId as jobId', async () => { + mockOcrQueue.getJob.mockResolvedValue(null); + mockOcrQueue.add.mockResolvedValue({ id: baseJobData.attachmentPublicId }); + + await service.enqueue(baseJobData); + + expect(mockOcrQueue.add).toHaveBeenCalledWith('ocr', baseJobData, { + jobId: baseJobData.attachmentPublicId, + }); + }); + + it('EC-RAG-001: duplicate enqueue when job is active → second call is no-op (log only)', async () => { + const mockJob = { getState: jest.fn().mockResolvedValue('active') }; + mockOcrQueue.getJob.mockResolvedValue(mockJob); + + await service.enqueue(baseJobData); + + expect(mockOcrQueue.add).not.toHaveBeenCalled(); + }); + + it('EC-RAG-001: duplicate enqueue when job is waiting → second call is no-op', async () => { + const mockJob = { getState: jest.fn().mockResolvedValue('waiting') }; + mockOcrQueue.getJob.mockResolvedValue(mockJob); + + await service.enqueue(baseJobData); + + expect(mockOcrQueue.add).not.toHaveBeenCalled(); + }); + + it('should re-enqueue if job exists but is completed (state=completed)', async () => { + const mockJob = { getState: jest.fn().mockResolvedValue('completed') }; + mockOcrQueue.getJob.mockResolvedValue(mockJob); + mockOcrQueue.add.mockResolvedValue({ id: baseJobData.attachmentPublicId }); + + await service.enqueue(baseJobData); + + expect(mockOcrQueue.add).toHaveBeenCalledTimes(1); + }); + + it('should re-enqueue if job exists but is failed (state=failed)', async () => { + const mockJob = { getState: jest.fn().mockResolvedValue('failed') }; + mockOcrQueue.getJob.mockResolvedValue(mockJob); + mockOcrQueue.add.mockResolvedValue({ id: baseJobData.attachmentPublicId }); + + await service.enqueue(baseJobData); + + expect(mockOcrQueue.add).toHaveBeenCalledTimes(1); + }); +}); diff --git a/backend/src/modules/rag/__tests__/rag.service.spec.ts b/backend/src/modules/rag/__tests__/rag.service.spec.ts new file mode 100644 index 0000000..6e7488a --- /dev/null +++ b/backend/src/modules/rag/__tests__/rag.service.spec.ts @@ -0,0 +1,206 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { ServiceUnavailableException } from '@nestjs/common'; +import { getRepositoryToken } from '@nestjs/typeorm'; + +import { RagService } from '../rag.service'; +import { QdrantService } from '../qdrant.service'; +import { EmbeddingService } from '../embedding.service'; +import { TyphoonService } from '../typhoon.service'; +import { IngestionService } from '../ingestion.service'; +import { DocumentChunk } from '../entities/document-chunk.entity'; + +const DEFAULT_REDIS_TOKEN = 'default_IORedisModuleConnectionToken'; + +const mockQdrant = { + isReady: jest.fn(), + hybridSearch: jest.fn(), + deleteByDocumentId: jest.fn(), +}; + +const mockEmbedding = { + embed: jest.fn(), +}; + +const mockTyphoon = { + generate: jest.fn(), + sanitizeInput: jest.fn((t: string) => t), +}; + +const mockIngestion = { enqueue: jest.fn() }; + +const mockChunkRepo = { + count: jest.fn(), + delete: jest.fn(), + manager: { + query: jest.fn(), + }, +}; + +const mockRedis = { + get: jest.fn(), + setex: jest.fn(), +}; + +describe('RagService', () => { + let service: RagService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + RagService, + { provide: QdrantService, useValue: mockQdrant }, + { provide: EmbeddingService, useValue: mockEmbedding }, + { provide: TyphoonService, useValue: mockTyphoon }, + { provide: IngestionService, useValue: mockIngestion }, + { provide: getRepositoryToken(DocumentChunk), useValue: mockChunkRepo }, + { provide: DEFAULT_REDIS_TOKEN, useValue: mockRedis }, + ], + }).compile(); + + service = module.get(RagService); + jest.clearAllMocks(); + }); + + describe('query()', () => { + const dto = { + question: 'เอกสารเกี่ยวกับอะไร?', + projectPublicId: 'proj-uuid-1234', + }; + const memberPerms: string[] = []; + const adminPerms = ['system.manage_all']; + + it('should return answer with citations on PUBLIC cache miss → write cache', async () => { + mockQdrant.isReady.mockReturnValue(true); + mockRedis.get.mockResolvedValue(null); + mockEmbedding.embed.mockResolvedValue(new Array(768).fill(0.1)); + mockQdrant.hybridSearch.mockResolvedValue([ + { + chunkId: 'chunk-1', + publicId: 'att-1', + docType: 'CORR', + docNumber: 'REF-001', + revision: null, + projectCode: 'PRJ-001', + contentPreview: 'เนื้อหาเอกสาร', + score: 0.92, + }, + ]); + mockTyphoon.generate.mockResolvedValue({ + answer: 'คำตอบ', + usedFallbackModel: false, + }); + + const result = await service.query(dto, memberPerms); + + expect(result.answer).toBe('คำตอบ'); + expect(result.citations).toHaveLength(1); + expect(result.usedFallbackModel).toBe(false); + expect(mockRedis.setex).toHaveBeenCalledTimes(1); + }); + + it('should return cached result without calling Qdrant on cache hit', async () => { + mockQdrant.isReady.mockReturnValue(true); + const cached = JSON.stringify({ + answer: 'cached answer', + citations: [], + confidence: 0.9, + usedFallbackModel: false, + }); + mockRedis.get.mockResolvedValue(cached); + + const result = await service.query(dto, memberPerms); + + expect(result.answer).toBe('cached answer'); + expect(mockQdrant.hybridSearch).not.toHaveBeenCalled(); + expect(mockEmbedding.embed).not.toHaveBeenCalled(); + }); + + it('CONFIDENTIAL: must use Ollama only, skip cache read and write', async () => { + mockQdrant.isReady.mockReturnValue(true); + mockEmbedding.embed.mockResolvedValue(new Array(768).fill(0.1)); + mockQdrant.hybridSearch.mockResolvedValue([]); + mockTyphoon.generate.mockResolvedValue({ + answer: 'ลับมาก', + usedFallbackModel: true, + }); + + const result = await service.query(dto, adminPerms); + + expect(mockRedis.get).not.toHaveBeenCalled(); + expect(mockRedis.setex).not.toHaveBeenCalled(); + expect(mockTyphoon.generate).toHaveBeenCalledWith( + expect.any(String), + true + ); + expect(result.usedFallbackModel).toBe(true); + }); + + it('collectionReady=false → throw ServiceUnavailableException RAG_NOT_READY', async () => { + mockQdrant.isReady.mockReturnValue(false); + + await expect(service.query(dto, memberPerms)).rejects.toThrow( + ServiceUnavailableException + ); + }); + + it('cross-project cache isolation: same question different projectPublicId → different cache key', async () => { + mockQdrant.isReady.mockReturnValue(true); + mockRedis.get.mockResolvedValue(null); + mockEmbedding.embed.mockResolvedValue(new Array(768).fill(0.1)); + mockQdrant.hybridSearch.mockResolvedValue([]); + mockTyphoon.generate.mockResolvedValue({ + answer: 'A', + usedFallbackModel: false, + }); + + await service.query( + { question: 'Q?', projectPublicId: 'proj-A' }, + memberPerms + ); + await service.query( + { question: 'Q?', projectPublicId: 'proj-B' }, + memberPerms + ); + + const calls = mockRedis.setex.mock.calls as [string, ...unknown[]][]; + expect(calls[0][0]).not.toBe(calls[1][0]); + }); + + it('classification ceiling derived from role, not from request body', async () => { + mockQdrant.isReady.mockReturnValue(true); + mockRedis.get.mockResolvedValue(null); + mockEmbedding.embed.mockResolvedValue(new Array(768).fill(0.1)); + mockQdrant.hybridSearch.mockResolvedValue([]); + mockTyphoon.generate.mockResolvedValue({ + anwer: 'ok', + usedFallbackModel: false, + }); + + await service.query(dto, memberPerms); + expect(mockQdrant.hybridSearch).toHaveBeenCalledWith( + expect.any(Array), + dto.projectPublicId, + 'INTERNAL', + 20 + ); + + jest.clearAllMocks(); + mockQdrant.isReady.mockReturnValue(true); + mockRedis.get.mockResolvedValue(null); + mockEmbedding.embed.mockResolvedValue(new Array(768).fill(0.1)); + mockQdrant.hybridSearch.mockResolvedValue([]); + mockTyphoon.generate.mockResolvedValue({ + answer: 'ok', + usedFallbackModel: true, + }); + + await service.query(dto, adminPerms); + expect(mockQdrant.hybridSearch).toHaveBeenCalledWith( + expect.any(Array), + dto.projectPublicId, + 'CONFIDENTIAL', + 20 + ); + }); + }); +}); diff --git a/backend/src/modules/rag/dto/rag-query.dto.ts b/backend/src/modules/rag/dto/rag-query.dto.ts new file mode 100644 index 0000000..601ffe6 --- /dev/null +++ b/backend/src/modules/rag/dto/rag-query.dto.ts @@ -0,0 +1,11 @@ +import { IsNotEmpty, IsString, IsUUID, MaxLength } from 'class-validator'; + +export class RagQueryDto { + @IsString() + @IsNotEmpty() + @MaxLength(500) + question!: string; + + @IsUUID() + projectPublicId!: string; +} diff --git a/backend/src/modules/rag/dto/rag-response.dto.ts b/backend/src/modules/rag/dto/rag-response.dto.ts new file mode 100644 index 0000000..884526e --- /dev/null +++ b/backend/src/modules/rag/dto/rag-response.dto.ts @@ -0,0 +1,16 @@ +export interface RagCitation { + chunkId: string; + docNumber: string | null; + docType: string; + revision: string | null; + snippet: string; + score: number; +} + +export class RagResponseDto { + answer!: string; + citations!: RagCitation[]; + confidence!: number; + usedFallbackModel!: boolean; + cachedAt?: string; +} diff --git a/backend/src/modules/rag/embedding.service.ts b/backend/src/modules/rag/embedding.service.ts new file mode 100644 index 0000000..ef11621 --- /dev/null +++ b/backend/src/modules/rag/embedding.service.ts @@ -0,0 +1,46 @@ +import { Injectable, Logger } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import axios from 'axios'; + +@Injectable() +export class EmbeddingService { + private readonly logger = new Logger(EmbeddingService.name); + private readonly ollamaUrl: string; + private readonly model: string; + + constructor(private readonly configService: ConfigService) { + this.ollamaUrl = this.configService.get( + 'OLLAMA_URL', + 'http://localhost:11434' + ); + this.model = this.configService.get( + 'OLLAMA_EMBED_MODEL', + 'nomic-embed-text' + ); + } + + async embed(text: string): Promise { + try { + const response = await axios.post<{ embedding: number[] }>( + `${this.ollamaUrl}/api/embeddings`, + { model: this.model, prompt: text }, + { timeout: 30000 } + ); + return response.data.embedding; + } catch (err) { + this.logger.error( + 'Embedding failed', + err instanceof Error ? err.stack : String(err) + ); + throw err; + } + } + + async embedBatch(texts: string[]): Promise { + return Promise.all(texts.map((t) => this.embed(t))); + } + + getModelName(): string { + return this.model; + } +} diff --git a/backend/src/modules/rag/entities/document-chunk.entity.ts b/backend/src/modules/rag/entities/document-chunk.entity.ts new file mode 100644 index 0000000..3ea302b --- /dev/null +++ b/backend/src/modules/rag/entities/document-chunk.entity.ts @@ -0,0 +1,47 @@ +import { Column, CreateDateColumn, Entity, PrimaryColumn } from 'typeorm'; + +@Entity('document_chunks') +export class DocumentChunk { + @PrimaryColumn({ type: 'char', length: 36 }) + id!: string; + + @Column({ type: 'char', length: 36, name: 'document_id' }) + documentId!: string; + + @Column({ name: 'chunk_index' }) + chunkIndex!: number; + + @Column({ type: 'text' }) + content!: string; + + @Column({ length: 20, name: 'doc_type' }) + docType!: string; + + @Column({ length: 100, name: 'doc_number', nullable: true }) + docNumber!: string | null; + + @Column({ length: 20, nullable: true }) + revision!: string | null; + + @Column({ length: 50, name: 'project_code' }) + projectCode!: string; + + @Column({ length: 36, name: 'project_public_id' }) + projectPublicId!: string; + + @Column({ + type: 'enum', + enum: ['PUBLIC', 'INTERNAL', 'CONFIDENTIAL'], + default: 'INTERNAL', + }) + classification!: 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL'; + + @Column({ length: 20, nullable: true }) + version!: string | null; + + @Column({ length: 100, name: 'embedding_model', default: 'nomic-embed-text' }) + embeddingModel!: string; + + @CreateDateColumn({ name: 'created_at', precision: 3 }) + createdAt!: Date; +} diff --git a/backend/src/modules/rag/ingestion.service.ts b/backend/src/modules/rag/ingestion.service.ts new file mode 100644 index 0000000..74aa0ca --- /dev/null +++ b/backend/src/modules/rag/ingestion.service.ts @@ -0,0 +1,30 @@ +import { Injectable, Logger } from '@nestjs/common'; +import { InjectQueue } from '@nestjs/bullmq'; +import { Queue } from 'bullmq'; + +import { OcrJobData } from './processors/ocr.processor'; + +@Injectable() +export class IngestionService { + private readonly logger = new Logger(IngestionService.name); + + constructor(@InjectQueue('rag:ocr') private readonly ocrQueue: Queue) {} + + async enqueue(data: OcrJobData): Promise { + const jobId = data.attachmentPublicId; + + const existing = await this.ocrQueue.getJob(jobId); + if (existing) { + const state = await existing.getState(); + if (state === 'active' || state === 'waiting' || state === 'delayed') { + this.logger.log( + `rag:ocr job already queued for ${jobId} (state: ${state})` + ); + return; + } + } + + await this.ocrQueue.add('ocr', data, { jobId }); + this.logger.log(`Enqueued rag:ocr for attachment ${jobId}`); + } +} diff --git a/backend/src/modules/rag/processors/embedding.processor.ts b/backend/src/modules/rag/processors/embedding.processor.ts new file mode 100644 index 0000000..76f5ee2 --- /dev/null +++ b/backend/src/modules/rag/processors/embedding.processor.ts @@ -0,0 +1,110 @@ +import { Processor, WorkerHost } from '@nestjs/bullmq'; +import { Logger } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { Job } from 'bullmq'; +import { v4 as uuidv4 } from 'uuid'; + +import { EmbeddingService } from '../embedding.service'; +import { QdrantService, VectorMetadata } from '../qdrant.service'; +import { DocumentChunk } from '../entities/document-chunk.entity'; +import { EmbeddingJobData } from './thai-preprocess.processor'; + +const CHUNK_SIZE = 512; +const CHUNK_OVERLAP = 50; + +@Processor('rag:embedding') +export class EmbeddingProcessor extends WorkerHost { + private readonly logger = new Logger(EmbeddingProcessor.name); + + constructor( + private readonly embeddingService: EmbeddingService, + private readonly qdrantService: QdrantService, + @InjectRepository(DocumentChunk) + private readonly chunkRepo: Repository + ) { + super(); + } + + async process(job: Job): Promise { + const { + attachmentPublicId, + normalizedText, + docType, + docNumber, + revision, + projectCode, + projectPublicId, + classification, + } = job.data; + + const chunks = this.chunkText(normalizedText); + const model = this.embeddingService.getModelName(); + + const upsertPoints: Parameters[0] = []; + const chunkEntities: DocumentChunk[] = []; + + for (let i = 0; i < chunks.length; i++) { + const chunkId = uuidv4(); + const vector = await this.embeddingService.embed(chunks[i]); + + const payload: VectorMetadata = { + chunk_id: chunkId, + public_id: attachmentPublicId, + project_public_id: projectPublicId, + doc_type: docType, + doc_number: docNumber, + revision, + project_code: projectCode, + classification, + content_preview: chunks[i].slice(0, 500), + embedding_model: model, + }; + + upsertPoints.push({ id: chunkId, vector, payload }); + + const entity = this.chunkRepo.create({ + id: chunkId, + documentId: attachmentPublicId, + chunkIndex: i, + content: chunks[i], + docType, + docNumber, + revision, + projectCode, + projectPublicId, + classification, + embeddingModel: model, + }); + chunkEntities.push(entity); + } + + if (upsertPoints.length > 0) { + await this.qdrantService.upsertBatch(upsertPoints); + await this.chunkRepo.save(chunkEntities); + } + + await this.chunkRepo.manager.query( + `UPDATE attachments SET rag_status = 'INDEXED', rag_last_error = NULL WHERE public_id = ?`, + [attachmentPublicId] + ); + + this.logger.log( + `Embedded ${chunks.length} chunks for ${attachmentPublicId}` + ); + } + + private chunkText(text: string): string[] { + const words = text.split(/\s+/); + const chunks: string[] = []; + let start = 0; + + while (start < words.length) { + const end = Math.min(start + CHUNK_SIZE, words.length); + chunks.push(words.slice(start, end).join(' ')); + start += CHUNK_SIZE - CHUNK_OVERLAP; + } + + return chunks.filter((c) => c.trim().length > 0); + } +} diff --git a/backend/src/modules/rag/processors/ocr.processor.ts b/backend/src/modules/rag/processors/ocr.processor.ts new file mode 100644 index 0000000..4c0ec53 --- /dev/null +++ b/backend/src/modules/rag/processors/ocr.processor.ts @@ -0,0 +1,68 @@ +import { Processor, WorkerHost } from '@nestjs/bullmq'; +import { Logger } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { Job } from 'bullmq'; +import * as fs from 'fs'; +import { InjectQueue } from '@nestjs/bullmq'; +import { Queue } from 'bullmq'; + +import { DocumentChunk } from '../entities/document-chunk.entity'; + +export interface OcrJobData { + attachmentPublicId: string; + filePath: string; + docType: string; + docNumber: string | null; + revision: string | null; + projectCode: string; + projectPublicId: string; + classification: 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL'; +} + +@Processor('rag:ocr') +export class OcrProcessor extends WorkerHost { + private readonly logger = new Logger(OcrProcessor.name); + + constructor( + @InjectQueue('rag:thai-preprocess') private readonly thaiQueue: Queue, + @InjectRepository(DocumentChunk) + private readonly chunkRepo: Repository + ) { + super(); + } + + async process(job: Job): Promise { + const { attachmentPublicId, filePath } = job.data; + + const existing = await this.chunkRepo.count({ + where: { documentId: attachmentPublicId }, + }); + if (existing > 0) { + this.logger.log( + `rag:ocr job already indexed for ${attachmentPublicId}, skipping` + ); + return; + } + + await this.chunkRepo.manager.query( + `UPDATE attachments SET rag_status = 'PROCESSING' WHERE public_id = ?`, + [attachmentPublicId] + ); + + let rawText: string; + try { + rawText = fs.readFileSync(filePath, 'utf-8'); + } catch { + rawText = `[binary:${attachmentPublicId}]`; + } + + await this.thaiQueue.add( + 'preprocess', + { ...job.data, rawText }, + { jobId: `thai:${attachmentPublicId}` } + ); + + this.logger.log(`OCR enqueued thai-preprocess for ${attachmentPublicId}`); + } +} diff --git a/backend/src/modules/rag/processors/thai-preprocess.processor.ts b/backend/src/modules/rag/processors/thai-preprocess.processor.ts new file mode 100644 index 0000000..fb711c1 --- /dev/null +++ b/backend/src/modules/rag/processors/thai-preprocess.processor.ts @@ -0,0 +1,56 @@ +import { Processor, WorkerHost, InjectQueue } from '@nestjs/bullmq'; +import { Logger } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import { Queue, Job } from 'bullmq'; +import axios from 'axios'; + +import { OcrJobData } from './ocr.processor'; + +export interface ThaiPreprocessJobData extends OcrJobData { + rawText: string; +} + +export interface EmbeddingJobData extends ThaiPreprocessJobData { + normalizedText: string; +} + +@Processor('rag:thai-preprocess') +export class ThaiPreprocessProcessor extends WorkerHost { + private readonly logger = new Logger(ThaiPreprocessProcessor.name); + private readonly thaiUrl: string; + + constructor( + private readonly configService: ConfigService, + @InjectQueue('rag:embedding') private readonly embeddingQueue: Queue + ) { + super(); + this.thaiUrl = this.configService.get( + 'THAI_PREPROCESS_URL', + 'http://localhost:8765' + ); + } + + async process(job: Job): Promise { + const { rawText, attachmentPublicId } = job.data; + + let normalizedText = rawText; + try { + const response = await axios.post<{ normalized: string }>( + `${this.thaiUrl}/normalize`, + { text: rawText }, + { timeout: 30000 } + ); + normalizedText = response.data.normalized ?? rawText; + } catch (err) { + this.logger.warn( + `Thai preprocess failed for ${attachmentPublicId}, using raw text: ${err instanceof Error ? err.message : String(err)}` + ); + } + + await this.embeddingQueue.add( + 'embed', + { ...job.data, normalizedText } as EmbeddingJobData, + { jobId: `embed:${attachmentPublicId}` } + ); + } +} diff --git a/backend/src/modules/rag/qdrant.service.ts b/backend/src/modules/rag/qdrant.service.ts new file mode 100644 index 0000000..111f69f --- /dev/null +++ b/backend/src/modules/rag/qdrant.service.ts @@ -0,0 +1,179 @@ +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import { QdrantClient } from '@qdrant/js-client-rest'; + +export interface VectorMetadata extends Record { + chunk_id: string; + public_id: string; + project_public_id: string; + doc_type: string; + doc_number: string | null; + revision: string | null; + project_code: string; + classification: 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL'; + content_preview: string; + embedding_model: string; +} + +export interface HybridSearchResult { + chunkId: string; + publicId: string; + docType: string; + docNumber: string | null; + revision: string | null; + projectCode: string; + contentPreview: string; + score: number; +} + +const COLLECTION_NAME = 'lcbp3_vectors'; +const VECTOR_SIZE = 768; + +@Injectable() +export class QdrantService implements OnModuleInit { + private readonly logger = new Logger(QdrantService.name); + private client: QdrantClient; + private collectionReady = false; + + constructor(private readonly configService: ConfigService) { + const url = this.configService.get( + 'QDRANT_URL', + 'http://localhost:6333' + ); + this.client = new QdrantClient({ url }); + } + + async onModuleInit(): Promise { + try { + await this.initCollection(); + this.collectionReady = true; + this.logger.log(`Qdrant collection '${COLLECTION_NAME}' ready`); + } catch (err) { + this.logger.error( + 'Qdrant collection init failed — RAG queries will return 503', + err instanceof Error ? err.stack : String(err) + ); + this.collectionReady = false; + } + } + + isReady(): boolean { + return this.collectionReady; + } + + private async initCollection(): Promise { + const collections = await this.client.getCollections(); + const exists = collections.collections.some( + (c) => c.name === COLLECTION_NAME + ); + + if (!exists) { + await this.client.createCollection(COLLECTION_NAME, { + vectors: { size: VECTOR_SIZE, distance: 'Cosine' }, + hnsw_config: { + payload_m: 16, + m: 0, + }, + optimizers_config: { indexing_threshold: 10000 }, + }); + this.logger.log(`Created Qdrant collection '${COLLECTION_NAME}'`); + + await this.client.createPayloadIndex(COLLECTION_NAME, { + field_name: 'project_public_id', + field_schema: { type: 'keyword', is_tenant: true } as Parameters< + QdrantClient['createPayloadIndex'] + >[1]['field_schema'], + }); + await this.client.createPayloadIndex(COLLECTION_NAME, { + field_name: 'classification', + field_schema: 'keyword', + }); + await this.client.createPayloadIndex(COLLECTION_NAME, { + field_name: 'doc_type', + field_schema: 'keyword', + }); + await this.client.createPayloadIndex(COLLECTION_NAME, { + field_name: 'doc_number', + field_schema: 'keyword', + }); + } + } + + async upsertBatch( + points: Array<{ id: string; vector: number[]; payload: VectorMetadata }> + ): Promise { + await this.client.upsert(COLLECTION_NAME, { + wait: true, + points: points.map((p) => ({ + id: p.id, + vector: p.vector, + payload: p.payload, + })), + }); + } + + async hybridSearch( + queryVector: number[], + + projectPublicId: string, + classificationCeiling: 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL', + topK: number + ): Promise { + const classificationValues = this.getAllowedClassifications( + classificationCeiling + ); + + const vectorResults = await this.client.search(COLLECTION_NAME, { + vector: queryVector, + limit: topK, + filter: { + must: [ + { key: 'project_public_id', match: { value: projectPublicId } }, + { key: 'classification', match: { any: classificationValues } }, + ], + }, + with_payload: true, + }); + + return vectorResults.map((r) => { + const payload = r.payload as unknown as VectorMetadata; + return { + chunkId: payload.chunk_id, + publicId: payload.public_id, + docType: payload.doc_type, + docNumber: payload.doc_number, + revision: payload.revision, + projectCode: payload.project_code, + contentPreview: payload.content_preview, + score: r.score, + }; + }); + } + + async deleteByDocumentId(documentId: string): Promise { + await this.client.delete(COLLECTION_NAME, { + wait: true, + filter: { + must: [{ key: 'public_id', match: { value: documentId } }], + }, + }); + } + + async forceInitCollection(): Promise { + await this.initCollection(); + this.collectionReady = true; + this.logger.log(`Qdrant collection force-initialized`); + } + + private getAllowedClassifications( + ceiling: 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL' + ): string[] { + const order: Array<'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL'> = [ + 'PUBLIC', + 'INTERNAL', + 'CONFIDENTIAL', + ]; + const ceilIdx = order.indexOf(ceiling); + return order.slice(0, ceilIdx + 1); + } +} diff --git a/backend/src/modules/rag/rag.controller.ts b/backend/src/modules/rag/rag.controller.ts new file mode 100644 index 0000000..15cb70f --- /dev/null +++ b/backend/src/modules/rag/rag.controller.ts @@ -0,0 +1,93 @@ +import { + Body, + Controller, + Delete, + Get, + Headers, + HttpCode, + HttpStatus, + Logger, + Param, + Post, + UseGuards, +} from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { Throttle } from '@nestjs/throttler'; + +import { CurrentUser } from '../../common/decorators/current-user.decorator'; +import { RequirePermission } from '../../common/decorators/require-permission.decorator'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; +import { RbacGuard } from '../../common/guards/rbac.guard'; +import { ParseUuidPipe } from '../../common/pipes/parse-uuid.pipe'; +import { UserService } from '../user/user.service'; +import { User } from '../user/entities/user.entity'; +import { RagQueryDto } from './dto/rag-query.dto'; +import { RagService } from './rag.service'; + +@ApiTags('RAG') +@ApiBearerAuth() +@UseGuards(JwtAuthGuard, RbacGuard) +@Throttle({ default: { limit: 30, ttl: 60000 } }) +@Controller('rag') +export class RagController { + private readonly logger = new Logger(RagController.name); + + constructor( + private readonly ragService: RagService, + private readonly userService: UserService + ) {} + + @Post('query') + @HttpCode(HttpStatus.OK) + @ApiOperation({ summary: 'RAG Q&A — ค้นหาคำตอบจากเอกสารโครงการ' }) + @RequirePermission('rag.query') + async query( + @Body() dto: RagQueryDto, + @CurrentUser() user: User, + @Headers('Idempotency-Key') idempotencyKey: string + ) { + if (!idempotencyKey) { + this.logger.warn(`Missing Idempotency-Key from user ${user.user_id}`); + } + + const permissions = await this.userService.getUserPermissions(user.user_id); + return this.ragService.query(dto, permissions); + } + + @Get('status/:attachmentId') + @ApiOperation({ summary: 'ดูสถานะ RAG ingestion ของ attachment' }) + @RequirePermission('rag.query') + async getStatus(@Param('attachmentId', ParseUuidPipe) attachmentId: string) { + return this.ragService.getStatus(attachmentId); + } + + @Post('ingest/:attachmentId') + @HttpCode(HttpStatus.OK) + @ApiOperation({ summary: 'Re-ingest attachment ที่ FAILED (Admin only)' }) + @RequirePermission('rag.manage') + async reIngest(@Param('attachmentId', ParseUuidPipe) attachmentId: string) { + await this.ragService.reIngest(attachmentId); + return { message: 'Re-ingestion queued' }; + } + + @Delete('vectors/:attachmentId') + @HttpCode(HttpStatus.NO_CONTENT) + @ApiOperation({ summary: 'ลบ vectors ของ attachment ออกจาก Qdrant' }) + @RequirePermission('rag.manage') + async deleteVectors( + @Param('attachmentId', ParseUuidPipe) attachmentId: string + ) { + await this.ragService.deleteVectors(attachmentId); + } + + @Post('admin/init-collection') + @HttpCode(HttpStatus.OK) + @ApiOperation({ + summary: 'T038: Init Qdrant collection lcbp3_vectors (admin only)', + }) + @RequirePermission('rag.manage') + async initCollection() { + await this.ragService.initCollection(); + return { message: 'Qdrant collection initialized' }; + } +} diff --git a/backend/src/modules/rag/rag.module.ts b/backend/src/modules/rag/rag.module.ts new file mode 100644 index 0000000..6eff16e --- /dev/null +++ b/backend/src/modules/rag/rag.module.ts @@ -0,0 +1,55 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { BullModule } from '@nestjs/bullmq'; +import { ConfigModule } from '@nestjs/config'; + +import { DocumentChunk } from './entities/document-chunk.entity'; +import { EmbeddingService } from './embedding.service'; +import { QdrantService } from './qdrant.service'; +import { TyphoonService } from './typhoon.service'; +import { RagService } from './rag.service'; +import { RagController } from './rag.controller'; +import { IngestionService } from './ingestion.service'; +import { OcrProcessor } from './processors/ocr.processor'; +import { ThaiPreprocessProcessor } from './processors/thai-preprocess.processor'; +import { EmbeddingProcessor } from './processors/embedding.processor'; +import { UserModule } from '../user/user.module'; + +const DLQ_DEFAULTS = { + attempts: 3, + backoff: { type: 'exponential' as const, delay: 2000 }, + removeOnComplete: 100, + removeOnFail: 200, +}; + +@Module({ + imports: [ + ConfigModule, + UserModule, + TypeOrmModule.forFeature([DocumentChunk]), + BullModule.registerQueue( + { name: 'rag:ocr', defaultJobOptions: DLQ_DEFAULTS }, + { name: 'rag:thai-preprocess', defaultJobOptions: DLQ_DEFAULTS }, + { name: 'rag:embedding', defaultJobOptions: DLQ_DEFAULTS } + ), + ], + controllers: [RagController], + providers: [ + EmbeddingService, + QdrantService, + TyphoonService, + RagService, + IngestionService, + OcrProcessor, + ThaiPreprocessProcessor, + EmbeddingProcessor, + ], + exports: [ + EmbeddingService, + QdrantService, + TyphoonService, + RagService, + IngestionService, + ], +}) +export class RagModule {} diff --git a/backend/src/modules/rag/rag.service.ts b/backend/src/modules/rag/rag.service.ts new file mode 100644 index 0000000..696c396 --- /dev/null +++ b/backend/src/modules/rag/rag.service.ts @@ -0,0 +1,255 @@ +import { + Injectable, + Logger, + ServiceUnavailableException, + BadRequestException, +} from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { InjectRedis } from '@nestjs-modules/ioredis'; +import Redis from 'ioredis'; +import { createHash } from 'crypto'; + +import { QdrantService } from './qdrant.service'; +import { EmbeddingService } from './embedding.service'; +import { TyphoonService } from './typhoon.service'; +import { IngestionService } from './ingestion.service'; +import { DocumentChunk } from './entities/document-chunk.entity'; +import { RagQueryDto } from './dto/rag-query.dto'; +import { RagResponseDto, RagCitation } from './dto/rag-response.dto'; + +const CACHE_TTL_SECONDS = 300; +const PROMPT_CONTEXT_LIMIT = 3000; + +@Injectable() +export class RagService { + private readonly logger = new Logger(RagService.name); + + constructor( + private readonly qdrant: QdrantService, + private readonly embedding: EmbeddingService, + private readonly typhoon: TyphoonService, + private readonly ingestionService: IngestionService, + @InjectRepository(DocumentChunk) + private readonly chunkRepo: Repository, + @InjectRedis() private readonly redis: Redis + ) {} + + async query( + dto: RagQueryDto, + userPermissions: string[] + ): Promise { + const { question, projectPublicId } = dto; + + const classificationCeiling = + this.deriveClassificationCeiling(userPermissions); + const isConfidential = classificationCeiling === 'CONFIDENTIAL'; + + if (!this.qdrant.isReady()) { + throw new ServiceUnavailableException('RAG_NOT_READY'); + } + + const cacheKey = this.buildCacheKey( + question, + projectPublicId, + classificationCeiling + ); + + if (!isConfidential) { + const cached = await this.redis.get(cacheKey); + if (cached) { + const parsed = JSON.parse(cached) as RagResponseDto; + parsed.cachedAt = new Date().toISOString(); + return parsed; + } + } + + const queryVector = await this.embedding.embed(question); + const topK = 20; + + const results = await this.qdrant.hybridSearch( + queryVector, + projectPublicId, + classificationCeiling, + topK + ); + + const reranked = results.sort((a, b) => b.score - a.score).slice(0, 5); + + const context = this.buildContext(reranked); + + const safeQuestion = this.typhoon.sanitizeInput(question); + const prompt = this.buildPrompt(safeQuestion, context); + + const { answer, usedFallbackModel } = await this.typhoon.generate( + prompt, + isConfidential + ); + + const citations: RagCitation[] = reranked.map((r) => ({ + chunkId: r.chunkId, + docNumber: r.docNumber, + docType: r.docType, + revision: r.revision, + snippet: r.contentPreview.slice(0, 200), + score: r.score, + })); + + const confidence = reranked.length > 0 ? reranked[0].score : 0; + + const response: RagResponseDto = { + answer, + citations, + confidence, + usedFallbackModel, + }; + + if (!isConfidential) { + await this.redis.setex( + cacheKey, + CACHE_TTL_SECONDS, + JSON.stringify(response) + ); + } + + return response; + } + + async getStatus( + attachmentPublicId: string + ): Promise<{ ragStatus: string; chunkCount: number }> { + const chunkCount = await this.chunkRepo.count({ + where: { documentId: attachmentPublicId }, + }); + + const result = await this.chunkRepo.manager.query<{ rag_status: string }[]>( + `SELECT rag_status FROM attachments WHERE public_id = ? LIMIT 1`, + [attachmentPublicId] + ); + + const ragStatus = result[0]?.rag_status ?? 'PENDING'; + return { ragStatus, chunkCount }; + } + + async reIngest(attachmentPublicId: string): Promise { + const statusResult = await this.chunkRepo.manager.query< + { rag_status: string; file_path: string }[] + >( + `SELECT rag_status, file_path FROM attachments WHERE public_id = ? LIMIT 1`, + [attachmentPublicId] + ); + + const current = statusResult[0]?.rag_status; + if (current !== 'FAILED') { + throw new BadRequestException( + `Cannot re-ingest: current status is '${current ?? 'unknown'}', expected 'FAILED'` + ); + } + + const sample = await this.chunkRepo.findOne({ + where: { documentId: attachmentPublicId }, + }); + + await this.chunkRepo.delete({ documentId: attachmentPublicId }); + + try { + await this.qdrant.deleteByDocumentId(attachmentPublicId); + } catch (err) { + this.logger.error( + `Qdrant delete failed for ${attachmentPublicId} — continuing`, + err instanceof Error ? err.stack : String(err) + ); + } + + await this.chunkRepo.manager.query( + `UPDATE attachments SET rag_status = 'PENDING', rag_last_error = NULL WHERE public_id = ?`, + [attachmentPublicId] + ); + + if (sample) { + await this.ingestionService.enqueue({ + attachmentPublicId, + filePath: statusResult[0]?.file_path ?? '', + docType: sample.docType, + docNumber: sample.docNumber, + revision: sample.revision, + projectCode: sample.projectCode, + projectPublicId: sample.projectPublicId, + classification: sample.classification, + }); + } + } + + async initCollection(): Promise { + await this.qdrant.onModuleInit(); + } + + async deleteVectors(attachmentPublicId: string): Promise { + await this.chunkRepo.delete({ documentId: attachmentPublicId }); + try { + await this.qdrant.deleteByDocumentId(attachmentPublicId); + } catch (err) { + this.logger.error( + `Qdrant delete failed for ${attachmentPublicId}`, + err instanceof Error ? err.stack : String(err) + ); + } + await this.chunkRepo.manager.query( + `UPDATE attachments SET rag_status = 'PENDING', rag_last_error = NULL WHERE public_id = ?`, + [attachmentPublicId] + ); + } + + buildContext( + results: Array<{ + docType: string; + docNumber: string | null; + revision: string | null; + contentPreview: string; + }> + ): string { + let context = ''; + for (const r of results) { + const header = `[${r.docType}${r.docNumber ? ` - ${r.docNumber}` : ''}${r.revision ? ` - ${r.revision}` : ''}]`; + const snippet = `${header}\n${r.contentPreview}\n\n`; + if ((context + snippet).length > PROMPT_CONTEXT_LIMIT) break; + context += snippet; + } + return context.trim(); + } + + private buildPrompt(question: string, context: string): string { + return [ + 'คุณเป็นผู้ช่วยผู้เชี่ยวชาญด้านเอกสารโครงการก่อสร้าง', + 'ตอบคำถามโดยอ้างอิงจากเอกสารที่ให้มาเท่านั้น ห้ามตอบจากความรู้ทั่วไป', + 'หากข้อมูลในเอกสารไม่เพียงพอ ให้แจ้งว่า "ไม่พบข้อมูลในเอกสารที่ระบุ"', + '', + '=== เอกสารอ้างอิง ===', + context, + '', + '=== คำถาม ===', + question, + ].join('\n'); + } + + private buildCacheKey( + question: string, + projectPublicId: string, + classificationCeiling: string + ): string { + const raw = `${question}|${projectPublicId}|${classificationCeiling}`; + return `rag:query:${createHash('sha256').update(raw).digest('hex')}`; + } + + private deriveClassificationCeiling( + permissions: string[] + ): 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL' { + if ( + permissions.includes('system.manage_all') || + permissions.includes('document.view_confidential') + ) { + return 'CONFIDENTIAL'; + } + return 'INTERNAL'; + } +} diff --git a/backend/src/modules/rag/typhoon.service.ts b/backend/src/modules/rag/typhoon.service.ts new file mode 100644 index 0000000..5d5a437 --- /dev/null +++ b/backend/src/modules/rag/typhoon.service.ts @@ -0,0 +1,115 @@ +import { Injectable, Logger } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import axios from 'axios'; + +export interface LlmGenerateResult { + answer: string; + usedFallbackModel: boolean; +} + +interface TyphoonChatResponse { + choices: Array<{ message: { content: string } }>; +} + +@Injectable() +export class TyphoonService { + private readonly logger = new Logger(TyphoonService.name); + private readonly typhoonUrl: string; + private readonly typhoonKey: string; + private readonly ollamaUrl: string; + private readonly ollamaModel: string; + private readonly timeoutMs: number; + + constructor(private readonly configService: ConfigService) { + this.typhoonUrl = this.configService.get( + 'TYPHOON_API_URL', + 'https://api.opentyphoon.ai/v1' + ); + this.typhoonKey = this.configService.get('TYPHOON_API_KEY', ''); + this.ollamaUrl = this.configService.get( + 'OLLAMA_URL', + 'http://localhost:11434' + ); + this.ollamaModel = this.configService.get( + 'OLLAMA_RAG_MODEL', + 'gemma3:12b' + ); + this.timeoutMs = this.configService.get('RAG_TIMEOUT_MS', 5000); + } + + async generate( + prompt: string, + forceLocal: boolean + ): Promise { + if (forceLocal) { + const answer = await this.generateOllama(prompt); + return { answer, usedFallbackModel: true }; + } + + try { + const answer = await Promise.race([ + this.generateTyphoon(prompt), + this.delay(this.timeoutMs).then(() => { + throw new Error('Typhoon timeout'); + }), + ]); + return { answer, usedFallbackModel: false }; + } catch (err) { + this.logger.warn( + `Typhoon failed, falling back to Ollama: ${err instanceof Error ? err.message : String(err)}` + ); + const answer = await this.generateOllama(prompt); + return { answer, usedFallbackModel: true }; + } + } + + sanitizeInput(text: string): string { + return text + .replace(/|/gi, '') + .replace(/ignore previous instructions/gi, '') + .replace(/system:/gi, '') + .slice(0, 1000); + } + + private async generateTyphoon(prompt: string): Promise { + const response = await axios.post( + `${this.typhoonUrl}/chat/completions`, + { + model: 'typhoon-v2.1-12b-instruct', + messages: [ + { + role: 'user', + content: `\n${prompt}\n`, + }, + ], + max_tokens: 1024, + temperature: 0.1, + }, + { + headers: { + Authorization: `Bearer ${this.typhoonKey}`, + 'Content-Type': 'application/json', + }, + timeout: this.timeoutMs, + } + ); + return response.data.choices[0]?.message?.content ?? ''; + } + + private async generateOllama(prompt: string): Promise { + const response = await axios.post<{ response: string }>( + `${this.ollamaUrl}/api/generate`, + { + model: this.ollamaModel, + prompt, + stream: false, + }, + { timeout: 30000 } + ); + return response.data.response ?? ''; + } + + private delay(ms: number): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); + } +} diff --git a/backend/src/modules/workflow-engine/workflow-engine.module.ts b/backend/src/modules/workflow-engine/workflow-engine.module.ts index 1b80dac..9952695 100644 --- a/backend/src/modules/workflow-engine/workflow-engine.module.ts +++ b/backend/src/modules/workflow-engine/workflow-engine.module.ts @@ -2,6 +2,10 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; +import { + makeCounterProvider, + makeHistogramProvider, +} from '@willsoto/nestjs-prometheus'; // Entities import { WorkflowDefinition } from './entities/workflow-definition.entity'; @@ -37,6 +41,17 @@ import { WorkflowEngineController } from './workflow-engine.controller'; WorkflowDslService, WorkflowEventService, WorkflowTransitionGuard, + // ADR-021 S1: Redlock observability — Prometheus metrics + makeHistogramProvider({ + name: 'workflow_redlock_acquire_duration_ms', + help: 'เวลาที่ใช้ในการ acquire Redlock สำหรับ workflow transition (รวม retry)', + labelNames: ['outcome'], // 'success' | 'failure' + buckets: [50, 100, 250, 500, 1000, 2000, 5000, 10000], + }), + makeCounterProvider({ + name: 'workflow_redlock_acquire_failures_total', + help: 'จำนวนครั้งที่ Redlock acquire ล้มเหลวหลัง retry ครบ (Fail-closed HTTP 503)', + }), ], exports: [WorkflowEngineService], // Export Service ให้ Module อื่น (Correspondence, RFA) เรียกใช้ }) diff --git a/backend/src/modules/workflow-engine/workflow-engine.service.spec.ts b/backend/src/modules/workflow-engine/workflow-engine.service.spec.ts index 712bedc..d690eaf 100644 --- a/backend/src/modules/workflow-engine/workflow-engine.service.spec.ts +++ b/backend/src/modules/workflow-engine/workflow-engine.service.spec.ts @@ -8,7 +8,6 @@ jest.mock('redlock', () => })) ); -import { ConflictException, ServiceUnavailableException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { WorkflowEngineService } from './workflow-engine.service'; import { getRepositoryToken } from '@nestjs/typeorm'; @@ -23,7 +22,13 @@ import { Attachment } from '../../common/file-storage/entities/attachment.entity import { WorkflowDslService } from './workflow-dsl.service'; import { WorkflowEventService } from './workflow-event.service'; import { CACHE_MANAGER } from '@nestjs/cache-manager'; -import { NotFoundException, WorkflowException } from '../../common/exceptions'; +// ADR-007: \u0e43\u0e0a\u0e49 custom exceptions \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e08\u0e32\u0e01 common/exceptions (\u0e44\u0e21\u0e48\u0e43\u0e0a\u0e49 @nestjs/common built-in) +import { + NotFoundException, + WorkflowException, + ConflictException, + ServiceUnavailableException, +} from '../../common/exceptions'; import { CreateWorkflowDefinitionDto } from './dto/create-workflow-definition.dto'; // Token ของ @nestjs-modules/ioredis — default Redis connection @@ -132,6 +137,20 @@ describe('WorkflowEngineService', () => { // ไม่จำเป็นต้องมี method จริง เพราะ Redlock ถูก mock แล้ว }, }, + // ADR-021 S1: Prometheus metrics mocks + { + provide: 'PROM_METRIC_WORKFLOW_REDLOCK_ACQUIRE_DURATION_MS', + useValue: { + labels: jest.fn().mockReturnThis(), + observe: jest.fn(), + }, + }, + { + provide: 'PROM_METRIC_WORKFLOW_REDLOCK_ACQUIRE_FAILURES_TOTAL', + useValue: { + inc: jest.fn(), + }, + }, ], }).compile(); @@ -496,6 +515,45 @@ describe('WorkflowEngineService', () => { expect(mockRedlockRelease).toHaveBeenCalled(); }); + it('H1: should throw ConflictException when state changes between pre-check and pessimistic lock (TOCTOU)', async () => { + // Arrange: pre-check พบ PENDING_REVIEW (stale read) + (instanceRepo.findOne as jest.Mock).mockResolvedValue({ + id: 'inst-1', + currentState: 'PENDING_REVIEW', + }); + // แต่ภายใน transaction (pessimistic lock) state เปลี่ยนเป็น APPROVED แล้ว + // (simulate: another request transition ไปก่อนที่ Redlock จะ release) + mockQueryRunner.manager.findOne.mockResolvedValue({ + id: 'inst-1', + currentState: 'APPROVED', // ← เปลี่ยนไปแล้ว + status: WorkflowStatus.ACTIVE, + definition: { compiled: mockCompiledWorkflow }, + context: {}, + }); + mockDslService.evaluate.mockReturnValue({ + nextState: 'APPROVED', + events: [], + }); + + await expect( + service.processTransition( + 'inst-1', + 'APPROVE', + 1, + undefined, + {}, + attachmentPublicIds + ) + ).rejects.toThrow(ConflictException); + + // ต้อง rollback transaction + release Redlock + expect(mockQueryRunner.rollbackTransaction).toHaveBeenCalled(); + expect(mockQueryRunner.commitTransaction).not.toHaveBeenCalled(); + expect(mockRedlockRelease).toHaveBeenCalled(); + // attachment update ต้องไม่ถูกเรียก + expect(mockQueryRunner.manager.update).not.toHaveBeenCalled(); + }); + it('C1: should release Redlock even when transition succeeds', async () => { (instanceRepo.findOne as jest.Mock).mockResolvedValue({ id: 'inst-1', diff --git a/backend/src/modules/workflow-engine/workflow-engine.service.ts b/backend/src/modules/workflow-engine/workflow-engine.service.ts index f131867..0321abe 100644 --- a/backend/src/modules/workflow-engine/workflow-engine.service.ts +++ b/backend/src/modules/workflow-engine/workflow-engine.service.ts @@ -1,21 +1,23 @@ // File: src/modules/workflow-engine/workflow-engine.service.ts -import { - Injectable, - Inject, - Logger, - ConflictException, - ServiceUnavailableException, -} from '@nestjs/common'; +import { Injectable, Inject, Logger } from '@nestjs/common'; import { CACHE_MANAGER } from '@nestjs/cache-manager'; import type { Cache } from 'cache-manager'; -import { NotFoundException, WorkflowException } from '../../common/exceptions'; +// ADR-007: ใช้ custom exceptions ที่ extends BaseException เพื่อให้ payload ตรง layered structure +import { + NotFoundException, + WorkflowException, + ConflictException, + ServiceUnavailableException, +} from '../../common/exceptions'; import { InjectRepository } from '@nestjs/typeorm'; import { DataSource, In, Repository } from 'typeorm'; // ADR-021 Clarify Q2: Redis Redlock for transition Fail-closed (Retry 3x → 503) import { InjectRedis } from '@nestjs-modules/ioredis'; import Redis from 'ioredis'; import Redlock, { Lock } from 'redlock'; +import { InjectMetric } from '@willsoto/nestjs-prometheus'; +import { Counter, Histogram } from 'prom-client'; // Entities import { WorkflowDefinition } from './entities/workflow-definition.entity'; import { WorkflowHistory } from './entities/workflow-history.entity'; @@ -30,11 +32,7 @@ import { CreateWorkflowDefinitionDto } from './dto/create-workflow-definition.dt import { EvaluateWorkflowDto } from './dto/evaluate-workflow.dto'; import { UpdateWorkflowDefinitionDto } from './dto/update-workflow-definition.dto'; import { WorkflowHistoryItemDto } from './dto/workflow-history-item.dto'; -import { - CompiledWorkflow, - RawEvent, - WorkflowDslService, -} from './workflow-dsl.service'; +import { CompiledWorkflow, WorkflowDslService } from './workflow-dsl.service'; import { WorkflowEventService } from './workflow-event.service'; // [NEW] Import Event Service // Legacy Interface (Backward Compatibility) @@ -76,7 +74,12 @@ export class WorkflowEngineService { private readonly eventService: WorkflowEventService, // [NEW] Inject Service private readonly dataSource: DataSource, // ใช้สำหรับ Transaction @Inject(CACHE_MANAGER) private readonly cacheManager: Cache, // ADR-021 T024: History cache - @InjectRedis() private readonly redis: Redis // ADR-021 Clarify Q2: Redlock + @InjectRedis() private readonly redis: Redis, // ADR-021 Clarify Q2: Redlock + // ADR-021 S1: Redlock observability metrics + @InjectMetric('workflow_redlock_acquire_duration_ms') + private readonly redlockAcquireDuration: Histogram, + @InjectMetric('workflow_redlock_acquire_failures_total') + private readonly redlockAcquireFailures: Counter ) { // ADR-021 Clarify Q2 (C1): Redlock Fail-closed // Retry 3 ครั้ง × 500ms เพิ่ม jitter → ถ้ายังไม่ได้ throw HTTP 503 @@ -340,6 +343,8 @@ export class WorkflowEngineService { // อนุญาตให้แนบไฟล์เฉพาะในสถานะ PENDING_REVIEW / PENDING_APPROVAL // ============================================================== if (hasAttachments) { + // ADR-021 S2: `id` ใน WorkflowInstance เป็น CHAR(36) UUID direct PK + // (ไม่ใช่ pattern UuidBaseEntity ที่ INT+publicId) — ADR-019 compliant เพราะ UUID ถูก expose โดยตรง const instancePreCheck = await this.instanceRepo.findOne({ where: { id: instanceId }, select: ['id', 'currentState'], @@ -352,12 +357,15 @@ export class WorkflowEngineService { instancePreCheck.currentState ) ) { - throw new ConflictException({ - userMessage: 'ไม่สามารถอัปโหลดไฟล์ในสถานะนี้ได้', - recoveryAction: + throw new ConflictException( + 'WORKFLOW_STATE_LOCKED', + `Upload rejected: currentState=${instancePreCheck.currentState} not in UPLOAD_ALLOWED_STATES`, + 'ไม่สามารถอัปโหลดไฟล์ในสถานะนี้ได้', + [ 'อนุญาตเฉพาะสถานะ PENDING_REVIEW หรือ PENDING_APPROVAL เท่านั้น', - currentState: instancePreCheck.currentState, - }); + 'รีเฟรชหน้าแล้วตรวจสถานะล่าสุด', + ] + ); } } @@ -367,25 +375,34 @@ export class WorkflowEngineService { // ============================================================== const lockKey = `lock:wf:transition:${instanceId}`; let lock: Lock; + const acquireStart = Date.now(); try { lock = await this.redlock.acquire([lockKey], 10000); // 10s TTL + // S1: บันทึก duration กรณี acquire สำเร็จ + this.redlockAcquireDuration + .labels({ outcome: 'success' }) + .observe(Date.now() - acquireStart); } catch (err) { + // S1: บันทึก duration + failure counter + this.redlockAcquireDuration + .labels({ outcome: 'failure' }) + .observe(Date.now() - acquireStart); + this.redlockAcquireFailures.inc(); this.logger.error( `Redlock acquire failed after retries for ${instanceId}: ${(err as Error).message}` ); - throw new ServiceUnavailableException({ - userMessage: 'ระบบยุ่งชั่วคราว กรุณาลองใหม่ภายหลัง', - recoveryAction: 'รอสักครู่แล้วลองใหม่', - }); + throw new ServiceUnavailableException( + 'WORKFLOW_LOCK_UNAVAILABLE', + `Redlock acquire failed after 3 retries on lock:wf:transition:${instanceId}`, + 'ระบบยุ่งชั่วคราว กรุณาลองใหม่ภายหลัง', + ['รอสักครู่แล้วลองใหม่', 'แจ้งผู้ดูแลระบบหากยังพบปัญหา'] + ); } const queryRunner = this.dataSource.createQueryRunner(); await queryRunner.connect(); await queryRunner.startTransaction(); - let eventsToDispatch: RawEvent[] = []; - let updatedContext: Record = {}; - try { // 1. Lock Instance เพื่อป้องกัน Race Condition (Pessimistic Write Lock) const instance = await queryRunner.manager.findOne(WorkflowInstance, { @@ -407,6 +424,22 @@ export class WorkflowEngineService { ); } + // ============================================================== + // ADR-021 (H1): Re-check state ภายใต้ pessimistic lock — ปิด TOCTOU race + // pre-check ด้านหน้าเป็น optimistic fast-fail; เช็กที่นี่เป็น authoritative + // ============================================================== + if ( + hasAttachments && + !WorkflowEngineService.UPLOAD_ALLOWED_STATES.has(instance.currentState) + ) { + throw new ConflictException( + 'WORKFLOW_STATE_CHANGED', + `TOCTOU: state changed to ${instance.currentState} under pessimistic lock`, + 'ไม่สามารถอัปโหลดไฟล์ได้ (สถานะเอกสารได้เปลี่ยนไปก่อนหน้านี้)', + ['รีเฟรชหน้าแล้วตรวจสถานะล่าสุดของเอกสาร'] + ); + } + // 2. Evaluate Logic ผ่าน DSL Service const compiled = instance.definition .compiled as unknown as CompiledWorkflow; @@ -494,27 +527,23 @@ export class WorkflowEngineService { ) ); - // [NEW] เก็บค่าไว้ Dispatch หลัง Commit - eventsToDispatch = evaluation.events; - updatedContext = context; - this.logger.log( `Transition: ${instanceId} [${fromState}] --${action}--> [${toState}] by User:${userId}` ); - // [NEW] Dispatch Events (Async) ผ่าน WorkflowEventService - if (eventsToDispatch && eventsToDispatch.length > 0) { + // Dispatch Events (Async, Fire-and-forget) ผ่าน WorkflowEventService + if (evaluation.events.length > 0) { void this.eventService.dispatchEvents( instance.id, - eventsToDispatch, - updatedContext + evaluation.events, + context ); } return { success: true, nextState: toState, - events: eventsToDispatch, + events: evaluation.events, isCompleted: instance.status === WorkflowStatus.COMPLETED, }; } catch (err) { diff --git a/backend/test/simple.e2e-spec.ts b/backend/test/simple.e2e-spec.ts index d1844b6..3caa508 100644 --- a/backend/test/simple.e2e-spec.ts +++ b/backend/test/simple.e2e-spec.ts @@ -1,6 +1,6 @@ import _request from 'supertest'; import { AppModule } from '../src/app.module'; -import { _RoutingTemplate } from '../src/modules/correspondence/entities/routing-template.entity'; +import { RoutingTemplate } from '../src/modules/correspondence/entities/routing-template.entity'; import { Test, TestingModule } from '@nestjs/testing'; diff --git a/frontend/app/(dashboard)/rag/page.tsx b/frontend/app/(dashboard)/rag/page.tsx new file mode 100644 index 0000000..9d6a639 --- /dev/null +++ b/frontend/app/(dashboard)/rag/page.tsx @@ -0,0 +1,54 @@ +'use client'; + +import { Bot } from 'lucide-react'; +import { useRagQuery } from '../../../hooks/use-rag'; +import { useProjectStore } from '../../../lib/stores/project-store'; +import { RagSearchBar } from '../../../components/rag/rag-search-bar'; +import { RagResultCard } from '../../../components/rag/rag-result-card'; + +export default function RagPage() { + const { selectedProjectId } = useProjectStore(); + const { mutate, data, isPending, error, isIdle } = useRagQuery(); + + const handleSearch = (question: string) => { + if (!selectedProjectId) return; + mutate({ question, projectPublicId: selectedProjectId }); + }; + + return ( +
+
+ +

RAG — ค้นหาจากเอกสารโครงการ

+
+ + {!selectedProjectId && ( +
+ กรุณาเลือกโครงการก่อนใช้งาน RAG +
+ )} + + + + {isPending && ( +
+ กำลังค้นหาและประมวลผล... +
+ )} + + {error && ( +
+ เกิดข้อผิดพลาด: {error.message} +
+ )} + + {data && !isPending && } + + {isIdle && !error && ( +

+ พิมพ์คำถามแล้วกด ค้นหา เพื่อรับคำตอบจากเอกสารโครงการ +

+ )} +
+ ); +} diff --git a/frontend/components/rag/rag-fallback-badge.tsx b/frontend/components/rag/rag-fallback-badge.tsx new file mode 100644 index 0000000..94f8b9e --- /dev/null +++ b/frontend/components/rag/rag-fallback-badge.tsx @@ -0,0 +1,12 @@ +'use client'; + +import { AlertTriangle } from 'lucide-react'; + +export function RagFallbackBadge() { + return ( + + + ใช้ local model คุณภาพอาจลดลง + + ); +} diff --git a/frontend/components/rag/rag-result-card.tsx b/frontend/components/rag/rag-result-card.tsx new file mode 100644 index 0000000..8ada011 --- /dev/null +++ b/frontend/components/rag/rag-result-card.tsx @@ -0,0 +1,74 @@ +'use client'; + +import { FileText } from 'lucide-react'; +import type { RagQueryResponse, RagCitation } from '../../hooks/use-rag'; +import { RagFallbackBadge } from './rag-fallback-badge'; + +interface RagResultCardProps { + result: RagQueryResponse; +} + +function ConfidenceBar({ score }: { score: number }) { + const pct = Math.round(score * 100); + const color = + pct >= 80 ? 'bg-green-500' : pct >= 50 ? 'bg-yellow-500' : 'bg-red-500'; + return ( +
+
+
+
+ {pct}% +
+ ); +} + +function CitationItem({ citation }: { citation: RagCitation }) { + return ( +
+
+
+ + {citation.docType} + {citation.docNumber && ( + — {citation.docNumber} + )} + {citation.revision && ( + Rev. {citation.revision} + )} +
+ +
+

{citation.snippet}

+
+ ); +} + +export function RagResultCard({ result }: RagResultCardProps) { + return ( +
+
+
+

คำตอบ

+

{result.answer}

+
+
+ + {result.usedFallbackModel && } +
+
+ + {result.citations.length > 0 && ( +
+

+ อ้างอิง ({result.citations.length} เอกสาร) +

+
+ {result.citations.map((c) => ( + + ))} +
+
+ )} +
+ ); +} diff --git a/frontend/components/rag/rag-search-bar.tsx b/frontend/components/rag/rag-search-bar.tsx new file mode 100644 index 0000000..2c1c698 --- /dev/null +++ b/frontend/components/rag/rag-search-bar.tsx @@ -0,0 +1,64 @@ +'use client'; + +import { useState } from 'react'; +import { Loader2, Search } from 'lucide-react'; +import { z } from 'zod'; + +const schema = z.object({ + question: z.string().min(1, 'กรุณาระบุคำถาม').max(500, 'คำถามต้องไม่เกิน 500 ตัวอักษร'), +}); + +interface RagSearchBarProps { + onSearch: (question: string) => void; + isLoading: boolean; +} + +export function RagSearchBar({ onSearch, isLoading }: RagSearchBarProps) { + const [question, setQuestion] = useState(''); + const [error, setError] = useState(null); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + const result = schema.safeParse({ question }); + if (!result.success) { + setError(result.error.issues[0]?.message ?? 'ข้อมูลไม่ถูกต้อง'); + return; + } + setError(null); + onSearch(question); + }; + + return ( +
+
+
+ setQuestion(e.target.value)} + placeholder="ถามคำถามเกี่ยวกับเอกสารโครงการ..." + className="w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" + disabled={isLoading} + maxLength={500} + /> + {error &&

{error}

} +

+ {question.length}/500 +

+
+ +
+
+ ); +} diff --git a/frontend/eslint-frontend.json b/frontend/eslint-frontend.json new file mode 100644 index 0000000..648f150 --- /dev/null +++ b/frontend/eslint-frontend.json @@ -0,0 +1 @@ +[{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\access-control\\organizations\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\access-control\\roles\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\access-control\\users\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\audit-logs\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\contracts\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\drawings\\contract\\categories\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\drawings\\contract\\sub-categories\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\drawings\\contract\\volumes\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\drawings\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\drawings\\shop\\main-categories\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\drawings\\shop\\sub-categories\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\numbering\\[id]\\edit\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\numbering\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\numbering\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\projects\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\reference\\correspondence-types\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\reference\\disciplines\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\reference\\drawing-categories\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\reference\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\reference\\rfa-types\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\reference\\tags\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\workflows\\[id]\\edit\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\workflows\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\doc-control\\workflows\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\migration\\errors\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\migration\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\migration\\review\\[id]\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\monitoring\\audit-logs\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\monitoring\\sessions\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\monitoring\\system-logs\\numbering\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\numbering\\[id]\\edit\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\numbering\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\numbering\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\organizations\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\settings\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\users\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\workflows\\[id]\\edit\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\workflows\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\admin\\workflows\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\error.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(admin)\\layout.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(auth)\\layout.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(auth)\\login\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\circulation\\[uuid]\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\circulation\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\circulation\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\correspondences\\[uuid]\\edit\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\correspondences\\[uuid]\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\correspondences\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\correspondences\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\dashboard\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\drawings\\[uuid]\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\drawings\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\drawings\\upload\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\error.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\layout.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\profile\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\projects\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\projects\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\projects\\page_backup.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\rag\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\rfa\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\rfas\\[uuid]\\edit\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\rfas\\[uuid]\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\rfas\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\rfas\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\search\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\settings\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\transmittals\\[uuid]\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\transmittals\\new\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\(dashboard)\\transmittals\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\api\\auth\\[...nextauth]\\route.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\error.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\global-error.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\layout.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\app\\page.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\admin\\organization-dialog.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\admin\\reference\\generic-crud-table.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\admin\\security\\rbac-matrix.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\admin\\sidebar.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\admin\\user-dialog.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ai\\ai-suggestion-field.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ai\\document-comparison-view.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ai\\processing-indicator.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\auth\\auth-sync.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\circulation\\circulation-list.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\common\\can.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\common\\confirm-dialog.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\common\\data-table.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\common\\error-display.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\common\\file-preview-modal.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\common\\pagination.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\common\\status-badge.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\common\\workflow-error-boundary.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\circulation-status-card.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\correspondences-content.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\detail.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\form.test.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\form.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\list.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\reference-selector.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\revision-history.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\tag-manager.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\correspondences\\ux-flow-dialog.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\custom\\file-upload-zone.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\custom\\workflow-visualizer.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\dashboard\\pending-tasks.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\dashboard\\quick-actions.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\dashboard\\recent-activity.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\dashboard\\stats-cards.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\documents\\common\\server-data-table.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\drawings\\card.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\drawings\\columns.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\drawings\\list.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\drawings\\revision-history.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\drawings\\upload-form.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\dashboard-shell.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\global-search.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\header.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\navbar.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\notifications-dropdown.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\project-switcher.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\sidebar.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\theme-toggle.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\user-menu.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\layout\\user-nav.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\audit-logs-table.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\bulk-import-form.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\cancel-number-form.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":25,"column":42,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":25,"endColumn":45,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[980,983],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[980,983],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":"zod 4 + @hookform/resolvers compat"}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\manual-override-form.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":28,"column":42,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":28,"endColumn":45,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1331,1334],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1331,1334],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":"zod 4 + @hookform/resolvers compat"}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\metrics-dashboard.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\sequence-viewer.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\template-editor.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\template-tester.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\numbering\\void-replace-form.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":28,"column":42,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":28,"endColumn":45,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1148,1151],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1148,1151],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":"zod 4 + @hookform/resolvers compat"}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\rag\\rag-fallback-badge.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\rag\\rag-result-card.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\rag\\rag-search-bar.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\rfas\\detail.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\rfas\\form.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\rfas\\list.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\search\\filters.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\search\\results.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\transmittal\\transmittal-form.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":56,"column":42,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":56,"endColumn":45,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[2595,2598],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[2595,2598],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":"zod 4 + @hookform/resolvers compat"}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\transmittal\\transmittal-list.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\__tests__\\button.test.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\alert-dialog.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\alert.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\avatar.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\badge.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\button.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\calendar.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\card.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\checkbox.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\command.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\dialog.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\dropdown-menu.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\form.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\hover-card.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\input.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\label.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\popover.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\progress.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\scroll-area.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\select.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\separator.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\sheet.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\skeleton.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\sonner.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\switch.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\table.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\tabs.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\ui\\textarea.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\workflow\\integrated-banner.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\workflow\\workflow-lifecycle.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\workflows\\dsl-editor.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\components\\workflows\\visual-builder.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\coverage\\lcov-report\\block-navigation.js","messages":[{"ruleId":null,"message":"Unused eslint-disable directive (no problems were reported).","line":1,"column":1,"severity":1,"nodeType":null,"fix":{"range":[0,20],"text":" "}}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":1,"source":"/* eslint-disable */\nvar jumpToCode = (function init() {\n // Classes of code we would like to highlight in the file view\n var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];\n\n // Elements to highlight in the file listing view\n var fileListingElements = ['td.pct.low'];\n\n // We don't want to select elements that are direct descendants of another match\n var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `\n\n // Selector that finds elements on the page to which we can jump\n var selector =\n fileListingElements.join(', ') +\n ', ' +\n notSelector +\n missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`\n\n // The NodeList of matching elements\n var missingCoverageElements = document.querySelectorAll(selector);\n\n var currentIndex;\n\n function toggleClass(index) {\n missingCoverageElements\n .item(currentIndex)\n .classList.remove('highlighted');\n missingCoverageElements.item(index).classList.add('highlighted');\n }\n\n function makeCurrent(index) {\n toggleClass(index);\n currentIndex = index;\n missingCoverageElements.item(index).scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center'\n });\n }\n\n function goToPrevious() {\n var nextIndex = 0;\n if (typeof currentIndex !== 'number' || currentIndex === 0) {\n nextIndex = missingCoverageElements.length - 1;\n } else if (missingCoverageElements.length > 1) {\n nextIndex = currentIndex - 1;\n }\n\n makeCurrent(nextIndex);\n }\n\n function goToNext() {\n var nextIndex = 0;\n\n if (\n typeof currentIndex === 'number' &&\n currentIndex < missingCoverageElements.length - 1\n ) {\n nextIndex = currentIndex + 1;\n }\n\n makeCurrent(nextIndex);\n }\n\n return function jump(event) {\n if (\n document.getElementById('fileSearch') === document.activeElement &&\n document.activeElement != null\n ) {\n // if we're currently focused on the search input, we don't want to navigate\n return;\n }\n\n switch (event.which) {\n case 78: // n\n case 74: // j\n goToNext();\n break;\n case 66: // b\n case 75: // k\n case 80: // p\n goToPrevious();\n break;\n }\n };\n})();\nwindow.addEventListener('keydown', jumpToCode);\n","usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\coverage\\lcov-report\\prettify.js","messages":[],"suppressedMessages":[{"ruleId":"no-redeclare","severity":2,"message":"'ar' is already defined.","line":2,"column":3893,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":3895,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'ar' is already defined.","line":2,"column":4061,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4063,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'at' is already defined.","line":2,"column":4089,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4091,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'ak' is already defined.","line":2,"column":4604,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4606,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'ak' is already defined.","line":2,"column":4665,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4667,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'am' is already defined.","line":2,"column":4670,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4672,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'ag' is already defined.","line":2,"column":4691,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4693,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'af' is already defined.","line":2,"column":4789,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4791,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'ak' is already defined.","line":2,"column":4854,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4856,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'am' is already defined.","line":2,"column":4859,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4861,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'ak' is already defined.","line":2,"column":4949,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4951,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'ag' is already defined.","line":2,"column":4970,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":4972,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'V' is already defined.","line":2,"column":5216,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":5217,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'U' is already defined.","line":2,"column":5220,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":5221,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'ae' is already defined.","line":2,"column":5244,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":5246,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-prototype-builtins","severity":2,"message":"Do not access Object.prototype method 'hasOwnProperty' from target object.","line":2,"column":6621,"nodeType":"CallExpression","messageId":"prototypeBuildIn","endLine":2,"endColumn":6635,"suggestions":[{"messageId":"callObjectPrototype","data":{"prop":"hasOwnProperty"},"fix":{"range":[6638,6656],"text":"Object.prototype.hasOwnProperty.call(ag, "},"desc":"Call Object.prototype.hasOwnProperty explicitly."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7590,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7591,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7610,7611],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7610,7610],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7592,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7593,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7612,7613],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7612,7612],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7594,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7595,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7614,7615],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7614,7614],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7601,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7602,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7621,7622],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7621,7621],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7616,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7617,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7636,7637],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7636,7636],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7628,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7629,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7648,7649],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7648,7648],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7637,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7638,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7657,7658],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7657,7657],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7639,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7640,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7659,7660],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7659,7659],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7641,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7642,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7661,7662],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7661,7661],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7647,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7648,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7667,7668],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7667,7667],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7649,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7650,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7669,7670],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7669,7669],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7651,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7652,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7671,7672],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7671,7671],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7658,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7659,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7678,7679],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7678,7678],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7673,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7674,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7693,7694],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7693,7693],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7685,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7686,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7705,7706],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7705,7705],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7694,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7695,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7714,7715],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7714,7714],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7696,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7697,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7716,7717],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7716,7716],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7698,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7699,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7718,7719],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7718,7718],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7704,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7705,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7724,7725],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7724,7724],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7713,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7714,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7733,7734],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7733,7733],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7730,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7731,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7750,7751],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7750,7750],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7736,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7737,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7756,7757],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7756,7756],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7745,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7746,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7765,7766],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7765,7765],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7762,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7763,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7782,7783],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7782,7782],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7826,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7827,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7846,7847],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7846,7846],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7835,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7836,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7855,7856],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7855,7855],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7852,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7853,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7872,7873],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7872,7872],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7858,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7859,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7878,7879],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7878,7878],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7867,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7868,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7887,7888],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7887,7887],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7884,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7885,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7904,7905],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7904,7904],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\`.","line":2,"column":7890,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7891,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7910,7911],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7910,7910],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\`.","line":2,"column":7899,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7900,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7919,7920],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7919,7919],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\`.","line":2,"column":7916,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7917,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7936,7937],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7936,7936],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7958,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7959,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7978,7979],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7978,7978],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7967,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7968,"suggestions":[{"messageId":"removeEscape","fix":{"range":[7987,7988],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[7987,7987],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":7983,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7984,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8003,8004],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8003,8003],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7989,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7990,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8009,8010],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8009,8009],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":7998,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":7999,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8018,8019],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8018,8018],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":8014,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":8015,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8034,8035],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8034,8034],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":8071,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":8072,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8091,8092],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8091,8091],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":8078,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":8079,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8098,8099],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8098,8098],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":8082,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":8083,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8102,8103],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8102,8102],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":8084,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":8085,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8104,8105],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8104,8104],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":8091,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":8092,"suggestions":[{"messageId":"removeEscape","fix":{"range":[8111,8112],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[8111,8111],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\..","line":2,"column":9231,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":9232,"suggestions":[{"messageId":"removeEscape","fix":{"range":[9251,9252],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[9251,9251],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":9235,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":9236,"suggestions":[{"messageId":"removeEscape","fix":{"range":[9255,9256],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[9255,9255],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":9237,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":9238,"suggestions":[{"messageId":"removeEscape","fix":{"range":[9257,9258],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[9257,9257],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\`.","line":2,"column":9239,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":9240,"suggestions":[{"messageId":"removeEscape","fix":{"range":[9259,9260],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[9259,9259],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\/.","line":2,"column":9241,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":9242,"suggestions":[{"messageId":"removeEscape","fix":{"range":[9261,9262],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[9261,9261],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\#.","line":2,"column":9243,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":9244,"suggestions":[{"messageId":"removeEscape","fix":{"range":[9263,9264],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[9263,9263],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'Y' is already defined.","line":2,"column":10812,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":10813,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'ae' is assigned a value but never used.","line":2,"column":11414,"nodeType":"Identifier","messageId":"unusedVar","endLine":2,"endColumn":11416,"suggestions":[{"messageId":"removeVar","data":{"varName":"ae"},"fix":{"range":[11430,11442],"text":""},"desc":"Remove unused variable 'ae'."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'af' is assigned a value but never used.","line":2,"column":11438,"nodeType":"Identifier","messageId":"unusedVar","endLine":2,"endColumn":11440,"suggestions":[{"messageId":"removeVar","data":{"varName":"af"},"fix":{"range":[11454,11468],"text":""},"desc":"Remove unused variable 'af'."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'ag' is assigned a value but never used.","line":2,"column":11471,"nodeType":"Identifier","messageId":"unusedVar","endLine":2,"endColumn":11473,"suggestions":[{"messageId":"removeVar","data":{"varName":"ag"},"fix":{"range":[11487,11499],"text":""},"desc":"Remove unused variable 'ag'."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-redeclare","severity":2,"message":"'W' is already defined.","line":2,"column":11501,"nodeType":"Identifier","messageId":"redeclared","endLine":2,"endColumn":11502,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-prototype-builtins","severity":2,"message":"Do not access Object.prototype method 'hasOwnProperty' from target object.","line":2,"column":11964,"nodeType":"CallExpression","messageId":"prototypeBuildIn","endLine":2,"endColumn":11978,"suggestions":[{"messageId":"callObjectPrototype","data":{"prop":"hasOwnProperty"},"fix":{"range":[11982,11999],"text":"Object.prototype.hasOwnProperty.call(t, "},"desc":"Call Object.prototype.hasOwnProperty explicitly."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":2,"column":12014,"nodeType":"MemberExpression","messageId":"unexpected","endLine":2,"endColumn":12026,"suggestions":[{"fix":{"range":[12034,12087],"text":""},"messageId":"removeConsole","data":{"propertyName":"warn"},"desc":"Remove the console.warn()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-prototype-builtins","severity":2,"message":"Do not access Object.prototype method 'hasOwnProperty' from target object.","line":2,"column":12097,"nodeType":"CallExpression","messageId":"prototypeBuildIn","endLine":2,"endColumn":12111,"suggestions":[{"messageId":"callObjectPrototype","data":{"prop":"hasOwnProperty"},"fix":{"range":[12115,12132],"text":"Object.prototype.hasOwnProperty.call(t, "},"desc":"Call Object.prototype.hasOwnProperty explicitly."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\!.","line":2,"column":12253,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12254,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12273,12274],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12273,12273],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\-.","line":2,"column":12269,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12270,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12289,12290],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12289,12289],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12685,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12686,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12705,12706],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12705,12705],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12689,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12690,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12709,12710],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12709,12709],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12693,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12694,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12713,12714],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12713,12713],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":12697,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12698,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12717,12718],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12717,12717],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":12701,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12702,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12721,12722],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12721,12721],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":12705,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12706,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12725,12726],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12725,12725],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":12835,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12836,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12855,12856],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12855,12855],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12837,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12838,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12857,12858],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12857,12857],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":12849,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12850,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12869,12870],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12869,12869],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12851,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12852,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12871,12872],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12871,12871],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\/.","line":2,"column":12855,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12856,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12875,12876],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12875,12875],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\/.","line":2,"column":12881,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12882,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12901,12902],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12901,12901],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12913,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12914,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12933,12934],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12933,12933],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12918,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12919,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12938,12939],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12938,12938],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12923,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12924,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12943,12944],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12943,12943],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":12954,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12955,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12974,12975],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12974,12974],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":12959,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12960,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12979,12980],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12979,12979],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":12964,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12965,"suggestions":[{"messageId":"removeEscape","fix":{"range":[12984,12985],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[12984,12984],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":12998,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":12999,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13018,13019],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13018,13018],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":13000,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13001,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13020,13021],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13020,13020],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":13038,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13039,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13058,13059],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13058,13058],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":13043,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13044,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13063,13064],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13063,13063],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":13048,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13049,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13068,13069],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13068,13068],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":13080,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13081,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13100,13101],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13100,13100],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":13085,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13086,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13105,13106],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13105,13105],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":13090,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13091,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13110,13111],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13110,13110],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":13125,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13126,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13145,13146],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13145,13145],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":13127,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":13128,"suggestions":[{"messageId":"removeEscape","fix":{"range":[13147,13148],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[13147,13147],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":2,"column":14233,"nodeType":"MemberExpression","messageId":"unexpected","endLine":2,"endColumn":14244,"suggestions":[{"fix":{"range":[14253,14286],"text":""},"messageId":"removeConsole","data":{"propertyName":"log"},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'ae' is assigned a value but never used.","line":2,"column":14757,"nodeType":"Identifier","messageId":"unusedVar","endLine":2,"endColumn":14759,"suggestions":[{"messageId":"removeVar","data":{"varName":"ae"},"fix":{"range":[14773,14798],"text":""},"desc":"Remove unused variable 'ae'."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":15786,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":15788,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":15809,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":15811,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":15835,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":15837,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":15875,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":15877,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\!.","line":2,"column":15892,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":15893,"suggestions":[{"messageId":"removeEscape","fix":{"range":[15912,15913],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[15912,15912],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\-.","line":2,"column":15908,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":15909,"suggestions":[{"messageId":"removeEscape","fix":{"range":[15928,15929],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[15928,15928],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":15918,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":15920,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16362,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16364,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16410,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16412,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16453,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16455,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16498,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16500,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16551,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16553,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16574,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16576,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16597,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16599,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16646,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16648,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":16661,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16662,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16681,16682],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16681,16681],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":16676,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16677,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16696,16697],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16696,16696],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":16708,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16709,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16728,16729],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16728,16728],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16719,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16721,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":16734,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16735,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16754,16755],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16754,16754],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":16749,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16750,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16769,16770],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16769,16769],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":16781,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16782,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16801,16802],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16801,16801],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\).","line":2,"column":16817,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16818,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16837,16838],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16837,16837],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":16819,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16820,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16839,16840],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16839,16839],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":16821,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16822,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16841,16842],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16841,16841],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":16833,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":16835,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\!.","line":2,"column":16860,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16861,"suggestions":[{"messageId":"removeEscape","fix":{"range":[16880,16881],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[16880,16880],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\-.","line":2,"column":16991,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":16992,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17011,17012],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17011,17011],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17026,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17028,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\/.","line":2,"column":17059,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":17060,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17079,17080],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17079,17079],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17079,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17081,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17111,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17113,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17161,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17163,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17203,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17205,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\-.","line":2,"column":17256,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":17257,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17276,17277],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17276,17276],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17285,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17287,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":17311,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":17312,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17331,17332],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17331,17331],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":17313,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":17314,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17333,17334],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17333,17333],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17331,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17333,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17354,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17356,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17380,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17382,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\-.","line":2,"column":17435,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":17436,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17455,17456],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17455,17455],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17477,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17479,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17500,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17502,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":2,"message":"'PR' is not defined.","line":2,"column":17526,"nodeType":"Identifier","messageId":"undef","endLine":2,"endColumn":17528,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\).","line":2,"column":17543,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":17544,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17563,17564],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17563,17563],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\\".","line":2,"column":17545,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":17546,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17565,17566],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17565,17565],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\'.","line":2,"column":17547,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":2,"endColumn":17548,"suggestions":[{"messageId":"removeEscape","fix":{"range":[17567,17568],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[17567,17567],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\coverage\\lcov-report\\sorter.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-vars","severity":2,"message":"'error' is defined but never used.","line":36,"column":18,"nodeType":"Identifier","messageId":"unusedVar","endLine":36,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\__tests__\\use-circulation.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\__tests__\\use-correspondence.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\__tests__\\use-drawing.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\__tests__\\use-projects.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\__tests__\\use-rfa.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\__tests__\\use-users.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\__tests__\\use-workflow-action.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-audit-logs.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-circulation.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-correspondence.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-dashboard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-drawing.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-master-data.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-notification.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-numbering.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-projects.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-rag.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-reference-data.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-rfa.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-search.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-translations.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-transmittal.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-users.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-workflow-action.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-workflow-history.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\hooks\\use-workflows.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\api\\admin.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\api\\client.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\api\\dashboard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\api\\drawings.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\api\\files.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\api\\notifications.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\api\\numbering.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\api\\workflows.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\auth.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\i18n\\index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\__tests__\\correspondence.service.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\__tests__\\master-data.service.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\__tests__\\project.service.test.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\ai.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\asbuilt-drawing.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\audit-log.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\circulation.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\contract-drawing.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\contract.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\correspondence.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\dashboard.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\document-numbering.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\drawing-master-data.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\json-schema.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\master-data.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\migration.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\monitoring.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\notification.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\organization.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\project.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\rfa.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\search.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\session.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\shop-drawing.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\transmittal.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\user.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\services\\workflow-engine.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\stores\\auth-store.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\stores\\draft-store.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\stores\\project-store.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\stores\\ui-store.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\test-utils.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\utils.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\lib\\utils\\uuid-guard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\next-env.d.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\providers\\query-provider.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\providers\\session-provider.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\providers\\theme-provider.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\proxy.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\admin.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\ai.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\api-error.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\circulation.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\contract.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\correspondence.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dashboard.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\drawing.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\circulation\\create-circulation.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\circulation\\search-circulation.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\circulation\\update-circulation-routing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\contract\\contract.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\correspondence\\add-reference.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\correspondence\\create-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\correspondence\\search-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\correspondence\\submit-correspondence.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\correspondence\\workflow-action.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\drawing\\asbuilt-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\drawing\\contract-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\drawing\\shop-drawing.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\json-schema\\json-schema.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\master\\correspondence-type.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\master\\discipline.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\master\\number-format.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\master\\rfa-type.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\master\\sub-type.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\master\\tag.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\monitoring\\set-maintenance.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\notification\\notification.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\numbering.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\organization\\organization.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\project\\project.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\rfa\\rfa.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\search\\search-query.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\transmittal\\transmittal.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\user\\user.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\dto\\workflow-engine\\workflow-engine.dto.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\master-data.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\migration.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\next-auth.d.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\notification.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\numbering.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\organization.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\react-day-picker.d.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\rfa.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\search.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\transmittal.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\user.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\types\\workflow.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]},{"filePath":"E:\\np-dms\\lcbp3\\frontend\\vitest.setup.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":["@stylistic/no-extra-semi"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-extra-semi","url":"https://eslint.style/rules/no-extra-semi"}}]}},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":["@stylistic/no-mixed-spaces-and-tabs"],"info":{"message":"Formatting rules are being moved out of ESLint core.","url":"https://eslint.org/blog/2023/10/deprecating-formatting-rules/","deprecatedSince":"8.53.0","availableUntil":"11.0.0","replacedBy":[{"message":"ESLint Stylistic now maintains deprecated stylistic core rules.","url":"https://eslint.style/guide/migration","plugin":{"name":"@stylistic/eslint-plugin","url":"https://eslint.style"},"rule":{"name":"no-mixed-spaces-and-tabs","url":"https://eslint.style/rules/no-mixed-spaces-and-tabs"}}]}},{"ruleId":"no-new-symbol","replacedBy":["no-new-native-nonconstructor"],"info":{"message":"The rule was replaced with a more general rule.","url":"https://eslint.org/docs/latest/use/migrate-to-9.0.0#eslint-recommended","deprecatedSince":"9.0.0","availableUntil":"11.0.0","replacedBy":[{"rule":{"name":"no-new-native-nonconstructor","url":"https://eslint.org/docs/latest/rules/no-new-native-nonconstructor"}}]}}]}] \ No newline at end of file diff --git a/frontend/hooks/__tests__/use-workflow-action.test.ts b/frontend/hooks/__tests__/use-workflow-action.test.ts index ebe1c7d..115488b 100644 --- a/frontend/hooks/__tests__/use-workflow-action.test.ts +++ b/frontend/hooks/__tests__/use-workflow-action.test.ts @@ -91,9 +91,39 @@ describe('useWorkflowAction — T027a error handling (Clarify Q1+Q2)', () => { ); }); - it('403: should show unauthorized toast', async () => { + it('M1 (403): should use backend-provided message instead of hardcoded string', async () => { + // backend ส่ง message แบบ contextual (cross-contract) — frontend ต้อง preserve vi.mocked(workflowEngineService.transition).mockRejectedValue( - makeApiError(403, 'ไม่มีสิทธิ์', ['ติดต่อ Admin']) + makeApiError( + 403, + 'คุณไม่มีสิทธิ์เข้าถึง Workflow ของสัญญานี้', + ['ตรวจสอบสิทธิ์กับ Project Admin'] + ) + ); + + const { wrapper } = createTestQueryClient(); + const { result } = renderHook(() => useWorkflowAction('inst-1'), { wrapper }); + + await act(async () => { + result.current.mutate({ action: 'APPROVE' }); + }); + + await waitFor(() => { + expect(result.current.isError).toBe(true); + }); + + // ✓ toast ต้องใช้ backend message (ไม่ใช่ "คุณไม่มีสิทธิ์ดำเนินการในขั้นตอนนี้" generic) + expect(toast.error).toHaveBeenCalledWith( + 'คุณไม่มีสิทธิ์เข้าถึง Workflow ของสัญญานี้', + expect.objectContaining({ + description: 'ตรวจสอบสิทธิ์กับ Project Admin', + }) + ); + }); + + it('M1 (403): should fallback to generic message when backend message missing', async () => { + vi.mocked(workflowEngineService.transition).mockRejectedValue( + makeApiError(403, '', ['ติดต่อ Admin']) ); const { wrapper } = createTestQueryClient(); @@ -115,6 +145,81 @@ describe('useWorkflowAction — T027a error handling (Clarify Q1+Q2)', () => { ); }); + it('M3 (409): should reset idempotency key after 409 so retry uses fresh key', async () => { + // First call → 409 + vi.mocked(workflowEngineService.transition).mockRejectedValueOnce( + makeApiError(409, 'ไม่สามารถอัปโหลดในสถานะนี้ได้', ['รีเฟรชหน้า']) + ); + // Second call → success + vi.mocked(workflowEngineService.transition).mockResolvedValueOnce({ + success: true, + nextState: 'APPROVED', + }); + + const { wrapper } = createTestQueryClient(); + const { result } = renderHook(() => useWorkflowAction('inst-1'), { wrapper }); + + // First mutate → 409 + await act(async () => { + result.current.mutate({ action: 'APPROVE' }); + }); + await waitFor(() => expect(result.current.isError).toBe(true)); + + const firstKey = vi + .mocked(workflowEngineService.transition) + .mock.calls[0][2]; + + // Second mutate → success + await act(async () => { + result.current.mutate({ action: 'APPROVE' }); + }); + await waitFor(() => expect(result.current.isSuccess).toBe(true)); + + const secondKey = vi + .mocked(workflowEngineService.transition) + .mock.calls[1][2]; + + // ✓ Key ต้องแตกต่างกัน (reset แล้วหลัง 409) + expect(firstKey).not.toBe(secondKey); + expect(firstKey).toMatch(/^[0-9a-f-]{36}$/); + expect(secondKey).toMatch(/^[0-9a-f-]{36}$/); + }); + + it('M3 (503): should NOT reset idempotency key (user can retry with same key)', async () => { + // First call → 503 + vi.mocked(workflowEngineService.transition).mockRejectedValueOnce( + makeApiError(503, 'ระบบยุ่ง') + ); + // Second call → success + vi.mocked(workflowEngineService.transition).mockResolvedValueOnce({ + success: true, + }); + + const { wrapper } = createTestQueryClient(); + const { result } = renderHook(() => useWorkflowAction('inst-1'), { wrapper }); + + await act(async () => { + result.current.mutate({ action: 'APPROVE' }); + }); + await waitFor(() => expect(result.current.isError).toBe(true)); + + const firstKey = vi + .mocked(workflowEngineService.transition) + .mock.calls[0][2]; + + await act(async () => { + result.current.mutate({ action: 'APPROVE' }); + }); + await waitFor(() => expect(result.current.isSuccess).toBe(true)); + + const secondKey = vi + .mocked(workflowEngineService.transition) + .mock.calls[1][2]; + + // ✓ Key ต้องเหมือนเดิม (503 = retryable, same intent) + expect(firstKey).toBe(secondKey); + }); + it('should show success toast on 200', async () => { vi.mocked(workflowEngineService.transition).mockResolvedValue({ success: true, diff --git a/frontend/hooks/use-rag.ts b/frontend/hooks/use-rag.ts new file mode 100644 index 0000000..e6eb18b --- /dev/null +++ b/frontend/hooks/use-rag.ts @@ -0,0 +1,36 @@ +import { useMutation } from '@tanstack/react-query'; +import apiClient from '../lib/api/client'; + +export interface RagCitation { + chunkId: string; + docNumber: string | null; + docType: string; + revision: string | null; + snippet: string; + score: number; +} + +export interface RagQueryRequest { + question: string; + projectPublicId: string; +} + +export interface RagQueryResponse { + answer: string; + citations: RagCitation[]; + confidence: number; + usedFallbackModel: boolean; + cachedAt?: string; +} + +export function useRagQuery() { + return useMutation({ + mutationFn: async (payload) => { + const idempotencyKey = `rag-${Date.now()}-${Math.random().toString(36).slice(2)}`; + const res = await apiClient.post<{ data: RagQueryResponse }>('/rag/query', payload, { + headers: { 'Idempotency-Key': idempotencyKey }, + }); + return res.data.data; + }, + }); +} diff --git a/frontend/hooks/use-workflow-action.ts b/frontend/hooks/use-workflow-action.ts index ae7cc92..3def25b 100644 --- a/frontend/hooks/use-workflow-action.ts +++ b/frontend/hooks/use-workflow-action.ts @@ -12,13 +12,13 @@ import type { ApiErrorResponse } from '@/lib/api/client'; import type { WorkflowTransitionWithAttachmentsDto } from '@/types/dto/workflow-engine/workflow-engine.dto'; // Type guard — ตรวจสอบว่า error ที่ได้มาเป็น ApiErrorResponse (จาก parseApiError interceptor) +// S3: ป้องกัน edge case `{ error: null }` ซึ่ง typeof null === 'object' แต่ destructure จะ throw function isApiErrorResponse(err: unknown): err is ApiErrorResponse { - return ( - typeof err === 'object' && - err !== null && - 'error' in err && - typeof (err as ApiErrorResponse).error === 'object' - ); + if (typeof err !== 'object' || err === null || !('error' in err)) { + return false; + } + const inner = (err as { error: unknown }).error; + return typeof inner === 'object' && inner !== null; } export function useWorkflowAction(instanceId: string | undefined) { @@ -69,15 +69,17 @@ export function useWorkflowAction(instanceId: string | undefined) { // Clarify Q1: 409 Conflict (ไม่อยู่ในสถานะที่อนุญาตให้อัปโหลด) if (statusCode === 409) { + // M3: reset idempotency key — user intent กับ state เดิมใช้ไม่ได้แล้ว + setIdempotencyKey(uuidv4()); toast.error(message || 'ไม่สามารถดำเนินการในสถานะนี้ได้', { description: recoveryActions?.[0], }); return; } - // 403 Forbidden — ไม่มีสิทธิ์ + // 403 Forbidden — ไม่มีสิทธิ์ (M1: ใช้ message จาก backend เพื่อคง context) if (statusCode === 403) { - toast.error('คุณไม่มีสิทธิ์ดำเนินการในขั้นตอนนี้', { + toast.error(message || 'คุณไม่มีสิทธิ์ดำเนินการในขั้นตอนนี้', { description: recoveryActions?.[0], }); return; diff --git a/frontend/npm-audit-frontend.json b/frontend/npm-audit-frontend.json new file mode 100644 index 0000000..06c0bd8 --- /dev/null +++ b/frontend/npm-audit-frontend.json @@ -0,0 +1,794 @@ +{ + "auditReportVersion": 2, + "vulnerabilities": { + "@next/eslint-plugin-next": { + "name": "@next/eslint-plugin-next", + "severity": "high", + "isDirect": false, + "via": [ + "glob" + ], + "effects": [ + "eslint-config-next" + ], + "range": "14.0.5-canary.0 - 15.0.0-rc.1", + "nodes": [ + "node_modules/@next/eslint-plugin-next" + ], + "fixAvailable": true + }, + "ajv": { + "name": "ajv", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1113714, + "name": "ajv", + "dependency": "ajv", + "title": "ajv has ReDoS when using `$data` option", + "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", + "severity": "moderate", + "cwe": [ + "CWE-400", + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<6.14.0" + } + ], + "effects": [], + "range": "<6.14.0", + "nodes": [ + "node_modules/ajv" + ], + "fixAvailable": true + }, + "axios": { + "name": "axios", + "severity": "high", + "isDirect": true, + "via": [ + { + "source": 1113275, + "name": "axios", + "dependency": "axios", + "title": "Axios is Vulnerable to Denial of Service via __proto__ Key in mergeConfig", + "url": "https://github.com/advisories/GHSA-43fc-jf86-j433", + "severity": "high", + "cwe": [ + "CWE-754" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=1.0.0 <=1.13.4" + }, + { + "source": 1116673, + "name": "axios", + "dependency": "axios", + "title": "Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF", + "url": "https://github.com/advisories/GHSA-3p68-rc4w-qgx5", + "severity": "moderate", + "cwe": [ + "CWE-441", + "CWE-918" + ], + "cvss": { + "score": 4.8, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + }, + "range": ">=1.0.0 <1.15.0" + }, + { + "source": 1116675, + "name": "axios", + "dependency": "axios", + "title": "Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain", + "url": "https://github.com/advisories/GHSA-fvcv-3m26-pcqx", + "severity": "moderate", + "cwe": [ + "CWE-113", + "CWE-444", + "CWE-918" + ], + "cvss": { + "score": 4.8, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + }, + "range": ">=1.0.0 <1.15.0" + } + ], + "effects": [], + "range": "1.0.0 - 1.14.0", + "nodes": [ + "node_modules/axios" + ], + "fixAvailable": true + }, + "brace-expansion": { + "name": "brace-expansion", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1115540, + "name": "brace-expansion", + "dependency": "brace-expansion", + "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion", + "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v", + "severity": "moderate", + "cwe": [ + "CWE-400" + ], + "cvss": { + "score": 6.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H" + }, + "range": "<1.1.13" + }, + { + "source": 1115541, + "name": "brace-expansion", + "dependency": "brace-expansion", + "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion", + "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v", + "severity": "moderate", + "cwe": [ + "CWE-400" + ], + "cvss": { + "score": 6.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H" + }, + "range": ">=2.0.0 <2.0.3" + } + ], + "effects": [], + "range": "<1.1.13 || >=2.0.0 <2.0.3", + "nodes": [ + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion", + "node_modules/brace-expansion", + "node_modules/glob/node_modules/brace-expansion" + ], + "fixAvailable": true + }, + "dompurify": { + "name": "dompurify", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1115529, + "name": "dompurify", + "dependency": "dompurify", + "title": "DOMPurify is vulnerable to mutation-XSS via Re-Contextualization ", + "url": "https://github.com/advisories/GHSA-h8r8-wccr-v5f2", + "severity": "moderate", + "cwe": [ + "CWE-79" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<3.3.2" + }, + { + "source": 1115668, + "name": "dompurify", + "dependency": "dompurify", + "title": "DOMPurify contains a Cross-site Scripting vulnerability", + "url": "https://github.com/advisories/GHSA-v2wj-7wpq-c8vv", + "severity": "moderate", + "cwe": [ + "CWE-79" + ], + "cvss": { + "score": 6.1, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" + }, + "range": ">=3.1.3 <=3.3.1" + }, + { + "source": 1115921, + "name": "dompurify", + "dependency": "dompurify", + "title": "DOMPurify ADD_ATTR predicate skips URI validation", + "url": "https://github.com/advisories/GHSA-cjmm-f4jc-qw8r", + "severity": "moderate", + "cwe": [ + "CWE-183" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=3.3.1" + }, + { + "source": 1115922, + "name": "dompurify", + "dependency": "dompurify", + "title": "DOMPurify USE_PROFILES prototype pollution allows event handlers", + "url": "https://github.com/advisories/GHSA-cj63-jhhr-wcxv", + "severity": "moderate", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=3.3.1" + }, + { + "source": 1116663, + "name": "dompurify", + "dependency": "dompurify", + "title": "DOMPurify's ADD_TAGS function form bypasses FORBID_TAGS due to short-circuit evaluation", + "url": "https://github.com/advisories/GHSA-39q2-94rc-95cp", + "severity": "moderate", + "cwe": [ + "CWE-783" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=3.3.3" + } + ], + "effects": [ + "monaco-editor" + ], + "range": "<=3.3.3", + "nodes": [ + "node_modules/dompurify" + ], + "fixAvailable": true + }, + "eslint-config-next": { + "name": "eslint-config-next", + "severity": "high", + "isDirect": true, + "via": [ + "@next/eslint-plugin-next" + ], + "effects": [], + "range": "14.0.5-canary.0 - 15.0.0-rc.1", + "nodes": [ + "node_modules/eslint-config-next" + ], + "fixAvailable": true + }, + "flatted": { + "name": "flatted", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1114526, + "name": "flatted", + "dependency": "flatted", + "title": "flatted vulnerable to unbounded recursion DoS in parse() revive phase", + "url": "https://github.com/advisories/GHSA-25h7-pfq9-p65f", + "severity": "high", + "cwe": [ + "CWE-674" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<3.4.0" + }, + { + "source": 1115357, + "name": "flatted", + "dependency": "flatted", + "title": "Prototype Pollution via parse() in NodeJS flatted", + "url": "https://github.com/advisories/GHSA-rf6f-7fwh-wjgh", + "severity": "high", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=3.4.1" + } + ], + "effects": [], + "range": "<=3.4.1", + "nodes": [ + "node_modules/flatted" + ], + "fixAvailable": true + }, + "follow-redirects": { + "name": "follow-redirects", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1116560, + "name": "follow-redirects", + "dependency": "follow-redirects", + "title": "follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets", + "url": "https://github.com/advisories/GHSA-r4q5-vmmm-2653", + "severity": "moderate", + "cwe": [ + "CWE-200" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<=1.15.11" + } + ], + "effects": [], + "range": "<=1.15.11", + "nodes": [ + "node_modules/follow-redirects" + ], + "fixAvailable": true + }, + "glob": { + "name": "glob", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1109842, + "name": "glob", + "dependency": "glob", + "title": "glob CLI: Command injection via -c/--cmd executes matches with shell:true", + "url": "https://github.com/advisories/GHSA-5j98-mcp5-4vw2", + "severity": "high", + "cwe": [ + "CWE-78" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H" + }, + "range": ">=10.2.0 <10.5.0" + } + ], + "effects": [ + "@next/eslint-plugin-next" + ], + "range": "10.2.0 - 10.4.5", + "nodes": [ + "node_modules/glob" + ], + "fixAvailable": true + }, + "minimatch": { + "name": "minimatch", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1113459, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", + "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<3.1.3" + }, + { + "source": 1113465, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", + "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=9.0.0 <9.0.6" + }, + { + "source": 1113538, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", + "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", + "severity": "high", + "cwe": [ + "CWE-407" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<3.1.3" + }, + { + "source": 1113544, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", + "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", + "severity": "high", + "cwe": [ + "CWE-407" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=9.0.0 <9.0.7" + }, + { + "source": 1113546, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", + "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<3.1.4" + }, + { + "source": 1113552, + "name": "minimatch", + "dependency": "minimatch", + "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", + "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=9.0.0 <9.0.7" + } + ], + "effects": [], + "range": "<=3.1.3 || 9.0.0 - 9.0.6", + "nodes": [ + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch", + "node_modules/glob/node_modules/minimatch", + "node_modules/minimatch" + ], + "fixAvailable": true + }, + "monaco-editor": { + "name": "monaco-editor", + "severity": "moderate", + "isDirect": false, + "via": [ + "dompurify" + ], + "effects": [], + "range": ">=0.54.0-dev-20250909", + "nodes": [ + "node_modules/monaco-editor" + ], + "fixAvailable": true + }, + "next": { + "name": "next", + "severity": "high", + "isDirect": true, + "via": [ + { + "source": 1111374, + "name": "next", + "dependency": "next", + "title": "Next Server Actions Source Code Exposure ", + "url": "https://github.com/advisories/GHSA-w37m-7fhw-fmv9", + "severity": "moderate", + "cwe": [ + "CWE-497", + "CWE-502", + "CWE-1395" + ], + "cvss": { + "score": 5.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N" + }, + "range": ">=16.0.0-beta.0 <16.0.9" + }, + { + "source": 1111383, + "name": "next", + "dependency": "next", + "title": "Next Vulnerable to Denial of Service with Server Components", + "url": "https://github.com/advisories/GHSA-mwv6-3258-q52c", + "severity": "high", + "cwe": [ + "CWE-400", + "CWE-502", + "CWE-1395" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=16.0.0-beta.0 <16.0.9" + }, + { + "source": 1112592, + "name": "next", + "dependency": "next", + "title": "Next.js self-hosted applications vulnerable to DoS via Image Optimizer remotePatterns configuration", + "url": "https://github.com/advisories/GHSA-9g9p-9gw9-jx7f", + "severity": "moderate", + "cwe": [ + "CWE-400", + "CWE-770" + ], + "cvss": { + "score": 5.9, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=15.6.0-canary.0 <16.1.5" + }, + { + "source": 1112646, + "name": "next", + "dependency": "next", + "title": "Next.js HTTP request deserialization can lead to DoS when using insecure React Server Components", + "url": "https://github.com/advisories/GHSA-h25m-26qc-wcjf", + "severity": "high", + "cwe": [ + "CWE-400", + "CWE-502" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=16.0.0-beta.0 <16.0.11" + }, + { + "source": 1114898, + "name": "next", + "dependency": "next", + "title": "Next.js: HTTP request smuggling in rewrites", + "url": "https://github.com/advisories/GHSA-ggv3-7p47-pfv8", + "severity": "moderate", + "cwe": [ + "CWE-444" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=16.0.0-beta.0 <16.1.7" + }, + { + "source": 1114941, + "name": "next", + "dependency": "next", + "title": "Next.js: Unbounded next/image disk cache growth can exhaust storage", + "url": "https://github.com/advisories/GHSA-3x4c-7xq6-9pq8", + "severity": "moderate", + "cwe": [ + "CWE-400" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=16.0.0-beta.0 <16.1.7" + }, + { + "source": 1114942, + "name": "next", + "dependency": "next", + "title": "Next.js: Unbounded postponed resume buffering can lead to DoS", + "url": "https://github.com/advisories/GHSA-h27x-g6w4-24gq", + "severity": "moderate", + "cwe": [ + "CWE-770" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=16.0.1 <16.1.7" + }, + { + "source": 1114943, + "name": "next", + "dependency": "next", + "title": "Next.js: null origin can bypass Server Actions CSRF checks", + "url": "https://github.com/advisories/GHSA-mq59-m269-xvcx", + "severity": "moderate", + "cwe": [ + "CWE-352" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=16.0.1 <16.1.7" + }, + { + "source": 1115360, + "name": "next", + "dependency": "next", + "title": "Next.js: null origin can bypass dev HMR websocket CSRF checks", + "url": "https://github.com/advisories/GHSA-jcc7-9wpm-mj36", + "severity": "low", + "cwe": [ + "CWE-1385" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": ">=16.0.1 <16.1.7" + }, + { + "source": 1116305, + "name": "next", + "dependency": "next", + "title": "Next.js has Unbounded Memory Consumption via PPR Resume Endpoint ", + "url": "https://github.com/advisories/GHSA-5f7q-jpqc-wp7h", + "severity": "moderate", + "cwe": [ + "CWE-400", + "CWE-409", + "CWE-770" + ], + "cvss": { + "score": 5.9, + "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=16.0.0-beta.0 <16.1.5" + }, + { + "source": 1116375, + "name": "next", + "dependency": "next", + "title": "Next.js has a Denial of Service with Server Components", + "url": "https://github.com/advisories/GHSA-q4gf-8mx6-v5v3", + "severity": "high", + "cwe": [ + "CWE-770" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=16.0.0-beta.0 <16.2.3" + } + ], + "effects": [], + "range": "15.6.0-canary.0 - 16.2.2", + "nodes": [ + "node_modules/next" + ], + "fixAvailable": true + }, + "picomatch": { + "name": "picomatch", + "severity": "high", + "isDirect": false, + "via": [ + { + "source": 1115549, + "name": "picomatch", + "dependency": "picomatch", + "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", + "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", + "severity": "moderate", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 5.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" + }, + "range": "<2.3.2" + }, + { + "source": 1115551, + "name": "picomatch", + "dependency": "picomatch", + "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", + "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", + "severity": "moderate", + "cwe": [ + "CWE-1321" + ], + "cvss": { + "score": 5.3, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" + }, + "range": ">=4.0.0 <4.0.4" + }, + { + "source": 1115552, + "name": "picomatch", + "dependency": "picomatch", + "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", + "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": "<2.3.2" + }, + { + "source": 1115554, + "name": "picomatch", + "dependency": "picomatch", + "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", + "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", + "severity": "high", + "cwe": [ + "CWE-1333" + ], + "cvss": { + "score": 7.5, + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + "range": ">=4.0.0 <4.0.4" + } + ], + "effects": [], + "range": "<=2.3.1 || 4.0.0 - 4.0.3", + "nodes": [ + "node_modules/picomatch", + "node_modules/tinyglobby/node_modules/picomatch" + ], + "fixAvailable": true + } + }, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 5, + "high": 8, + "critical": 0, + "total": 13 + }, + "dependencies": { + "prod": 300, + "dev": 301, + "optional": 63, + "peer": 5, + "peerOptional": 0, + "total": 641 + } + } +} diff --git a/frontend/package.json b/frontend/package.json index 3b43bb8..2641997 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -34,13 +34,13 @@ "@radix-ui/react-tabs": "^1.1.13", "@tanstack/react-query": "^5.91.2", "@tanstack/react-table": "^8.21.3", - "axios": "^1.13.6", + "axios": "1.15.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.1.0", "lucide-react": "^0.577.0", - "next": "^16.2.0", + "next": "16.2.4", "next-auth": "5.0.0-beta.30", "next-themes": "^0.4.6", "react": "^19.2.4", @@ -67,7 +67,7 @@ "@types/react-dom": "^19.2.3", "@typescript-eslint/eslint-plugin": "^8.57.1", "@typescript-eslint/parser": "^8.57.1", - "@vitejs/plugin-react": "^5.1.2", + "@vitejs/plugin-react": "^5.2.0", "autoprefixer": "^10.4.27", "baseline-browser-mapping": "^2.10.8", "eslint": "^9.39.1", @@ -80,6 +80,7 @@ "postcss": "^8.5.8", "tailwindcss": "3.4.3", "typescript": "^5.9.3", + "vite": "7.3.2", "vitest": "^4.1.0" } } diff --git a/npm-audit.json b/npm-audit.json new file mode 100644 index 0000000..75e6e97 --- /dev/null +++ b/npm-audit.json @@ -0,0 +1,22 @@ +{ + "auditReportVersion": 2, + "vulnerabilities": {}, + "metadata": { + "vulnerabilities": { + "info": 0, + "low": 0, + "moderate": 0, + "high": 0, + "critical": 0, + "total": 0 + }, + "dependencies": { + "prod": 1, + "dev": 2, + "optional": 2, + "peer": 2, + "peerOptional": 0, + "total": 2 + } + } +} diff --git a/package.json b/package.json index d5e0bc2..b0233c2 100644 --- a/package.json +++ b/package.json @@ -37,11 +37,11 @@ }, "pnpm": { "overrides": { - "fast-xml-parser": "^5.3.5", + "fast-xml-parser": ">=5.5.7", "@nestjs/terminus": "^11.0.0", "reflect-metadata": "^0.2.2", "jws@<3.2.3": ">=3.2.3", - "lodash@>=4.0.0 <=4.17.22": ">=4.17.23", + "lodash@>=4.0.0 <=4.17.23": ">=4.18.0", "undici@<6.23.0": ">=6.23.0", "undici@>=7.0.0 <7.18.2": ">=7.18.2", "diff@>=4.0.0 <4.0.4": ">=4.0.4", @@ -71,7 +71,17 @@ "undici@>=6.0.0 <6.24.0": ">=6.24.0", "undici@<6.24.0": ">=6.24.0", "file-type@>=20.0.0 <=21.3.1": ">=21.3.2", - "socket.io-parser@>=4.0.0 <4.2.6": ">=4.2.6" + "socket.io-parser@>=4.0.0 <4.2.6": ">=4.2.6", + "handlebars@>=4.0.0 <=4.7.8": ">=4.7.9", + "vite@>=7.0.0 <=7.3.1": ">=7.3.2", + "picomatch@<2.3.2": ">=2.3.2", + "picomatch@>=4.0.0 <4.0.4": ">=4.0.4", + "path-to-regexp@>=8.0.0 <8.4.0": ">=8.4.0", + "brace-expansion@>=1.0.0 <1.1.13": ">=1.1.13", + "brace-expansion@>=5.0.0 <5.0.5": ">=5.0.5", + "yaml@<2.8.3": ">=2.8.3", + "nodemailer@>=8.0.0 <8.0.5": ">=8.0.5", + "follow-redirects@<=1.15.11": ">=1.16.0" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49fe7f4..764e390 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,11 +5,11 @@ settings: excludeLinksFromLockfile: false overrides: - fast-xml-parser: ^5.3.5 + fast-xml-parser: '>=5.5.7' '@nestjs/terminus': ^11.0.0 reflect-metadata: ^0.2.2 jws@<3.2.3: '>=3.2.3' - lodash@>=4.0.0 <=4.17.22: '>=4.17.23' + lodash@>=4.0.0 <=4.17.23: '>=4.18.0' undici@<6.23.0: '>=6.23.0' undici@>=7.0.0 <7.18.2: '>=7.18.2' diff@>=4.0.0 <4.0.4: '>=4.0.4' @@ -40,6 +40,16 @@ overrides: undici@<6.24.0: '>=6.24.0' file-type@>=20.0.0 <=21.3.1: '>=21.3.2' socket.io-parser@>=4.0.0 <4.2.6: '>=4.2.6' + handlebars@>=4.0.0 <=4.7.8: '>=4.7.9' + vite@>=7.0.0 <=7.3.1: '>=7.3.2' + picomatch@<2.3.2: '>=2.3.2' + picomatch@>=4.0.0 <4.0.4: '>=4.0.4' + path-to-regexp@>=8.0.0 <8.4.0: '>=8.4.0' + brace-expansion@>=1.0.0 <1.1.13: '>=1.1.13' + brace-expansion@>=5.0.0 <5.0.5: '>=5.0.5' + yaml@<2.8.3: '>=2.8.3' + nodemailer@>=8.0.0 <8.0.5: '>=8.0.5' + follow-redirects@<=1.15.11: '>=1.16.0' importers: @@ -62,64 +72,67 @@ importers: version: 8.13.0 '@nestjs-modules/ioredis': specifier: ^2.0.2 - version: 2.0.2(@nestjs/axios@4.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.13.6)(rxjs@7.8.2))(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(ioredis@5.8.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) + version: 2.0.2(@nestjs/axios@4.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.15.0)(rxjs@7.8.2))(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(ioredis@5.8.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) '@nestjs/axios': specifier: ^4.0.1 - version: 4.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.13.6)(rxjs@7.8.2) + version: 4.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.15.0)(rxjs@7.8.2) '@nestjs/bullmq': specifier: ^11.0.4 - version: 11.0.4(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(bullmq@5.65.0) + version: 11.0.4(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(bullmq@5.65.0) '@nestjs/cache-manager': specifier: ^3.0.1 - version: 3.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(cache-manager@7.2.5)(keyv@5.5.4)(rxjs@7.8.2) + version: 3.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(cache-manager@7.2.5)(keyv@5.5.4)(rxjs@7.8.2) '@nestjs/common': - specifier: ^11.0.1 - version: 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + specifier: ^11.1.19 + version: 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/config': specifier: ^4.0.2 - version: 4.0.2(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2) + version: 4.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2) '@nestjs/core': - specifier: ^11.0.1 - version: 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + specifier: ^11.1.19 + version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/elasticsearch': specifier: ^11.1.0 - version: 11.1.0(@elastic/elasticsearch@8.13.0)(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2) + version: 11.1.0(@elastic/elasticsearch@8.13.0)(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2) '@nestjs/jwt': specifier: ^11.0.1 - version: 11.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)) + version: 11.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)) '@nestjs/passport': specifier: ^11.0.5 - version: 11.0.5(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0) + version: 11.0.5(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0) '@nestjs/platform-express': - specifier: ^11.0.1 - version: 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) + specifier: ^11.1.19 + version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19) '@nestjs/platform-socket.io': specifier: ^11.1.9 - version: 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.9)(rxjs@7.8.2) + version: 11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.9)(rxjs@7.8.2) '@nestjs/schedule': specifier: ^6.0.1 - version: 6.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) + version: 6.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19) '@nestjs/swagger': specifier: ^11.2.3 - version: 11.2.3(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2) + version: 11.2.3(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2) '@nestjs/terminus': specifier: ^11.0.0 - version: 11.0.0(@nestjs/axios@4.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.13.6)(rxjs@7.8.2))(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) + version: 11.0.0(@nestjs/axios@4.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.15.0)(rxjs@7.8.2))(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) '@nestjs/throttler': specifier: ^6.4.0 - version: 6.4.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2) + version: 6.4.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2) '@nestjs/typeorm': specifier: ^11.0.0 - version: 11.0.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) + version: 11.0.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) '@nestjs/websockets': specifier: ^11.1.9 - version: 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-socket.io@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + version: 11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/platform-socket.io@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@qdrant/js-client-rest': + specifier: ^1.17.0 + version: 1.17.0(typescript@5.9.3) '@types/nodemailer': specifier: ^7.0.4 version: 7.0.4 '@willsoto/nestjs-prometheus': specifier: ^6.0.2 - version: 6.0.2(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(prom-client@15.1.3) + version: 6.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(prom-client@15.1.3) ajv: specifier: 8.18.0 version: 8.18.0 @@ -130,8 +143,8 @@ importers: specifier: ^1.3.3 version: 1.3.3 axios: - specifier: '>=1.13.5' - version: 1.13.6 + specifier: ^1.15.0 + version: 1.15.0 bcrypt: specifier: ^6.0.0 version: 6.0.0 @@ -176,10 +189,10 @@ importers: version: 3.15.3 nest-winston: specifier: ^1.10.2 - version: 1.10.2(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(winston@3.18.3) + version: 1.10.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(winston@3.18.3) nodemailer: - specifier: ^8.0.3 - version: 8.0.3 + specifier: '>=8.0.5' + version: 8.0.5 opossum: specifier: ^9.0.0 version: 9.0.0 @@ -221,8 +234,8 @@ importers: version: 4.1.13 devDependencies: '@compodoc/compodoc': - specifier: ^1.1.32 - version: 1.1.32(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)(keycharm@0.4.0)(typescript@5.9.3)(vis-data@8.0.3(uuid@13.0.0)(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)))(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)) + specifier: ^1.2.1 + version: 1.2.1(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)(keycharm@0.4.0)(typescript@5.9.3)(vis-data@8.0.3(uuid@13.0.0)(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)))(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)) '@eslint/eslintrc': specifier: ^3.2.0 version: 3.3.1 @@ -237,7 +250,7 @@ importers: version: 11.0.9(chokidar@4.0.3)(typescript@5.9.3) '@nestjs/testing': specifier: ^11.0.1 - version: 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-express@11.1.9) + version: 11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/platform-express@11.1.19) '@types/async-retry': specifier: ^1.4.9 version: 1.4.9 @@ -380,8 +393,8 @@ importers: specifier: ^8.21.3 version: 8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) axios: - specifier: ^1.13.6 - version: 1.13.6 + specifier: ^1.15.0 + version: 1.15.0 class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -398,11 +411,11 @@ importers: specifier: ^0.577.0 version: 0.577.0(react@19.2.4) next: - specifier: ^16.2.0 - version: 16.2.0(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: ^16.2.4 + version: 16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) next-auth: specifier: 5.0.0-beta.30 - version: 5.0.0-beta.30(next@16.2.0(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 5.0.0-beta.30(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -474,8 +487,8 @@ importers: specifier: ^8.57.1 version: 8.57.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) '@vitejs/plugin-react': - specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2)) + specifier: ^5.2.0 + version: 5.2.0(vite@7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3)) autoprefixer: specifier: ^10.4.27 version: 10.4.27(postcss@8.5.8) @@ -512,9 +525,12 @@ importers: typescript: specifier: ^5.9.3 version: 5.9.3 + vite: + specifier: 7.3.2 + version: 7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3) vitest: specifier: ^4.1.0 - version: 4.1.0(@opentelemetry/api@1.9.0)(@types/node@25.5.0)(jsdom@29.0.0(@noble/hashes@1.8.0))(vite@7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2)) + version: 4.1.0(@opentelemetry/api@1.9.0)(@types/node@25.5.0)(jsdom@29.0.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3)) packages: @@ -546,11 +562,11 @@ packages: chokidar: optional: true - '@angular-devkit/core@20.3.4': - resolution: {integrity: sha512-r83jn9yVdPh618oGgoKPggMsQGOkQqJbxEutd4CE9mnotPCE2uRTIyaFMh8sohNUeoQNRmj9rbr2pWGVlgERpg==} + '@angular-devkit/core@21.1.0': + resolution: {integrity: sha512-dPfVy0CictDjWffRv4pGTPOFjdlJL3ZkGUqxzaosUjMbJW+Ai9cNn1VNr7zxYZ4kem3BxLBh1thzDsCPrkXlZA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: - chokidar: ^4.0.0 + chokidar: ^5.0.0 peerDependenciesMeta: chokidar: optional: true @@ -568,8 +584,8 @@ packages: resolution: {integrity: sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/schematics@20.3.4': - resolution: {integrity: sha512-JYlcmVBKNT9+cQ6T2tmu+yVQ2bJk8tG0mXvPHWXrl/M4c6NObhSSThK50tJHy0Xo3gl8WgogOxUeJNnBq67cIQ==} + '@angular-devkit/schematics@21.1.0': + resolution: {integrity: sha512-sVgTntCZCOV7mOpHzj6V14KOAoy4B9Ur9yHNRFZVgL2yD77TYRrJ0qwq+l7Im9fSjMCar6csjboqCvyAEpfV1g==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@arr/every@1.0.1': @@ -738,16 +754,12 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.28.5': - resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.0': resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.4': - resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} + '@babel/core@7.28.6': + resolution: {integrity: sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==} engines: {node: '>=6.9.0'} '@babel/core@7.29.0': @@ -766,16 +778,12 @@ packages: resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.28.6': resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.5': - resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -799,20 +807,10 @@ packages: resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.28.6': resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.28.6': resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} @@ -827,6 +825,10 @@ packages: resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.27.1': resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} engines: {node: '>=6.9.0'} @@ -839,6 +841,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} @@ -859,19 +867,10 @@ packages: resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.4': - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.29.2': resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.29.2': resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} engines: {node: '>=6.0.0'} @@ -901,8 +900,8 @@ packages: peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': - resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': + resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -934,8 +933,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + '@babel/plugin-syntax-import-assertions@7.28.6': + resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -946,6 +945,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -1022,14 +1027,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.28.0': - resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} + '@babel/plugin-transform-async-generator-functions@7.29.0': + resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1040,32 +1045,32 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.28.5': - resolution: {integrity: sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==} + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.27.1': - resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.28.3': - resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.28.4': - resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.27.1': - resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1076,8 +1081,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.27.1': - resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} + '@babel/plugin-transform-dotall-regex@7.28.6': + resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1088,8 +1093,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1100,14 +1105,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-explicit-resource-management@7.28.0': - resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==} + '@babel/plugin-transform-explicit-resource-management@7.28.6': + resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.28.5': - resolution: {integrity: sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==} + '@babel/plugin-transform-exponentiation-operator@7.28.6': + resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1130,8 +1135,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.27.1': - resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} + '@babel/plugin-transform-json-strings@7.28.6': + resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1142,8 +1147,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.28.5': - resolution: {integrity: sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==} + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1160,8 +1165,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1190,20 +1195,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.28.4': - resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1214,14 +1219,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.28.5': - resolution: {integrity: sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==} + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1232,14 +1237,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.27.1': - resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1262,14 +1267,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.28.4': - resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} + '@babel/plugin-transform-regenerator@7.29.0': + resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.27.1': - resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} + '@babel/plugin-transform-regexp-modifiers@7.28.6': + resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1286,8 +1291,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.27.1': - resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1316,8 +1321,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} + '@babel/plugin-transform-unicode-property-regex@7.28.6': + resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1328,14 +1333,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} + '@babel/plugin-transform-unicode-sets-regex@7.28.6': + resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.28.3': - resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==} + '@babel/preset-env@7.28.6': + resolution: {integrity: sha512-GaTI4nXDrs7l0qaJ6Rg06dtOXTBCG6TMDB44zbqofCIC4PqC7SEvmFFtpxzCDw9W5aJ7RKVshgXTLvLdBFV/qw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1345,26 +1350,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.2': resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.5': - resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.0': resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} @@ -1380,8 +1373,8 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@borewit/text-codec@0.1.1': - resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} + '@borewit/text-codec@0.2.2': + resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} '@bramus/specificity@2.4.2': resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} @@ -1401,8 +1394,8 @@ packages: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - '@compodoc/compodoc@1.1.32': - resolution: {integrity: sha512-kaYk5+o4k7GB585iphwV5NE49BKKk8d+gJLNBE8eu2fIRdhnHOWblasRbOBRULfwJ+qxfmgrIqi32K34wCag6A==} + '@compodoc/compodoc@1.2.1': + resolution: {integrity: sha512-won7I0OeFM0zSi+cwVilwtLA7VpY9NzsBch6+gGElYQdbM4/01XgA//leF8EsNzhxuQb+kP86MqJ3loZhz+Big==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true @@ -1486,158 +1479,158 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2266,8 +2259,8 @@ packages: '@swc/core': optional: true - '@nestjs/common@11.1.9': - resolution: {integrity: sha512-zDntUTReRbAThIfSp3dQZ9kKqI+LjgLp5YZN5c1bgNRDuoeLySAoZg46Bg1a+uV8TMgIRziHocglKGNzr6l+bQ==} + '@nestjs/common@11.1.19': + resolution: {integrity: sha512-qeiTt2tv+e5QyDKqG8HlVZb2wx64FEaSGFJouqTSRs+kG44iTfl3xlz1XqVped+rihx4hmjWgL5gkhtdK3E6+Q==} peerDependencies: class-transformer: '>=0.4.1' class-validator: '>=0.13.2' @@ -2285,8 +2278,8 @@ packages: '@nestjs/common': ^10.0.0 || ^11.0.0 rxjs: ^7.1.0 - '@nestjs/core@11.1.9': - resolution: {integrity: sha512-a00B0BM4X+9z+t3UxJqIZlemIwCQdYoPKrMcM+ky4z3pkqqG1eTWexjs+YXpGObnLnjtMPVKWlcZHp3adDYvUw==} + '@nestjs/core@11.1.19': + resolution: {integrity: sha512-6nJkWa2efrYi+XlU686J9y5L7OvxpLVjT0T/sxRKE7Jvpffiihelup4WSvLvRhdHDjj/5SuoWEwqReXAaaeHmw==} engines: {node: '>= 20'} peerDependencies: '@nestjs/common': ^11.0.0 @@ -2334,8 +2327,8 @@ packages: '@nestjs/common': ^10.0.0 || ^11.0.0 passport: ^0.5.0 || ^0.6.0 || ^0.7.0 - '@nestjs/platform-express@11.1.9': - resolution: {integrity: sha512-GVd3+0lO0mJq2m1kl9hDDnVrX3Nd4oH3oDfklz0pZEVEVS0KVSp63ufHq2Lu9cyPdSBuelJr9iPm2QQ1yX+Kmw==} + '@nestjs/platform-express@11.1.19': + resolution: {integrity: sha512-Vpdv8jyCQdThfoTx+UTn+DRYr6H6X02YUqcpZ3qP6G3ZUwtVp7eS+hoQPGd4UuCnlnFG8Wqr2J9bGEzQdi1rIg==} peerDependencies: '@nestjs/common': ^11.0.0 '@nestjs/core': ^11.0.0 @@ -2464,60 +2457,60 @@ packages: '@nestjs/platform-socket.io': optional: true - '@next/env@16.2.0': - resolution: {integrity: sha512-OZIbODWWAi0epQRCRjNe1VO45LOFBzgiyqmTLzIqWq6u1wrxKnAyz1HH6tgY/Mc81YzIjRPoYsPAEr4QV4l9TA==} + '@next/env@16.2.4': + resolution: {integrity: sha512-dKkkOzOSwFYe5RX6y26fZgkSpVAlIOJKQHIiydQcrWH6y/97+RceSOAdjZ14Qa3zLduVUy0TXcn+EiM6t4rPgw==} '@next/eslint-plugin-next@16.2.0': resolution: {integrity: sha512-3D3pEMcGKfENC9Pzlkr67GOm+205+5hRdYPZvHuNIy5sr9k0ybSU8g+sxOO/R/RLEh/gWZ3UlY+5LmEyZ1xgXQ==} - '@next/swc-darwin-arm64@16.2.0': - resolution: {integrity: sha512-/JZsqKzKt01IFoiLLAzlNqys7qk2F3JkcUhj50zuRhKDQkZNOz9E5N6wAQWprXdsvjRP4lTFj+/+36NSv5AwhQ==} + '@next/swc-darwin-arm64@16.2.4': + resolution: {integrity: sha512-OXTFFox5EKN1Ym08vfrz+OXxmCcEjT4SFMbNRsWZE99dMqt2Kcusl5MqPXcW232RYkMLQTy0hqgAMEsfEd/l2A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.2.0': - resolution: {integrity: sha512-/hV8erWq4SNlVgglUiW5UmQ5Hwy5EW/AbbXlJCn6zkfKxTy/E/U3V8U1Ocm2YCTUoFgQdoMxRyRMOW5jYy4ygg==} + '@next/swc-darwin-x64@16.2.4': + resolution: {integrity: sha512-XhpVnUfmYWvD3YrXu55XdcAkQtOnvaI6wtQa8fuF5fGoKoxIUZ0kWPtcOfqJEWngFF/lOS9l3+O9CcownhiQxQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.2.0': - resolution: {integrity: sha512-GkjL/Q7MWOwqWR9zoxu1TIHzkOI2l2BHCf7FzeQG87zPgs+6WDh+oC9Sw9ARuuL/FUk6JNCgKRkA6rEQYadUaw==} + '@next/swc-linux-arm64-gnu@16.2.4': + resolution: {integrity: sha512-Mx/tjlNA3G8kg14QvuGAJ4xBwPk1tUHq56JxZ8CXnZwz1Etz714soCEzGQQzVMz4bEnGPowzkV6Xrp6wAkEWOQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.2.0': - resolution: {integrity: sha512-1ffhC6KY5qWLg5miMlKJp3dZbXelEfjuXt1qcp5WzSCQy36CV3y+JT7OC1WSFKizGQCDOcQbfkH/IjZP3cdRNA==} + '@next/swc-linux-arm64-musl@16.2.4': + resolution: {integrity: sha512-iVMMp14514u7Nup2umQS03nT/bN9HurK8ufylC3FZNykrwjtx7V1A7+4kvhbDSCeonTVqV3Txnv0Lu+m2oDXNg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.2.0': - resolution: {integrity: sha512-FmbDcZQ8yJRq93EJSL6xaE0KK/Rslraf8fj1uViGxg7K4CKBCRYSubILJPEhjSgZurpcPQq12QNOJQ0DRJl6Hg==} + '@next/swc-linux-x64-gnu@16.2.4': + resolution: {integrity: sha512-EZOvm1aQWgnI/N/xcWOlnS3RQBk0VtVav5Zo7n4p0A7UKyTDx047k8opDbXgBpHl4CulRqRfbw3QrX2w5UOXMQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.2.0': - resolution: {integrity: sha512-HzjIHVkmGAwRbh/vzvoBWWEbb8BBZPxBvVbDQDvzHSf3D8RP/4vjw7MNLDXFF9Q1WEzeQyEj2zdxBtVAHu5Oyw==} + '@next/swc-linux-x64-musl@16.2.4': + resolution: {integrity: sha512-h9FxsngCm9cTBf71AR4fGznDEDx1hS7+kSEiIRjq5kO1oXWm07DxVGZjCvk0SGx7TSjlUqhI8oOyz7NfwAdPoA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.2.0': - resolution: {integrity: sha512-UMiFNQf5H7+1ZsZPxEsA064WEuFbRNq/kEXyepbCnSErp4f5iut75dBA8UeerFIG3vDaQNOfCpevnERPp2V+nA==} + '@next/swc-win32-arm64-msvc@16.2.4': + resolution: {integrity: sha512-3NdJV5OXMSOeJYijX+bjaLge3mJBlh4ybydbT4GFoB/2hAojWHtMhl3CYlYoMrjPuodp0nzFVi4Tj2+WaMg+Ow==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.2.0': - resolution: {integrity: sha512-DRrNJKW+/eimrZgdhVN1uvkN1OI4j6Lpefwr44jKQ0YQzztlmOBUUzHuV5GxOMPK3nmodAYElUVCY8ZXo/IWeA==} + '@next/swc-win32-x64-msvc@16.2.4': + resolution: {integrity: sha512-kMVGgsqhO5YTYODD9IPGGhA6iprWidQckK3LmPeW08PIFENRmgfb4MjXHO+p//d+ts2rpjvK5gXWzXSMrPl9cw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2526,6 +2519,9 @@ packages: resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} + '@nodable/entities@2.1.0': + resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2584,6 +2580,16 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + '@qdrant/js-client-rest@1.17.0': + resolution: {integrity: sha512-aZFQeirWVqWAa1a8vJ957LMzcXkFHGbsoRhzc8AkGfg6V0jtK8PlG8/eyyc2xhYsR961FDDx1Tx6nyE0K7lS+A==} + engines: {node: '>=18.17.0', pnpm: '>=8'} + peerDependencies: + typescript: '>=4.7' + + '@qdrant/openapi-typescript-fetch@1.2.6': + resolution: {integrity: sha512-oQG/FejNpItrxRHoyctYvT3rwGZOnK4jr3JdppO/c78ktDvkWiPXPHNsrDf33K9sZdRb6PR7gi4noIapu5q4HA==} + engines: {node: '>=18.0.0', pnpm: '>=8'} + '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} @@ -3149,144 +3155,144 @@ packages: peerDependencies: '@redis/client': ^1.0.0 - '@rolldown/pluginutils@1.0.0-beta.53': - resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} + '@rolldown/pluginutils@1.0.0-rc.3': + resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} - '@rollup/rollup-android-arm-eabi@4.59.0': - resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + '@rollup/rollup-android-arm-eabi@4.60.2': + resolution: {integrity: sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.59.0': - resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + '@rollup/rollup-android-arm64@4.60.2': + resolution: {integrity: sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.59.0': - resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + '@rollup/rollup-darwin-arm64@4.60.2': + resolution: {integrity: sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.59.0': - resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + '@rollup/rollup-darwin-x64@4.60.2': + resolution: {integrity: sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.59.0': - resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + '@rollup/rollup-freebsd-arm64@4.60.2': + resolution: {integrity: sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.59.0': - resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + '@rollup/rollup-freebsd-x64@4.60.2': + resolution: {integrity: sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': - resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': + resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.59.0': - resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + '@rollup/rollup-linux-arm-musleabihf@4.60.2': + resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.59.0': - resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + '@rollup/rollup-linux-arm64-gnu@4.60.2': + resolution: {integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.59.0': - resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + '@rollup/rollup-linux-arm64-musl@4.60.2': + resolution: {integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.59.0': - resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + '@rollup/rollup-linux-loong64-gnu@4.60.2': + resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.59.0': - resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + '@rollup/rollup-linux-loong64-musl@4.60.2': + resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.59.0': - resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + '@rollup/rollup-linux-ppc64-gnu@4.60.2': + resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.59.0': - resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + '@rollup/rollup-linux-ppc64-musl@4.60.2': + resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.59.0': - resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + '@rollup/rollup-linux-riscv64-gnu@4.60.2': + resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.59.0': - resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + '@rollup/rollup-linux-riscv64-musl@4.60.2': + resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.59.0': - resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + '@rollup/rollup-linux-s390x-gnu@4.60.2': + resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.59.0': - resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + '@rollup/rollup-linux-x64-gnu@4.60.2': + resolution: {integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.59.0': - resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + '@rollup/rollup-linux-x64-musl@4.60.2': + resolution: {integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.59.0': - resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + '@rollup/rollup-openbsd-x64@4.60.2': + resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.59.0': - resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + '@rollup/rollup-openharmony-arm64@4.60.2': + resolution: {integrity: sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.59.0': - resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + '@rollup/rollup-win32-arm64-msvc@4.60.2': + resolution: {integrity: sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.59.0': - resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + '@rollup/rollup-win32-ia32-msvc@4.60.2': + resolution: {integrity: sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.59.0': - resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + '@rollup/rollup-win32-x64-gnu@4.60.2': + resolution: {integrity: sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.59.0': - resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + '@rollup/rollup-win32-x64-msvc@4.60.2': + resolution: {integrity: sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==} cpu: [x64] os: [win32] @@ -4039,11 +4045,11 @@ packages: cpu: [x64] os: [win32] - '@vitejs/plugin-react@5.1.2': - resolution: {integrity: sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==} + '@vitejs/plugin-react@5.2.0': + resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + vite: '>=7.3.2' '@vitest/expect@4.1.0': resolution: {integrity: sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA==} @@ -4052,7 +4058,7 @@ packages: resolution: {integrity: sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw==} peerDependencies: msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: '>=7.3.2' peerDependenciesMeta: msw: optional: true @@ -4365,8 +4371,8 @@ packages: resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} engines: {node: '>=4'} - axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + axios@1.15.0: + resolution: {integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -4412,9 +4418,6 @@ packages: peerDependencies: '@babel/core': ^7.11.0 || ^8.0.0-beta.1 - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -4462,6 +4465,10 @@ packages: resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==} engines: {node: '>=18'} + body-parser@2.2.2: + resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} + engines: {node: '>=18'} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -4476,22 +4483,14 @@ packages: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} engines: {node: '>=10'} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.0: - resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.28.1: resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -4565,9 +4564,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001757: - resolution: {integrity: sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==} - caniuse-lite@1.0.30001780: resolution: {integrity: sha512-llngX0E7nQci5BPJDqoZSbuZ5Bcs9F5db7EtgfwBerX9XGtkkiO4NwfDDIRzHTTwcYC8vC7bmeUEPGrKlR/TkQ==} @@ -4609,6 +4605,10 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -4648,6 +4648,10 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-spinners@3.4.0: + resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==} + engines: {node: '>=18.20'} + cli-table3@0.6.5: resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} @@ -4755,9 +4759,6 @@ packages: component-emitter@1.3.1: resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@2.0.0: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} @@ -4774,6 +4775,10 @@ packages: resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} engines: {node: '>=18'} + content-disposition@1.1.0: + resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} + engines: {node: '>=18'} + content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -5061,8 +5066,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.3.3: - resolution: {integrity: sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==} + dompurify@3.4.0: + resolution: {integrity: sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==} domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -5098,9 +5103,6 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.262: - resolution: {integrity: sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==} - electron-to-chromium@1.5.321: resolution: {integrity: sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==} @@ -5207,8 +5209,8 @@ packages: es6-shim@0.35.8: resolution: {integrity: sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg==} - esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} hasBin: true @@ -5425,6 +5427,10 @@ packages: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} + express@5.2.1: + resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + engines: {node: '>= 18'} + fancy-log@2.0.0: resolution: {integrity: sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==} engines: {node: '>=10.13.0'} @@ -5455,11 +5461,11 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-xml-builder@1.1.4: - resolution: {integrity: sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==} + fast-xml-builder@1.1.5: + resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==} - fast-xml-parser@5.5.6: - resolution: {integrity: sha512-3+fdZyBRVg29n4rXP0joHthhcHdPUHaIC16cuyyd1iLsuaO6Vea36MPrxgAzbZna8lhvZeRL8Bc9GP56/J9xEw==} + fast-xml-parser@5.7.1: + resolution: {integrity: sha512-8Cc3f8GUGUULg34pBch/KGyPLglS+OFs05deyOlY7fL2MTagYPKrVQNmR1fLF/yJ9PH5ZSTd3YDF6pnmeZU+zA==} hasBin: true fastq@1.19.1: @@ -5476,7 +5482,7 @@ packages: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} peerDependencies: - picomatch: ^3 || ^4 + picomatch: '>=4.0.4' peerDependenciesMeta: picomatch: optional: true @@ -5492,8 +5498,8 @@ packages: resolution: {integrity: sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==} engines: {node: '>= 12'} - file-type@21.3.3: - resolution: {integrity: sha512-pNwbwz8c3aZ+GvbJnIsCnDjKvgCZLHxkFWLEFxU3RMa+Ey++ZSEfisvsWQMcdys6PpxQjWUOIDi1fifXsW3YRg==} + file-type@21.3.4: + resolution: {integrity: sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==} engines: {node: '>=20'} fill-range@7.1.1: @@ -5508,6 +5514,10 @@ packages: resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} engines: {node: '>= 0.8'} + finalhandler@2.1.1: + resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + engines: {node: '>= 18.0.0'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -5526,8 +5536,8 @@ packages: fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -5580,6 +5590,10 @@ packages: resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} engines: {node: '>=14.14'} + fs-extra@11.3.4: + resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} + engines: {node: '>=14.14'} + fs-monkey@1.1.0: resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} @@ -5624,6 +5638,10 @@ packages: resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} engines: {node: '>=18'} + get-east-asian-width@1.5.0: + resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} + engines: {node: '>=18'} + get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -5674,19 +5692,18 @@ packages: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} hasBin: true - glob@11.1.0: - resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} - engines: {node: 20 || >=22} - hasBin: true - glob@12.0.0: resolution: {integrity: sha512-5Qcll1z7IKgHr5g485ePDdHcNQY0k2dtv/bjYy0iuyGxQw2qSOiiXUXJ+AYQpg3HNoUMHqAruX478Jeev7UULw==} engines: {node: 20 || >=22} hasBin: true + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} @@ -5715,8 +5732,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + handlebars@4.7.9: + resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} engines: {node: '>=0.4.7'} hasBin: true @@ -5751,6 +5768,10 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hasown@2.0.3: + resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} + engines: {node: '>= 0.4'} + helmet@8.1.0: resolution: {integrity: sha512-jOiHyAZsmnr8LqoPGmCjYAaiuWwjAPLgY8ZX2XrmHawt99/u1y6RgrZMTeoPfpUbV96HOalYgz1qzkRbw54Pmg==} engines: {node: '>=18.0.0'} @@ -5817,8 +5838,8 @@ packages: engines: {node: '>=18'} hasBin: true - i18next@25.5.3: - resolution: {integrity: sha512-joFqorDeQ6YpIXni944upwnuHBf5IoPMuqAchGVeQLdWC2JOjxgM9V8UGLhNIIH/Q8QleRxIi0BSRQehSrDLcg==} + i18next@25.7.4: + resolution: {integrity: sha512-hRkpEblXXcXSNbw8mBNq9042OEetgyB/ahc/X17uV/khPwzV+uB8RHceHh3qavyrkPJvmXFKXME2Sy1E0KjAfw==} peerDependencies: typescript: ^5 peerDependenciesMeta: @@ -5833,6 +5854,10 @@ packages: resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -6031,10 +6056,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -6488,15 +6509,15 @@ packages: lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + log-symbols@7.0.1: + resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} engines: {node: '>=18'} log-update@6.1.0: @@ -6685,6 +6706,10 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + monaco-editor@0.55.1: resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} @@ -6784,8 +6809,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@16.2.0: - resolution: {integrity: sha512-NLBVrJy1pbV1Yn00L5sU4vFyAHt5XuSjzrNyFnxo6Com0M0KrL6hHM5B99dbqXb2bE9pm4Ow3Zl1xp6HVY9edQ==} + next@16.2.4: + resolution: {integrity: sha512-kPvz56wF5frc+FxlHI5qnklCzbq53HTwORaWBGdT0vNoKh1Aya9XC8aPauH4NJxqtzbWsS5mAbctm4cr+EkQ2Q==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -6830,14 +6855,11 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - node-releases@2.0.36: resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} - nodemailer@8.0.3: - resolution: {integrity: sha512-JQNBqvK+bj3NMhUFR3wmCl3SYcOeMotDiwDBvIoCuQdF0PvlIY0BH+FJ2CG7u4cXKPChplE78oowlH/Otsc4ZQ==} + nodemailer@8.0.5: + resolution: {integrity: sha512-0PF8Yb1yZuQfQbq+5/pZJrtF6WQcjTd5/S4JOHs9PGFxuTqoB/icwuB44pOdURHJbRKX1PPoJZtY7R4VUoCC8w==} engines: {node: '>=6.0.0'} normalize-path@3.0.0: @@ -6947,9 +6969,9 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} - ora@8.2.0: - resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} - engines: {node: '>=18'} + ora@9.0.0: + resolution: {integrity: sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==} + engines: {node: '>=20'} os-name@4.0.1: resolution: {integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==} @@ -7024,8 +7046,8 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-expression-matcher@1.1.3: - resolution: {integrity: sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ==} + path-expression-matcher@1.5.0: + resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} engines: {node: '>=14.0.0'} path-is-absolute@1.0.1: @@ -7051,8 +7073,12 @@ packages: resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} engines: {node: 20 || >=22} - path-to-regexp@8.3.0: - resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -7070,16 +7096,8 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} pidtree@0.6.0: @@ -7151,6 +7169,10 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.10: + resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.8: resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} @@ -7199,8 +7221,9 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} proxy-middleware@0.15.0: resolution: {integrity: sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==} @@ -7220,6 +7243,10 @@ packages: resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} engines: {node: '>=0.6'} + qs@6.15.1: + resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} + engines: {node: '>=0.6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -7322,6 +7349,10 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -7422,8 +7453,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.59.0: - resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + rollup@4.60.2: + resolution: {integrity: sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -7512,6 +7543,10 @@ packages: resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} engines: {node: '>= 18'} + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -7547,8 +7582,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -7707,6 +7742,10 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string-width@8.2.0: + resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==} + engines: {node: '>=20'} + string.prototype.includes@2.0.1: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} @@ -7765,11 +7804,11 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strnum@2.2.0: - resolution: {integrity: sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg==} + strnum@2.2.3: + resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==} - strtok3@10.3.4: - resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==} + strtok3@10.3.5: + resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} engines: {node: '>=18'} styled-jsx@5.1.6: @@ -7836,9 +7875,9 @@ packages: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} - tablesort@5.6.0: - resolution: {integrity: sha512-cZZXK3G089PbpxH8N7vN7Z21SEKqXAaCiSVOmZdR/v7z8TFCsF/OFr0rzjhQuFlQQHy9uQtW9P2oQFJzJFGVrg==} - engines: {node: '>= 16', npm: '>= 8'} + tablesort@5.7.1: + resolution: {integrity: sha512-wm+xSponmlN1spiuwGlrvNGoG8fEso+y86OOjS+Pl0Qsje/cOVSfUvELcXILWc8/sgEdY/NGMPo0qhFGyYKnwQ==} + engines: {node: '>= 22', npm: '>= 10'} tailwind-merge@3.5.0: resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} @@ -7909,6 +7948,10 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + tinyrainbow@3.1.0: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} @@ -7935,8 +7978,8 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - token-types@6.1.1: - resolution: {integrity: sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==} + token-types@6.1.2: + resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} totalist@3.0.1: @@ -8202,12 +8245,6 @@ packages: unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - update-browserslist-db@1.1.4: - resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -8299,8 +8336,8 @@ packages: '@egjs/hammerjs': ^2.0.0 component-emitter: ^1.3.0 || ^2.0.0 - vite@7.2.7: - resolution: {integrity: sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==} + vite@7.3.2: + resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -8314,7 +8351,7 @@ packages: sugarss: ^5.0.0 terser: ^5.16.0 tsx: ^4.8.1 - yaml: ^2.4.2 + yaml: '>=2.8.3' peerDependenciesMeta: '@types/node': optional: true @@ -8353,7 +8390,7 @@ packages: '@vitest/ui': 4.1.0 happy-dom: '*' jsdom: '*' - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: '>=7.3.2' peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -8421,6 +8458,7 @@ packages: whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} @@ -8539,8 +8577,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + yaml@2.8.3: + resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} hasBin: true @@ -8564,6 +8602,10 @@ packages: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} @@ -8622,7 +8664,7 @@ snapshots: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) jsonc-parser: 3.3.1 - picomatch: 4.0.2 + picomatch: 4.0.4 rxjs: 7.8.1 source-map: 0.7.4 optionalDependencies: @@ -8633,22 +8675,22 @@ snapshots: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) jsonc-parser: 3.3.1 - picomatch: 4.0.2 + picomatch: 4.0.4 rxjs: 7.8.1 source-map: 0.7.4 optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/core@20.3.4(chokidar@4.0.3)': + '@angular-devkit/core@21.1.0(chokidar@5.0.0)': dependencies: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) jsonc-parser: 3.3.1 - picomatch: 4.0.3 + picomatch: 4.0.4 rxjs: 7.8.2 source-map: 0.7.6 optionalDependencies: - chokidar: 4.0.3 + chokidar: 5.0.0 '@angular-devkit/schematics-cli@19.2.19(@types/node@25.5.0)(chokidar@4.0.3)': dependencies: @@ -8682,12 +8724,12 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/schematics@20.3.4(chokidar@4.0.3)': + '@angular-devkit/schematics@21.1.0(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 20.3.4(chokidar@4.0.3) + '@angular-devkit/core': 21.1.0(chokidar@5.0.0) jsonc-parser: 3.3.1 - magic-string: 0.30.17 - ora: 8.2.0 + magic-string: 0.30.21 + ora: 9.0.0 rxjs: 7.8.2 transitivePeerDependencies: - chokidar @@ -9113,7 +9155,7 @@ snapshots: '@aws-sdk/xml-builder@3.930.0': dependencies: '@smithy/types': 4.9.0 - fast-xml-parser: 5.5.6 + fast-xml-parser: 5.7.1 tslib: 2.8.1 '@aws/lambda-invoke-store@0.2.1': {} @@ -9130,21 +9172,19 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.28.5': {} - '@babel/compat-data@7.29.0': {} - '@babel/core@7.28.4': + '@babel/core@7.28.6': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.6) + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -9176,8 +9216,8 @@ snapshots: '@babel/generator@7.28.5': dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 @@ -9192,15 +9232,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.5 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.28.5 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.0 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/types': 7.29.0 '@babel/helper-compilation-targets@7.28.6': dependencies: @@ -9210,31 +9242,31 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.4)': + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.6 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.6) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.4)': + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.6 '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.11 @@ -9245,15 +9277,8 @@ snapshots: '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.27.1': - dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -9264,12 +9289,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': + '@babel/helper-module-transforms@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-imports': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color @@ -9284,32 +9309,43 @@ snapshots: '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.29.0 '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.4)': + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.6 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.6 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -9321,68 +9357,59 @@ snapshots: '@babel/helper-wrap-function@7.28.3': dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.4': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - '@babel/helpers@7.29.2': dependencies: '@babel/template': 7.28.6 '@babel/types': 7.29.0 - '@babel/parser@7.28.5': - dependencies: - '@babel/types': 7.28.5 - '@babel/parser@7.29.2': dependencies: '@babel/types': 7.29.0 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.4) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.4)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.6 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': dependencies: @@ -9404,21 +9431,21 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)': - dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -9479,277 +9506,277 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) - '@babel/traverse': 7.28.5 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.6) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.6 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.4)': + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.6 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) - '@babel/traverse': 7.28.5 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.6) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.4) + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/core': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) - '@babel/traverse': 7.28.5 + '@babel/core': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.6) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.6) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.4)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.6 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': dependencies: @@ -9761,184 +9788,164 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/preset-env@7.28.3(@babel/core@7.28.4)': + '@babel/preset-env@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/compat-data': 7.28.5 - '@babel/core': 7.28.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/compat-data': 7.29.0 + '@babel/core': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.4) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.4) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.4) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.6) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.6) + '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.6) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.28.6) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.6) + '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.28.6) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.6) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.6) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.28.6) + '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.28.6) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.6) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.6) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.6) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.6) core-js-compat: 3.47.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.4)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.5 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/types': 7.29.0 esutils: 2.0.3 - '@babel/runtime@7.28.4': {} - '@babel/runtime@7.29.2': {} - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 '@babel/parser': 7.29.2 '@babel/types': 7.29.0 - '@babel/traverse@7.28.5': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.29.0': dependencies: '@babel/code-frame': 7.29.0 @@ -9963,7 +9970,7 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@borewit/text-codec@0.1.1': {} + '@borewit/text-codec@0.2.2': {} '@bramus/specificity@2.4.2': dependencies: @@ -9983,19 +9990,19 @@ snapshots: '@colors/colors@1.6.0': {} - '@compodoc/compodoc@1.1.32(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)(keycharm@0.4.0)(typescript@5.9.3)(vis-data@8.0.3(uuid@13.0.0)(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)))(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1))': + '@compodoc/compodoc@1.2.1(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)(keycharm@0.4.0)(typescript@5.9.3)(vis-data@8.0.3(uuid@13.0.0)(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)))(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1))': dependencies: - '@angular-devkit/schematics': 20.3.4(chokidar@4.0.3) - '@babel/core': 7.28.4 - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) - '@babel/preset-env': 7.28.3(@babel/core@7.28.4) + '@angular-devkit/schematics': 21.1.0(chokidar@5.0.0) + '@babel/core': 7.28.6 + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.28.6) + '@babel/preset-env': 7.28.6(@babel/core@7.28.6) '@compodoc/live-server': 1.2.3 '@compodoc/ngd-transformer': 2.1.3 '@polka/send-type': 0.5.2 - body-parser: 2.2.1 + body-parser: 2.2.2 bootstrap.native: 5.1.6 cheerio: 1.1.2 - chokidar: 4.0.3 + chokidar: 5.0.0 colors: 1.4.0 commander: 14.0.2 cosmiconfig: 9.0.0(typescript@5.9.3) @@ -10003,13 +10010,13 @@ snapshots: es6-shim: 0.35.8 fancy-log: 2.0.0 fast-glob: 3.3.3 - fs-extra: 11.3.2 - glob: 11.1.0 - handlebars: 4.7.8 + fs-extra: 11.3.4 + glob: 13.0.6 + handlebars: 4.7.9 html-entities: 2.6.0 - i18next: 25.5.3(typescript@5.9.3) + i18next: 25.7.4(typescript@5.9.3) json5: 2.2.3 - lodash: 4.17.23 + lodash: 4.18.1 loglevel: 1.9.2 loglevel-plugin-prefix: 0.8.4 lunr: 2.3.9 @@ -10021,10 +10028,10 @@ snapshots: picocolors: 1.1.1 polka: 0.5.2 prismjs: 1.30.0 - semver: 7.7.3 + semver: 7.7.4 sirv: 3.0.2 svg-pan-zoom: 3.6.2 - tablesort: 5.6.0 + tablesort: 5.7.1 ts-morph: 27.0.2 uuid: 11.1.0 vis-network: 10.0.2(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)(keycharm@0.4.0)(uuid@11.1.0)(vis-data@8.0.3(uuid@13.0.0)(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)))(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)) @@ -10067,7 +10074,7 @@ snapshots: '@aduh95/viz.js': 3.4.0 '@compodoc/ngd-core': 2.1.1 dot: 2.0.0-beta.1 - fs-extra: 11.3.2 + fs-extra: 11.3.4 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -10145,82 +10152,82 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.12': + '@esbuild/aix-ppc64@0.27.7': optional: true - '@esbuild/android-arm64@0.25.12': + '@esbuild/android-arm64@0.27.7': optional: true - '@esbuild/android-arm@0.25.12': + '@esbuild/android-arm@0.27.7': optional: true - '@esbuild/android-x64@0.25.12': + '@esbuild/android-x64@0.27.7': optional: true - '@esbuild/darwin-arm64@0.25.12': + '@esbuild/darwin-arm64@0.27.7': optional: true - '@esbuild/darwin-x64@0.25.12': + '@esbuild/darwin-x64@0.27.7': optional: true - '@esbuild/freebsd-arm64@0.25.12': + '@esbuild/freebsd-arm64@0.27.7': optional: true - '@esbuild/freebsd-x64@0.25.12': + '@esbuild/freebsd-x64@0.27.7': optional: true - '@esbuild/linux-arm64@0.25.12': + '@esbuild/linux-arm64@0.27.7': optional: true - '@esbuild/linux-arm@0.25.12': + '@esbuild/linux-arm@0.27.7': optional: true - '@esbuild/linux-ia32@0.25.12': + '@esbuild/linux-ia32@0.27.7': optional: true - '@esbuild/linux-loong64@0.25.12': + '@esbuild/linux-loong64@0.27.7': optional: true - '@esbuild/linux-mips64el@0.25.12': + '@esbuild/linux-mips64el@0.27.7': optional: true - '@esbuild/linux-ppc64@0.25.12': + '@esbuild/linux-ppc64@0.27.7': optional: true - '@esbuild/linux-riscv64@0.25.12': + '@esbuild/linux-riscv64@0.27.7': optional: true - '@esbuild/linux-s390x@0.25.12': + '@esbuild/linux-s390x@0.27.7': optional: true - '@esbuild/linux-x64@0.25.12': + '@esbuild/linux-x64@0.27.7': optional: true - '@esbuild/netbsd-arm64@0.25.12': + '@esbuild/netbsd-arm64@0.27.7': optional: true - '@esbuild/netbsd-x64@0.25.12': + '@esbuild/netbsd-x64@0.27.7': optional: true - '@esbuild/openbsd-arm64@0.25.12': + '@esbuild/openbsd-arm64@0.27.7': optional: true - '@esbuild/openbsd-x64@0.25.12': + '@esbuild/openbsd-x64@0.27.7': optional: true - '@esbuild/openharmony-arm64@0.25.12': + '@esbuild/openharmony-arm64@0.27.7': optional: true - '@esbuild/sunos-x64@0.25.12': + '@esbuild/sunos-x64@0.27.7': optional: true - '@esbuild/win32-arm64@0.25.12': + '@esbuild/win32-arm64@0.27.7': optional: true - '@esbuild/win32-ia32@0.25.12': + '@esbuild/win32-ia32@0.27.7': optional: true - '@esbuild/win32-x64@0.25.12': + '@esbuild/win32-x64@0.27.7': optional: true '@eslint-community/eslint-utils@4.9.1(eslint@9.39.1(jiti@2.6.1))': @@ -10483,7 +10490,7 @@ snapshots: '@inquirer/external-editor@1.0.3(@types/node@25.5.0)': dependencies: chardet: 2.1.1 - iconv-lite: 0.7.0 + iconv-lite: 0.7.2 optionalDependencies: '@types/node': 25.5.0 @@ -10843,13 +10850,13 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@nestjs-modules/ioredis@2.0.2(@nestjs/axios@4.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.13.6)(rxjs@7.8.2))(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(ioredis@5.8.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))': + '@nestjs-modules/ioredis@2.0.2(@nestjs/axios@4.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.15.0)(rxjs@7.8.2))(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(ioredis@5.8.2)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) ioredis: 5.8.2 optionalDependencies: - '@nestjs/terminus': 11.0.0(@nestjs/axios@4.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.13.6)(rxjs@7.8.2))(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) + '@nestjs/terminus': 11.0.0(@nestjs/axios@4.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.15.0)(rxjs@7.8.2))(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) transitivePeerDependencies: - '@grpc/grpc-js' - '@grpc/proto-loader' @@ -10867,30 +10874,30 @@ snapshots: - sequelize - typeorm - '@nestjs/axios@4.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.13.6)(rxjs@7.8.2)': + '@nestjs/axios@4.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.15.0)(rxjs@7.8.2)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - axios: 1.13.6 + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + axios: 1.15.0 rxjs: 7.8.2 - '@nestjs/bull-shared@11.0.4(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)': + '@nestjs/bull-shared@11.0.4(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) tslib: 2.8.1 - '@nestjs/bullmq@11.0.4(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(bullmq@5.65.0)': + '@nestjs/bullmq@11.0.4(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(bullmq@5.65.0)': dependencies: - '@nestjs/bull-shared': 11.0.4(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/bull-shared': 11.0.4(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) bullmq: 5.65.0 tslib: 2.8.1 - '@nestjs/cache-manager@3.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(cache-manager@7.2.5)(keyv@5.5.4)(rxjs@7.8.2)': + '@nestjs/cache-manager@3.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(cache-manager@7.2.5)(keyv@5.5.4)(rxjs@7.8.2)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) cache-manager: 7.2.5 keyv: 5.5.4 rxjs: 7.8.2 @@ -10921,9 +10928,9 @@ snapshots: - uglify-js - webpack-cli - '@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)': + '@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2)': dependencies: - file-type: 21.3.3 + file-type: 21.3.4 iterare: 1.2.1 load-esm: 1.0.3 reflect-metadata: 0.2.2 @@ -10936,70 +10943,70 @@ snapshots: transitivePeerDependencies: - supports-color - '@nestjs/config@4.0.2(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2)': + '@nestjs/config@4.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) dotenv: 16.4.7 dotenv-expand: 12.0.1 - lodash: 4.17.23 + lodash: 4.18.1 rxjs: 7.8.2 - '@nestjs/core@11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)': + '@nestjs/core@11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nuxt/opencollective': 0.4.1 fast-safe-stringify: 2.1.1 iterare: 1.2.1 - path-to-regexp: 8.3.0 + path-to-regexp: 8.4.2 reflect-metadata: 0.2.2 rxjs: 7.8.2 tslib: 2.8.1 uid: 2.0.2 optionalDependencies: - '@nestjs/platform-express': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) - '@nestjs/websockets': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-socket.io@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/platform-express': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19) + '@nestjs/websockets': 11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/platform-socket.io@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/elasticsearch@11.1.0(@elastic/elasticsearch@8.13.0)(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2)': + '@nestjs/elasticsearch@11.1.0(@elastic/elasticsearch@8.13.0)(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2)': dependencies: '@elastic/elasticsearch': 8.13.0 - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) rxjs: 7.8.2 - '@nestjs/jwt@11.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))': + '@nestjs/jwt@11.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@types/jsonwebtoken': 9.0.10 jsonwebtoken: 9.0.2 - '@nestjs/mapped-types@2.1.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)': + '@nestjs/mapped-types@2.1.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) reflect-metadata: 0.2.2 optionalDependencies: class-transformer: 0.5.1 class-validator: 0.14.3 - '@nestjs/passport@11.0.5(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)': + '@nestjs/passport@11.0.5(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) passport: 0.7.0 - '@nestjs/platform-express@11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)': + '@nestjs/platform-express@11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) - cors: 2.8.5 - express: 5.1.0 + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + cors: 2.8.6 + express: 5.2.1 multer: 2.1.1 - path-to-regexp: 8.3.0 + path-to-regexp: 8.4.2 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@nestjs/platform-socket.io@11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.9)(rxjs@7.8.2)': + '@nestjs/platform-socket.io@11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.9)(rxjs@7.8.2)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/websockets': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-socket.io@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/websockets': 11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/platform-socket.io@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) rxjs: 7.8.2 socket.io: 4.8.1 tslib: 2.8.1 @@ -11008,10 +11015,10 @@ snapshots: - supports-color - utf-8-validate - '@nestjs/schedule@6.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)': + '@nestjs/schedule@6.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) cron: 4.3.3 '@nestjs/schematics@11.0.9(chokidar@4.0.3)(typescript@5.9.3)': @@ -11025,100 +11032,102 @@ snapshots: transitivePeerDependencies: - chokidar - '@nestjs/swagger@11.2.3(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)': + '@nestjs/swagger@11.2.3(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)': dependencies: '@microsoft/tsdoc': 0.16.0 - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/mapped-types': 2.1.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/mapped-types': 2.1.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2) js-yaml: 4.1.1 - lodash: 4.17.23 - path-to-regexp: 8.3.0 + lodash: 4.18.1 + path-to-regexp: 8.4.2 reflect-metadata: 0.2.2 swagger-ui-dist: 5.30.2 optionalDependencies: class-transformer: 0.5.1 class-validator: 0.14.3 - '@nestjs/terminus@11.0.0(@nestjs/axios@4.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.13.6)(rxjs@7.8.2))(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))': + '@nestjs/terminus@11.0.0(@nestjs/axios@4.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.15.0)(rxjs@7.8.2))(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/typeorm@11.0.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))))(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) boxen: 5.1.2 check-disk-space: 3.4.0 reflect-metadata: 0.2.2 rxjs: 7.8.2 optionalDependencies: - '@nestjs/axios': 4.0.1(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.13.6)(rxjs@7.8.2) - '@nestjs/typeorm': 11.0.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) + '@nestjs/axios': 4.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(axios@1.15.0)(rxjs@7.8.2) + '@nestjs/typeorm': 11.0.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))) typeorm: 0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) - '@nestjs/testing@11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-express@11.1.9)': + '@nestjs/testing@11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/platform-express@11.1.19)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) tslib: 2.8.1 optionalDependencies: - '@nestjs/platform-express': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) + '@nestjs/platform-express': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19) - '@nestjs/throttler@6.4.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)': + '@nestjs/throttler@6.4.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) reflect-metadata: 0.2.2 - '@nestjs/typeorm@11.0.0(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))': + '@nestjs/typeorm@11.0.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) reflect-metadata: 0.2.2 rxjs: 7.8.2 typeorm: 0.3.27(ioredis@5.8.2)(mysql2@3.15.3)(redis@4.7.1)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) - '@nestjs/websockets@11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-socket.io@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)': + '@nestjs/websockets@11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/platform-socket.io@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.19)(@nestjs/websockets@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) iterare: 1.2.1 object-hash: 3.0.0 reflect-metadata: 0.2.2 rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@nestjs/platform-socket.io': 11.1.9(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.9)(rxjs@7.8.2) + '@nestjs/platform-socket.io': 11.1.9(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.9)(rxjs@7.8.2) - '@next/env@16.2.0': {} + '@next/env@16.2.4': {} '@next/eslint-plugin-next@16.2.0': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@16.2.0': + '@next/swc-darwin-arm64@16.2.4': optional: true - '@next/swc-darwin-x64@16.2.0': + '@next/swc-darwin-x64@16.2.4': optional: true - '@next/swc-linux-arm64-gnu@16.2.0': + '@next/swc-linux-arm64-gnu@16.2.4': optional: true - '@next/swc-linux-arm64-musl@16.2.0': + '@next/swc-linux-arm64-musl@16.2.4': optional: true - '@next/swc-linux-x64-gnu@16.2.0': + '@next/swc-linux-x64-gnu@16.2.4': optional: true - '@next/swc-linux-x64-musl@16.2.0': + '@next/swc-linux-x64-musl@16.2.4': optional: true - '@next/swc-win32-arm64-msvc@16.2.0': + '@next/swc-win32-arm64-msvc@16.2.4': optional: true - '@next/swc-win32-x64-msvc@16.2.0': + '@next/swc-win32-x64-msvc@16.2.4': optional: true '@noble/hashes@1.8.0': {} + '@nodable/entities@2.1.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -11163,6 +11172,14 @@ snapshots: '@polka/url@1.0.0-next.29': {} + '@qdrant/js-client-rest@1.17.0(typescript@5.9.3)': + dependencies: + '@qdrant/openapi-typescript-fetch': 1.2.6 + typescript: 5.9.3 + undici: 7.24.4 + + '@qdrant/openapi-typescript-fetch@1.2.6': {} + '@radix-ui/number@1.1.1': {} '@radix-ui/primitive@1.1.3': {} @@ -11763,81 +11780,81 @@ snapshots: dependencies: '@redis/client': 1.6.1 - '@rolldown/pluginutils@1.0.0-beta.53': {} + '@rolldown/pluginutils@1.0.0-rc.3': {} - '@rollup/rollup-android-arm-eabi@4.59.0': + '@rollup/rollup-android-arm-eabi@4.60.2': optional: true - '@rollup/rollup-android-arm64@4.59.0': + '@rollup/rollup-android-arm64@4.60.2': optional: true - '@rollup/rollup-darwin-arm64@4.59.0': + '@rollup/rollup-darwin-arm64@4.60.2': optional: true - '@rollup/rollup-darwin-x64@4.59.0': + '@rollup/rollup-darwin-x64@4.60.2': optional: true - '@rollup/rollup-freebsd-arm64@4.59.0': + '@rollup/rollup-freebsd-arm64@4.60.2': optional: true - '@rollup/rollup-freebsd-x64@4.59.0': + '@rollup/rollup-freebsd-x64@4.60.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.59.0': + '@rollup/rollup-linux-arm-musleabihf@4.60.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.59.0': + '@rollup/rollup-linux-arm64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.59.0': + '@rollup/rollup-linux-arm64-musl@4.60.2': optional: true - '@rollup/rollup-linux-loong64-gnu@4.59.0': + '@rollup/rollup-linux-loong64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-loong64-musl@4.59.0': + '@rollup/rollup-linux-loong64-musl@4.60.2': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.59.0': + '@rollup/rollup-linux-ppc64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-ppc64-musl@4.59.0': + '@rollup/rollup-linux-ppc64-musl@4.60.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.59.0': + '@rollup/rollup-linux-riscv64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.59.0': + '@rollup/rollup-linux-riscv64-musl@4.60.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.59.0': + '@rollup/rollup-linux-s390x-gnu@4.60.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.59.0': + '@rollup/rollup-linux-x64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-x64-musl@4.59.0': + '@rollup/rollup-linux-x64-musl@4.60.2': optional: true - '@rollup/rollup-openbsd-x64@4.59.0': + '@rollup/rollup-openbsd-x64@4.60.2': optional: true - '@rollup/rollup-openharmony-arm64@4.59.0': + '@rollup/rollup-openharmony-arm64@4.60.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.59.0': + '@rollup/rollup-win32-arm64-msvc@4.60.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.59.0': + '@rollup/rollup-win32-ia32-msvc@4.60.2': optional: true - '@rollup/rollup-win32-x64-gnu@4.59.0': + '@rollup/rollup-win32-x64-gnu@4.60.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.59.0': + '@rollup/rollup-win32-x64-msvc@4.60.2': optional: true '@rtsao/scc@1.1.0': {} @@ -12215,7 +12232,7 @@ snapshots: '@tokenizer/inflate@0.4.1': dependencies: debug: 4.4.3 - token-types: 6.1.1 + token-types: 6.1.2 transitivePeerDependencies: - supports-color @@ -12225,7 +12242,7 @@ snapshots: dependencies: minimatch: 10.2.4 path-browserify: 1.0.1 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 '@tsconfig/node10@1.0.12': {} @@ -12741,15 +12758,15 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitejs/plugin-react@5.1.2(vite@7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2))': + '@vitejs/plugin-react@5.2.0(vite@7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) - '@rolldown/pluginutils': 1.0.0-beta.53 + '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2) + vite: 7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color @@ -12762,13 +12779,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.0(vite@7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2))': + '@vitest/mocker@4.1.0(vite@7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.0 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2) + vite: 7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3) '@vitest/pretty-format@4.1.0': dependencies: @@ -12870,9 +12887,9 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@willsoto/nestjs-prometheus@6.0.2(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(prom-client@15.1.3)': + '@willsoto/nestjs-prometheus@6.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(prom-client@15.1.3)': dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) prom-client: 15.1.3 '@xtuc/ieee754@1.2.0': {} @@ -12971,7 +12988,7 @@ snapshots: anymatch@3.1.3: dependencies: normalize-path: 3.0.0 - picomatch: 2.3.1 + picomatch: 4.0.4 apache-crypt@1.2.6: dependencies: @@ -13107,11 +13124,11 @@ snapshots: axe-core@4.11.1: {} - axios@1.13.6: + axios@1.15.0: dependencies: - follow-redirects: 1.15.11 + follow-redirects: 1.16.0 form-data: 4.0.5 - proxy-from-env: 1.1.0 + proxy-from-env: 2.1.0 transitivePeerDependencies: - debug @@ -13144,27 +13161,27 @@ snapshots: dependencies: '@types/babel__core': 7.20.5 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.4): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.6): dependencies: - '@babel/compat-data': 7.28.5 - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/compat-data': 7.29.0 + '@babel/core': 7.28.6 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.4): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.6): dependencies: - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/core': 7.28.6 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) core-js-compat: 3.47.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.4): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.6): dependencies: - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/core': 7.28.6 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) transitivePeerDependencies: - supports-color @@ -13193,8 +13210,6 @@ snapshots: babel-plugin-jest-hoist: 30.2.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) - balanced-match@1.0.2: {} - balanced-match@4.0.4: {} base64-js@1.5.1: {} @@ -13244,6 +13259,20 @@ snapshots: transitivePeerDependencies: - supports-color + body-parser@2.2.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.3 + http-errors: 2.0.1 + iconv-lite: 0.7.2 + on-finished: 2.4.1 + qs: 6.15.1 + raw-body: 3.0.2 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + boolbase@1.0.0: {} bootstrap.native@5.1.6: @@ -13265,12 +13294,7 @@ snapshots: widest-line: 3.1.0 wrap-ansi: 7.0.0 - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -13278,14 +13302,6 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.28.0: - dependencies: - baseline-browser-mapping: 2.10.8 - caniuse-lite: 1.0.30001757 - electron-to-chromium: 1.5.262 - node-releases: 2.0.27 - update-browserslist-db: 1.1.4(browserslist@4.28.0) - browserslist@4.28.1: dependencies: baseline-browser-mapping: 2.10.8 @@ -13370,8 +13386,6 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001757: {} - caniuse-lite@1.0.30001780: {} chai@6.2.2: {} @@ -13428,6 +13442,10 @@ snapshots: dependencies: readdirp: 4.1.2 + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + chrome-trace-event@1.0.4: {} ci-info@4.3.1: {} @@ -13460,6 +13478,8 @@ snapshots: cli-spinners@2.9.2: {} + cli-spinners@3.4.0: {} + cli-table3@0.6.5: dependencies: string-width: 4.2.3 @@ -13552,8 +13572,6 @@ snapshots: component-emitter@1.3.1: {} - concat-map@0.0.1: {} - concat-stream@2.0.0: dependencies: buffer-from: 1.1.2 @@ -13574,6 +13592,8 @@ snapshots: content-disposition@1.0.1: {} + content-disposition@1.1.0: {} + content-type@1.0.5: {} convert-source-map@2.0.0: {} @@ -13586,7 +13606,7 @@ snapshots: core-js-compat@3.47.0: dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 core-util-is@1.0.3: {} @@ -13819,7 +13839,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.3.3: + dompurify@3.4.0: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -13855,8 +13875,6 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.262: {} - electron-to-chromium@1.5.321: {} emittery@0.13.1: {} @@ -14028,34 +14046,34 @@ snapshots: es6-shim@0.35.8: {} - esbuild@0.25.12: + esbuild@0.27.7: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 escalade@3.2.0: {} @@ -14394,6 +14412,39 @@ snapshots: transitivePeerDependencies: - supports-color + express@5.2.1: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.2 + content-disposition: 1.1.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.3 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.1 + fresh: 2.0.0 + http-errors: 2.0.1 + merge-descriptors: 2.0.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.15.1 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.1 + serve-static: 2.2.1 + statuses: 2.0.2 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + fancy-log@2.0.0: dependencies: color-support: 1.1.3 @@ -14426,15 +14477,16 @@ snapshots: fast-uri@3.1.0: {} - fast-xml-builder@1.1.4: + fast-xml-builder@1.1.5: dependencies: - path-expression-matcher: 1.1.3 + path-expression-matcher: 1.5.0 - fast-xml-parser@5.5.6: + fast-xml-parser@5.7.1: dependencies: - fast-xml-builder: 1.1.4 - path-expression-matcher: 1.1.3 - strnum: 2.2.0 + '@nodable/entities': 2.1.0 + fast-xml-builder: 1.1.5 + path-expression-matcher: 1.5.0 + strnum: 2.2.3 fastq@1.19.1: dependencies: @@ -14448,9 +14500,9 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.5.0(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.4): optionalDependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 fecha@4.2.3: {} @@ -14462,11 +14514,11 @@ snapshots: dependencies: tslib: 2.8.1 - file-type@21.3.3: + file-type@21.3.4: dependencies: '@tokenizer/inflate': 0.4.1 - strtok3: 10.3.4 - token-types: 6.1.1 + strtok3: 10.3.5 + token-types: 6.1.2 uint8array-extras: 1.5.0 transitivePeerDependencies: - supports-color @@ -14498,6 +14550,17 @@ snapshots: transitivePeerDependencies: - supports-color + finalhandler@2.1.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -14517,7 +14580,7 @@ snapshots: fn.name@1.1.0: {} - follow-redirects@1.15.11: {} + follow-redirects@1.16.0: {} for-each@0.3.5: dependencies: @@ -14579,6 +14642,12 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 + fs-extra@11.3.4: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + fs-monkey@1.1.0: {} fs.realpath@1.0.0: {} @@ -14613,6 +14682,8 @@ snapshots: get-east-asian-width@1.4.0: {} + get-east-asian-width@1.5.0: {} + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -14623,7 +14694,7 @@ snapshots: get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.3 math-intrinsics: 1.1.0 get-nonce@1.0.1: {} @@ -14672,15 +14743,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.1.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.1 - minimatch: 10.2.4 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.1 - glob@12.0.0: dependencies: foreground-child: 3.3.1 @@ -14690,6 +14752,12 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 2.0.1 + glob@13.0.6: + dependencies: + minimatch: 10.2.4 + minipass: 7.1.3 + path-scurry: 2.0.2 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -14716,7 +14784,7 @@ snapshots: graceful-fs@4.2.11: {} - handlebars@4.7.8: + handlebars@4.7.9: dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -14751,6 +14819,10 @@ snapshots: dependencies: function-bind: 1.1.2 + hasown@2.0.3: + dependencies: + function-bind: 1.1.2 + helmet@8.1.0: {} hermes-estree@0.25.1: {} @@ -14814,9 +14886,9 @@ snapshots: husky@9.1.7: {} - i18next@25.5.3(typescript@5.9.3): + i18next@25.7.4(typescript@5.9.3): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 optionalDependencies: typescript: 5.9.3 @@ -14828,6 +14900,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -14916,7 +14992,7 @@ snapshots: is-core-module@2.16.1: dependencies: - hasown: 2.0.2 + hasown: 2.0.3 is-data-view@1.0.2: dependencies: @@ -15014,8 +15090,6 @@ snapshots: is-unicode-supported@0.1.0: {} - is-unicode-supported@1.3.0: {} - is-unicode-supported@2.1.0: {} is-weakmap@2.0.2: {} @@ -15358,7 +15432,7 @@ snapshots: chalk: 4.1.2 ci-info: 4.3.1 graceful-fs: 4.2.11 - picomatch: 4.0.3 + picomatch: 4.0.4 jest-validate@30.2.0: dependencies: @@ -15612,7 +15686,7 @@ snapshots: micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.8.2 + yaml: 2.8.3 transitivePeerDependencies: - supports-color @@ -15661,17 +15735,17 @@ snapshots: lodash.once@4.1.1: {} - lodash@4.17.23: {} + lodash@4.18.1: {} log-symbols@4.1.0: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-symbols@6.0.0: + log-symbols@7.0.1: dependencies: - chalk: 5.6.2 - is-unicode-supported: 1.3.0 + is-unicode-supported: 2.1.0 + yoctocolors: 2.1.2 log-update@6.1.0: dependencies: @@ -15777,7 +15851,7 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 2.3.1 + picomatch: 4.0.4 mime-db@1.52.0: {} @@ -15803,19 +15877,21 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 5.0.5 minimist@1.2.8: {} minipass@7.1.2: {} + minipass@7.1.3: {} + monaco-editor@0.55.1: dependencies: - dompurify: 3.3.3 + dompurify: 3.4.0 marked: 14.0.0 morgan@1.10.1: @@ -15895,16 +15971,16 @@ snapshots: neotraverse@0.6.18: {} - nest-winston@1.10.2(@nestjs/common@11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(winston@3.18.3): + nest-winston@1.10.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2))(winston@3.18.3): dependencies: - '@nestjs/common': 11.1.9(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.3)(reflect-metadata@0.2.2)(rxjs@7.8.2) fast-safe-stringify: 2.1.1 winston: 3.18.3 - next-auth@5.0.0-beta.30(next@16.2.0(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): + next-auth@5.0.0-beta.30(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): dependencies: '@auth/core': 0.41.0 - next: 16.2.0(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next: 16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react: 19.2.4 next-themes@0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4): @@ -15912,9 +15988,9 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - next@16.2.0(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@next/env': 16.2.0 + '@next/env': 16.2.4 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.10.8 caniuse-lite: 1.0.30001780 @@ -15923,14 +15999,14 @@ snapshots: react-dom: 19.2.4(react@19.2.4) styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.4) optionalDependencies: - '@next/swc-darwin-arm64': 16.2.0 - '@next/swc-darwin-x64': 16.2.0 - '@next/swc-linux-arm64-gnu': 16.2.0 - '@next/swc-linux-arm64-musl': 16.2.0 - '@next/swc-linux-x64-gnu': 16.2.0 - '@next/swc-linux-x64-musl': 16.2.0 - '@next/swc-win32-arm64-msvc': 16.2.0 - '@next/swc-win32-x64-msvc': 16.2.0 + '@next/swc-darwin-arm64': 16.2.4 + '@next/swc-darwin-x64': 16.2.4 + '@next/swc-linux-arm64-gnu': 16.2.4 + '@next/swc-linux-arm64-musl': 16.2.4 + '@next/swc-linux-x64-gnu': 16.2.4 + '@next/swc-linux-x64-musl': 16.2.4 + '@next/swc-win32-arm64-msvc': 16.2.4 + '@next/swc-win32-x64-msvc': 16.2.4 '@opentelemetry/api': 1.9.0 sharp: 0.34.5 transitivePeerDependencies: @@ -15943,7 +16019,7 @@ snapshots: node-emoji@1.11.0: dependencies: - lodash: 4.17.23 + lodash: 4.18.1 node-exports-info@1.6.0: dependencies: @@ -15961,11 +16037,9 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.27: {} - node-releases@2.0.36: {} - nodemailer@8.0.3: {} + nodemailer@8.0.5: {} normalize-path@3.0.0: {} @@ -16090,16 +16164,16 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - ora@8.2.0: + ora@9.0.0: dependencies: chalk: 5.6.2 cli-cursor: 5.0.0 - cli-spinners: 2.9.2 + cli-spinners: 3.4.0 is-interactive: 2.0.0 is-unicode-supported: 2.1.0 - log-symbols: 6.0.0 + log-symbols: 7.0.1 stdin-discarder: 0.2.2 - string-width: 7.2.0 + string-width: 8.2.0 strip-ansi: 7.1.2 os-name@4.0.1: @@ -16139,7 +16213,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -16180,7 +16254,7 @@ snapshots: path-exists@4.0.0: {} - path-expression-matcher@1.1.3: {} + path-expression-matcher@1.5.0: {} path-is-absolute@1.0.1: {} @@ -16200,7 +16274,12 @@ snapshots: lru-cache: 11.2.2 minipass: 7.1.2 - path-to-regexp@8.3.0: {} + path-scurry@2.0.2: + dependencies: + lru-cache: 11.2.7 + minipass: 7.1.3 + + path-to-regexp@8.4.2: {} path-type@4.0.0: {} @@ -16214,11 +16293,7 @@ snapshots: picocolors@1.1.1: {} - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - picomatch@4.0.3: {} + picomatch@4.0.4: {} pidtree@0.6.0: {} @@ -16254,7 +16329,7 @@ snapshots: postcss-load-config@4.0.2(postcss@8.5.8)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): dependencies: lilconfig: 3.1.3 - yaml: 2.8.2 + yaml: 2.8.3 optionalDependencies: postcss: 8.5.8 ts-node: 10.9.2(@types/node@25.5.0)(typescript@5.9.3) @@ -16277,6 +16352,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.10: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.8: dependencies: nanoid: 3.3.11 @@ -16327,7 +16408,7 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-from-env@1.1.0: {} + proxy-from-env@2.1.0: {} proxy-middleware@0.15.0: {} @@ -16344,6 +16425,10 @@ snapshots: dependencies: side-channel: 1.1.0 + qs@6.15.1: + dependencies: + side-channel: 1.1.0 + queue-microtask@1.2.3: {} range-parser@1.2.1: {} @@ -16352,7 +16437,7 @@ snapshots: dependencies: bytes: 3.1.2 http-errors: 2.0.1 - iconv-lite: 0.7.0 + iconv-lite: 0.7.2 unpipe: 1.0.0 react-day-picker@9.14.0(react@19.2.4): @@ -16442,10 +16527,12 @@ snapshots: readdirp@3.6.0: dependencies: - picomatch: 2.3.1 + picomatch: 4.0.4 readdirp@4.1.2: {} + readdirp@5.0.0: {} + redent@3.0.0: dependencies: indent-string: 4.0.0 @@ -16558,35 +16645,35 @@ snapshots: rfdc@1.4.1: {} - rollup@4.59.0: + rollup@4.60.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.59.0 - '@rollup/rollup-android-arm64': 4.59.0 - '@rollup/rollup-darwin-arm64': 4.59.0 - '@rollup/rollup-darwin-x64': 4.59.0 - '@rollup/rollup-freebsd-arm64': 4.59.0 - '@rollup/rollup-freebsd-x64': 4.59.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 - '@rollup/rollup-linux-arm-musleabihf': 4.59.0 - '@rollup/rollup-linux-arm64-gnu': 4.59.0 - '@rollup/rollup-linux-arm64-musl': 4.59.0 - '@rollup/rollup-linux-loong64-gnu': 4.59.0 - '@rollup/rollup-linux-loong64-musl': 4.59.0 - '@rollup/rollup-linux-ppc64-gnu': 4.59.0 - '@rollup/rollup-linux-ppc64-musl': 4.59.0 - '@rollup/rollup-linux-riscv64-gnu': 4.59.0 - '@rollup/rollup-linux-riscv64-musl': 4.59.0 - '@rollup/rollup-linux-s390x-gnu': 4.59.0 - '@rollup/rollup-linux-x64-gnu': 4.59.0 - '@rollup/rollup-linux-x64-musl': 4.59.0 - '@rollup/rollup-openbsd-x64': 4.59.0 - '@rollup/rollup-openharmony-arm64': 4.59.0 - '@rollup/rollup-win32-arm64-msvc': 4.59.0 - '@rollup/rollup-win32-ia32-msvc': 4.59.0 - '@rollup/rollup-win32-x64-gnu': 4.59.0 - '@rollup/rollup-win32-x64-msvc': 4.59.0 + '@rollup/rollup-android-arm-eabi': 4.60.2 + '@rollup/rollup-android-arm64': 4.60.2 + '@rollup/rollup-darwin-arm64': 4.60.2 + '@rollup/rollup-darwin-x64': 4.60.2 + '@rollup/rollup-freebsd-arm64': 4.60.2 + '@rollup/rollup-freebsd-x64': 4.60.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.2 + '@rollup/rollup-linux-arm-musleabihf': 4.60.2 + '@rollup/rollup-linux-arm64-gnu': 4.60.2 + '@rollup/rollup-linux-arm64-musl': 4.60.2 + '@rollup/rollup-linux-loong64-gnu': 4.60.2 + '@rollup/rollup-linux-loong64-musl': 4.60.2 + '@rollup/rollup-linux-ppc64-gnu': 4.60.2 + '@rollup/rollup-linux-ppc64-musl': 4.60.2 + '@rollup/rollup-linux-riscv64-gnu': 4.60.2 + '@rollup/rollup-linux-riscv64-musl': 4.60.2 + '@rollup/rollup-linux-s390x-gnu': 4.60.2 + '@rollup/rollup-linux-x64-gnu': 4.60.2 + '@rollup/rollup-linux-x64-musl': 4.60.2 + '@rollup/rollup-openbsd-x64': 4.60.2 + '@rollup/rollup-openharmony-arm64': 4.60.2 + '@rollup/rollup-win32-arm64-msvc': 4.60.2 + '@rollup/rollup-win32-ia32-msvc': 4.60.2 + '@rollup/rollup-win32-x64-gnu': 4.60.2 + '@rollup/rollup-win32-x64-msvc': 4.60.2 fsevents: 2.3.3 router@2.2.0: @@ -16595,7 +16682,7 @@ snapshots: depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 - path-to-regexp: 8.3.0 + path-to-regexp: 8.4.2 transitivePeerDependencies: - supports-color @@ -16704,6 +16791,15 @@ snapshots: transitivePeerDependencies: - supports-color + serve-static@2.2.1: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -16774,7 +16870,7 @@ snapshots: shebang-regex@3.0.0: {} - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -16798,7 +16894,7 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -16948,6 +17044,11 @@ snapshots: get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 + string-width@8.2.0: + dependencies: + get-east-asian-width: 1.5.0 + strip-ansi: 7.1.2 + string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 @@ -17024,9 +17125,9 @@ snapshots: strip-json-comments@3.1.1: {} - strnum@2.2.0: {} + strnum@2.2.3: {} - strtok3@10.3.4: + strtok3@10.3.5: dependencies: '@tokenizer/token': 0.3.0 @@ -17101,7 +17202,7 @@ snapshots: dependencies: '@pkgr/core': 0.2.9 - tablesort@5.6.0: {} + tablesort@5.7.1: {} tailwind-merge@3.5.0: {} @@ -17181,8 +17282,13 @@ snapshots: tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 tinyrainbow@3.1.0: {} @@ -17206,9 +17312,9 @@ snapshots: toidentifier@1.0.1: {} - token-types@6.1.1: + token-types@6.1.2: dependencies: - '@borewit/text-codec': 0.1.1 + '@borewit/text-codec': 0.2.2 '@tokenizer/token': 0.3.0 ieee754: 1.2.1 @@ -17238,7 +17344,7 @@ snapshots: dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - handlebars: 4.7.8 + handlebars: 4.7.9 jest: 30.2.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 @@ -17467,12 +17573,6 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - update-browserslist-db@1.1.4(browserslist@4.28.0): - dependencies: - browserslist: 4.28.0 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: browserslist: 4.28.1 @@ -17543,26 +17643,26 @@ snapshots: '@egjs/hammerjs': 2.0.17 component-emitter: 1.3.1 - vite@7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2): + vite@7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3): dependencies: - esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.8 - rollup: 4.59.0 - tinyglobby: 0.2.15 + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.10 + rollup: 4.60.2 + tinyglobby: 0.2.16 optionalDependencies: '@types/node': 25.5.0 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.32.0 terser: 5.44.1 - yaml: 2.8.2 + yaml: 2.8.3 - vitest@4.1.0(@opentelemetry/api@1.9.0)(@types/node@25.5.0)(jsdom@29.0.0(@noble/hashes@1.8.0))(vite@7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2)): + vitest@4.1.0(@opentelemetry/api@1.9.0)(@types/node@25.5.0)(jsdom@29.0.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2)) + '@vitest/mocker': 4.1.0(vite@7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3)) '@vitest/pretty-format': 4.1.0 '@vitest/runner': 4.1.0 '@vitest/snapshot': 4.1.0 @@ -17573,13 +17673,13 @@ snapshots: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 7.2.7(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.2) + vite: 7.3.2(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 @@ -17802,7 +17902,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.8.2: {} + yaml@2.8.3: {} yargs-parser@21.1.1: {} @@ -17822,6 +17922,8 @@ snapshots: yoctocolors-cjs@2.1.3: {} + yoctocolors@2.1.2: {} + zod-validation-error@4.0.2(zod@4.3.6): dependencies: zod: 4.3.6 diff --git a/scripts/perf/RUNBOOK-windows.md b/scripts/perf/RUNBOOK-windows.md new file mode 100644 index 0000000..feb105f --- /dev/null +++ b/scripts/perf/RUNBOOK-windows.md @@ -0,0 +1,214 @@ +# Runbook: รัน k6 Performance Test บน Windows (PowerShell) + +**Target:** ADR-021 T048 — Verify `POST /workflow-engine/instances/:id/transition` P95 ≤ 5s (Clarify Q4) + +**Script:** `scripts/perf/workflow-transition.k6.js` + +--- + +## Prerequisites + +- Windows 10/11 + PowerShell 5.1+ (หรือ PowerShell 7+) +- `curl.exe` (built-in ตั้งแต่ Windows 10 1803+) +- Backend API รันอยู่ (localhost:3001 หรือ staging URL) +- ไฟล์ `test-5mb.pdf` (หรือขนาดใกล้เคียง ≤ 10MB) + +--- + +## ขั้นที่ 1 — ติดตั้ง k6 + +เลือก **1 วิธี**: + +```powershell +# Chocolatey +choco install k6 + +# winget +winget install k6.k6 + +# หรือ download manual: https://github.com/grafana/k6/releases +``` + +ตรวจสอบ: +```powershell +k6 version +# ควรได้: k6 v0.50.x (หรือใหม่กว่า) +``` + +--- + +## ขั้นที่ 2 — เตรียมข้อมูลทดสอบ (ทำครั้งเดียวก่อนรัน) + +### 2.1 Login เอา JWT token + +```powershell +$baseUrl = "http://localhost:3001" +$loginBody = '{"username":"admin","password":"YOUR_PASSWORD"}' + +$loginRes = curl.exe -s -X POST "$baseUrl/api/auth/login" ` + -H "Content-Type: application/json" ` + -d $loginBody | ConvertFrom-Json + +$token = $loginRes.data.accessToken +Write-Host "Token: $token" -ForegroundColor Green +``` + +### 2.2 อัปโหลดไฟล์ทดสอบ (Two-Phase) + +```powershell +# Phase 1 — Upload (temp) +$uploadRes = curl.exe -s -X POST "$baseUrl/api/files/upload" ` + -H "Authorization: Bearer $token" ` + -F "file=@test-5mb.pdf" | ConvertFrom-Json + +$tempId = $uploadRes.data.tempId +$publicId = $uploadRes.data.publicId +Write-Host "publicId=$publicId" -ForegroundColor Yellow + +# Phase 2 — Commit (is_temporary=false) +curl.exe -s -X POST "$baseUrl/api/files/commit" ` + -H "Authorization: Bearer $token" ` + -H "Content-Type: application/json" ` + -d "{\""tempId\"":\""$tempId\""}" +``` + +### 2.3 หา Workflow Instance ID + +เลือก **1 วิธี**: + +**วิธี A — Query DB โดยตรง (แนะนำ):** +```sql +SELECT id, current_state +FROM workflow_instances +WHERE current_state IN ('PENDING_REVIEW', 'PENDING_APPROVAL') +LIMIT 1; +``` + +**วิธี B — สร้าง RFA ใหม่แล้ว submit:** +```powershell +# สร้าง RFA → submit → workflow instance จะอยู่ใน PENDING_REVIEW อัตโนมัติ +# (ดู backend/test/rfa.e2e-spec.ts สำหรับ payload ตัวอย่าง) +``` + +```powershell +$instanceId = "" +``` + +--- + +## ขั้นที่ 3 — ตั้ง Environment Variables + +```powershell +$env:BASE_URL = "http://localhost:3001" +$env:USERNAME = "admin" +$env:PASSWORD = "YOUR_PASSWORD" +$env:INSTANCE_ID = $instanceId +$env:ATTACHMENT_UUID = $publicId +``` + +--- + +## ขั้นที่ 4 — รัน k6 + +```powershell +# จาก repo root +k6 run scripts/perf/workflow-transition.k6.js +``` + +### ผลลัพธ์ที่คาดหวัง (Success) + +``` + ✓ login successful + ✓ status is 2xx + ✓ duration < 5s (P95 SLA) + + checks.........................: 100.00% ✓ 20 ✗ 0 + http_req_duration..............: avg=2.1s p(95)=3.0s + ✓ transition_duration_ms.........: avg=2102 p(95)=3021 + ✓ http_req_failed................: 0.00% + +running (0m22.5s), 0/1 VUs, 10 complete and 0 interrupted iterations +``` + +**ผ่าน SLA** เมื่อเห็น `✓` ที่: +- `transition_duration_ms.........: p(95) < 5000` +- `http_req_failed................: rate < 0.01` + +### ตัวอย่าง Failure + +``` + ✗ transition_duration_ms + p(95)=6821 (≥ 5000) + + ✗ some iterations failed +``` + +Exit code ≠ 0 → ใช้เป็น CI gate ได้ทันที + +--- + +## Troubleshooting + +| อาการ | สาเหตุ | วิธีแก้ | +|---|---|---| +| **HTTP 409 Conflict** ตั้งแต่ iter แรก | Instance ไม่อยู่ใน `PENDING_REVIEW`/`PENDING_APPROVAL` | ใช้ SQL ใน 2.3 วิธี A เพื่อหา instance ที่ state ถูกต้อง | +| **HTTP 409** iter 2+ | iter 1 ทำให้ state เป็น `APPROVED` | (ก) ใช้ workflow DSL ที่ action กลับมา pending ได้ (เช่น `RETURN`) (ข) re-create instance ก่อนรัน | +| **HTTP 400** "Idempotency-Key required" | Header หาย | ตรวจบรรทัด `'Idempotency-Key': idempotencyKey` ใน script (line ~94) | +| **HTTP 403 Forbidden** | User ไม่ใช่ assigned handler | login ด้วย superadmin หรือ set `context.assignedUserId` = user_id ของ test user | +| **Attachment mismatch** | `isTemporary=true` หรือ publicId ซ้ำ | re-run 2.2 เอา publicId ใหม่ทุกครั้ง | +| **P95 > 5s** ทุก iter | ClamAV scan / Redis ช้า | ตรวจ `docker stats` — ClamAV RAM ≥ 1GB, Redis connection pool ≥ 10 | +| **Cannot connect** | Backend ไม่รัน / port ชน | `docker compose ps` ตรวจ container healthy | + +--- + +## Cleanup (หลังทดสอบ) + +```powershell +# Reset env vars (ถ้าต้องการ) +Remove-Item Env:\BASE_URL, Env:\USERNAME, Env:\PASSWORD, ` + Env:\INSTANCE_ID, Env:\ATTACHMENT_UUID +``` + +--- + +## Manual Fallback (ไม่มี k6) + +```powershell +$results = @() +1..10 | ForEach-Object { + $idk = [guid]::NewGuid().ToString() + $body = "{\""action\"":\""APPROVE\"",\""attachmentPublicIds\"":[\""$env:ATTACHMENT_UUID\""]}" + + $sw = [Diagnostics.Stopwatch]::StartNew() + $status = curl.exe -s -o $null -w "%{http_code}" -X POST ` + "$env:BASE_URL/api/workflow-engine/instances/$env:INSTANCE_ID/transition" ` + -H "Authorization: Bearer $token" ` + -H "Idempotency-Key: $idk" ` + -H "Content-Type: application/json" ` + -d $body + $sw.Stop() + + $results += [PSCustomObject]@{ + Iter = $_ + Status = $status + DurationMs = $sw.ElapsedMilliseconds + } +} + +$results | Format-Table +$p95 = ($results.DurationMs | Sort-Object)[[int]([math]::Ceiling($results.Count * 0.95) - 1)] +Write-Host "P95 = $p95 ms (SLA: < 5000)" -ForegroundColor $(if ($p95 -lt 5000) {'Green'} else {'Red'}) +``` + +--- + +## Sign-off Checklist + +- [ ] k6 run exit code = 0 +- [ ] `transition_duration_ms p(95) < 5000` ✓ +- [ ] `http_req_failed rate < 0.01` ✓ +- [ ] ทดสอบทั้ง 4 modules: RFA, Transmittal, Circulation, Correspondence (1 ครั้ง/module) +- [ ] ทดสอบซ้ำบน staging environment (ไม่ใช่เฉพาะ localhost) +- [ ] บันทึกผลลัพธ์ใน `specs/88-logs/perf-YYYY-MM-DD.md` + +**Sign-off ที่ staging = ปิด T048 ได้จริง** diff --git a/scripts/perf/workflow-transition.k6.js b/scripts/perf/workflow-transition.k6.js index 33cd3cc..eea8651 100644 --- a/scripts/perf/workflow-transition.k6.js +++ b/scripts/perf/workflow-transition.k6.js @@ -16,9 +16,29 @@ import http from 'k6/http'; import { check, sleep } from 'k6'; -import { uuidv4 } from 'https://jslib.k6.io/k6-utils/1.4.0/index.js'; +import crypto from 'k6/crypto'; import { Trend } from 'k6/metrics'; +// L1: สร้าง UUIDv4 จาก k6/crypto (built-in) แทน remote jslib +// รูปแบบตาม RFC 4122 section 4.4 — 16 bytes random + set version/variant bits +function uuidv4() { + const bytes = new Uint8Array(crypto.randomBytes(16)); + bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4 + bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant RFC 4122 + const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join(''); + return ( + hex.slice(0, 8) + + '-' + + hex.slice(8, 12) + + '-' + + hex.slice(12, 16) + + '-' + + hex.slice(16, 20) + + '-' + + hex.slice(20, 32) + ); +} + // Custom metric เฉพาะ transition endpoint (ไม่รวม login/upload) const transitionDuration = new Trend('transition_duration_ms', true); @@ -34,8 +54,8 @@ export const options = { }, thresholds: { // ADR-021 Clarify Q4: P95 ≤ 5000ms - 'transition_duration_ms': ['p(95) < 5000'], - 'http_req_failed': ['rate < 0.01'], // < 1% failure rate + transition_duration_ms: ['p(95) < 5000'], + http_req_failed: ['rate < 0.01'], // < 1% failure rate }, }; @@ -50,16 +70,12 @@ export function setup() { const attachmentUuid = __ENV.ATTACHMENT_UUID; if (!username || !password || !instanceId || !attachmentUuid) { - throw new Error( - 'Missing env vars. Required: USERNAME, PASSWORD, INSTANCE_ID, ATTACHMENT_UUID' - ); + throw new Error('Missing env vars. Required: USERNAME, PASSWORD, INSTANCE_ID, ATTACHMENT_UUID'); } - const loginRes = http.post( - `${baseUrl}/api/auth/login`, - JSON.stringify({ username, password }), - { headers: { 'Content-Type': 'application/json' } } - ); + const loginRes = http.post(`${baseUrl}/api/auth/login`, JSON.stringify({ username, password }), { + headers: { 'Content-Type': 'application/json' }, + }); check(loginRes, { 'login successful': (r) => r.status === 200 || r.status === 201, @@ -92,18 +108,14 @@ export default function (data) { const params = { headers: { 'Content-Type': 'application/json', - 'Authorization': `Bearer ${token}`, + Authorization: `Bearer ${token}`, 'Idempotency-Key': idempotencyKey, }, tags: { name: 'workflow-transition' }, }; const start = Date.now(); - const res = http.post( - `${baseUrl}/api/workflow-engine/instances/${instanceId}/transition`, - payload, - params - ); + const res = http.post(`${baseUrl}/api/workflow-engine/instances/${instanceId}/transition`, payload, params); const duration = Date.now() - start; transitionDuration.add(duration); diff --git a/specs/03-Data-and-Storage/deltas/08-add-rag-status-to-attachments.sql b/specs/03-Data-and-Storage/deltas/08-add-rag-status-to-attachments.sql new file mode 100644 index 0000000..e8294f9 --- /dev/null +++ b/specs/03-Data-and-Storage/deltas/08-add-rag-status-to-attachments.sql @@ -0,0 +1,11 @@ +-- Delta 08: ADR-022 RAG — เพิ่ม rag_status และ rag_last_error ในตาราง attachments +-- Apply: 2026-04-19 +-- Ref: specs/08-Tasks/ADR-022-Retrieval-Augmented-Generation/data-model.md §1.1 + +ALTER TABLE attachments + ADD COLUMN rag_status ENUM('PENDING', 'PROCESSING', 'INDEXED', 'FAILED') + NOT NULL DEFAULT 'PENDING' + COMMENT 'สถานะ RAG ingestion ระดับ file', + ADD COLUMN rag_last_error TEXT NULL + COMMENT 'Error message ล่าสุดเมื่อ rag_status = FAILED', + ADD INDEX idx_attachments_rag_status (rag_status); diff --git a/specs/03-Data-and-Storage/deltas/08b-create-document-chunks.sql b/specs/03-Data-and-Storage/deltas/08b-create-document-chunks.sql new file mode 100644 index 0000000..94a1146 --- /dev/null +++ b/specs/03-Data-and-Storage/deltas/08b-create-document-chunks.sql @@ -0,0 +1,25 @@ +-- Delta 08b: ADR-022 RAG — สร้างตาราง document_chunks สำหรับเก็บ vector metadata +-- Apply: 2026-04-19 +-- Ref: specs/08-Tasks/ADR-022-Retrieval-Augmented-Generation/data-model.md §1.2 + +CREATE TABLE document_chunks ( + id CHAR(36) NOT NULL PRIMARY KEY COMMENT 'UUID = Qdrant point ID', + document_id CHAR(36) NOT NULL COMMENT 'FK → attachments.public_id (UUIDv7)', + chunk_index INT NOT NULL COMMENT 'ลำดับ chunk ภายใน document', + content TEXT NOT NULL COMMENT 'เนื้อหา chunk หลัง PyThaiNLP normalize', + doc_type VARCHAR(20) NOT NULL COMMENT 'CORR, RFA, DRAWING, CONTRACT, RPT, TRANS', + doc_number VARCHAR(100) NULL COMMENT 'หมายเลขเอกสาร เช่น REF-2026-001', + revision VARCHAR(20) NULL COMMENT 'Revision เช่น Rev.A', + project_code VARCHAR(50) NOT NULL COMMENT 'รหัสโครงการ (ใช้ filter)', + project_public_id CHAR(36) NOT NULL COMMENT 'UUIDv7 ของโครงการ (Qdrant tenant key)', + version VARCHAR(20) NULL COMMENT 'เวอร์ชันเอกสาร เช่น 1.0, 2.1 (ถ้ามี)', + classification ENUM('PUBLIC', 'INTERNAL', 'CONFIDENTIAL') + NOT NULL DEFAULT 'INTERNAL', + embedding_model VARCHAR(100) NOT NULL DEFAULT 'nomic-embed-text', + created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + INDEX idx_chunks_document_id (document_id), + INDEX idx_chunks_doc_number_rev (doc_number, revision), + INDEX idx_chunks_project (project_public_id), + FULLTEXT INDEX ft_chunks_content (content) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/specs/03-Data-and-Storage/deltas/08c-seed-rag-permissions.sql b/specs/03-Data-and-Storage/deltas/08c-seed-rag-permissions.sql new file mode 100644 index 0000000..2e0d78b --- /dev/null +++ b/specs/03-Data-and-Storage/deltas/08c-seed-rag-permissions.sql @@ -0,0 +1,8 @@ +-- Delta 08c: ADR-022 RAG — เพิ่ม permissions สำหรับ RAG feature +-- Apply: 2026-04-19 +-- Ref: specs/08-Tasks/ADR-022-Retrieval-Augmented-Generation/tasks.md T014 + +INSERT IGNORE INTO permissions (permission_name, description, module, created_at, updated_at) +VALUES + ('rag.query', 'ใช้งาน RAG Q&A เพื่อค้นหาคำตอบจากเอกสาร', 'rag', NOW(), NOW()), + ('rag.manage', 'จัดการ RAG ingestion, re-index, ลบ vectors', 'rag', NOW(), NOW()); diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/ASUSTOR/monitoring/.env.example b/specs/04-Infrastructure-OPS/04-00-docker-compose/ASUSTOR/monitoring/.env.example index 0cbf664..b546c34 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/ASUSTOR/monitoring/.env.example +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/ASUSTOR/monitoring/.env.example @@ -1 +1 @@ -GRAFANA_ADMIN_PASSWORD= +GRAFANA_ADMIN_PASSWORD=Center#2025 diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/ASUSTOR/monitoring/docker-compose.yml b/specs/04-Infrastructure-OPS/04-00-docker-compose/ASUSTOR/monitoring/docker-compose.yml index 84566bc..359d544 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/ASUSTOR/monitoring/docker-compose.yml +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/ASUSTOR/monitoring/docker-compose.yml @@ -77,7 +77,7 @@ services: GF_SERVER_ROOT_URL: 'https://grafana.np-dms.work' GF_INSTALL_PLUGINS: grafana-clock-panel,grafana-piechart-panel ports: - - '3000:3000' + - '3003:3000' networks: - lcbp3 volumes: diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/app/.env.example b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/app/.env.example index 3e46f49..366284c 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/app/.env.example +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/app/.env.example @@ -5,14 +5,94 @@ # วิธีใช้ (บน QNAP): # cp /share/np-dms/.env.master /share/np-dms/app/.env # chmod 600 /share/np-dms/app/.env - # --- ใช้โดย docker-compose-app.yml --- -DB_PASSWORD= -REDIS_PASSWORD= +# File: .env (Unified for QNAP / Gitea Runner) +# Change Log: 2026-04-19 + +# --------------------------------------------------------- +# 1. Backend Service Configuration +# --------------------------------------------------------- +TZ=Asia/Bangkok +NODE_ENV=production +PORT=3000 + +# --- Database (MariaDB) --- +DB_HOST=mariadb +DB_PORT=3306 +DB_DATABASE=lcbp3 +DB_USERNAME=center +DB_PASSWORD=Center#2025 + +# --- Redis (Cache & Queue) --- +REDIS_HOST=cache +REDIS_PORT=6379 +REDIS_PASSWORD=redis3ac466bf9b6 + +# --- Search (Elasticsearch) --- +ELASTICSEARCH_HOST=search +ELASTICSEARCH_PORT=9200 ELASTICSEARCH_USERNAME=elastic -ELASTICSEARCH_PASSWORD= -JWT_SECRET= -JWT_REFRESH_SECRET= -AUTH_SECRET= +ELASTICSEARCH_PASSWORD=elasticed0bbde94 + +# --- Security (JWT) --- +JWT_SECRET=jwtsecret65adde8c76c6a0847d9649b2b67a06db1504693e6c912e51499b76e +JWT_EXPIRATION=24h +JWT_REFRESH_SECRET=jwtrefreshf6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2 + +# --- Numbering Logic --- +NUMBERING_LOCK_TIMEOUT=5000 +NUMBERING_RESERVATION_TTL=300 + +# --- File Storage --- +UPLOAD_TEMP_DIR=/share/np-dms-as/data/uploads/temp +UPLOAD_PERMANENT_DIR=/share/np-dms-as/data/uploads/permanent +MAX_FILE_SIZE=52428800 + +# --------------------------------------------------------- +# 2. Frontend Service Configuration +# --------------------------------------------------------- +# หมายเหตุ: ค่าเหล่านี้จะถูกใช้ตอน Docker Build (ตาม deploy.sh) +NEXT_PUBLIC_API_URL=https://backend.np-dms.work/api +AUTH_URL=https://lcbp3.np-dms.work + +# --- NextAuth --- +# ค่านี้ต้องตรงกับ JWT_SECRET หรือตั้งแยกตามความปลอดภัย +AUTH_SECRET=jwtsecret65adde8c76c6a0847d9649b2b67a06db1504693e6c912e51499b76e +AUTH_TRUST_HOST=true + +# --- Shared Context --- +INTERNAL_API_URL=http://backend:3000/api +HOSTNAME=0.0.0.0 + +# --- Docker Image --- BACKEND_IMAGE_TAG=latest FRONTEND_IMAGE_TAG=latest + +# ClamAV +CLAMAV_HOST=localhost +CLAMAV_PORT=3310 + +# ======================================== +# ADR-022 RAG — Retrieval-Augmented Generation +# ======================================== + +# Qdrant vector store (local docker-compose or QNAP) +QDRANT_URL=http://localhost:6333 + +# Ollama (Admin Desktop Desk-5439 — ADR-018 AI boundary) +OLLAMA_EMBED_MODEL=nomic-embed-text +OLLAMA_RAG_MODEL=gemma3:12b +OLLAMA_URL=http://192.168.20.200:11434 + +# Thai preprocessing microservice (PyThaiNLP — Admin Desktop) +THAI_PREPROCESS_URL=http://192.168.20.200:8765 + +# Typhoon API (cloud LLM — PUBLIC/INTERNAL only, never CONFIDENTIAL) +TYPHOON_API_KEY=your-typhoon-api-key-here +TYPHOON_API_URL=https://api.opentyphoon.ai/v1 + +# RAG query config +RAG_TOPK=20 +RAG_FINAL_K=5 +RAG_TIMEOUT_MS=5000 +RAG_QUERY_CACHE_TTL=300 diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/.env.example b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/.env.example index 8f3d69f..b4a4e8f 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/.env.example +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/.env.example @@ -1,3 +1,3 @@ # Per-stack .env.example — n8n + postgres + tika + docker-socket-proxy -N8N_DB_PASSWORD= -N8N_ENCRYPTION_KEY= +N8N_DB_PASSWORD=Np721220$ +N8N_ENCRYPTION_KEY=9AAIB7Da9DW1qAhJE5/Bz4SnbQjeAngI diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/docker-compose.yml b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/docker-compose.yml index 494a600..b7ecd2c 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/docker-compose.yml +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/docker-compose.yml @@ -15,6 +15,7 @@ x-logging: &default_logging options: max-size: '10m' max-file: '5' +name: lcbp3-n8n services: n8n-db: <<: [*restart_policy, *default_logging] @@ -112,7 +113,9 @@ services: n8n: <<: [*restart_policy, *default_logging] - image: n8nio/n8n:1.66.0 + build: + context: ./n8n-custom + dockerfile: Dockerfile container_name: n8n depends_on: n8n-db: @@ -163,6 +166,8 @@ services: EXECUTIONS_DATA_PRUNE: 'true' EXECUTIONS_DATA_MAX_AGE: 168 # EXECUTIONS_DATA_PRUNE_TIMEOUT: 60 + # Storage Migration (fix deprecation warning) + N8N_MIGRATE_FS_STORAGE_PATH: 'true' ports: - '5678:5678' diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/n8n-custom/Dockerfile b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/n8n-custom/Dockerfile index c204f91..a8ba140 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/n8n-custom/Dockerfile +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/n8n/n8n-custom/Dockerfile @@ -1,4 +1,4 @@ -FROM n8nio/n8n:latest-debian +FROM n8nio/n8n:2.16.1 USER root @@ -6,6 +6,6 @@ USER root RUN echo "deb http://archive.debian.org/debian buster main" > /etc/apt/sources.list && \ echo "deb http://archive.debian.org/debian-security buster/updates main" >> /etc/apt/sources.list && \ apt-get update -y && \ - apt-get install -y poppler-utils + apt-get install -y poppler-utils python3 python3-pip USER node diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/.env.example b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/.env.example index bdef6ec..1a99fe8 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/.env.example +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/.env.example @@ -1,4 +1,12 @@ # Per-stack .env.example — services (cache, search) # Source: ../../.env.template -REDIS_PASSWORD= -ELASTICSEARCH_PASSWORD= +# --- Redis (Cache & Queue) --- +REDIS_HOST=cache +REDIS_PORT=6379 +REDIS_PASSWORD=redis3ac466bf9b6 + +# --- Search (Elasticsearch) --- +ELASTICSEARCH_HOST=search +ELASTICSEARCH_PORT=9200 +ELASTICSEARCH_USERNAME=elastic +ELASTICSEARCH_PASSWORD=elasticed0bbde94 diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/docker-compose.yml b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/docker-compose.yml index 071d956..cc818ca 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/docker-compose.yml +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/docker-compose.yml @@ -23,6 +23,7 @@ networks: lcbp3: external: true +name: lcbp3-services services: # ---------------------------------------------------------------- # 1. Redis (Caching + Distributed Lock + BullMQ queues) @@ -30,13 +31,13 @@ services: # ---------------------------------------------------------------- cache: <<: [*restart_policy, *default_logging] - image: redis:7-alpine + image: redis:7-alpine # ใช้ Alpine image เพื่อให้มีขน container_name: cache deploy: resources: limits: cpus: '1.0' - memory: 2G + memory: 2G # Redis เป็น in-memory, ให้ memory เพียงพอต่อการ reservations: cpus: '0.25' memory: 512M @@ -80,12 +81,12 @@ services: # ---------------------------------------------------------------- search: <<: [*restart_policy, *default_logging] - image: elasticsearch:8.11.1 + image: elasticsearch:8.11.1 # แนะนำให้ระบุเวอร์ชันชัดเจน container_name: search deploy: resources: limits: - cpus: '2.0' + cpus: '2.0' # Elasticsearch ใช้ CPU และ Memory ค่อนข้างห memory: 4G reservations: cpus: '0.5' @@ -100,7 +101,7 @@ services: # NOTE: หากเปิด xpack.security ต้องตั้ง ELASTIC_PASSWORD และอัปเดต backend client config # ค่าเริ่มต้น keep ปิดไว้เพราะ network เข้าถึงได้เฉพาะภายใน lcbp3 (ไม่มี host port) xpack.security.enabled: 'false' - # --- Performance --- + # --- Performance กำหนด Heap size (1GB) ให้เหมาะสมกับ memory limit (4G --- ES_JAVA_OPTS: '-Xms1g -Xmx1g' ulimits: memlock: diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/docker-compse.yml b/specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/docker-compose.yml.bak similarity index 100% rename from specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/docker-compse.yml rename to specs/04-Infrastructure-OPS/04-00-docker-compose/QNAP/service/docker-compose.yml.bak diff --git a/specs/08-Tasks/ADR-021-workflow-context/tasks.md b/specs/08-Tasks/ADR-021-workflow-context/tasks.md index fc3eb5c..b6cd571 100644 --- a/specs/08-Tasks/ADR-021-workflow-context/tasks.md +++ b/specs/08-Tasks/ADR-021-workflow-context/tasks.md @@ -144,13 +144,25 @@ cd frontend && pnpm test --run hooks/use-workflow-action - [x] T029 [US3] Wire `useWorkflowAction` into `IntegratedBanner` action buttons in `frontend/components/workflow/integrated-banner.tsx` — `onAction` callback receives `(action, comment, attachmentPublicIds[])` and delegates to hook's `execute()` method; show loading spinner during `isPending` - [x] T030 [US3] Add `WorkflowTransitionGuard` unit tests in `backend/src/modules/workflow-engine/guards/workflow-transition.guard.spec.ts` — test all RBAC levels: (1) Superadmin pass, (2) Org Admin same-org pass, (3) Level 2.5 contract membership — user org in same contract pass / cross-contract org → ForbiddenException, (4) Assigned Handler pass, (5) unauthorized user → ForbiddenException - [x] T031 [US3] Add extended `processTransition()` unit tests in `backend/src/modules/workflow-engine/workflow-engine.service.spec.ts` — test: attachments linked to correct historyId, non-committed attachment rejected, idempotent replay returns cached result -- [x] T031a [US3] Add new unit tests in `workflow-engine.service.spec.ts` — 6 test cases — **DONE 2026-04-19** (15/15 tests passing): +- [x] T031a [US3] Add new unit tests in `workflow-engine.service.spec.ts` — 7 test cases — **DONE 2026-04-19** (16/16 tests passing): - C3: upload in `APPROVED` state → `ConflictException` 409 - C3: upload in `REJECTED` state → `ConflictException` 409 - C3: skip state check when no attachments (backward compat) - C1: Redlock acquire fail → `ServiceUnavailableException` 503 (**ไม่ใช่ 409**) - C2: `affected < expected` → `WorkflowException` + rollback + Redlock release + - **H1: TOCTOU state change between pre-check and pessimistic lock → `ConflictException` 409 + rollback** (code review 2026-04-19) - C1: Redlock release สำเร็จแม้ transition ไม่โยนค่า +- [x] T031b [US3] **Code Review fixes 2026-04-19** — 9 issues resolved (H1 + M1-M3 + L1-L2 + S1-S3): + - **H1** Backend: State check ซ้ำภายใน pessimistic lock (`workflow-engine.service.ts:419-429`) — ปิด TOCTOU race + - **M1** Frontend: 403 handler ใช้ backend message แทน hardcoded string (`use-workflow-action.ts:80-86`) + - **M2** Backend: Migrate `@nestjs/common` ConflictException + ServiceUnavailableException → custom `common/exceptions` (ADR-007 layered payload) — เพิ่ม `ErrorType.SERVICE_UNAVAILABLE` (503) + `ServiceUnavailableException` ใน `base.exception.ts` + - **M3** Frontend: Reset idempotency key on 409 (`use-workflow-action.ts:71-78`) — preserve บน 503 เท่านั้น + - **L1** k6 script: แทน remote `jslib.k6.io` import ด้วย `k6/crypto` built-in UUID v4 generator — ไม่ต้องมีอินเทอร์เน็ตตอนรัน + - **L2** Backend: ลบ redundant `updatedContext` alias + `eventsToDispatch` outer declaration — ใช้ `context`/`evaluation.events` โดยตรง; ลบ unused `RawEvent` import + - **S1** Backend: Prometheus metrics สำหรับ Redlock observability — `workflow_redlock_acquire_duration_ms` (Histogram labeled by outcome) + `workflow_redlock_acquire_failures_total` (Counter); register ใน module, inject via `@InjectMetric` + - **S2** Backend: เพิ่ม comment ใน pre-check เพื่อชี้แจงว่า `WorkflowInstance.id` = CHAR(36) UUID direct PK (ไม่ใช่ UuidBaseEntity pattern) + - **S3** Frontend: Harden `isApiErrorResponse` type guard ป้องกัน `{ error: null }` edge case + - Tests: Backend 16/16 + Frontend 8/8 passing **Checkpoint**: ✅ **VERIFIED 2026-04-19** — POST transition with `attachmentPublicIds` สำเร็จ; `attachment.workflow_history_id` ถูก set; duplicate `Idempotency-Key` → cached response; unauthorized user → 403; Upload in Terminal state → 409 (C3); Redis failure → 503 fail-closed (C1); temp/foreign attachment → rollback (C2). `workflow-engine.service.spec.ts`: 15/15 tests passing.