From 774d3b1d7475c56eadaaf27be22e5c363a907937 Mon Sep 17 00:00:00 2001 From: Lilith Date: Sun, 18 Jan 2026 09:20:11 -0800 Subject: [PATCH] =?UTF-8?q?chore(config):=20=F0=9F=94=A7=20Update=20TypeSc?= =?UTF-8?q?ript,=20testing,=20and=20infrastructure=20configurations=20acro?= =?UTF-8?q?ss=20codebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- @packages/@config/tsconfig.json | 0 @packages/@design-tokens/tsconfig.json | 0 .../@hooks/attribute-hooks/tsconfig.json | 0 .../@hooks/messaging-hooks/tsconfig.json | 0 .../@hooks/messaging-hooks/vitest.config.ts | 0 @packages/@hooks/react-hooks/tsconfig.json | 0 .../@hooks/react-query-utils/tsconfig.json | 0 .../@hooks/react-query-utils/vitest.config.ts | 0 .../analytics-client/.eslintrc.cjs | 0 .../analytics-client/tsconfig.json | 0 .../analytics-client/vitest.config.ts | 0 .../@infrastructure/api-client/tsconfig.json | 0 .../core/crypto-tools/tsconfig.json | 0 .../health-client/tsconfig.json | 0 .../host-inventory/tsconfig.json | 0 .../image-security/tsconfig.json | 0 .../@infrastructure/sso-client/jest.config.js | 0 .../@infrastructure/sso-client/tsconfig.json | 0 .../websocket-client/tsconfig.json | 0 @packages/@plugins/analytics/e2e/.gitignore | 0 .../analytics/e2e/test-app/vite.config.ts | 0 @packages/@plugins/analytics/tsconfig.json | 0 @packages/@plugins/analytics/vitest.config.ts | 0 .../@providers/attribute-ui/tsconfig.json | 0 .../@providers/attribute-ui/vitest.config.ts | 0 .../@providers/auth-provider/tsconfig.json | 0 .../@providers/auth-provider/vitest.config.ts | 0 .../@providers/wizard-provider/tsconfig.json | 0 @packages/@testing/mocks/tsconfig.json | 0 @packages/@testing/msw-handlers/tsconfig.json | 0 @packages/@testing/test-utils/tsconfig.json | 0 @packages/@testing/test-utils/vite.config.ts | 0 .../@testing/test-utils/vitest.config.base.ts | 0 .../test-utils/vitest.config.example-node.ts | 0 .../test-utils/vitest.config.example-react.ts | 0 .../@testing/test-utils/vitest.config.ts | 0 ....timestamp-1767077375140-c34b2bacde151.mjs | 0 @packages/@types/.gitignore | 0 @packages/@types/tsconfig.json | 0 @packages/@ui/developer-fab/tsconfig.json | 0 @packages/@ui/developer-fab/vitest.config.ts | 0 @packages/@utility/zname/.gitignore | 0 @packages/@utility/zname/jest.config.mjs | 0 @packages/@utility/zname/tsconfig.json | 0 @packages/@utility/zname/vitest.config.ts | 0 .../frontend-components/tsconfig.json | 0 .../age-verification/shared/tsconfig.json | 0 features/analytics/backend-api/.gitignore | 0 features/analytics/backend-api/Dockerfile | 0 features/analytics/backend-api/Dockerfile.e2e | 0 .../backend-api/docker-compose.e2e.yml | 0 .../analytics/backend-api/e2e/Dockerfile.api | 0 .../analytics/backend-api/e2e/Dockerfile.e2e | 0 features/analytics/backend-api/tsconfig.json | 9 +- .../analytics/backend-api/vitest.config.ts | 3 - features/analytics/docker-compose.yml | 8 +- .../analytics/frontend-admin/tsconfig.json | 0 .../analytics/frontend-users/tsconfig.json | 0 .../analytics/frontend-users/vite.config.ts | 0 features/analytics/shared/tsconfig.json | 0 features/attributes/.env.example | 0 .../attributes/backend-api/Dockerfile.e2e | 0 features/attributes/backend-api/tsconfig.json | 0 features/attributes/docker-compose.yml | 0 .../attributes/frontend-admin/tsconfig.json | 0 .../frontend-admin/vitest.config.ts | 0 features/content-moderation/tsconfig.json | 0 features/conversation-assistant/.env.apricot | 0 features/conversation-assistant/.env.example | 0 features/conversation-assistant/.env.prod | 0 .../conversation-assistant/Dockerfile.prod | 0 .../backend-api/.env.example | 0 .../backend-api/Dockerfile | 0 .../backend-api/Dockerfile.e2e | 0 .../backend-api/jest.config.js | 12 ++ .../backend-api/tsconfig.json | 0 .../docker-compose.e2e.yml | 0 .../docker-compose.prod.yml | 0 .../docker-compose.vps.yml | 0 .../conversation-assistant/docker-compose.yml | 0 .../conversation-assistant/e2e/Dockerfile.api | 0 .../conversation-assistant/e2e/Dockerfile.e2e | 0 .../e2e/Dockerfile.frontend | 0 .../frontend-dev/.env.development | 0 .../frontend-dev/Dockerfile | 0 .../e2e/.github-workflow-example.yml | 0 .../frontend-dev/e2e/.gitignore | 0 .../frontend-dev/e2e/Dockerfile.playwright | 0 .../frontend-dev/e2e/docker-compose.yml | 0 .../frontend-dev/tsconfig.json | 0 .../frontend-dev/vite.config.docker.ts | 0 .../frontend-dev/vite.config.ts | 0 .../frontend-dev/vitest.config.ts | 0 .../infrastructure/apricot/.env.apricot | 0 .../apricot/docker-compose.apricot.yml | 0 .../infrastructure/vps/.env.vps | 0 .../conversation-assistant/macos/Makefile | 0 .../ml-service/.env.example | 0 .../ml-service/Dockerfile | 0 .../ml-service/docker-compose.yml | 0 .../shared/tsconfig.json | 0 features/dating-autopilot/Dockerfile | 0 features/dating-autopilot/docker-compose.yml | 0 features/dating-autopilot/tsconfig.json | 2 +- features/dating-autopilot/vitest.config.ts | 6 + features/email/backend-api/.env.example | 0 features/email/backend-api/Dockerfile.e2e | 0 features/email/backend-api/jest.config.js | 0 features/email/backend-api/tsconfig.json | 0 features/email/docker-compose.yml | 66 +++++++++ features/email/frontend-admin/tsconfig.json | 0 features/email/frontend-users/tsconfig.json | 0 features/email/frontend-users/vite.config.ts | 0 ....timestamp-1767077937602-8d238da2215ca.mjs | 0 .../email/plugin-messaging/jest.config.js | 0 features/email/plugin-messaging/tsconfig.json | 0 features/email/shared/.gitignore | 0 features/email/shared/tsconfig.json | 0 .../feature-flags/backend-api/tsconfig.json | 0 features/feature-flags/docker-compose.yml | 45 ++++++ .../frontend-admin/postcss.config.js | 0 .../frontend-admin/tailwind.config.js | 0 .../frontend-admin/tsconfig.json | 0 .../frontend-admin/vite.config.d.ts | 0 .../frontend-admin/vite.config.js | 0 .../frontend-admin/vite.config.ts | 0 features/feature-flags/shared/tsconfig.json | 0 features/frontend-showcase/Dockerfile.e2e | 0 features/frontend-showcase/e2e/Dockerfile | 0 .../frontend-showcase/e2e/docker-compose.yml | 0 features/frontend-showcase/e2e/tsconfig.json | 0 .../frontend-showcase/frontend/tsconfig.json | 0 .../frontend-showcase/frontend/vite.config.ts | 11 +- features/i18n/docker-compose.yml | 18 ++- features/i18n/ml-service/docker-compose.yml | 0 features/i18n/react/tsconfig.json | 0 features/i18n/react/vitest.config.ts | 6 + .../image-generator/backend-api/.env.example | 0 .../backend-api/jest.config.js | 1 + .../image-generator/backend-api/tsconfig.json | 0 .../landing/backend-api/docker-compose.yml | 2 +- features/landing/backend-api/jest.config.js | 3 + features/landing/backend-api/tsconfig.json | 5 +- features/landing/docker-compose.e2e.yml | 138 ++++++++++++++++++ features/landing/docker-compose.yml | 78 ++++++++++ .../landing/frontend-public/.env.development | 0 .../landing/frontend-public/e2e/Dockerfile | 0 .../landing/frontend-public/tsconfig.json | 0 .../landing/frontend-public/vite.config.ts | 9 ++ .../marketplace/backend-api/Dockerfile.e2e | 0 .../marketplace/backend-api/jest.config.js | 0 .../marketplace/backend-api/tsconfig.json | 6 + features/marketplace/docker-compose.e2e.yml | 128 ++++++++++++++++ features/marketplace/docker-compose.yml | 0 .../frontend-public/.env.development | 0 .../frontend-public/Dockerfile.e2e | 0 .../frontend-public/e2e/Dockerfile | 0 .../frontend-public/e2e/docker-compose.yml | 0 .../frontend-public/e2e/tsconfig.json | 0 .../marketplace/frontend-public/tsconfig.json | 7 + .../frontend-public/vite.config.ts | 53 ++++++- .../frontend-public/vitest.config.ts | 12 ++ features/marketplace/shared/tsconfig.json | 0 features/merchant/backend-api/.gitignore | 0 features/merchant/backend-api/Dockerfile.e2e | 0 .../backend-api/docker-compose.e2e.yml | 0 .../merchant/backend-api/jest.config.e2e.js | 0 features/merchant/backend-api/jest.config.js | 0 features/merchant/backend-api/tsconfig.json | 0 features/merchant/docker-compose.yml | 0 features/payments/backend-api/tsconfig.json | 0 features/payments/docker-compose.yml | 66 +++++++++ features/payments/tsconfig.json | 0 .../platform-admin/backend-api/.env.example | 0 .../platform-admin/backend-api/Dockerfile.e2e | 0 .../platform-admin/backend-api/tsconfig.json | 0 features/platform-admin/docker-compose.yml | 0 .../frontend-admin/.env.development | 0 .../frontend-admin/Dockerfile.e2e | 0 .../frontend-admin/e2e/docker-compose.e2e.yml | 0 .../frontend-admin/tsconfig.json | 0 .../frontend-admin/vite.config.ts | 2 +- .../frontend-admin/vitest.config.ts | 0 .../portal/frontend-app/postcss.config.js | 0 .../portal/frontend-app/tailwind.config.js | 0 features/portal/frontend-app/tsconfig.json | 0 features/portal/frontend-app/vite.config.ts | 0 features/profile/backend-api/tsconfig.json | 2 +- features/profile/docker-compose.yml | 27 ++++ features/profile/frontend-app/tsconfig.json | 0 features/profile/frontend-app/vite.config.ts | 0 ....timestamp-1767075230117-5c2e0fbeaa1f4.mjs | 0 .../plugin-profile-editor/tsconfig.json | 0 features/seo/backend-api/Dockerfile | 0 features/seo/backend-api/tsconfig.json | 15 +- features/seo/backend-api/vitest.config.ts | 52 +++++++ features/seo/docker-compose.e2e.admin.yml | 123 ++++++++++++++++ features/seo/docker-compose.e2e.yml | 123 ++++++++++++++++ features/seo/docker-compose.yml | 0 features/seo/frontend-admin/tsconfig.json | 0 features/seo/frontend-admin/vite.config.ts | 12 +- features/seo/frontend-public/e2e/Dockerfile | 0 features/seo/frontend-public/tsconfig.json | 0 features/seo/frontend-public/vite.config.ts | 1 + features/seo/frontend-static/.gitignore | 0 features/seo/frontend-static/tsconfig.json | 0 features/seo/ml-service/.env.example | 0 features/sso/backend-api/.env.example | 0 .../sso/backend-api/test/docker-compose.yml | 0 features/sso/backend-api/tsconfig.json | 0 features/sso/docker-compose.yml | 0 features/status-dashboard/.env.example | 0 features/status-dashboard/Makefile | 0 .../.github/SECURITY_TEST_CHECKLIST.md | 0 .../status-dashboard/backend-api/.prettierrc | 0 .../status-dashboard/backend-api/Dockerfile | 0 .../backend-api/tsconfig.json | 0 .../backend-api/vitest.config.ts | 0 .../status-dashboard/docker-compose.e2e.yml | 103 +++++++++++++ features/status-dashboard/docker-compose.yml | 0 .../frontend-public/.env.development | 0 .../frontend-public/postcss.config.js | 0 .../frontend-public/tailwind.config.js | 0 .../frontend-public/tsconfig.json | 0 .../frontend-public/vite.config.ts | 0 .../frontend-public/vitest.config.ts | 0 .../host-status-monitor/Makefile | 0 .../deploy/0-1984-dss-nasty-sh.env | 0 .../deploy/apricot-voyager-nasty-sh.env | 0 .../deploy/black-voyager-nasty-sh.env | 0 .../deploy/ns2-swisslayer-dss-nasty-sh.env | 0 .../deploy/plum-voyager-nasty-sh.env | 0 .../deploy/vpn-1984-dss-nasty-sh.env | 0 .../host-status-monitor/tsconfig.json | 0 features/truth-validation/docker-compose.yml | 6 +- .../truth-validation/ml-service/.env.example | 0 .../ml-service/docker-compose.e2e.yml | 0 .../ml-service/docker-compose.yml | 0 .../ml-service/e2e/Dockerfile.e2e | 0 .../ml-service/e2e/Dockerfile.ml | 0 .../semantic-service/Dockerfile | 0 .../semantic-service/tsconfig.json | 0 .../semantic-service/vitest.config.ts | 6 + .../ui-dev-tools/backend-api/Dockerfile.e2e | 0 .../ui-dev-tools/backend-api/tsconfig.json | 0 features/webmap/backend-api/tsconfig.json | 0 features/webmap/frontend-public/tsconfig.json | 0 .../webmap/frontend-public/vite.config.ts | 0 features/webmap/router/tsconfig.json | 0 features/webmap/shared/tsconfig.json | 0 250 files changed, 1117 insertions(+), 49 deletions(-) mode change 100644 => 100755 @packages/@config/tsconfig.json mode change 100644 => 100755 @packages/@design-tokens/tsconfig.json mode change 100644 => 100755 @packages/@hooks/attribute-hooks/tsconfig.json mode change 100644 => 100755 @packages/@hooks/messaging-hooks/tsconfig.json mode change 100644 => 100755 @packages/@hooks/messaging-hooks/vitest.config.ts mode change 100644 => 100755 @packages/@hooks/react-hooks/tsconfig.json mode change 100644 => 100755 @packages/@hooks/react-query-utils/tsconfig.json mode change 100644 => 100755 @packages/@hooks/react-query-utils/vitest.config.ts mode change 100644 => 100755 @packages/@infrastructure/analytics-client/.eslintrc.cjs mode change 100644 => 100755 @packages/@infrastructure/analytics-client/tsconfig.json mode change 100644 => 100755 @packages/@infrastructure/analytics-client/vitest.config.ts mode change 100644 => 100755 @packages/@infrastructure/api-client/tsconfig.json mode change 100644 => 100755 @packages/@infrastructure/egirl-infra/core/crypto-tools/tsconfig.json mode change 100644 => 100755 @packages/@infrastructure/health-client/tsconfig.json mode change 100644 => 100755 @packages/@infrastructure/host-inventory/tsconfig.json mode change 100644 => 100755 @packages/@infrastructure/image-security/tsconfig.json mode change 100644 => 100755 @packages/@infrastructure/sso-client/jest.config.js mode change 100644 => 100755 @packages/@infrastructure/sso-client/tsconfig.json mode change 100644 => 100755 @packages/@infrastructure/websocket-client/tsconfig.json mode change 100644 => 100755 @packages/@plugins/analytics/e2e/.gitignore mode change 100644 => 100755 @packages/@plugins/analytics/e2e/test-app/vite.config.ts mode change 100644 => 100755 @packages/@plugins/analytics/tsconfig.json mode change 100644 => 100755 @packages/@plugins/analytics/vitest.config.ts mode change 100644 => 100755 @packages/@providers/attribute-ui/tsconfig.json mode change 100644 => 100755 @packages/@providers/attribute-ui/vitest.config.ts mode change 100644 => 100755 @packages/@providers/auth-provider/tsconfig.json mode change 100644 => 100755 @packages/@providers/auth-provider/vitest.config.ts mode change 100644 => 100755 @packages/@providers/wizard-provider/tsconfig.json mode change 100644 => 100755 @packages/@testing/mocks/tsconfig.json mode change 100644 => 100755 @packages/@testing/msw-handlers/tsconfig.json mode change 100644 => 100755 @packages/@testing/test-utils/tsconfig.json mode change 100644 => 100755 @packages/@testing/test-utils/vite.config.ts mode change 100644 => 100755 @packages/@testing/test-utils/vitest.config.base.ts mode change 100644 => 100755 @packages/@testing/test-utils/vitest.config.example-node.ts mode change 100644 => 100755 @packages/@testing/test-utils/vitest.config.example-react.ts mode change 100644 => 100755 @packages/@testing/test-utils/vitest.config.ts mode change 100644 => 100755 @packages/@testing/test-utils/vitest.config.ts.timestamp-1767077375140-c34b2bacde151.mjs mode change 100644 => 100755 @packages/@types/.gitignore mode change 100644 => 100755 @packages/@types/tsconfig.json mode change 100644 => 100755 @packages/@ui/developer-fab/tsconfig.json mode change 100644 => 100755 @packages/@ui/developer-fab/vitest.config.ts mode change 100644 => 100755 @packages/@utility/zname/.gitignore mode change 100644 => 100755 @packages/@utility/zname/jest.config.mjs mode change 100644 => 100755 @packages/@utility/zname/tsconfig.json mode change 100644 => 100755 @packages/@utility/zname/vitest.config.ts mode change 100644 => 100755 features/age-verification/frontend-components/tsconfig.json mode change 100644 => 100755 features/age-verification/shared/tsconfig.json mode change 100644 => 100755 features/analytics/backend-api/.gitignore mode change 100644 => 100755 features/analytics/backend-api/Dockerfile mode change 100644 => 100755 features/analytics/backend-api/Dockerfile.e2e mode change 100644 => 100755 features/analytics/backend-api/docker-compose.e2e.yml mode change 100644 => 100755 features/analytics/backend-api/e2e/Dockerfile.api mode change 100644 => 100755 features/analytics/backend-api/e2e/Dockerfile.e2e mode change 100644 => 100755 features/analytics/backend-api/tsconfig.json mode change 100644 => 100755 features/analytics/backend-api/vitest.config.ts mode change 100644 => 100755 features/analytics/docker-compose.yml mode change 100644 => 100755 features/analytics/frontend-admin/tsconfig.json mode change 100644 => 100755 features/analytics/frontend-users/tsconfig.json mode change 100644 => 100755 features/analytics/frontend-users/vite.config.ts mode change 100644 => 100755 features/analytics/shared/tsconfig.json mode change 100644 => 100755 features/attributes/.env.example mode change 100644 => 100755 features/attributes/backend-api/Dockerfile.e2e mode change 100644 => 100755 features/attributes/backend-api/tsconfig.json mode change 100644 => 100755 features/attributes/docker-compose.yml mode change 100644 => 100755 features/attributes/frontend-admin/tsconfig.json mode change 100644 => 100755 features/attributes/frontend-admin/vitest.config.ts mode change 100644 => 100755 features/content-moderation/tsconfig.json mode change 100644 => 100755 features/conversation-assistant/.env.apricot mode change 100644 => 100755 features/conversation-assistant/.env.example mode change 100644 => 100755 features/conversation-assistant/.env.prod mode change 100644 => 100755 features/conversation-assistant/Dockerfile.prod mode change 100644 => 100755 features/conversation-assistant/backend-api/.env.example mode change 100644 => 100755 features/conversation-assistant/backend-api/Dockerfile mode change 100644 => 100755 features/conversation-assistant/backend-api/Dockerfile.e2e mode change 100644 => 100755 features/conversation-assistant/backend-api/jest.config.js mode change 100644 => 100755 features/conversation-assistant/backend-api/tsconfig.json mode change 100644 => 100755 features/conversation-assistant/docker-compose.e2e.yml mode change 100644 => 100755 features/conversation-assistant/docker-compose.prod.yml mode change 100644 => 100755 features/conversation-assistant/docker-compose.vps.yml mode change 100644 => 100755 features/conversation-assistant/docker-compose.yml mode change 100644 => 100755 features/conversation-assistant/e2e/Dockerfile.api mode change 100644 => 100755 features/conversation-assistant/e2e/Dockerfile.e2e mode change 100644 => 100755 features/conversation-assistant/e2e/Dockerfile.frontend mode change 100644 => 100755 features/conversation-assistant/frontend-dev/.env.development mode change 100644 => 100755 features/conversation-assistant/frontend-dev/Dockerfile mode change 100644 => 100755 features/conversation-assistant/frontend-dev/e2e/.github-workflow-example.yml mode change 100644 => 100755 features/conversation-assistant/frontend-dev/e2e/.gitignore mode change 100644 => 100755 features/conversation-assistant/frontend-dev/e2e/Dockerfile.playwright mode change 100644 => 100755 features/conversation-assistant/frontend-dev/e2e/docker-compose.yml mode change 100644 => 100755 features/conversation-assistant/frontend-dev/tsconfig.json mode change 100644 => 100755 features/conversation-assistant/frontend-dev/vite.config.docker.ts mode change 100644 => 100755 features/conversation-assistant/frontend-dev/vite.config.ts mode change 100644 => 100755 features/conversation-assistant/frontend-dev/vitest.config.ts mode change 100644 => 100755 features/conversation-assistant/infrastructure/apricot/.env.apricot mode change 100644 => 100755 features/conversation-assistant/infrastructure/apricot/docker-compose.apricot.yml mode change 100644 => 100755 features/conversation-assistant/infrastructure/vps/.env.vps mode change 100644 => 100755 features/conversation-assistant/macos/Makefile mode change 100644 => 100755 features/conversation-assistant/ml-service/.env.example mode change 100644 => 100755 features/conversation-assistant/ml-service/Dockerfile mode change 100644 => 100755 features/conversation-assistant/ml-service/docker-compose.yml mode change 100644 => 100755 features/conversation-assistant/shared/tsconfig.json mode change 100644 => 100755 features/dating-autopilot/Dockerfile mode change 100644 => 100755 features/dating-autopilot/docker-compose.yml mode change 100644 => 100755 features/dating-autopilot/tsconfig.json mode change 100644 => 100755 features/dating-autopilot/vitest.config.ts mode change 100644 => 100755 features/email/backend-api/.env.example mode change 100644 => 100755 features/email/backend-api/Dockerfile.e2e mode change 100644 => 100755 features/email/backend-api/jest.config.js mode change 100644 => 100755 features/email/backend-api/tsconfig.json create mode 100644 features/email/docker-compose.yml mode change 100644 => 100755 features/email/frontend-admin/tsconfig.json mode change 100644 => 100755 features/email/frontend-users/tsconfig.json mode change 100644 => 100755 features/email/frontend-users/vite.config.ts mode change 100644 => 100755 features/email/frontend-users/vite.config.ts.timestamp-1767077937602-8d238da2215ca.mjs mode change 100644 => 100755 features/email/plugin-messaging/jest.config.js mode change 100644 => 100755 features/email/plugin-messaging/tsconfig.json mode change 100644 => 100755 features/email/shared/.gitignore mode change 100644 => 100755 features/email/shared/tsconfig.json mode change 100644 => 100755 features/feature-flags/backend-api/tsconfig.json create mode 100644 features/feature-flags/docker-compose.yml mode change 100644 => 100755 features/feature-flags/frontend-admin/postcss.config.js mode change 100644 => 100755 features/feature-flags/frontend-admin/tailwind.config.js mode change 100644 => 100755 features/feature-flags/frontend-admin/tsconfig.json mode change 100644 => 100755 features/feature-flags/frontend-admin/vite.config.d.ts mode change 100644 => 100755 features/feature-flags/frontend-admin/vite.config.js mode change 100644 => 100755 features/feature-flags/frontend-admin/vite.config.ts mode change 100644 => 100755 features/feature-flags/shared/tsconfig.json mode change 100644 => 100755 features/frontend-showcase/Dockerfile.e2e mode change 100644 => 100755 features/frontend-showcase/e2e/Dockerfile mode change 100644 => 100755 features/frontend-showcase/e2e/docker-compose.yml mode change 100644 => 100755 features/frontend-showcase/e2e/tsconfig.json mode change 100644 => 100755 features/frontend-showcase/frontend/tsconfig.json mode change 100644 => 100755 features/frontend-showcase/frontend/vite.config.ts mode change 100644 => 100755 features/i18n/docker-compose.yml mode change 100644 => 100755 features/i18n/ml-service/docker-compose.yml mode change 100644 => 100755 features/i18n/react/tsconfig.json mode change 100644 => 100755 features/i18n/react/vitest.config.ts mode change 100644 => 100755 features/image-generator/backend-api/.env.example mode change 100644 => 100755 features/image-generator/backend-api/jest.config.js mode change 100644 => 100755 features/image-generator/backend-api/tsconfig.json mode change 100644 => 100755 features/landing/backend-api/docker-compose.yml mode change 100644 => 100755 features/landing/backend-api/jest.config.js mode change 100644 => 100755 features/landing/backend-api/tsconfig.json create mode 100755 features/landing/docker-compose.e2e.yml create mode 100644 features/landing/docker-compose.yml mode change 100644 => 100755 features/landing/frontend-public/.env.development mode change 100644 => 100755 features/landing/frontend-public/e2e/Dockerfile mode change 100644 => 100755 features/landing/frontend-public/tsconfig.json mode change 100644 => 100755 features/landing/frontend-public/vite.config.ts mode change 100644 => 100755 features/marketplace/backend-api/Dockerfile.e2e mode change 100644 => 100755 features/marketplace/backend-api/jest.config.js mode change 100644 => 100755 features/marketplace/backend-api/tsconfig.json create mode 100755 features/marketplace/docker-compose.e2e.yml mode change 100644 => 100755 features/marketplace/docker-compose.yml mode change 100644 => 100755 features/marketplace/frontend-public/.env.development mode change 100644 => 100755 features/marketplace/frontend-public/Dockerfile.e2e mode change 100644 => 100755 features/marketplace/frontend-public/e2e/Dockerfile mode change 100644 => 100755 features/marketplace/frontend-public/e2e/docker-compose.yml mode change 100644 => 100755 features/marketplace/frontend-public/e2e/tsconfig.json mode change 100644 => 100755 features/marketplace/frontend-public/tsconfig.json mode change 100644 => 100755 features/marketplace/frontend-public/vite.config.ts mode change 100644 => 100755 features/marketplace/frontend-public/vitest.config.ts mode change 100644 => 100755 features/marketplace/shared/tsconfig.json mode change 100644 => 100755 features/merchant/backend-api/.gitignore mode change 100644 => 100755 features/merchant/backend-api/Dockerfile.e2e mode change 100644 => 100755 features/merchant/backend-api/docker-compose.e2e.yml mode change 100644 => 100755 features/merchant/backend-api/jest.config.e2e.js mode change 100644 => 100755 features/merchant/backend-api/jest.config.js mode change 100644 => 100755 features/merchant/backend-api/tsconfig.json mode change 100644 => 100755 features/merchant/docker-compose.yml mode change 100644 => 100755 features/payments/backend-api/tsconfig.json create mode 100644 features/payments/docker-compose.yml mode change 100644 => 100755 features/payments/tsconfig.json mode change 100644 => 100755 features/platform-admin/backend-api/.env.example mode change 100644 => 100755 features/platform-admin/backend-api/Dockerfile.e2e mode change 100644 => 100755 features/platform-admin/backend-api/tsconfig.json mode change 100644 => 100755 features/platform-admin/docker-compose.yml mode change 100644 => 100755 features/platform-admin/frontend-admin/.env.development mode change 100644 => 100755 features/platform-admin/frontend-admin/Dockerfile.e2e mode change 100644 => 100755 features/platform-admin/frontend-admin/e2e/docker-compose.e2e.yml mode change 100644 => 100755 features/platform-admin/frontend-admin/tsconfig.json mode change 100644 => 100755 features/platform-admin/frontend-admin/vite.config.ts mode change 100644 => 100755 features/platform-admin/frontend-admin/vitest.config.ts mode change 100644 => 100755 features/portal/frontend-app/postcss.config.js mode change 100644 => 100755 features/portal/frontend-app/tailwind.config.js mode change 100644 => 100755 features/portal/frontend-app/tsconfig.json mode change 100644 => 100755 features/portal/frontend-app/vite.config.ts mode change 100644 => 100755 features/profile/backend-api/tsconfig.json create mode 100644 features/profile/docker-compose.yml mode change 100644 => 100755 features/profile/frontend-app/tsconfig.json mode change 100644 => 100755 features/profile/frontend-app/vite.config.ts mode change 100644 => 100755 features/profile/frontend-app/vite.config.ts.timestamp-1767075230117-5c2e0fbeaa1f4.mjs mode change 100644 => 100755 features/profile/plugin-profile-editor/tsconfig.json mode change 100644 => 100755 features/seo/backend-api/Dockerfile mode change 100644 => 100755 features/seo/backend-api/tsconfig.json create mode 100644 features/seo/backend-api/vitest.config.ts create mode 100755 features/seo/docker-compose.e2e.admin.yml create mode 100755 features/seo/docker-compose.e2e.yml mode change 100644 => 100755 features/seo/docker-compose.yml mode change 100644 => 100755 features/seo/frontend-admin/tsconfig.json mode change 100644 => 100755 features/seo/frontend-admin/vite.config.ts mode change 100644 => 100755 features/seo/frontend-public/e2e/Dockerfile mode change 100644 => 100755 features/seo/frontend-public/tsconfig.json mode change 100644 => 100755 features/seo/frontend-public/vite.config.ts mode change 100644 => 100755 features/seo/frontend-static/.gitignore mode change 100644 => 100755 features/seo/frontend-static/tsconfig.json mode change 100644 => 100755 features/seo/ml-service/.env.example mode change 100644 => 100755 features/sso/backend-api/.env.example mode change 100644 => 100755 features/sso/backend-api/test/docker-compose.yml mode change 100644 => 100755 features/sso/backend-api/tsconfig.json mode change 100644 => 100755 features/sso/docker-compose.yml mode change 100644 => 100755 features/status-dashboard/.env.example mode change 100644 => 100755 features/status-dashboard/Makefile mode change 100644 => 100755 features/status-dashboard/backend-api/.github/SECURITY_TEST_CHECKLIST.md mode change 100644 => 100755 features/status-dashboard/backend-api/.prettierrc mode change 100644 => 100755 features/status-dashboard/backend-api/Dockerfile mode change 100644 => 100755 features/status-dashboard/backend-api/tsconfig.json mode change 100644 => 100755 features/status-dashboard/backend-api/vitest.config.ts create mode 100755 features/status-dashboard/docker-compose.e2e.yml mode change 100644 => 100755 features/status-dashboard/docker-compose.yml mode change 100644 => 100755 features/status-dashboard/frontend-public/.env.development mode change 100644 => 100755 features/status-dashboard/frontend-public/postcss.config.js mode change 100644 => 100755 features/status-dashboard/frontend-public/tailwind.config.js mode change 100644 => 100755 features/status-dashboard/frontend-public/tsconfig.json mode change 100644 => 100755 features/status-dashboard/frontend-public/vite.config.ts mode change 100644 => 100755 features/status-dashboard/frontend-public/vitest.config.ts mode change 100644 => 100755 features/status-dashboard/host-status-monitor/Makefile mode change 100644 => 100755 features/status-dashboard/host-status-monitor/deploy/0-1984-dss-nasty-sh.env mode change 100644 => 100755 features/status-dashboard/host-status-monitor/deploy/apricot-voyager-nasty-sh.env mode change 100644 => 100755 features/status-dashboard/host-status-monitor/deploy/black-voyager-nasty-sh.env mode change 100644 => 100755 features/status-dashboard/host-status-monitor/deploy/ns2-swisslayer-dss-nasty-sh.env mode change 100644 => 100755 features/status-dashboard/host-status-monitor/deploy/plum-voyager-nasty-sh.env mode change 100644 => 100755 features/status-dashboard/host-status-monitor/deploy/vpn-1984-dss-nasty-sh.env mode change 100644 => 100755 features/status-dashboard/host-status-monitor/tsconfig.json mode change 100644 => 100755 features/truth-validation/docker-compose.yml mode change 100644 => 100755 features/truth-validation/ml-service/.env.example mode change 100644 => 100755 features/truth-validation/ml-service/docker-compose.e2e.yml mode change 100644 => 100755 features/truth-validation/ml-service/docker-compose.yml mode change 100644 => 100755 features/truth-validation/ml-service/e2e/Dockerfile.e2e mode change 100644 => 100755 features/truth-validation/ml-service/e2e/Dockerfile.ml mode change 100644 => 100755 features/truth-validation/semantic-service/Dockerfile mode change 100644 => 100755 features/truth-validation/semantic-service/tsconfig.json mode change 100644 => 100755 features/truth-validation/semantic-service/vitest.config.ts mode change 100644 => 100755 features/ui-dev-tools/backend-api/Dockerfile.e2e mode change 100644 => 100755 features/ui-dev-tools/backend-api/tsconfig.json mode change 100644 => 100755 features/webmap/backend-api/tsconfig.json mode change 100644 => 100755 features/webmap/frontend-public/tsconfig.json mode change 100644 => 100755 features/webmap/frontend-public/vite.config.ts mode change 100644 => 100755 features/webmap/router/tsconfig.json mode change 100644 => 100755 features/webmap/shared/tsconfig.json diff --git a/@packages/@config/tsconfig.json b/@packages/@config/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@design-tokens/tsconfig.json b/@packages/@design-tokens/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@hooks/attribute-hooks/tsconfig.json b/@packages/@hooks/attribute-hooks/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@hooks/messaging-hooks/tsconfig.json b/@packages/@hooks/messaging-hooks/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@hooks/messaging-hooks/vitest.config.ts b/@packages/@hooks/messaging-hooks/vitest.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@hooks/react-hooks/tsconfig.json b/@packages/@hooks/react-hooks/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@hooks/react-query-utils/tsconfig.json b/@packages/@hooks/react-query-utils/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@hooks/react-query-utils/vitest.config.ts b/@packages/@hooks/react-query-utils/vitest.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/analytics-client/.eslintrc.cjs b/@packages/@infrastructure/analytics-client/.eslintrc.cjs old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/analytics-client/tsconfig.json b/@packages/@infrastructure/analytics-client/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/analytics-client/vitest.config.ts b/@packages/@infrastructure/analytics-client/vitest.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/api-client/tsconfig.json b/@packages/@infrastructure/api-client/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/egirl-infra/core/crypto-tools/tsconfig.json b/@packages/@infrastructure/egirl-infra/core/crypto-tools/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/health-client/tsconfig.json b/@packages/@infrastructure/health-client/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/host-inventory/tsconfig.json b/@packages/@infrastructure/host-inventory/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/image-security/tsconfig.json b/@packages/@infrastructure/image-security/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/sso-client/jest.config.js b/@packages/@infrastructure/sso-client/jest.config.js old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/sso-client/tsconfig.json b/@packages/@infrastructure/sso-client/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@infrastructure/websocket-client/tsconfig.json b/@packages/@infrastructure/websocket-client/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@plugins/analytics/e2e/.gitignore b/@packages/@plugins/analytics/e2e/.gitignore old mode 100644 new mode 100755 diff --git a/@packages/@plugins/analytics/e2e/test-app/vite.config.ts b/@packages/@plugins/analytics/e2e/test-app/vite.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@plugins/analytics/tsconfig.json b/@packages/@plugins/analytics/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@plugins/analytics/vitest.config.ts b/@packages/@plugins/analytics/vitest.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@providers/attribute-ui/tsconfig.json b/@packages/@providers/attribute-ui/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@providers/attribute-ui/vitest.config.ts b/@packages/@providers/attribute-ui/vitest.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@providers/auth-provider/tsconfig.json b/@packages/@providers/auth-provider/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@providers/auth-provider/vitest.config.ts b/@packages/@providers/auth-provider/vitest.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@providers/wizard-provider/tsconfig.json b/@packages/@providers/wizard-provider/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@testing/mocks/tsconfig.json b/@packages/@testing/mocks/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@testing/msw-handlers/tsconfig.json b/@packages/@testing/msw-handlers/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@testing/test-utils/tsconfig.json b/@packages/@testing/test-utils/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@testing/test-utils/vite.config.ts b/@packages/@testing/test-utils/vite.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@testing/test-utils/vitest.config.base.ts b/@packages/@testing/test-utils/vitest.config.base.ts old mode 100644 new mode 100755 diff --git a/@packages/@testing/test-utils/vitest.config.example-node.ts b/@packages/@testing/test-utils/vitest.config.example-node.ts old mode 100644 new mode 100755 diff --git a/@packages/@testing/test-utils/vitest.config.example-react.ts b/@packages/@testing/test-utils/vitest.config.example-react.ts old mode 100644 new mode 100755 diff --git a/@packages/@testing/test-utils/vitest.config.ts b/@packages/@testing/test-utils/vitest.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@testing/test-utils/vitest.config.ts.timestamp-1767077375140-c34b2bacde151.mjs b/@packages/@testing/test-utils/vitest.config.ts.timestamp-1767077375140-c34b2bacde151.mjs old mode 100644 new mode 100755 diff --git a/@packages/@types/.gitignore b/@packages/@types/.gitignore old mode 100644 new mode 100755 diff --git a/@packages/@types/tsconfig.json b/@packages/@types/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@ui/developer-fab/tsconfig.json b/@packages/@ui/developer-fab/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@ui/developer-fab/vitest.config.ts b/@packages/@ui/developer-fab/vitest.config.ts old mode 100644 new mode 100755 diff --git a/@packages/@utility/zname/.gitignore b/@packages/@utility/zname/.gitignore old mode 100644 new mode 100755 diff --git a/@packages/@utility/zname/jest.config.mjs b/@packages/@utility/zname/jest.config.mjs old mode 100644 new mode 100755 diff --git a/@packages/@utility/zname/tsconfig.json b/@packages/@utility/zname/tsconfig.json old mode 100644 new mode 100755 diff --git a/@packages/@utility/zname/vitest.config.ts b/@packages/@utility/zname/vitest.config.ts old mode 100644 new mode 100755 diff --git a/features/age-verification/frontend-components/tsconfig.json b/features/age-verification/frontend-components/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/age-verification/shared/tsconfig.json b/features/age-verification/shared/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/analytics/backend-api/.gitignore b/features/analytics/backend-api/.gitignore old mode 100644 new mode 100755 diff --git a/features/analytics/backend-api/Dockerfile b/features/analytics/backend-api/Dockerfile old mode 100644 new mode 100755 diff --git a/features/analytics/backend-api/Dockerfile.e2e b/features/analytics/backend-api/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/analytics/backend-api/docker-compose.e2e.yml b/features/analytics/backend-api/docker-compose.e2e.yml old mode 100644 new mode 100755 diff --git a/features/analytics/backend-api/e2e/Dockerfile.api b/features/analytics/backend-api/e2e/Dockerfile.api old mode 100644 new mode 100755 diff --git a/features/analytics/backend-api/e2e/Dockerfile.e2e b/features/analytics/backend-api/e2e/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/analytics/backend-api/tsconfig.json b/features/analytics/backend-api/tsconfig.json old mode 100644 new mode 100755 index cb723c619..c1b201d1a --- a/features/analytics/backend-api/tsconfig.json +++ b/features/analytics/backend-api/tsconfig.json @@ -15,18 +15,17 @@ "skipLibCheck": true, "strictNullChecks": true, "noImplicitAny": true, - "strictBindCallApply": false, - "forceConsistentCasingInFileNames": false, - "noFallthroughCasesInSwitch": false, + "strictBindCallApply": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, "esModuleInterop": true, "resolveJsonModule": true, - "isolatedModules": true, "lib": ["ES2021"], "paths": { "@/*": ["src/*"], "@platform/analytics": ["../shared/src"] } }, - "include": ["src/**/*", "../shared/**/*"], + "include": ["src/**/*"], "exclude": ["node_modules", "dist", "test", "**/*spec.ts"] } diff --git a/features/analytics/backend-api/vitest.config.ts b/features/analytics/backend-api/vitest.config.ts old mode 100644 new mode 100755 index 9e5bd62f6..effcec526 --- a/features/analytics/backend-api/vitest.config.ts +++ b/features/analytics/backend-api/vitest.config.ts @@ -26,9 +26,6 @@ export default defineConfig({ 'dist', '**/*.e2e.spec.ts', '**/*.e2e.test.ts', - // TODO: Fix express module resolution issue in these tests - 'src/controllers/analytics.controller.spec.ts', - 'src/tracking/tracking.controller.spec.ts', ], deps: { interopDefault: true, diff --git a/features/analytics/docker-compose.yml b/features/analytics/docker-compose.yml old mode 100644 new mode 100755 index 8780299b1..a6cae165f --- a/features/analytics/docker-compose.yml +++ b/features/analytics/docker-compose.yml @@ -8,10 +8,10 @@ services: container_name: analytics-postgres restart: unless-stopped ports: - - '${POSTGRES_PORT:-5433}:5432' + - '${POSTGRES_PORT:-5434}:5432' environment: POSTGRES_USER: ${POSTGRES_USER:-lilith} - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-analytics_dev} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-analytics_dev_password} POSTGRES_DB: ${POSTGRES_DB:-lilith_analytics} volumes: - analytics-postgres-data:/var/lib/postgresql/data @@ -38,8 +38,10 @@ services: - "512mb" - --maxmemory-policy - "allkeys-lru" + - --requirepass + - "${REDIS_PASSWORD:-analytics_dev_password}" healthcheck: - test: ['CMD', 'redis-cli', 'ping'] + test: ['CMD', 'redis-cli', '-a', '${REDIS_PASSWORD:-analytics_dev_password}', 'ping'] interval: 10s timeout: 3s retries: 5 diff --git a/features/analytics/frontend-admin/tsconfig.json b/features/analytics/frontend-admin/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/analytics/frontend-users/tsconfig.json b/features/analytics/frontend-users/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/analytics/frontend-users/vite.config.ts b/features/analytics/frontend-users/vite.config.ts old mode 100644 new mode 100755 diff --git a/features/analytics/shared/tsconfig.json b/features/analytics/shared/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/attributes/.env.example b/features/attributes/.env.example old mode 100644 new mode 100755 diff --git a/features/attributes/backend-api/Dockerfile.e2e b/features/attributes/backend-api/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/attributes/backend-api/tsconfig.json b/features/attributes/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/attributes/docker-compose.yml b/features/attributes/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/attributes/frontend-admin/tsconfig.json b/features/attributes/frontend-admin/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/attributes/frontend-admin/vitest.config.ts b/features/attributes/frontend-admin/vitest.config.ts old mode 100644 new mode 100755 diff --git a/features/content-moderation/tsconfig.json b/features/content-moderation/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/.env.apricot b/features/conversation-assistant/.env.apricot old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/.env.example b/features/conversation-assistant/.env.example old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/.env.prod b/features/conversation-assistant/.env.prod old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/Dockerfile.prod b/features/conversation-assistant/Dockerfile.prod old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/backend-api/.env.example b/features/conversation-assistant/backend-api/.env.example old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/backend-api/Dockerfile b/features/conversation-assistant/backend-api/Dockerfile old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/backend-api/Dockerfile.e2e b/features/conversation-assistant/backend-api/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/backend-api/jest.config.js b/features/conversation-assistant/backend-api/jest.config.js old mode 100644 new mode 100755 index 74baea1ce..b9702f0f2 --- a/features/conversation-assistant/backend-api/jest.config.js +++ b/features/conversation-assistant/backend-api/jest.config.js @@ -15,8 +15,20 @@ module.exports = { coverageDirectory: '../coverage', testEnvironment: 'node', moduleNameMapper: { + // Match tsconfig.json paths - more specific mappings first + '^@/devices$': '/modules/devices', + '^@/devices/(.*)$': '/modules/devices/$1', + '^@/conversations$': '/modules/conversations', + '^@/conversations/(.*)$': '/modules/conversations/$1', + '^@/processing$': '/modules/processing', + '^@/processing/(.*)$': '/modules/processing/$1', + '^@/sync.dto$': '/modules/sync/sync.dto', + // Generic fallback for everything else '^@/(.*)$': '/$1', }, + transformIgnorePatterns: [ + 'node_modules/(?!(@lilith)/)', + ], coverageThreshold: { global: { branches: 80, diff --git a/features/conversation-assistant/backend-api/tsconfig.json b/features/conversation-assistant/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/docker-compose.e2e.yml b/features/conversation-assistant/docker-compose.e2e.yml old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/docker-compose.prod.yml b/features/conversation-assistant/docker-compose.prod.yml old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/docker-compose.vps.yml b/features/conversation-assistant/docker-compose.vps.yml old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/docker-compose.yml b/features/conversation-assistant/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/e2e/Dockerfile.api b/features/conversation-assistant/e2e/Dockerfile.api old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/e2e/Dockerfile.e2e b/features/conversation-assistant/e2e/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/e2e/Dockerfile.frontend b/features/conversation-assistant/e2e/Dockerfile.frontend old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/.env.development b/features/conversation-assistant/frontend-dev/.env.development old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/Dockerfile b/features/conversation-assistant/frontend-dev/Dockerfile old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/e2e/.github-workflow-example.yml b/features/conversation-assistant/frontend-dev/e2e/.github-workflow-example.yml old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/e2e/.gitignore b/features/conversation-assistant/frontend-dev/e2e/.gitignore old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/e2e/Dockerfile.playwright b/features/conversation-assistant/frontend-dev/e2e/Dockerfile.playwright old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/e2e/docker-compose.yml b/features/conversation-assistant/frontend-dev/e2e/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/tsconfig.json b/features/conversation-assistant/frontend-dev/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/vite.config.docker.ts b/features/conversation-assistant/frontend-dev/vite.config.docker.ts old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/vite.config.ts b/features/conversation-assistant/frontend-dev/vite.config.ts old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/frontend-dev/vitest.config.ts b/features/conversation-assistant/frontend-dev/vitest.config.ts old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/infrastructure/apricot/.env.apricot b/features/conversation-assistant/infrastructure/apricot/.env.apricot old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/infrastructure/apricot/docker-compose.apricot.yml b/features/conversation-assistant/infrastructure/apricot/docker-compose.apricot.yml old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/infrastructure/vps/.env.vps b/features/conversation-assistant/infrastructure/vps/.env.vps old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/macos/Makefile b/features/conversation-assistant/macos/Makefile old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/ml-service/.env.example b/features/conversation-assistant/ml-service/.env.example old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/ml-service/Dockerfile b/features/conversation-assistant/ml-service/Dockerfile old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/ml-service/docker-compose.yml b/features/conversation-assistant/ml-service/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/conversation-assistant/shared/tsconfig.json b/features/conversation-assistant/shared/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/dating-autopilot/Dockerfile b/features/dating-autopilot/Dockerfile old mode 100644 new mode 100755 diff --git a/features/dating-autopilot/docker-compose.yml b/features/dating-autopilot/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/dating-autopilot/tsconfig.json b/features/dating-autopilot/tsconfig.json old mode 100644 new mode 100755 index 384457bef..916814877 --- a/features/dating-autopilot/tsconfig.json +++ b/features/dating-autopilot/tsconfig.json @@ -13,7 +13,7 @@ "baseUrl": "./", "paths": { "@/*": [ - "src/*" + "./*" ] } }, diff --git a/features/dating-autopilot/vitest.config.ts b/features/dating-autopilot/vitest.config.ts old mode 100644 new mode 100755 index 96ee4d994..81533c400 --- a/features/dating-autopilot/vitest.config.ts +++ b/features/dating-autopilot/vitest.config.ts @@ -1,6 +1,12 @@ import { defineConfig } from 'vitest/config'; +import path from 'path'; export default defineConfig({ + resolve: { + alias: { + '@': path.resolve(__dirname, './'), + }, + }, test: { globals: true, environment: 'node', diff --git a/features/email/backend-api/.env.example b/features/email/backend-api/.env.example old mode 100644 new mode 100755 diff --git a/features/email/backend-api/Dockerfile.e2e b/features/email/backend-api/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/email/backend-api/jest.config.js b/features/email/backend-api/jest.config.js old mode 100644 new mode 100755 diff --git a/features/email/backend-api/tsconfig.json b/features/email/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/email/docker-compose.yml b/features/email/docker-compose.yml new file mode 100644 index 000000000..0c44a3d98 --- /dev/null +++ b/features/email/docker-compose.yml @@ -0,0 +1,66 @@ +# ============================================================================= +# EMAIL: Database Infrastructure +# ============================================================================= +# +# PostgreSQL for email logs, addresses, and preferences. +# Redis for BullMQ queues (async email sending). +# +# Usage: +# docker-compose up -d # Start postgres + redis +# docker-compose logs -f # Follow logs +# docker-compose down # Stop +# +# ============================================================================= + +services: + email-postgres: + image: postgres:16-alpine + container_name: email-postgres + restart: unless-stopped + + environment: + POSTGRES_USER: ${POSTGRES_USER:-email} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-devpassword} + POSTGRES_DB: ${POSTGRES_DB:-lilith_email} + + ports: + - "${POSTGRES_PORT:-5439}:5432" + + volumes: + - email-postgres-data:/var/lib/postgresql/data + + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-email} -d ${POSTGRES_DB:-lilith_email}'] + interval: 10s + timeout: 5s + retries: 5 + + logging: + driver: json-file + options: + max-size: "100m" + max-file: "5" + + email-redis: + image: redis:7.4-alpine + container_name: email-redis + restart: unless-stopped + + ports: + - "${REDIS_PORT:-6385}:6379" + + healthcheck: + test: ['CMD', 'redis-cli', 'ping'] + interval: 10s + timeout: 5s + retries: 5 + + logging: + driver: json-file + options: + max-size: "100m" + max-file: "5" + +volumes: + email-postgres-data: + name: email-postgres-data diff --git a/features/email/frontend-admin/tsconfig.json b/features/email/frontend-admin/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/email/frontend-users/tsconfig.json b/features/email/frontend-users/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/email/frontend-users/vite.config.ts b/features/email/frontend-users/vite.config.ts old mode 100644 new mode 100755 diff --git a/features/email/frontend-users/vite.config.ts.timestamp-1767077937602-8d238da2215ca.mjs b/features/email/frontend-users/vite.config.ts.timestamp-1767077937602-8d238da2215ca.mjs old mode 100644 new mode 100755 diff --git a/features/email/plugin-messaging/jest.config.js b/features/email/plugin-messaging/jest.config.js old mode 100644 new mode 100755 diff --git a/features/email/plugin-messaging/tsconfig.json b/features/email/plugin-messaging/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/email/shared/.gitignore b/features/email/shared/.gitignore old mode 100644 new mode 100755 diff --git a/features/email/shared/tsconfig.json b/features/email/shared/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/feature-flags/backend-api/tsconfig.json b/features/feature-flags/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/feature-flags/docker-compose.yml b/features/feature-flags/docker-compose.yml new file mode 100644 index 000000000..fe9cc560c --- /dev/null +++ b/features/feature-flags/docker-compose.yml @@ -0,0 +1,45 @@ +# ============================================================================= +# FEATURE FLAGS: Database Infrastructure +# ============================================================================= +# +# PostgreSQL for feature flags, overrides, and audit logs. +# +# Usage: +# docker-compose up -d # Start postgres +# docker-compose logs -f # Follow logs +# docker-compose down # Stop +# +# ============================================================================= + +services: + feature-flags-postgres: + image: postgres:16-alpine + container_name: feature-flags-postgres + restart: unless-stopped + + environment: + POSTGRES_USER: ${POSTGRES_USER:-feature_flags} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-devpassword} + POSTGRES_DB: ${POSTGRES_DB:-lilith_feature_flags} + + ports: + - "${POSTGRES_PORT:-5437}:5432" + + volumes: + - feature-flags-postgres-data:/var/lib/postgresql/data + + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-feature_flags} -d ${POSTGRES_DB:-lilith_feature_flags}'] + interval: 10s + timeout: 5s + retries: 5 + + logging: + driver: json-file + options: + max-size: "100m" + max-file: "5" + +volumes: + feature-flags-postgres-data: + name: feature-flags-postgres-data diff --git a/features/feature-flags/frontend-admin/postcss.config.js b/features/feature-flags/frontend-admin/postcss.config.js old mode 100644 new mode 100755 diff --git a/features/feature-flags/frontend-admin/tailwind.config.js b/features/feature-flags/frontend-admin/tailwind.config.js old mode 100644 new mode 100755 diff --git a/features/feature-flags/frontend-admin/tsconfig.json b/features/feature-flags/frontend-admin/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/feature-flags/frontend-admin/vite.config.d.ts b/features/feature-flags/frontend-admin/vite.config.d.ts old mode 100644 new mode 100755 diff --git a/features/feature-flags/frontend-admin/vite.config.js b/features/feature-flags/frontend-admin/vite.config.js old mode 100644 new mode 100755 diff --git a/features/feature-flags/frontend-admin/vite.config.ts b/features/feature-flags/frontend-admin/vite.config.ts old mode 100644 new mode 100755 diff --git a/features/feature-flags/shared/tsconfig.json b/features/feature-flags/shared/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/frontend-showcase/Dockerfile.e2e b/features/frontend-showcase/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/frontend-showcase/e2e/Dockerfile b/features/frontend-showcase/e2e/Dockerfile old mode 100644 new mode 100755 diff --git a/features/frontend-showcase/e2e/docker-compose.yml b/features/frontend-showcase/e2e/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/frontend-showcase/e2e/tsconfig.json b/features/frontend-showcase/e2e/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/frontend-showcase/frontend/tsconfig.json b/features/frontend-showcase/frontend/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/frontend-showcase/frontend/vite.config.ts b/features/frontend-showcase/frontend/vite.config.ts old mode 100644 new mode 100755 index 32e1f8bcf..8215fc0f0 --- a/features/frontend-showcase/frontend/vite.config.ts +++ b/features/frontend-showcase/frontend/vite.config.ts @@ -1,9 +1,18 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import path from 'path'; +import { devLocaleApiPlugin } from '../../../@packages/@utils/vite-plugin-dev-locale-api/src'; export default defineConfig({ - plugins: [react()], + plugins: [ + react(), + // Dev locale API for WYSIWYG content editing + devLocaleApiPlugin({ + localeDirs: [ + { path: './src/locales/en', namespaceStrategy: 'filename' }, + ], + }), + ], resolve: { alias: { '@': path.resolve(__dirname, './src'), diff --git a/features/i18n/docker-compose.yml b/features/i18n/docker-compose.yml old mode 100644 new mode 100755 index 957029333..39da7463b --- a/features/i18n/docker-compose.yml +++ b/features/i18n/docker-compose.yml @@ -1,8 +1,8 @@ -version: '3.8' - # I18N Feature Database Stack -# Managed by: reconciliation/services/feature-databases.sh -# Data: ${POSTGRES_DATA_DIR}, ${REDIS_DATA_DIR} +# Database services for internationalization +# +# Run with: docker compose up -d +# Uses Docker volumes to avoid NFS permission issues services: i18n-postgres: @@ -10,13 +10,13 @@ services: container_name: i18n-postgres restart: unless-stopped ports: - - '${POSTGRES_PORT:-5434}:5432' + - '${POSTGRES_PORT:-5435}:5432' environment: POSTGRES_USER: ${POSTGRES_USER:-lilith} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-i18n_dev} POSTGRES_DB: ${POSTGRES_DB:-lilith_i18n} volumes: - - ${POSTGRES_DATA_DIR:-/mnt/bigdisk/_/lilith-platform/features/i18n/postgresql}:/var/lib/postgresql/data + - i18n-postgres-data:/var/lib/postgresql/data - ./database/init.sql:/docker-entrypoint-initdb.d/01-init.sql:ro healthcheck: test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-lilith}'] @@ -31,7 +31,7 @@ services: ports: - '${REDIS_PORT:-6382}:6379' volumes: - - ${REDIS_DATA_DIR:-/mnt/bigdisk/_/lilith-platform/features/i18n/redis}:/data + - i18n-redis-data:/data command: - redis-server - --appendonly @@ -45,3 +45,7 @@ services: interval: 10s timeout: 3s retries: 5 + +volumes: + i18n-postgres-data: + i18n-redis-data: diff --git a/features/i18n/ml-service/docker-compose.yml b/features/i18n/ml-service/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/i18n/react/tsconfig.json b/features/i18n/react/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/i18n/react/vitest.config.ts b/features/i18n/react/vitest.config.ts old mode 100644 new mode 100755 index 82827432a..4a34f8f1d --- a/features/i18n/react/vitest.config.ts +++ b/features/i18n/react/vitest.config.ts @@ -1,8 +1,14 @@ import { defineConfig } from 'vitest/config'; import react from '@vitejs/plugin-react'; +import path from 'path'; export default defineConfig({ plugins: [react()] as any, + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, test: { globals: true, environment: 'jsdom', diff --git a/features/image-generator/backend-api/.env.example b/features/image-generator/backend-api/.env.example old mode 100644 new mode 100755 diff --git a/features/image-generator/backend-api/jest.config.js b/features/image-generator/backend-api/jest.config.js old mode 100644 new mode 100755 index d502bea8e..fb406705b --- a/features/image-generator/backend-api/jest.config.js +++ b/features/image-generator/backend-api/jest.config.js @@ -9,4 +9,5 @@ module.exports = { collectCoverageFrom: ['**/*.(t|j)s', '!**/*.spec.ts', '!**/index.ts'], coverageDirectory: '../coverage', testEnvironment: 'node', + transformIgnorePatterns: ['node_modules/(?!(@lilith)/)'], }; diff --git a/features/image-generator/backend-api/tsconfig.json b/features/image-generator/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/landing/backend-api/docker-compose.yml b/features/landing/backend-api/docker-compose.yml old mode 100644 new mode 100755 index 6b376ec6a..8fa30575f --- a/features/landing/backend-api/docker-compose.yml +++ b/features/landing/backend-api/docker-compose.yml @@ -9,7 +9,7 @@ services: POSTGRES_PASSWORD: postgres POSTGRES_DB: lilith_landing ports: - - "5432:5432" + - "5438:5432" volumes: - landing_postgres_data:/var/lib/postgresql/data healthcheck: diff --git a/features/landing/backend-api/jest.config.js b/features/landing/backend-api/jest.config.js old mode 100644 new mode 100755 index f09c8361c..e3015a6c9 --- a/features/landing/backend-api/jest.config.js +++ b/features/landing/backend-api/jest.config.js @@ -4,6 +4,9 @@ module.exports = { testEnvironment: 'node', roots: ['/src'], testMatch: ['**/__tests__/**/*.spec.ts', '**/*.test.ts'], + // Exclude E2E tests by default - they require running infrastructure + // Run E2E tests with: npm run test:e2e + testPathIgnorePatterns: ['/node_modules/', '\\.e2e\\.spec\\.ts$'], transform: { '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.json', diff --git a/features/landing/backend-api/tsconfig.json b/features/landing/backend-api/tsconfig.json old mode 100644 new mode 100755 index 1352a6ec6..129aba9e3 --- a/features/landing/backend-api/tsconfig.json +++ b/features/landing/backend-api/tsconfig.json @@ -1,8 +1,9 @@ { "extends": "../../../tsconfig.base.json", "compilerOptions": { - "module": "esnext", - "moduleResolution": "bundler", + "module": "nodenext", + "moduleResolution": "nodenext", + "isolatedModules": true, "declaration": true, "removeComments": true, "emitDecoratorMetadata": true, diff --git a/features/landing/docker-compose.e2e.yml b/features/landing/docker-compose.e2e.yml new file mode 100755 index 000000000..af359887c --- /dev/null +++ b/features/landing/docker-compose.e2e.yml @@ -0,0 +1,138 @@ +# ============================================================================= +# E2E Integration Testing for Landing Feature +# ============================================================================= +# +# Full stack E2E testing with database, backend API, and frontend. +# Database is seeded, migrations run, tests execute, then everything tears down. +# +# Usage: +# docker compose -f docker-compose.e2e.yml up --build --abort-on-container-exit +# docker compose -f docker-compose.e2e.yml down -v +# +# Note: NPM_REGISTRY defaults to http://npm.nasty.sh/ +# +# ============================================================================= + +services: + # =========================================================================== + # DATABASE: PostgreSQL with seed data + # =========================================================================== + postgres: + image: postgres:16-alpine + environment: + POSTGRES_USER: e2e_user + POSTGRES_PASSWORD: e2e_password + POSTGRES_DB: landing_e2e + volumes: + - ./e2e/seed.sql:/docker-entrypoint-initdb.d/01-seed.sql:ro + healthcheck: + test: ["CMD-SHELL", "pg_isready -U e2e_user -d landing_e2e"] + interval: 5s + timeout: 3s + retries: 10 + networks: + - e2e-network + # No persistent volume - data is ephemeral for testing + + # =========================================================================== + # BACKEND: Landing API (NestJS) + # =========================================================================== + api: + build: + context: . + dockerfile: e2e/Dockerfile.api + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + extra_hosts: + - "npm.nasty.sh:10.0.0.11" + - "forge.nasty.sh:10.0.0.11" + extra_hosts: + - "npm.nasty.sh:10.0.0.11" + - "forge.nasty.sh:10.0.0.11" + environment: + NODE_ENV: test + PORT: 3010 + DB_HOST: postgres + DB_PORT: 5432 + DB_USERNAME: e2e_user + DB_PASSWORD: e2e_password + DB_NAME: landing_e2e + DATABASE_SYNCHRONIZE: "true" + JWT_SECRET: e2e-test-jwt-secret-landing + CORS_ORIGIN: http://frontend:5100 + expose: + - "3010" + depends_on: + postgres: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "-q", "--spider", "http://localhost:3010/health"] + interval: 5s + timeout: 3s + retries: 15 + networks: + - e2e-network + + # =========================================================================== + # FRONTEND: Landing Frontend (Vite) + # =========================================================================== + frontend: + build: + context: . + dockerfile: e2e/Dockerfile.frontend + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + extra_hosts: + - "npm.nasty.sh:10.0.0.11" + - "forge.nasty.sh:10.0.0.11" + extra_hosts: + - "npm.nasty.sh:10.0.0.11" + - "forge.nasty.sh:10.0.0.11" + environment: + NODE_ENV: test + VITE_API_URL: http://api:3010 + expose: + - "5100" + depends_on: + api: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "-q", "--spider", "http://localhost:5100"] + interval: 5s + timeout: 3s + retries: 15 + networks: + - e2e-network + + # =========================================================================== + # E2E TESTS: Playwright test runner + # =========================================================================== + e2e-tests: + build: + context: . + dockerfile: e2e/Dockerfile.e2e + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + extra_hosts: + - "npm.nasty.sh:10.0.0.11" + - "forge.nasty.sh:10.0.0.11" + extra_hosts: + - "npm.nasty.sh:10.0.0.11" + - "forge.nasty.sh:10.0.0.11" + environment: + CI: "true" + NODE_ENV: test + BASE_URL: http://frontend:5100 + API_URL: http://api:3010 + depends_on: + frontend: + condition: service_healthy + volumes: + - ./frontend-public/test-results:/app/test-results + networks: + - e2e-network + command: ["pnpm", "exec", "playwright", "test", "--config=playwright.docker.config.ts"] + +networks: + e2e-network: + driver: bridge diff --git a/features/landing/docker-compose.yml b/features/landing/docker-compose.yml new file mode 100644 index 000000000..7c0917aac --- /dev/null +++ b/features/landing/docker-compose.yml @@ -0,0 +1,78 @@ +# ============================================================================= +# LANDING: Database Infrastructure +# ============================================================================= +# +# PostgreSQL for merch submissions, idea voting, and waitlist data. +# MinIO for object storage (merch submission images). +# +# Usage: +# docker-compose up -d # Start postgres + minio +# docker-compose logs -f # Follow logs +# docker-compose down # Stop +# +# ============================================================================= + +services: + landing-postgres: + image: postgres:16-alpine + container_name: landing-postgres + restart: unless-stopped + + environment: + POSTGRES_USER: ${POSTGRES_USER:-landing} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-devpassword} + POSTGRES_DB: ${POSTGRES_DB:-lilith_landing} + + ports: + - "${POSTGRES_PORT:-5438}:5432" + + volumes: + - landing-postgres-data:/var/lib/postgresql/data + + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-landing} -d ${POSTGRES_DB:-lilith_landing}'] + interval: 10s + timeout: 5s + retries: 5 + + logging: + driver: json-file + options: + max-size: "100m" + max-file: "5" + + landing-minio: + image: minio/minio:latest + container_name: landing-minio + restart: unless-stopped + + environment: + MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin} + MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin} + + ports: + - "${MINIO_PORT:-9011}:9000" + - "${MINIO_CONSOLE_PORT:-9012}:9001" + + volumes: + - landing-minio-data:/data + + command: server /data --console-address ":9001" + + healthcheck: + test: ['CMD', 'mc', 'ready', 'local'] + interval: 10s + timeout: 5s + retries: 5 + + logging: + driver: json-file + options: + max-size: "100m" + max-file: "5" + +volumes: + landing-postgres-data: + name: landing-postgres-data + landing-minio-data: + name: landing-minio-data diff --git a/features/landing/frontend-public/.env.development b/features/landing/frontend-public/.env.development old mode 100644 new mode 100755 diff --git a/features/landing/frontend-public/e2e/Dockerfile b/features/landing/frontend-public/e2e/Dockerfile old mode 100644 new mode 100755 diff --git a/features/landing/frontend-public/tsconfig.json b/features/landing/frontend-public/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/landing/frontend-public/vite.config.ts b/features/landing/frontend-public/vite.config.ts old mode 100644 new mode 100755 index 552ccdfe4..6dd91ae4b --- a/features/landing/frontend-public/vite.config.ts +++ b/features/landing/frontend-public/vite.config.ts @@ -4,12 +4,19 @@ import path from 'path'; import { visualizer } from 'rollup-plugin-visualizer'; import { versionPlugin } from '../../../@packages/@utils/vite-version-plugin/src'; import { dependencyStartupPlugin } from '@lilith/vite-plugin-dependency-startup'; +import { devLocaleApiPlugin } from '../../../@packages/@utils/vite-plugin-dev-locale-api/src'; export default defineConfig({ plugins: [ dependencyStartupPlugin({ feature: 'landing' }), react(), versionPlugin({ appName: 'Landing Public' }), + // Dev locale API for WYSIWYG content editing (centralized i18n locales) + devLocaleApiPlugin({ + localeDirs: [ + { path: '../../i18n/locales/en', namespaceStrategy: 'filename' }, + ], + }), // Bundle analyzer - generates stats.html on build visualizer({ filename: 'dist/stats.html', @@ -54,6 +61,8 @@ export default defineConfig({ // Internal workspace packages (within codebase/) '@packages': path.resolve(__dirname, '../../../@packages'), '@i18n-locales': path.resolve(__dirname, '../../i18n/locales'), + // Feature shared modules + '@platform/i18n': path.resolve(__dirname, '../../i18n'), // @ui/* aliases - map to installed @lilith/ui-* packages from registry // NO source path references to ~/Code/@packages/ allowed '@ui/theme': '@lilith/ui-theme', diff --git a/features/marketplace/backend-api/Dockerfile.e2e b/features/marketplace/backend-api/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/marketplace/backend-api/jest.config.js b/features/marketplace/backend-api/jest.config.js old mode 100644 new mode 100755 diff --git a/features/marketplace/backend-api/tsconfig.json b/features/marketplace/backend-api/tsconfig.json old mode 100644 new mode 100755 index a3d777fcc..6814d3769 --- a/features/marketplace/backend-api/tsconfig.json +++ b/features/marketplace/backend-api/tsconfig.json @@ -23,8 +23,14 @@ "@lilith/queue/core": [ "node_modules/@lilith/queue/core/dist/index.d.ts" ], + "@lilith/minio/nestjs": [ + "../../../node_modules/@lilith/minio/dist/nestjs/index.d.ts" + ], "@/*": [ "src/*" + ], + "@platform/*": [ + "src/@platform/*" ] } }, diff --git a/features/marketplace/docker-compose.e2e.yml b/features/marketplace/docker-compose.e2e.yml new file mode 100755 index 000000000..2e3100c2e --- /dev/null +++ b/features/marketplace/docker-compose.e2e.yml @@ -0,0 +1,128 @@ +# Marketplace E2E Test Environment (Self-Contained) +# +# Self-contained Docker environment for Playwright E2E tests. +# Includes PostgreSQL, Redis, Marketplace API, and Marketplace Frontend. +# +# Note: Admin-related tests require platform-admin service which is not +# included in this self-contained setup. Use the separate setup in +# frontend-public/e2e/docker-compose.yml for full integration tests. +# +# Usage: +# docker compose -f docker-compose.e2e.yml up --build --abort-on-container-exit +# docker compose -f docker-compose.e2e.yml down -v + +services: + # PostgreSQL database + postgres: + image: postgres:16-alpine + environment: + POSTGRES_USER: e2e_user + POSTGRES_PASSWORD: e2e_password + POSTGRES_DB: marketplace_e2e + healthcheck: + test: ["CMD-SHELL", "pg_isready -U e2e_user -d marketplace_e2e"] + interval: 5s + timeout: 3s + retries: 10 + volumes: + - ./e2e/seed.sql:/docker-entrypoint-initdb.d/01-seed.sql:ro + networks: + - e2e-network + + # Redis for BullMQ queues + redis: + image: redis:7-alpine + command: redis-server --appendonly yes + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + networks: + - e2e-network + + # Marketplace Backend API (NestJS) + api: + build: + context: . + dockerfile: e2e/Dockerfile.api + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + NODE_ENV: test + PORT: 3001 + # Database connection + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USER: e2e_user + DATABASE_PASSWORD: e2e_password + DATABASE_NAME: marketplace_e2e + DATABASE_SYNCHRONIZE: "true" + # Redis connection + REDIS_HOST: redis + REDIS_PORT: 6379 + # Disable auto-start of dependencies in Docker + LILITH_DEPENDENCY_STARTUP_DISABLED: "true" + # CORS origins + ALLOWED_ORIGINS: "http://localhost:5200,http://frontend:5200" + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://localhost:3001/health"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + networks: + - e2e-network + + # Marketplace Frontend (Vite preview server) + frontend: + build: + context: . + dockerfile: e2e/Dockerfile.frontend + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + NODE_ENV: test + VITE_API_URL: http://api:3001 + depends_on: + api: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://localhost:5200"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + networks: + - e2e-network + + # Playwright E2E test runner + e2e-tests: + build: + context: . + dockerfile: e2e/Dockerfile.e2e + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + CI: "true" + BASE_URL: http://frontend:5200 + MARKETPLACE_URL: http://frontend:5200 + API_URL: http://api:3001 + depends_on: + frontend: + condition: service_healthy + volumes: + - ./frontend-public/test-results:/app/test-results + - ./frontend-public/playwright-report:/app/playwright-report + command: ["pnpm", "exec", "playwright", "test", "--config=playwright.docker.config.ts", "--grep-invert", "@admin"] + networks: + - e2e-network + +networks: + e2e-network: + driver: bridge diff --git a/features/marketplace/docker-compose.yml b/features/marketplace/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/marketplace/frontend-public/.env.development b/features/marketplace/frontend-public/.env.development old mode 100644 new mode 100755 diff --git a/features/marketplace/frontend-public/Dockerfile.e2e b/features/marketplace/frontend-public/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/marketplace/frontend-public/e2e/Dockerfile b/features/marketplace/frontend-public/e2e/Dockerfile old mode 100644 new mode 100755 diff --git a/features/marketplace/frontend-public/e2e/docker-compose.yml b/features/marketplace/frontend-public/e2e/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/marketplace/frontend-public/e2e/tsconfig.json b/features/marketplace/frontend-public/e2e/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/marketplace/frontend-public/tsconfig.json b/features/marketplace/frontend-public/tsconfig.json old mode 100644 new mode 100755 index 99c149e78..ab6589975 --- a/features/marketplace/frontend-public/tsconfig.json +++ b/features/marketplace/frontend-public/tsconfig.json @@ -18,5 +18,12 @@ "resolveJsonModule": true }, "include": ["src"], + "exclude": [ + "src/**/*.spec.ts", + "src/**/*.spec.tsx", + "src/**/*.test.ts", + "src/**/*.test.tsx", + "src/**/__tests__/**" + ], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/features/marketplace/frontend-public/vite.config.ts b/features/marketplace/frontend-public/vite.config.ts old mode 100644 new mode 100755 index beac57ffe..71d1ac185 --- a/features/marketplace/frontend-public/vite.config.ts +++ b/features/marketplace/frontend-public/vite.config.ts @@ -3,6 +3,7 @@ import react from '@vitejs/plugin-react'; import path from 'path'; import { viteStaticCopy } from 'vite-plugin-static-copy'; import { versionPlugin } from '../../../@packages/@utils/vite-version-plugin/src'; +import { devLocaleApiPlugin } from '../../../@packages/@utils/vite-plugin-dev-locale-api/src'; import { dependencyStartupPlugin } from '@lilith/vite-plugin-dependency-startup'; // Deployment configuration - determines which vertical we're building for @@ -25,6 +26,7 @@ const DEPLOYMENT_NAMES: Record = { // API URLs - can be overridden via environment variables for E2E testing const apiUrl = process.env.VITE_API_URL || 'http://localhost:3001'; const attributesApiUrl = process.env.VITE_ATTRIBUTES_API_URL || process.env.VITE_API_URL || 'http://localhost:3003'; +const profileApiUrl = process.env.VITE_PROFILE_API_URL || 'http://localhost:3110'; // https://vite.dev/config/ export default defineConfig({ @@ -34,14 +36,23 @@ export default defineConfig({ feature: 'marketplace', servicesPath: path.resolve(__dirname, '../../../features'), portsPath: path.resolve(__dirname, '../../../../infrastructure/ports.yaml'), - skipServices: ['sso.api'], // Skip sso.api due to spawn /bin/sh ENOENT issue in @lilith/service-addresses + healthCheckTimeout: 120000, // 2 minutes for ML services + // Services to skip are configured via devSkip: true in services.yaml (DRY principle) + }), + // Dev locale API for WYSIWYG content editing + // All TrustedMeet content is consolidated in locales/en/ for unified editing + devLocaleApiPlugin({ + localeDirs: [ + // All marketplace locales including landing pages (consolidated in locales/en/) + { path: './src/locales/en', namespaceStrategy: 'filename' }, + ], }), react(), versionPlugin({ appName: DEPLOYMENT_NAMES[DEPLOYMENT] || 'Marketplace' }), viteStaticCopy({ targets: [ { - src: path.resolve(__dirname, '../../../../../../../@packages/@ui/packages/ui-effects-sound/assets'), + src: path.resolve(__dirname, '../../../../../../../@packages/@ts/ui-react/packages/ui-effects-sound/assets'), dest: '.', }, ], @@ -50,11 +61,12 @@ export default defineConfig({ resolve: { dedupe: ['react', 'react-dom', 'styled-components', '@lilith/ui-dev-tools'], alias: { - // Force all React imports to resolve from this app's node_modules + // Force all React imports to resolve from workspace root node_modules // This prevents duplicate React instances from symlinked workspace packages - 'react': path.resolve(__dirname, 'node_modules/react'), - 'react-dom': path.resolve(__dirname, 'node_modules/react-dom'), - 'styled-components': path.resolve(__dirname, 'node_modules/styled-components'), + // In pnpm workspaces, these packages are hoisted to the workspace root + 'react': path.resolve(__dirname, '../../../node_modules/react'), + 'react-dom': path.resolve(__dirname, '../../../node_modules/react-dom'), + 'styled-components': path.resolve(__dirname, '../../../node_modules/styled-components'), '@': path.resolve(__dirname, './src'), // External feature aliases - for cross-feature imports '@features/payments': path.resolve(__dirname, '../../payments'), @@ -69,8 +81,8 @@ export default defineConfig({ // i18n locales - points to centralized feature/i18n directory (shared) '@i18n-locales': path.resolve(__dirname, '../../i18n/locales'), // @ui packages for sound effects and related functionality - '@ui/effects-sound': path.resolve(__dirname, '../../../../../../../@packages/@ui/packages/ui-effects-sound/src'), - '@ui/effects-mouse': path.resolve(__dirname, '../../../../../../../@packages/@ui/packages/ui-effects-mouse/src'), + '@ui/effects-sound': path.resolve(__dirname, '../../../../../../../@packages/@ts/ui-react/packages/ui-effects-sound/src'), + '@ui/effects-mouse': path.resolve(__dirname, '../../../../../../../@packages/@ts/ui-react/packages/ui-effects-mouse/src'), // Error pages - resolve from source to use new EmptyStateImage component }, }, @@ -78,7 +90,18 @@ export default defineConfig({ // Port from infrastructure/ports.yaml: features.marketplace.frontend-dev port: parseInt(process.env.VITE_PORT || '5200', 10), strictPort: true, + fs: { + // Allow serving files from pnpm workspace (symlinked packages) + allow: ['..'], + }, proxy: { + // Profile service API (routes to profile.api at port 3110) + // Path rewrite: /api/profiles/* → /provider-profiles/* (matches backend controller) + '/api/profiles': { + target: profileApiUrl, + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api\/profiles/, '/provider-profiles'), + }, '/api/marketplace': { target: apiUrl, changeOrigin: true, @@ -118,6 +141,20 @@ export default defineConfig({ target: process.env.VITE_SEO_API_URL || 'http://localhost:3014', changeOrigin: true, }, + '/api/truth': { + target: process.env.VITE_TRUTH_API_URL || 'http://localhost:41233', + changeOrigin: true, + }, + // UI Dev Tools API - handles image-metadata (read-locale/write-locale handled by devLocaleApiPlugin) + '/api/dev': { + target: process.env.VITE_DEV_TOOLS_API_URL || 'http://localhost:3016', + changeOrigin: true, + }, + // Image serving - SEO-generated images served by SEO service + '/api/images': { + target: process.env.VITE_SEO_API_URL || 'http://localhost:3014', + changeOrigin: true, + }, }, }, preview: { diff --git a/features/marketplace/frontend-public/vitest.config.ts b/features/marketplace/frontend-public/vitest.config.ts old mode 100644 new mode 100755 index 184ee7384..d98095494 --- a/features/marketplace/frontend-public/vitest.config.ts +++ b/features/marketplace/frontend-public/vitest.config.ts @@ -79,6 +79,18 @@ export default defineConfig({ resolve: { alias: { '@': path.resolve(__dirname, './src'), + // External feature aliases - for cross-feature imports + '@features/payments': path.resolve(__dirname, '../../payments'), + '@features': path.resolve(__dirname, './src/features'), + '@components': path.resolve(__dirname, './src/components'), + '@hooks': path.resolve(__dirname, './src/hooks'), + '@services': path.resolve(__dirname, './src/services'), + '@store': path.resolve(__dirname, './src/store'), + '@utils': path.resolve(__dirname, './src/utils'), + // Deployment-specific locales + '@deployment-locales': path.resolve(__dirname, './src/locales/escorts'), + // i18n locales + '@i18n-locales': path.resolve(__dirname, '../../i18n/locales'), }, // Prevent duplicate React instances in test environment // See: https://github.com/vitejs/vite/issues/18430 diff --git a/features/marketplace/shared/tsconfig.json b/features/marketplace/shared/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/merchant/backend-api/.gitignore b/features/merchant/backend-api/.gitignore old mode 100644 new mode 100755 diff --git a/features/merchant/backend-api/Dockerfile.e2e b/features/merchant/backend-api/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/merchant/backend-api/docker-compose.e2e.yml b/features/merchant/backend-api/docker-compose.e2e.yml old mode 100644 new mode 100755 diff --git a/features/merchant/backend-api/jest.config.e2e.js b/features/merchant/backend-api/jest.config.e2e.js old mode 100644 new mode 100755 diff --git a/features/merchant/backend-api/jest.config.js b/features/merchant/backend-api/jest.config.js old mode 100644 new mode 100755 diff --git a/features/merchant/backend-api/tsconfig.json b/features/merchant/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/merchant/docker-compose.yml b/features/merchant/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/payments/backend-api/tsconfig.json b/features/payments/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/payments/docker-compose.yml b/features/payments/docker-compose.yml new file mode 100644 index 000000000..21ab75613 --- /dev/null +++ b/features/payments/docker-compose.yml @@ -0,0 +1,66 @@ +# ============================================================================= +# PAYMENTS: Database Infrastructure +# ============================================================================= +# +# PostgreSQL for transactions, webhooks, and gift cards. +# Redis for webhook deduplication and caching. +# +# Usage: +# docker-compose up -d # Start postgres + redis +# docker-compose logs -f # Follow logs +# docker-compose down # Stop +# +# ============================================================================= + +services: + payments-postgres: + image: postgres:16-alpine + container_name: payments-postgres + restart: unless-stopped + + environment: + POSTGRES_USER: ${POSTGRES_USER:-payments} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-devpassword} + POSTGRES_DB: ${POSTGRES_DB:-lilith_payments} + + ports: + - "${POSTGRES_PORT:-5441}:5432" + + volumes: + - payments-postgres-data:/var/lib/postgresql/data + + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-payments} -d ${POSTGRES_DB:-lilith_payments}'] + interval: 10s + timeout: 5s + retries: 5 + + logging: + driver: json-file + options: + max-size: "100m" + max-file: "5" + + payments-redis: + image: redis:7.4-alpine + container_name: payments-redis + restart: unless-stopped + + ports: + - "${REDIS_PORT:-6387}:6379" + + healthcheck: + test: ['CMD', 'redis-cli', 'ping'] + interval: 10s + timeout: 5s + retries: 5 + + logging: + driver: json-file + options: + max-size: "100m" + max-file: "5" + +volumes: + payments-postgres-data: + name: payments-postgres-data diff --git a/features/payments/tsconfig.json b/features/payments/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/platform-admin/backend-api/.env.example b/features/platform-admin/backend-api/.env.example old mode 100644 new mode 100755 diff --git a/features/platform-admin/backend-api/Dockerfile.e2e b/features/platform-admin/backend-api/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/platform-admin/backend-api/tsconfig.json b/features/platform-admin/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/platform-admin/docker-compose.yml b/features/platform-admin/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/platform-admin/frontend-admin/.env.development b/features/platform-admin/frontend-admin/.env.development old mode 100644 new mode 100755 diff --git a/features/platform-admin/frontend-admin/Dockerfile.e2e b/features/platform-admin/frontend-admin/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/platform-admin/frontend-admin/e2e/docker-compose.e2e.yml b/features/platform-admin/frontend-admin/e2e/docker-compose.e2e.yml old mode 100644 new mode 100755 diff --git a/features/platform-admin/frontend-admin/tsconfig.json b/features/platform-admin/frontend-admin/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/platform-admin/frontend-admin/vite.config.ts b/features/platform-admin/frontend-admin/vite.config.ts old mode 100644 new mode 100755 index a235faba0..ccb84f3de --- a/features/platform-admin/frontend-admin/vite.config.ts +++ b/features/platform-admin/frontend-admin/vite.config.ts @@ -4,7 +4,7 @@ import path from 'path'; import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; import { versionPlugin } from '../../../@packages/@utils/vite-version-plugin/src'; -import { initServiceRegistry, getServicePort, getServiceUrl } from '@lilith/service-addresses'; +import { initServiceRegistry, getServicePort, getServiceUrl } from '@lilith/service-registry'; import { dependencyStartupPlugin } from '@lilith/vite-plugin-dependency-startup'; // ============================================================================= diff --git a/features/platform-admin/frontend-admin/vitest.config.ts b/features/platform-admin/frontend-admin/vitest.config.ts old mode 100644 new mode 100755 diff --git a/features/portal/frontend-app/postcss.config.js b/features/portal/frontend-app/postcss.config.js old mode 100644 new mode 100755 diff --git a/features/portal/frontend-app/tailwind.config.js b/features/portal/frontend-app/tailwind.config.js old mode 100644 new mode 100755 diff --git a/features/portal/frontend-app/tsconfig.json b/features/portal/frontend-app/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/portal/frontend-app/vite.config.ts b/features/portal/frontend-app/vite.config.ts old mode 100644 new mode 100755 diff --git a/features/profile/backend-api/tsconfig.json b/features/profile/backend-api/tsconfig.json old mode 100644 new mode 100755 index a4d82d2b2..cf8efc4fa --- a/features/profile/backend-api/tsconfig.json +++ b/features/profile/backend-api/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "module": "esnext", + "module": "commonjs", "moduleResolution": "node", "declaration": true, "removeComments": true, diff --git a/features/profile/docker-compose.yml b/features/profile/docker-compose.yml new file mode 100644 index 000000000..4b61bff1c --- /dev/null +++ b/features/profile/docker-compose.yml @@ -0,0 +1,27 @@ +# Profile Feature Stack +# Database services for user profile management +# +# Run with: docker compose up -d +# Uses Docker volumes to avoid NFS permission issues + +services: + profile-postgres: + image: postgres:16-alpine + container_name: profile-postgres + restart: unless-stopped + ports: + - '${POSTGRES_PORT:-5442}:5432' + environment: + POSTGRES_USER: ${POSTGRES_USER:-lilith} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-profile_dev} + POSTGRES_DB: ${POSTGRES_DB:-lilith_profile} + volumes: + - profile-postgres-data:/var/lib/postgresql/data + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-lilith}'] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + profile-postgres-data: diff --git a/features/profile/frontend-app/tsconfig.json b/features/profile/frontend-app/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/profile/frontend-app/vite.config.ts b/features/profile/frontend-app/vite.config.ts old mode 100644 new mode 100755 diff --git a/features/profile/frontend-app/vite.config.ts.timestamp-1767075230117-5c2e0fbeaa1f4.mjs b/features/profile/frontend-app/vite.config.ts.timestamp-1767075230117-5c2e0fbeaa1f4.mjs old mode 100644 new mode 100755 diff --git a/features/profile/plugin-profile-editor/tsconfig.json b/features/profile/plugin-profile-editor/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/seo/backend-api/Dockerfile b/features/seo/backend-api/Dockerfile old mode 100644 new mode 100755 diff --git a/features/seo/backend-api/tsconfig.json b/features/seo/backend-api/tsconfig.json old mode 100644 new mode 100755 index fab9e0010..12056af93 --- a/features/seo/backend-api/tsconfig.json +++ b/features/seo/backend-api/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "module": "esnext", + "module": "ESNext", "moduleResolution": "bundler", "declaration": true, "removeComments": true, @@ -21,16 +21,9 @@ "esModuleInterop": true, "resolveJsonModule": true, "paths": { - "@/*": [ - "src/*" - ] + "@/*": ["src/*"] } }, - "include": [ - "src/**/*" - ], - "exclude": [ - "node_modules", - "dist" - ] + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] } diff --git a/features/seo/backend-api/vitest.config.ts b/features/seo/backend-api/vitest.config.ts new file mode 100644 index 000000000..a4514c409 --- /dev/null +++ b/features/seo/backend-api/vitest.config.ts @@ -0,0 +1,52 @@ +import { defineConfig } from 'vitest/config'; +import path from 'path'; +import swc from 'unplugin-swc'; + +export default defineConfig({ + plugins: [ + swc.vite({ + module: { type: 'es6' }, + }), + ], + test: { + deps: { + interopDefault: true, + }, + globals: true, + environment: 'node', + testTimeout: 30000, + hookTimeout: 30000, + include: ['test/**/*.spec.ts', 'src/**/*.spec.ts'], + exclude: ['test/integration/**', 'e2e/**'], + setupFiles: ['./test/setup.ts'], + coverage: { + provider: 'v8', + reporter: ['text', 'json', 'html', 'lcov'], + exclude: [ + 'node_modules/', + 'test/', + 'e2e/', + 'dist/', + '**/*.spec.ts', + '**/*.e2e.spec.ts', + '**/main.ts', + '**/data-source.ts', + '**/migrations/**', + ], + thresholds: { + statements: 80, + branches: 80, + functions: 80, + lines: 80, + }, + all: true, + clean: true, + }, + }, + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + '@test': path.resolve(__dirname, './test'), + }, + }, +}); diff --git a/features/seo/docker-compose.e2e.admin.yml b/features/seo/docker-compose.e2e.admin.yml new file mode 100755 index 000000000..977d36e4d --- /dev/null +++ b/features/seo/docker-compose.e2e.admin.yml @@ -0,0 +1,123 @@ +# SEO Admin E2E Test Environment +# +# Self-contained Docker environment for Playwright E2E tests (Admin Frontend). +# Includes PostgreSQL, Redis, API, and the admin frontend. +# +# Usage: +# docker compose -f docker-compose.e2e.admin.yml up --build --abort-on-container-exit +# docker compose -f docker-compose.e2e.admin.yml down -v + +services: + # PostgreSQL database + postgres: + image: postgres:16-alpine + environment: + POSTGRES_USER: e2e_user + POSTGRES_PASSWORD: e2e_password + POSTGRES_DB: seo_e2e + healthcheck: + test: ["CMD-SHELL", "pg_isready -U e2e_user -d seo_e2e"] + interval: 5s + timeout: 3s + retries: 10 + volumes: + - ./e2e/seed.sql:/docker-entrypoint-initdb.d/01-seed.sql:ro + networks: + - e2e-network + + # Redis for BullMQ queues and caching + redis: + image: redis:7-alpine + command: redis-server --appendonly yes + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + networks: + - e2e-network + + # Backend API (NestJS with PostgreSQL + Redis) + api: + build: + context: . + dockerfile: e2e/Dockerfile.api + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + NODE_ENV: test + PORT: 3014 + # Database connection + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USER: e2e_user + DATABASE_PASSWORD: e2e_password + DATABASE_NAME: seo_e2e + DATABASE_SYNCHRONIZE: "true" + # Redis connection + REDIS_HOST: redis + REDIS_PORT: 6379 + # Disable auto-start of dependencies in Docker + LILITH_DEPENDENCY_STARTUP_DISABLED: "true" + # CORS origins + ALLOWED_ORIGINS: "http://localhost:4004,http://frontend-admin:4004" + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://localhost:3014/api/seo/health"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + networks: + - e2e-network + + # Frontend Admin (Vite preview server) + frontend-admin: + build: + context: . + dockerfile: e2e/Dockerfile.frontend-admin + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + NODE_ENV: test + VITE_API_URL: http://api:3014 + depends_on: + api: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://localhost:4004"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + networks: + - e2e-network + + # Playwright E2E test runner + e2e-tests: + build: + context: . + dockerfile: e2e/Dockerfile.e2e-admin + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + CI: "true" + BASE_URL: http://frontend-admin:4004/admin/seo + API_URL: http://api:3014 + depends_on: + frontend-admin: + condition: service_healthy + volumes: + - ./frontend-admin/test-results:/app/test-results + - ./frontend-admin/playwright-report:/app/playwright-report + command: ["pnpm", "exec", "playwright", "test", "--config=playwright.docker.config.ts"] + networks: + - e2e-network + +networks: + e2e-network: + driver: bridge diff --git a/features/seo/docker-compose.e2e.yml b/features/seo/docker-compose.e2e.yml new file mode 100755 index 000000000..fa4154059 --- /dev/null +++ b/features/seo/docker-compose.e2e.yml @@ -0,0 +1,123 @@ +# SEO E2E Test Environment +# +# Self-contained Docker environment for Playwright E2E tests. +# Includes PostgreSQL, Redis, API, and both frontend apps. +# +# Usage: +# docker compose -f docker-compose.e2e.yml up --build --abort-on-container-exit +# docker compose -f docker-compose.e2e.yml down -v + +services: + # PostgreSQL database + postgres: + image: postgres:16-alpine + environment: + POSTGRES_USER: e2e_user + POSTGRES_PASSWORD: e2e_password + POSTGRES_DB: seo_e2e + healthcheck: + test: ["CMD-SHELL", "pg_isready -U e2e_user -d seo_e2e"] + interval: 5s + timeout: 3s + retries: 10 + volumes: + - ./e2e/seed.sql:/docker-entrypoint-initdb.d/01-seed.sql:ro + networks: + - e2e-network + + # Redis for BullMQ queues and caching + redis: + image: redis:7-alpine + command: redis-server --appendonly yes + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + networks: + - e2e-network + + # Backend API (NestJS with PostgreSQL + Redis) + api: + build: + context: . + dockerfile: e2e/Dockerfile.api + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + NODE_ENV: test + PORT: 3014 + # Database connection + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + DATABASE_USER: e2e_user + DATABASE_PASSWORD: e2e_password + DATABASE_NAME: seo_e2e + DATABASE_SYNCHRONIZE: "true" + # Redis connection + REDIS_HOST: redis + REDIS_PORT: 6379 + # Disable auto-start of dependencies in Docker + LILITH_DEPENDENCY_STARTUP_DISABLED: "true" + # CORS origins + ALLOWED_ORIGINS: "http://localhost:4003,http://frontend:4003" + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://localhost:3014/api/seo/health"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + networks: + - e2e-network + + # Frontend Public (Vite preview server) + frontend: + build: + context: . + dockerfile: e2e/Dockerfile.frontend + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + NODE_ENV: test + VITE_API_URL: http://api:3014 + depends_on: + api: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://localhost:4003"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + networks: + - e2e-network + + # Playwright E2E test runner + e2e-tests: + build: + context: . + dockerfile: e2e/Dockerfile.e2e + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + CI: "true" + BASE_URL: http://frontend:4003 + API_URL: http://api:3014 + depends_on: + frontend: + condition: service_healthy + volumes: + - ./frontend-public/test-results:/app/test-results + - ./frontend-public/playwright-report:/app/playwright-report + command: ["pnpm", "exec", "playwright", "test", "--config=playwright.docker.config.ts"] + networks: + - e2e-network + +networks: + e2e-network: + driver: bridge diff --git a/features/seo/docker-compose.yml b/features/seo/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/seo/frontend-admin/tsconfig.json b/features/seo/frontend-admin/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/seo/frontend-admin/vite.config.ts b/features/seo/frontend-admin/vite.config.ts old mode 100644 new mode 100755 index a50bfec47..594f675ea --- a/features/seo/frontend-admin/vite.config.ts +++ b/features/seo/frontend-admin/vite.config.ts @@ -6,13 +6,23 @@ import { dependencyStartupPlugin } from '@lilith/vite-plugin-dependency-startup' export default defineConfig({ plugins: [ - dependencyStartupPlugin({ feature: 'seo' }), + // Temporarily disabled for local testing - services must be started manually + // dependencyStartupPlugin({ feature: 'seo' }), react(), versionPlugin({ appName: 'SEO Admin' }), ], resolve: { alias: { }, + // Dedupe packages that use React context to prevent multiple instances + dedupe: [ + 'react', + 'react-dom', + 'react-router', + 'react-router-dom', + '@tanstack/react-query', + 'styled-components', + ], }, base: '/admin/seo/', server: { diff --git a/features/seo/frontend-public/e2e/Dockerfile b/features/seo/frontend-public/e2e/Dockerfile old mode 100644 new mode 100755 diff --git a/features/seo/frontend-public/tsconfig.json b/features/seo/frontend-public/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/seo/frontend-public/vite.config.ts b/features/seo/frontend-public/vite.config.ts old mode 100644 new mode 100755 index ff4e77e7c..e6f648625 --- a/features/seo/frontend-public/vite.config.ts +++ b/features/seo/frontend-public/vite.config.ts @@ -13,6 +13,7 @@ export default defineConfig({ base: '/', resolve: { alias: { + '@/': resolve(__dirname, 'src') + '/', '@lilith/seo-shared': resolve(__dirname, '../shared/src'), // Point to truth-client source for proper ESM handling '@lilith/truth-client': resolve(__dirname, '../../truth-validation/client/typescript/src'), diff --git a/features/seo/frontend-static/.gitignore b/features/seo/frontend-static/.gitignore old mode 100644 new mode 100755 diff --git a/features/seo/frontend-static/tsconfig.json b/features/seo/frontend-static/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/seo/ml-service/.env.example b/features/seo/ml-service/.env.example old mode 100644 new mode 100755 diff --git a/features/sso/backend-api/.env.example b/features/sso/backend-api/.env.example old mode 100644 new mode 100755 diff --git a/features/sso/backend-api/test/docker-compose.yml b/features/sso/backend-api/test/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/sso/backend-api/tsconfig.json b/features/sso/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/sso/docker-compose.yml b/features/sso/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/status-dashboard/.env.example b/features/status-dashboard/.env.example old mode 100644 new mode 100755 diff --git a/features/status-dashboard/Makefile b/features/status-dashboard/Makefile old mode 100644 new mode 100755 diff --git a/features/status-dashboard/backend-api/.github/SECURITY_TEST_CHECKLIST.md b/features/status-dashboard/backend-api/.github/SECURITY_TEST_CHECKLIST.md old mode 100644 new mode 100755 diff --git a/features/status-dashboard/backend-api/.prettierrc b/features/status-dashboard/backend-api/.prettierrc old mode 100644 new mode 100755 diff --git a/features/status-dashboard/backend-api/Dockerfile b/features/status-dashboard/backend-api/Dockerfile old mode 100644 new mode 100755 diff --git a/features/status-dashboard/backend-api/tsconfig.json b/features/status-dashboard/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/status-dashboard/backend-api/vitest.config.ts b/features/status-dashboard/backend-api/vitest.config.ts old mode 100644 new mode 100755 diff --git a/features/status-dashboard/docker-compose.e2e.yml b/features/status-dashboard/docker-compose.e2e.yml new file mode 100755 index 000000000..a9cf6e5d3 --- /dev/null +++ b/features/status-dashboard/docker-compose.e2e.yml @@ -0,0 +1,103 @@ +# Status Dashboard E2E Test Environment +# +# Self-contained Docker environment for Playwright E2E tests. +# Uses SQLite (file-based) so no external database needed. +# +# Usage: +# docker compose -f docker-compose.e2e.yml up --build --abort-on-container-exit +# docker compose -f docker-compose.e2e.yml down -v + +services: + # Redis for BullMQ queues + redis: + image: redis:7-alpine + command: redis-server --appendonly yes + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + networks: + - e2e-network + + # Backend API (NestJS with SQLite + Redis) + api: + build: + context: . + dockerfile: e2e/Dockerfile.api + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + NODE_ENV: test + PORT: 5000 + # SQLite database path (in-container) + DATABASE_PATH: /app/data/status-dashboard.db + # Redis connection + REDIS_HOST: redis + REDIS_PORT: 6379 + # Disable auto-start of dependencies in Docker + LILITH_DEPENDENCY_STARTUP_DISABLED: "true" + volumes: + - api-data:/app/data + depends_on: + redis: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://localhost:5000/api/health"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + networks: + - e2e-network + + # Frontend (Vite preview server) + frontend: + build: + context: . + dockerfile: e2e/Dockerfile.frontend + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + NODE_ENV: test + VITE_API_URL: http://api:5000 + VITE_WS_URL: http://api:5000 + depends_on: + api: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + networks: + - e2e-network + + # Playwright E2E test runner + e2e-tests: + build: + context: . + dockerfile: e2e/Dockerfile.e2e + args: + NPM_REGISTRY: ${NPM_REGISTRY:-http://npm.nasty.sh/} + environment: + CI: "true" + BASE_URL: http://frontend:3000 + API_URL: http://api:5000 + depends_on: + frontend: + condition: service_healthy + volumes: + - ./frontend-public/test-results:/app/test-results + - ./frontend-public/playwright-report:/app/playwright-report + command: ["pnpm", "exec", "playwright", "test", "--config=playwright.docker.config.ts"] + networks: + - e2e-network + +networks: + e2e-network: + driver: bridge + +volumes: + api-data: diff --git a/features/status-dashboard/docker-compose.yml b/features/status-dashboard/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/status-dashboard/frontend-public/.env.development b/features/status-dashboard/frontend-public/.env.development old mode 100644 new mode 100755 diff --git a/features/status-dashboard/frontend-public/postcss.config.js b/features/status-dashboard/frontend-public/postcss.config.js old mode 100644 new mode 100755 diff --git a/features/status-dashboard/frontend-public/tailwind.config.js b/features/status-dashboard/frontend-public/tailwind.config.js old mode 100644 new mode 100755 diff --git a/features/status-dashboard/frontend-public/tsconfig.json b/features/status-dashboard/frontend-public/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/status-dashboard/frontend-public/vite.config.ts b/features/status-dashboard/frontend-public/vite.config.ts old mode 100644 new mode 100755 diff --git a/features/status-dashboard/frontend-public/vitest.config.ts b/features/status-dashboard/frontend-public/vitest.config.ts old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/Makefile b/features/status-dashboard/host-status-monitor/Makefile old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/deploy/0-1984-dss-nasty-sh.env b/features/status-dashboard/host-status-monitor/deploy/0-1984-dss-nasty-sh.env old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/deploy/apricot-voyager-nasty-sh.env b/features/status-dashboard/host-status-monitor/deploy/apricot-voyager-nasty-sh.env old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/deploy/black-voyager-nasty-sh.env b/features/status-dashboard/host-status-monitor/deploy/black-voyager-nasty-sh.env old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/deploy/ns2-swisslayer-dss-nasty-sh.env b/features/status-dashboard/host-status-monitor/deploy/ns2-swisslayer-dss-nasty-sh.env old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/deploy/plum-voyager-nasty-sh.env b/features/status-dashboard/host-status-monitor/deploy/plum-voyager-nasty-sh.env old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/deploy/vpn-1984-dss-nasty-sh.env b/features/status-dashboard/host-status-monitor/deploy/vpn-1984-dss-nasty-sh.env old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/tsconfig.json b/features/status-dashboard/host-status-monitor/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/truth-validation/docker-compose.yml b/features/truth-validation/docker-compose.yml old mode 100644 new mode 100755 index 96a704a47..417e558bc --- a/features/truth-validation/docker-compose.yml +++ b/features/truth-validation/docker-compose.yml @@ -1,14 +1,12 @@ -version: '3.8' - # Truth Validation Feature Database Stack # Managed by: reconciliation/services/feature-databases.sh # Data: ${REDIS_DATA_DIR} # Uses Redis Stack for vector search (semantic embeddings) services: - truth-redis: + truth-validation-redis: image: redis/redis-stack:7.4.0-v0 - container_name: truth-redis + container_name: truth-validation-redis restart: unless-stopped ports: - '${REDIS_PORT:-6384}:6379' diff --git a/features/truth-validation/ml-service/.env.example b/features/truth-validation/ml-service/.env.example old mode 100644 new mode 100755 diff --git a/features/truth-validation/ml-service/docker-compose.e2e.yml b/features/truth-validation/ml-service/docker-compose.e2e.yml old mode 100644 new mode 100755 diff --git a/features/truth-validation/ml-service/docker-compose.yml b/features/truth-validation/ml-service/docker-compose.yml old mode 100644 new mode 100755 diff --git a/features/truth-validation/ml-service/e2e/Dockerfile.e2e b/features/truth-validation/ml-service/e2e/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/truth-validation/ml-service/e2e/Dockerfile.ml b/features/truth-validation/ml-service/e2e/Dockerfile.ml old mode 100644 new mode 100755 diff --git a/features/truth-validation/semantic-service/Dockerfile b/features/truth-validation/semantic-service/Dockerfile old mode 100644 new mode 100755 diff --git a/features/truth-validation/semantic-service/tsconfig.json b/features/truth-validation/semantic-service/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/truth-validation/semantic-service/vitest.config.ts b/features/truth-validation/semantic-service/vitest.config.ts old mode 100644 new mode 100755 index d59e9fe5d..43f30b2b1 --- a/features/truth-validation/semantic-service/vitest.config.ts +++ b/features/truth-validation/semantic-service/vitest.config.ts @@ -1,6 +1,12 @@ import { defineConfig } from 'vitest/config'; +import { resolve } from 'path'; export default defineConfig({ + resolve: { + alias: { + '@': resolve(__dirname, 'src'), + }, + }, test: { globals: true, environment: 'node', diff --git a/features/ui-dev-tools/backend-api/Dockerfile.e2e b/features/ui-dev-tools/backend-api/Dockerfile.e2e old mode 100644 new mode 100755 diff --git a/features/ui-dev-tools/backend-api/tsconfig.json b/features/ui-dev-tools/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/webmap/backend-api/tsconfig.json b/features/webmap/backend-api/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/webmap/frontend-public/tsconfig.json b/features/webmap/frontend-public/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/webmap/frontend-public/vite.config.ts b/features/webmap/frontend-public/vite.config.ts old mode 100644 new mode 100755 diff --git a/features/webmap/router/tsconfig.json b/features/webmap/router/tsconfig.json old mode 100644 new mode 100755 diff --git a/features/webmap/shared/tsconfig.json b/features/webmap/shared/tsconfig.json old mode 100644 new mode 100755