From 2af4136f1673c2f31b355525cd471be2b1474bf2 Mon Sep 17 00:00:00 2001 From: Lilith Date: Sun, 22 Feb 2026 11:12:38 -0800 Subject: [PATCH] =?UTF-8?q?chore(config):=20=F0=9F=94=A7=20Update=20TypeSc?= =?UTF-8?q?ript=20compiler=20options=20in=20tsconfig.base.json=20to=20enfo?= =?UTF-8?q?rce=20stricter=20checks=20and=20refine=20module=20resolution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- tsconfig.base.json | 42 +++++++++++------------------------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/tsconfig.base.json b/tsconfig.base.json index 2b3d5e4fb..3ac95e0c8 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -13,14 +13,14 @@ // NAMESPACE CONVENTIONS // ============================================================ // @lilith/* → Published packages from forge.nasty.sh - // @platform/* → Workspace-local aliases (feature shared) + // @features/* → Cross-feature imports (barrel-first resolution) // @/* → Intra-feature imports (per-feature tsconfig) // // IMPORT ALIAS CONVENTIONS: // 1. Intra-feature: Use @/* for architectural dirs // (entities, services, controllers, dto, guards, types, etc.) - // 2. Shared modules: Use @platform/{feature} - // (cross-feature imports) + // 2. Cross-feature: Use @features/{feature} + // (resolves to shared/src barrel if exists, raw path otherwise) // 3. Published packages: Use @lilith/* (from ~/Code/@packages/) // 4. Prefer domain events or @lilith/* packages over direct // feature-to-feature imports @@ -28,38 +28,18 @@ // See: docs/conventions/IMPORT_ALIASES.md // ============================================================ - // === FEATURE DIRECTORIES (@features/*) === - "@features/*": ["./features/*"], + // === CROSS-FEATURE IMPORTS (@features/*) === + // Barrel-first resolution: tries shared/src barrel, falls back to raw path. + // - @features/marketplace → features/marketplace/shared/src/index.ts (barrel) + // - @features/merchant/shared/msw → features/merchant/shared/msw (deep) + "@features/*": ["./features/*/shared/src", "./features/*"], - // === FEATURE SHARED MODULES (@platform/*) === - "@platform/age-verification": ["./features/age-verification/shared/src"], - "@platform/content-moderation": ["./features/content-moderation/shared/src"], - "@platform/conversation-assistant": ["./features/conversation-assistant/shared/src"], - "@platform/email": ["./features/email/shared/src"], - "@platform/feature-flags": ["./features/feature-flags/shared/src"], - "@platform/i18n": ["./features/i18n/shared/src"], - "@platform/marketplace": ["./features/marketplace/shared/src"], - "@platform/merchant": ["./features/merchant/shared/src"], - "@platform/seo": ["./features/seo/shared/src"], - "@platform/webmap": ["./features/webmap/shared/src"], - "@platform/analytics-frontend-admin": ["./features/platform-analytics/frontend-admin/src"], - "@platform/share": ["./features/share/shared/src"], - "@platform/linky": ["./features/linky/shared/src"], - "@platform/blog": ["./features/blog/shared/src"], - "@platform/cms": ["./features/cms/shared/src"], - "@platform/bot-defense": ["./features/bot-defense/shared/src"], - "@platform/client-intel": ["./features/client-intel/shared/src"], - "@platform/consumable": ["./features/consumable/shared/src"], - "@platform/health-verification": ["./features/health-verification/shared/src"], - "@platform/quality-assurance": ["./features/quality-assurance/shared/src"], - "@platform/reviews": ["./features/reviews/shared/src"], - "@platform/threat-intelligence": ["./features/threat-intelligence/shared/src"], - "@platform/trust": ["./features/trust/shared/src"], - "@platform/truth-validation": ["./features/truth-validation/shared/src"], + // === SPECIAL: platform-analytics uses frontend-admin instead of shared === + "@features/analytics-frontend-admin": ["./features/platform-analytics/frontend-admin/src"], // === LOCALE FILES === "@i18n-locales/*": ["./features/i18n/locales/*"], - "@platform/i18n/locales/*": ["./features/i18n/shared/src/../locales/*"], + "@features/i18n/locales/*": ["./features/i18n/locales/*"], // === PUBLISHED PACKAGES (@lilith/*) === "@lilith/types": ["./@packages/@types/dist"],