diff --git a/features/platform-admin/backend-api/src/app.module.ts b/features/platform-admin/backend-api/src/app.module.ts index d9fbd818a..735caa64a 100755 --- a/features/platform-admin/backend-api/src/app.module.ts +++ b/features/platform-admin/backend-api/src/app.module.ts @@ -5,7 +5,6 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { AssetStorageModule } from './asset-storage/index'; import { AuthModule } from './auth/auth.module'; -import { DeviceEntity } from './devices/device.entity'; import { DevicesModule } from './devices/devices.module'; import { HealthController } from './health/health.controller'; import { InfrastructureModule } from './infrastructure/infrastructure.module'; diff --git a/features/platform-admin/backend-api/src/asset-storage/asset-storage.controller.ts b/features/platform-admin/backend-api/src/asset-storage/asset-storage.controller.ts index e10060947..0d1161422 100644 --- a/features/platform-admin/backend-api/src/asset-storage/asset-storage.controller.ts +++ b/features/platform-admin/backend-api/src/asset-storage/asset-storage.controller.ts @@ -13,14 +13,15 @@ import { } from '@nestjs/common'; import { ApiTags, ApiOperation, ApiResponse, ApiBearerAuth, ApiQuery } from '@nestjs/swagger'; -import { AdminGuard } from '@/auth/admin.guard'; -import { AuthGuard } from '@/auth/auth.guard'; import { AssetStorageService } from './asset-storage.service'; import { GenerateAssetsDto } from './dto/index'; import type { Request } from 'express'; +import { AdminGuard } from '@/auth/admin.guard'; +import { AuthGuard } from '@/auth/auth.guard'; + @ApiTags('Asset Storage') @ApiBearerAuth() @UseGuards(AuthGuard, AdminGuard) diff --git a/features/platform-admin/backend-api/src/asset-storage/asset-storage.module.ts b/features/platform-admin/backend-api/src/asset-storage/asset-storage.module.ts index e9fea5859..70d9da9ba 100644 --- a/features/platform-admin/backend-api/src/asset-storage/asset-storage.module.ts +++ b/features/platform-admin/backend-api/src/asset-storage/asset-storage.module.ts @@ -1,11 +1,12 @@ import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { MinioModule } from '@/common/minio/index'; import { AssetStorageController } from './asset-storage.controller'; import { AssetStorageService } from './asset-storage.service'; +import { MinioModule } from '@/common/minio/index'; + @Module({ imports: [ ConfigModule, diff --git a/features/platform-admin/backend-api/src/asset-storage/asset-storage.service.ts b/features/platform-admin/backend-api/src/asset-storage/asset-storage.service.ts index 27fef783c..1ebd1f436 100644 --- a/features/platform-admin/backend-api/src/asset-storage/asset-storage.service.ts +++ b/features/platform-admin/backend-api/src/asset-storage/asset-storage.service.ts @@ -2,8 +2,6 @@ import { ImajinClient } from '@lilith/imajin-client'; import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; -import { MinioService } from '@/common/minio/index'; - import type { ImageSize, StoredAsset, @@ -12,6 +10,9 @@ import type { GenerateAssetsResponse, } from './types'; +import { MinioService } from '@/common/minio/index'; + + /** * Default sizes for asset generation */ diff --git a/features/platform-admin/backend-api/src/devices/devices.controller.ts b/features/platform-admin/backend-api/src/devices/devices.controller.ts index dc8afe253..91a797a7e 100755 --- a/features/platform-admin/backend-api/src/devices/devices.controller.ts +++ b/features/platform-admin/backend-api/src/devices/devices.controller.ts @@ -17,15 +17,17 @@ import { } from '@nestjs/swagger'; -import { AdminGuard } from '@/auth/admin.guard'; -import { AuthGuard } from '@/auth/auth.guard'; -import { CurrentUser } from '@/auth/current-user.decorator'; - import { DevicesService } from './devices.service'; import { DeviceResponseDto } from './dto/index'; import type { AuthUser } from '@/auth/types'; +import { AdminGuard } from '@/auth/admin.guard'; +import { AuthGuard } from '@/auth/auth.guard'; +import { CurrentUser } from '@/auth/current-user.decorator'; + + + @Controller('api/devices') @ApiTags('devices') @ApiBearerAuth() diff --git a/features/platform-admin/backend-api/src/merch/merch.controller.ts b/features/platform-admin/backend-api/src/merch/merch.controller.ts index c014343e0..d83dbbdc9 100755 --- a/features/platform-admin/backend-api/src/merch/merch.controller.ts +++ b/features/platform-admin/backend-api/src/merch/merch.controller.ts @@ -12,16 +12,17 @@ import { import { ApiTags, ApiOperation, ApiBearerAuth } from '@nestjs/swagger'; -import { AdminGuard } from '@/auth/admin.guard'; -import { AuthGuard } from '@/auth/auth.guard'; -import { CurrentUser, type AuthUser } from '@/auth/current-user.decorator'; - import { MerchService, type UpdateStatusDto, type ConvertToProductDto, } from './merch.service'; +import { AdminGuard } from '@/auth/admin.guard'; +import { AuthGuard } from '@/auth/auth.guard'; +import { CurrentUser, type AuthUser } from '@/auth/current-user.decorator'; + + @Controller('api/merch/submissions') @ApiTags('merch-submissions') @UseGuards(AuthGuard, AdminGuard) diff --git a/features/platform-admin/backend-api/src/queues/queues.controller.ts b/features/platform-admin/backend-api/src/queues/queues.controller.ts index 0ad2ddb57..c2b7c6e05 100755 --- a/features/platform-admin/backend-api/src/queues/queues.controller.ts +++ b/features/platform-admin/backend-api/src/queues/queues.controller.ts @@ -12,13 +12,15 @@ import { } from '@nestjs/common'; import { ApiTags, ApiOperation, ApiBearerAuth, ApiQuery, ApiResponse } from '@nestjs/swagger'; -import { AdminGuard } from '@/auth/admin.guard'; -import { AuthGuard } from '@/auth/auth.guard'; - import { QueuesService } from './queues.service'; import type { QueueSummary, JobInfo, ClearJobsDto, ClearJobsResult, JobState } from './types'; +import { AdminGuard } from '@/auth/admin.guard'; +import { AuthGuard } from '@/auth/auth.guard'; + + + @Controller('api/admin/queues') @ApiTags('queues') @ApiBearerAuth() diff --git a/features/platform-admin/backend-api/src/shop/shop.controller.ts b/features/platform-admin/backend-api/src/shop/shop.controller.ts index a72ff63c1..0156e170c 100755 --- a/features/platform-admin/backend-api/src/shop/shop.controller.ts +++ b/features/platform-admin/backend-api/src/shop/shop.controller.ts @@ -15,10 +15,6 @@ import { import { ApiTags, ApiOperation, ApiBearerAuth, ApiQuery, ApiResponse } from '@nestjs/swagger'; -import { AdminGuard } from '@/auth/admin.guard'; -import { AuthGuard } from '@/auth/auth.guard'; -import { CurrentUser } from '@/auth/current-user.decorator'; - import { ShopService } from './shop.service'; import type { @@ -32,6 +28,12 @@ import type { } from './types'; import type { AuthUser } from '@/auth/types'; +import { AdminGuard } from '@/auth/admin.guard'; +import { AuthGuard } from '@/auth/auth.guard'; +import { CurrentUser } from '@/auth/current-user.decorator'; + + + @Controller('api/shop') @ApiTags('shop') @ApiBearerAuth() diff --git a/features/platform-admin/backend-api/src/sso-admin/sso-admin.controller.ts b/features/platform-admin/backend-api/src/sso-admin/sso-admin.controller.ts index 127a032dd..9a2b30995 100755 --- a/features/platform-admin/backend-api/src/sso-admin/sso-admin.controller.ts +++ b/features/platform-admin/backend-api/src/sso-admin/sso-admin.controller.ts @@ -21,14 +21,15 @@ import { ApiParam, } from '@nestjs/swagger'; -import { AdminGuard } from '@/auth/admin.guard'; -import { AuthGuard } from '@/auth/auth.guard'; import { ListUsersDto, UpdateUserDto, ListSessionsDto } from './dto/index'; import { SSOAdminService } from './sso-admin.service'; import type { Request } from 'express'; +import { AdminGuard } from '@/auth/admin.guard'; +import { AuthGuard } from '@/auth/auth.guard'; + /** * SSO Administration Controller * Platform-admin endpoints that proxy to SSO service admin API diff --git a/features/platform-admin/backend-api/src/sso-admin/sso-admin.module.ts b/features/platform-admin/backend-api/src/sso-admin/sso-admin.module.ts index 5c237848c..548bfceba 100755 --- a/features/platform-admin/backend-api/src/sso-admin/sso-admin.module.ts +++ b/features/platform-admin/backend-api/src/sso-admin/sso-admin.module.ts @@ -1,11 +1,12 @@ import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; -import { AuthModule } from '@/auth/auth.module'; import { SSOAdminController } from './sso-admin.controller'; import { SSOAdminService } from './sso-admin.service'; +import { AuthModule } from '@/auth/auth.module'; + @Module({ imports: [ diff --git a/features/platform-admin/frontend-admin/e2e/analytics.docker.e2e.ts b/features/platform-admin/frontend-admin/e2e/analytics.docker.e2e.ts index 033e79b8b..ea5d6dc52 100755 --- a/features/platform-admin/frontend-admin/e2e/analytics.docker.e2e.ts +++ b/features/platform-admin/frontend-admin/e2e/analytics.docker.e2e.ts @@ -46,7 +46,7 @@ test.describe('Revenue Page (Real Data)', () => { for (const type of transactionTypes) { // At least one type should be visible or in a chart const typeVisible = await page.getByText(type, { exact: true }).isVisible().catch(() => false) - if (typeVisible) break + if (typeVisible) {break} } }) }) diff --git a/features/platform-admin/frontend-admin/e2e/authentication-account-menu.e2e.ts b/features/platform-admin/frontend-admin/e2e/authentication-account-menu.e2e.ts index 48d09f014..f5b1f9830 100755 --- a/features/platform-admin/frontend-admin/e2e/authentication-account-menu.e2e.ts +++ b/features/platform-admin/frontend-admin/e2e/authentication-account-menu.e2e.ts @@ -16,7 +16,9 @@ * - Mobile responsiveness (375px viewport) */ -import { test, expect, Page } from '@playwright/test'; +import { test, expect } from '@playwright/test'; + +import type { Page } from '@playwright/test'; // ============================================================================ // Test Fixtures and Helpers @@ -200,7 +202,7 @@ test.describe('Account Menu - Authenticated', () => { // Verify AccountDropdown is present const accountDropdown = page.locator('[data-testid="account-dropdown"]').or( page.locator('[aria-label*="account"]').or( - page.locator('button:has-text("' + authState.user.username + '")') + page.locator(`button:has-text("${ authState.user.username }")`) ) ); @@ -222,7 +224,7 @@ test.describe('Account Menu - Authenticated', () => { // Find and click dropdown trigger const dropdownTrigger = page.locator('[data-testid="account-dropdown-trigger"]').or( - page.locator('button:has-text("' + authState.user.username + '")') + page.locator(`button:has-text("${ authState.user.username }")`) ); await dropdownTrigger.click(); @@ -244,7 +246,7 @@ test.describe('Account Menu - Authenticated', () => { // Open dropdown const dropdownTrigger = page.locator('[data-testid="account-dropdown-trigger"]').or( - page.locator('button:has-text("' + authState.user.username + '")') + page.locator(`button:has-text("${ authState.user.username }")`) ); await dropdownTrigger.click(); await page.waitForTimeout(300); diff --git a/features/platform-admin/frontend-admin/e2e/fixtures/api-mocks/index.ts b/features/platform-admin/frontend-admin/e2e/fixtures/api-mocks/index.ts index 7d5a9a0a2..97a4b53fc 100644 --- a/features/platform-admin/frontend-admin/e2e/fixtures/api-mocks/index.ts +++ b/features/platform-admin/frontend-admin/e2e/fixtures/api-mocks/index.ts @@ -17,13 +17,13 @@ export { DEVICES_MOCKS } from './devices.mocks'; // Import all mocks for combined export import { ANALYTICS_MOCKS } from './analytics.mocks'; -import { EMAIL_MOCKS } from './email.mocks'; -import { MARKETPLACE_MOCKS } from './marketplace.mocks'; -import { SHOP_MOCKS } from './shop.mocks'; -import { SEO_MOCKS, I18N_MOCKS, TRUTH_MOCKS, IMAGE_GEN_MOCKS } from './seo-ml.mocks'; -import { INFRASTRUCTURE_MOCKS } from './infrastructure.mocks'; import { ATTRIBUTES_MOCKS } from './content.mocks'; import { DEVICES_MOCKS } from './devices.mocks'; +import { EMAIL_MOCKS } from './email.mocks'; +import { INFRASTRUCTURE_MOCKS } from './infrastructure.mocks'; +import { MARKETPLACE_MOCKS } from './marketplace.mocks'; +import { SEO_MOCKS, I18N_MOCKS, TRUTH_MOCKS, IMAGE_GEN_MOCKS } from './seo-ml.mocks'; +import { SHOP_MOCKS } from './shop.mocks'; /** * Combined mocks object containing all mock responses. diff --git a/features/platform-admin/frontend-admin/e2e/fixtures/api-mocks/mock-router.ts b/features/platform-admin/frontend-admin/e2e/fixtures/api-mocks/mock-router.ts index 8824b91ca..df65166ed 100644 --- a/features/platform-admin/frontend-admin/e2e/fixtures/api-mocks/mock-router.ts +++ b/features/platform-admin/frontend-admin/e2e/fixtures/api-mocks/mock-router.ts @@ -4,9 +4,11 @@ * Handles Playwright route interception and matches URLs to mock responses. */ -import { Page, Route } from '@playwright/test'; import { ALL_MOCKS } from './index'; +import type { Page, Route } from '@playwright/test'; + + /** * Find the best matching mock for a URL. * Returns the mock response or null if no match found. diff --git a/features/platform-admin/frontend-admin/e2e/route-health.e2e.ts b/features/platform-admin/frontend-admin/e2e/route-health.e2e.ts index 138fa31e6..5a95cf16a 100755 --- a/features/platform-admin/frontend-admin/e2e/route-health.e2e.ts +++ b/features/platform-admin/frontend-admin/e2e/route-health.e2e.ts @@ -7,9 +7,12 @@ * This test FAILS if any route shows errors - it does not just report. */ -import { test, expect, Page } from '@playwright/test'; +import { test, expect } from '@playwright/test'; + import { applyAllMocks } from './fixtures/api-mocks'; +import type { Page } from '@playwright/test'; + // ============================================================================ // Route Definitions // ============================================================================