#!/usr/bin/env node /** * Script to fix relative imports to domain/ports/out * Replaces ../../domain/ports/out/ with @domain/ports/out/ * Replaces ../../../domain/ports/out/ with @domain/ports/out/ */ const fs = require('fs'); const path = require('path'); const files = [ 'apps/backend/src/infrastructure/pdf/pdf.adapter.ts', 'apps/backend/src/infrastructure/carriers/base-carrier.connector.ts', 'apps/backend/src/infrastructure/storage/s3-storage.adapter.ts', 'apps/backend/src/application/services/csv-booking.service.ts', 'apps/backend/src/infrastructure/storage/storage.module.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-webhook.repository.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-user.repository.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-rate-quote.repository.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-port.repository.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-organization.repository.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-notification.repository.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-carrier.repository.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-booking.repository.ts', 'apps/backend/src/infrastructure/persistence/typeorm/repositories/typeorm-audit-log.repository.ts', 'apps/backend/src/infrastructure/pdf/pdf.module.ts', 'apps/backend/src/infrastructure/email/email.module.ts', 'apps/backend/src/infrastructure/email/email.adapter.ts', 'apps/backend/src/infrastructure/carriers/one/one.mapper.ts', 'apps/backend/src/infrastructure/carriers/one/one.connector.ts', 'apps/backend/src/infrastructure/carriers/msc/msc.mapper.ts', 'apps/backend/src/infrastructure/carriers/msc/msc.connector.ts', 'apps/backend/src/infrastructure/carriers/maersk/maersk.connector.ts', 'apps/backend/src/infrastructure/carriers/maersk/maersk-request.mapper.ts', 'apps/backend/src/infrastructure/carriers/hapag-lloyd/hapag-lloyd.mapper.ts', 'apps/backend/src/infrastructure/carriers/hapag-lloyd/hapag-lloyd.connector.ts', 'apps/backend/src/infrastructure/carriers/cma-cgm/cma-cgm.mapper.ts', 'apps/backend/src/infrastructure/carriers/cma-cgm/cma-cgm.connector.ts', 'apps/backend/src/infrastructure/cache/redis-cache.adapter.ts', 'apps/backend/src/infrastructure/cache/cache.module.ts', 'apps/backend/src/application/webhooks/webhooks.module.ts', 'apps/backend/src/application/users/users.module.ts', 'apps/backend/src/application/services/webhook.service.ts', 'apps/backend/src/application/services/notification.service.ts', 'apps/backend/src/application/services/booking-automation.service.ts', 'apps/backend/src/application/services/audit.service.ts', 'apps/backend/src/application/services/analytics.service.ts', 'apps/backend/src/application/rates/rates.module.ts', 'apps/backend/src/application/organizations/organizations.module.ts', 'apps/backend/src/application/notifications/notifications.module.ts', 'apps/backend/src/application/controllers/users.controller.ts', 'apps/backend/src/application/controllers/organizations.controller.ts', 'apps/backend/src/application/controllers/bookings.controller.ts', 'apps/backend/src/application/controllers/auth.controller.ts', 'apps/backend/src/application/bookings/bookings.module.ts', 'apps/backend/src/application/auth/auth.service.ts', 'apps/backend/src/application/auth/auth.module.ts', 'apps/backend/src/application/audit/audit.module.ts', ]; let totalReplacements = 0; files.forEach((filePath) => { const fullPath = path.join(__dirname, filePath); if (!fs.existsSync(fullPath)) { console.log(`⚠️ File not found: ${filePath}`); return; } let content = fs.readFileSync(fullPath, 'utf-8'); const originalContent = content; // Replace ../../../../domain/ports/out/ with @domain/ports/out/ content = content.replace( /from ['"]\.\.\/\.\.\/\.\.\/\.\.\/domain\/ports\/out\//g, "from '@domain/ports/out/" ); // Replace ../../../domain/ports/out/ with @domain/ports/out/ content = content.replace( /from ['"]\.\.\/\.\.\/\.\.\/domain\/ports\/out\//g, "from '@domain/ports/out/" ); // Replace ../../domain/ports/out/ with @domain/ports/out/ content = content.replace( /from ['"]\.\.\/\.\.\/domain\/ports\/out\//g, "from '@domain/ports/out/" ); if (content !== originalContent) { fs.writeFileSync(fullPath, content, 'utf-8'); totalReplacements++; console.log(`✅ Fixed: ${filePath}`); } else { console.log(`⏭️ No changes: ${filePath}`); } }); console.log(`\n✨ Done! Fixed ${totalReplacements} files.`);