[CL-REFACTOR] refactor(compliance): split complianceReport god-file (839→482 + 374) #982

Merged
andrei merged 1 commit from feature/claude-godfile-compliancepdf-20260702 into master 2026-07-02 21:19:05 +00:00
Owner

Что сделано

complianceReport.service.ts (839 строк) разбит: GDPR Art.30 PDF-генерация + DPIA-шаблоны (generateGdprArt30Pdf, DpiaTemplate, getDpiaTemplate) вынесены в новый complianceReport.pdf.service.ts (374 строки). Сервис — 482 строки. Оба <800.

Зачем

Review High #2 (mega-audit 2026-07-02, 2-й god-file после DemoPortfolio): 45 файлов >800 строк. complianceReport был крупнейшим backend-сервисом. PDF/DPIA-подсистема отделена от report-генерации.

План тестирования

  • Behavior-preserving: публичный API сохранён через re-export из complianceReport.service.ts → импортёры (admin.complianceDashboard.controller, cron/complianceReports, cron/complianceThresholdAlerts) не тронуты, zero blast.
  • Существующий 13-тест suite (complianceReport.service.test.ts, покрывает generateGdprArt30Pdf/getDpiaTemplate, импортит из service) остался 13/13 GREEN → поведение сохранено — сильнейший guard.
  • tsc --noEmit 0 (ловит circular/missing/unused), eslint 0.
  • Type-only import GdprArt30Report обратно в pdf-модуль (erased, без runtime-цикла).

Где могу ошибаться

  • Compliance-сервис (GDPR/MiCA regulated) — но НЕ Rule-C-guarded (не webhook/distribution/payout/escrow/decimal/buyback/exchange); read-heavy reporting. 13-тест suite + tsc гарантируют поведение.
  • Re-export паттерн: если новый импортёр обратится к pdf-fn напрямую из pdf-модуля — тоже сработает; каноничный путь — через service (re-export).
## Что сделано `complianceReport.service.ts` (839 строк) разбит: GDPR Art.30 PDF-генерация + DPIA-шаблоны (`generateGdprArt30Pdf`, `DpiaTemplate`, `getDpiaTemplate`) вынесены в новый `complianceReport.pdf.service.ts` (374 строки). Сервис — 482 строки. Оба <800. ## Зачем Review High #2 (mega-audit 2026-07-02, 2-й god-file после DemoPortfolio): 45 файлов >800 строк. complianceReport был крупнейшим backend-сервисом. PDF/DPIA-подсистема отделена от report-генерации. ## План тестирования - Behavior-preserving: публичный API сохранён через re-export из `complianceReport.service.ts` → импортёры (`admin.complianceDashboard.controller`, `cron/complianceReports`, `cron/complianceThresholdAlerts`) не тронуты, zero blast. - Существующий 13-тест suite (`complianceReport.service.test.ts`, покрывает `generateGdprArt30Pdf`/`getDpiaTemplate`, импортит из service) остался **13/13 GREEN** → поведение сохранено — сильнейший guard. - `tsc --noEmit` 0 (ловит circular/missing/unused), `eslint` 0. - Type-only import `GdprArt30Report` обратно в pdf-модуль (erased, без runtime-цикла). ## Где могу ошибаться - Compliance-сервис (GDPR/MiCA regulated) — но НЕ Rule-C-guarded (не webhook/distribution/payout/escrow/decimal/buyback/exchange); read-heavy reporting. 13-тест suite + tsc гарантируют поведение. - Re-export паттерн: если новый импортёр обратится к pdf-fn напрямую из pdf-модуля — тоже сработает; каноничный путь — через service (re-export).
[CL-REFACTOR] refactor(compliance): split complianceReport god-file (839→482 + 374)
Some checks failed
CI / Python SDK (pull_request) Has been cancelled
CI / Secrets Scan (pull_request) Has been cancelled
CI / Telegram Mini App (pull_request) Has been cancelled
CI / API (pull_request) Has been cancelled
CI / App (pull_request) Has been cancelled
CI / Prisma Migrate Gate (pull_request) Has been cancelled
PR Janitor / janitor (pull_request) Has been cancelled
CI / Contracts (pull_request) Has been cancelled
023053fe75
Review High #2 (mega-audit 2026-07-02, 2-й god-file): complianceReport.service.ts
был 839 строк. GDPR Art.30 PDF-генерация + DPIA-шаблоны (generateGdprArt30Pdf,
DpiaTemplate, getDpiaTemplate) вынесены в complianceReport.pdf.service.ts (374).
Сервис — 482. Оба <800.

Behavior-preserving: publichный API сохранён через re-export из
complianceReport.service.ts → все импортёры (admin.complianceDashboard.controller,
cron/complianceReports, cron/complianceThresholdAlerts) не тронуты, zero blast.
Type-only import GdprArt30Report обратно (erased, без runtime-цикла).

Guard: существующий 13-тест suite (покрывает generateGdprArt30Pdf/getDpiaTemplate,
импортит из service) остался 13/13 GREEN → поведение сохранено. tsc 0, eslint 0.
andrei merged commit 540ed55e5b into master 2026-07-02 21:19:05 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
europa-tech-srl/europatech!982
No description provided.