[CL-W12C] Группировка services: compliance/ + defi/ (barrel-шимы) #504

Merged
andrei merged 2 commits from refactor/claude-w12-services-compliance-defi into master 2026-06-10 20:28:57 +00:00
Owner

Что сделано

  • 12 compliance-модулей (ctr, sar+reports, kyc+webhook×3, watchlist+screening, travelRule, complianceCalendar, complianceReport) перенесены в api/src/services/compliance/
  • 6 defi-модулей (lending×4, bridgeLZ, multichain) — в api/src/services/defi/
  • Старые плоские пути остались чистыми barrel-шимами (export *) — ~99 импорт-сайтов не переписывались (та же конвенция, что у aml/, bridge/, yieldDistribution/)
  • Guard-тест services-grouping.test.ts: 18 модулей — файл существует на новом пути, legacy-шим отдаёт идентичную export-поверхность (тот же binding)
  • scripts/mock-sync-check.mjs: EXPORT_RE теперь распознаёт ES2015 shorthand-проперти в vi.mock (ложный BLOCK на watchlist.screening)
  • vault: docs/vault/modules/api-compliance.md — пути обновлены

Зачем

W12-группировка по mega-audit/структурному ревью: плоский хвост services/ затруднял навигацию; p2p уже сгруппирован (p2p-order/, p2p-trade/, p2pEscrow/), реальный выигрыш — compliance и defi.

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

  • vitest: 723 файла / 10073 теста GREEN (полный прогон после последнего изменения)
  • tsc --noEmit: 0
  • eslint --max-warnings 0: 0
  • mock-sync-check: clean
  • guard-тест RED→GREEN (TDD)

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

  • bridgeLZ/multichain проверены только структурно (module-level side effects читают config при импорте — runtime-импорт в голом тест-окружении невозможен)
  • Динамические import() по старым путям работают через шимы, но если где-то путь собирается строкой в рантайме — guard-тест это не покроет (grep таких не нашёл)

admin-merge reason: solo-dev (Rule 103.1)

  • local-review: Agent(code-reviewer) APPROVE, 0 CRITICAL/HIGH; MEDIUM (mock-sync EXPORT_RE phantom keys) addressed in cdd4e5f
  • ci-status: 8/8 green (head cdd4e5f)
  • local: tsc 0, eslint 0, vitest 723/10073 green, mock-sync clean
## Что сделано - 12 compliance-модулей (ctr, sar+reports, kyc+webhook×3, watchlist+screening, travelRule, complianceCalendar, complianceReport) перенесены в `api/src/services/compliance/` - 6 defi-модулей (lending×4, bridgeLZ, multichain) — в `api/src/services/defi/` - Старые плоские пути остались чистыми barrel-шимами (`export *`) — ~99 импорт-сайтов не переписывались (та же конвенция, что у `aml/`, `bridge/`, `yieldDistribution/`) - Guard-тест `services-grouping.test.ts`: 18 модулей — файл существует на новом пути, legacy-шим отдаёт идентичную export-поверхность (тот же binding) - `scripts/mock-sync-check.mjs`: EXPORT_RE теперь распознаёт ES2015 shorthand-проперти в vi.mock (ложный BLOCK на watchlist.screening) - vault: `docs/vault/modules/api-compliance.md` — пути обновлены ## Зачем W12-группировка по mega-audit/структурному ревью: плоский хвост services/ затруднял навигацию; p2p уже сгруппирован (p2p-order/, p2p-trade/, p2pEscrow/), реальный выигрыш — compliance и defi. ## План тестирования - vitest: 723 файла / 10073 теста GREEN (полный прогон после последнего изменения) - tsc --noEmit: 0 - eslint --max-warnings 0: 0 - mock-sync-check: clean - guard-тест RED→GREEN (TDD) ## Где могу ошибаться - bridgeLZ/multichain проверены только структурно (module-level side effects читают config при импорте — runtime-импорт в голом тест-окружении невозможен) - Динамические import() по старым путям работают через шимы, но если где-то путь собирается строкой в рантайме — guard-тест это не покроет (grep таких не нашёл) --- admin-merge reason: solo-dev (Rule 103.1) - local-review: Agent(code-reviewer) APPROVE, 0 CRITICAL/HIGH; MEDIUM (mock-sync EXPORT_RE phantom keys) addressed in cdd4e5f - ci-status: 8/8 green (head cdd4e5f) - local: tsc 0, eslint 0, vitest 723/10073 green, mock-sync clean
[CL-W12C] refactor(services): группировка compliance/defi — flat-хвост в подпапки, barrel-шимы на старых путях
All checks were successful
CI / Secrets Scan (pull_request) Successful in 14s
CI / Python SDK (pull_request) Successful in 32s
CI / Telegram Mini App (pull_request) Successful in 1m33s
CI / Prisma Migrate Gate (pull_request) Successful in 1m44s
CI / Contracts (pull_request) Successful in 2m6s
CI / App (pull_request) Successful in 7m38s
CI / API (pull_request) Successful in 8m23s
f601c16f5e
- 12 compliance-модулей (ctr/sar/kyc/watchlist/travelRule/calendar/report) -> services/compliance/
- 6 defi-модулей (lending x4, bridgeLZ, multichain) -> services/defi/
- старые пути = чистые barrel-шимы (export *), ~99 импорт-сайтов не тронуты
- guard-тест services-grouping.test.ts: 18 модулей, идентичность export surface
- mock-sync-check: EXPORT_RE теперь видит ES2015 shorthand-проперти в vi.mock
- vault: api-compliance.md пути обновлены
[CL-W12C] fix(mock-sync-check): отрезаем содержимое (...)-аргументов перед EXPORT_RE
All checks were successful
CI / Secrets Scan (pull_request) Successful in 14s
CI / Python SDK (pull_request) Successful in 31s
CI / Telegram Mini App (pull_request) Successful in 1m34s
CI / Prisma Migrate Gate (pull_request) Successful in 1m43s
CI / Contracts (pull_request) Successful in 2m6s
CI / App (pull_request) Successful in 7m46s
CI / API (pull_request) Successful in 8m38s
cdd4e5f4ec
Ключи вложенных литералов в mockResolvedValue({...}) считались экспортами мока
(phantom) и могли маскировать реально пропущенный экспорт. stripCallArgs —
string-aware скан по глубине скобок. Находка code-review PR #504 (MEDIUM).
andrei merged commit 2eba808715 into master 2026-06-10 20:28:57 +00:00
andrei deleted branch refactor/claude-w12-services-compliance-defi 2026-06-10 20:28:58 +00:00
Sign in to join this conversation.
No reviewers
No labels
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!504
No description provided.