diff --git a/backend/package-lock.json b/backend/package-lock.json index fbb04d8..457f536 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -7,11 +7,11 @@ "": { "name": "musiq-api", "version": "1.0.0", + "hasInstallScript": true, "license": "MIT", "dependencies": { "@azure/identity": "^4.0.1", "@azure/keyvault-secrets": "^4.7.0", - "@neondatabase/serverless": "^0.9.0", "axios": "^1.13.2", "bcrypt": "^5.1.1", "connect-redis": "^7.1.0", @@ -578,15 +578,6 @@ "node": ">= 6" } }, - "node_modules/@neondatabase/serverless": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@neondatabase/serverless/-/serverless-0.9.5.tgz", - "integrity": "sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==", - "license": "MIT", - "dependencies": { - "@types/pg": "8.11.6" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -915,17 +906,6 @@ "@types/passport": "*" } }, - "node_modules/@types/pg": { - "version": "8.11.6", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.6.tgz", - "integrity": "sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "pg-protocol": "*", - "pg-types": "^4.0.1" - } - }, "node_modules/@types/qs": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", @@ -4054,12 +4034,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -4411,15 +4385,6 @@ "node": ">=4.0.0" } }, - "node_modules/pg-numeric": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pg-numeric/-/pg-numeric-1.0.2.tgz", - "integrity": "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, "node_modules/pg-pool": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.10.1.tgz", @@ -4435,24 +4400,6 @@ "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==", "license": "MIT" }, - "node_modules/pg-types": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.1.0.tgz", - "integrity": "sha512-o2XFanIMy/3+mThw69O8d4n1E5zsLhdO+OPqswezu7Z5ekP4hYDqlDjlmOpYMbzY2Br0ufCwJLdDIXeNVwcWFg==", - "license": "MIT", - "dependencies": { - "pg-int8": "1.0.1", - "pg-numeric": "1.0.2", - "postgres-array": "~3.0.1", - "postgres-bytea": "~3.0.0", - "postgres-date": "~2.1.0", - "postgres-interval": "^3.0.0", - "postgres-range": "^1.1.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/pg/node_modules/pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", @@ -4538,51 +4485,6 @@ "node": ">= 0.4" } }, - "node_modules/postgres-array": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.4.tgz", - "integrity": "sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/postgres-bytea": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", - "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", - "license": "MIT", - "dependencies": { - "obuf": "~1.1.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postgres-date": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", - "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/postgres-interval": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", - "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/postgres-range": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.4.tgz", - "integrity": "sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==", - "license": "MIT" - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/backend/package.json b/backend/package.json index 083b56c..0d297af 100644 --- a/backend/package.json +++ b/backend/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "ts-node-dev --respawn --transpile-only src/index.ts", "build": "tsc", + "postinstall": "npm run build", "start": "node dist/index.js", "migrate": "knex migrate:latest", "migrate:rollback": "knex migrate:rollback", diff --git a/backend/src/routes/admin.ts b/backend/src/routes/admin.ts index 1e05b26..fbd8f69 100644 --- a/backend/src/routes/admin.ts +++ b/backend/src/routes/admin.ts @@ -1,6 +1,4 @@ import { Router } from 'express'; -import { authMiddleware, AuthRequest } from '../middleware/auth.middleware'; -import { requireRole } from '../middleware/rbac.middleware'; const router = Router(); diff --git a/etl/src/services/musicbrainz-etl.service.ts b/etl/src/services/musicbrainz-etl.service.ts index df02861..3a92303 100644 --- a/etl/src/services/musicbrainz-etl.service.ts +++ b/etl/src/services/musicbrainz-etl.service.ts @@ -3,7 +3,6 @@ import { MusicBrainzTransformService } from './musicbrainz-transform.service'; import { MusicBrainzLoadService } from './musicbrainz-load.service'; import { MusicBrainzSyncService } from './musicbrainz-sync.service'; import { CoverArtEnrichmentService } from './cover-art-enrichment.service'; -import { MusicBrainzConfig } from '../config/musicbrainz.config'; import { logger } from '../config/logger'; interface ETLOptions { @@ -38,11 +37,6 @@ export class MusicBrainzETLService { logger.info('Starting MusicBrainz ETL pipeline...'); try { - const allGenres = [ - ...MusicBrainzConfig.majorGenres, - ...MusicBrainzConfig.nicheGenres - ]; - const top5Genres = ['hip-hop', 'pop', 'rock', 'electronic', 'jazz']; const genresToProcess = options.genres || top5Genres; const maxTotalAlbums = options.maxTotalAlbums || 2000; diff --git a/frontend/MusicApp/Assets.xcassets/AccentColor.colorset/Contents.json b/frontend/MusIQ/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from frontend/MusicApp/Assets.xcassets/AccentColor.colorset/Contents.json rename to frontend/MusIQ/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/frontend/MusicApp/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png b/frontend/MusIQ/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png similarity index 100% rename from frontend/MusicApp/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png rename to frontend/MusIQ/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png diff --git a/frontend/MusicApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/frontend/MusIQ/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from frontend/MusicApp/Assets.xcassets/AppIcon.appiconset/Contents.json rename to frontend/MusIQ/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/frontend/MusicApp/Assets.xcassets/Contents.json b/frontend/MusIQ/Assets.xcassets/Contents.json similarity index 100% rename from frontend/MusicApp/Assets.xcassets/Contents.json rename to frontend/MusIQ/Assets.xcassets/Contents.json diff --git a/frontend/MusicApp/ContentView.swift b/frontend/MusIQ/ContentView.swift similarity index 100% rename from frontend/MusicApp/ContentView.swift rename to frontend/MusIQ/ContentView.swift diff --git a/frontend/MusicApp/Info.plist.backup b/frontend/MusIQ/Info.plist.backup similarity index 100% rename from frontend/MusicApp/Info.plist.backup rename to frontend/MusIQ/Info.plist.backup diff --git a/frontend/MusicApp/Models/APIResponse.swift b/frontend/MusIQ/Models/APIResponse.swift similarity index 100% rename from frontend/MusicApp/Models/APIResponse.swift rename to frontend/MusIQ/Models/APIResponse.swift diff --git a/frontend/MusicApp/Models/AuthToken.swift b/frontend/MusIQ/Models/AuthToken.swift similarity index 100% rename from frontend/MusicApp/Models/AuthToken.swift rename to frontend/MusIQ/Models/AuthToken.swift diff --git a/frontend/MusicApp/Models/Friend.swift b/frontend/MusIQ/Models/Friend.swift similarity index 100% rename from frontend/MusicApp/Models/Friend.swift rename to frontend/MusIQ/Models/Friend.swift diff --git a/frontend/MusicApp/Models/MusicItem.swift b/frontend/MusIQ/Models/MusicItem.swift similarity index 100% rename from frontend/MusicApp/Models/MusicItem.swift rename to frontend/MusIQ/Models/MusicItem.swift diff --git a/frontend/MusicApp/Models/Notification.swift b/frontend/MusIQ/Models/Notification.swift similarity index 100% rename from frontend/MusicApp/Models/Notification.swift rename to frontend/MusIQ/Models/Notification.swift diff --git a/frontend/MusicApp/Models/Rating.swift b/frontend/MusIQ/Models/Rating.swift similarity index 100% rename from frontend/MusicApp/Models/Rating.swift rename to frontend/MusIQ/Models/Rating.swift diff --git a/frontend/MusicApp/Models/User.swift b/frontend/MusIQ/Models/User.swift similarity index 100% rename from frontend/MusicApp/Models/User.swift rename to frontend/MusIQ/Models/User.swift diff --git a/frontend/MusicApp/MusicAppApp.swift b/frontend/MusIQ/MusicAppApp.swift similarity index 100% rename from frontend/MusicApp/MusicAppApp.swift rename to frontend/MusIQ/MusicAppApp.swift diff --git a/frontend/MusicApp/Services/APIService.swift b/frontend/MusIQ/Services/APIService.swift similarity index 100% rename from frontend/MusicApp/Services/APIService.swift rename to frontend/MusIQ/Services/APIService.swift diff --git a/frontend/MusicApp/Services/AuthService.swift b/frontend/MusIQ/Services/AuthService.swift similarity index 100% rename from frontend/MusicApp/Services/AuthService.swift rename to frontend/MusIQ/Services/AuthService.swift diff --git a/frontend/MusicApp/Services/MusicService.swift b/frontend/MusIQ/Services/MusicService.swift similarity index 100% rename from frontend/MusicApp/Services/MusicService.swift rename to frontend/MusIQ/Services/MusicService.swift diff --git a/frontend/MusicApp/Services/NotificationService.swift b/frontend/MusIQ/Services/NotificationService.swift similarity index 100% rename from frontend/MusicApp/Services/NotificationService.swift rename to frontend/MusIQ/Services/NotificationService.swift diff --git a/frontend/MusicApp/Services/OAuthService.swift b/frontend/MusIQ/Services/OAuthService.swift similarity index 100% rename from frontend/MusicApp/Services/OAuthService.swift rename to frontend/MusIQ/Services/OAuthService.swift diff --git a/frontend/MusicApp/Services/ProfileService.swift b/frontend/MusIQ/Services/ProfileService.swift similarity index 100% rename from frontend/MusicApp/Services/ProfileService.swift rename to frontend/MusIQ/Services/ProfileService.swift diff --git a/frontend/MusicApp/Services/RankingService.swift b/frontend/MusIQ/Services/RankingService.swift similarity index 100% rename from frontend/MusicApp/Services/RankingService.swift rename to frontend/MusIQ/Services/RankingService.swift diff --git a/frontend/MusicApp/Services/RatingService.swift b/frontend/MusIQ/Services/RatingService.swift similarity index 100% rename from frontend/MusicApp/Services/RatingService.swift rename to frontend/MusIQ/Services/RatingService.swift diff --git a/frontend/MusicApp/Services/SocialService.swift b/frontend/MusIQ/Services/SocialService.swift similarity index 100% rename from frontend/MusicApp/Services/SocialService.swift rename to frontend/MusIQ/Services/SocialService.swift diff --git a/frontend/MusicApp/Theme/AppColors.swift b/frontend/MusIQ/Theme/AppColors.swift similarity index 100% rename from frontend/MusicApp/Theme/AppColors.swift rename to frontend/MusIQ/Theme/AppColors.swift diff --git a/frontend/MusicApp/Theme/AppGradients.swift b/frontend/MusIQ/Theme/AppGradients.swift similarity index 100% rename from frontend/MusicApp/Theme/AppGradients.swift rename to frontend/MusIQ/Theme/AppGradients.swift diff --git a/frontend/MusicApp/Theme/AppStyles.swift b/frontend/MusIQ/Theme/AppStyles.swift similarity index 100% rename from frontend/MusicApp/Theme/AppStyles.swift rename to frontend/MusIQ/Theme/AppStyles.swift diff --git a/frontend/MusicApp/Utilities/AnimationHelpers.swift b/frontend/MusIQ/Utilities/AnimationHelpers.swift similarity index 100% rename from frontend/MusicApp/Utilities/AnimationHelpers.swift rename to frontend/MusIQ/Utilities/AnimationHelpers.swift diff --git a/frontend/MusicApp/Utilities/Extensions.swift b/frontend/MusIQ/Utilities/Extensions.swift similarity index 100% rename from frontend/MusicApp/Utilities/Extensions.swift rename to frontend/MusIQ/Utilities/Extensions.swift diff --git a/frontend/MusicApp/Utilities/ImageLoader.swift b/frontend/MusIQ/Utilities/ImageLoader.swift similarity index 100% rename from frontend/MusicApp/Utilities/ImageLoader.swift rename to frontend/MusIQ/Utilities/ImageLoader.swift diff --git a/frontend/MusicApp/Utilities/KeychainHelper.swift b/frontend/MusIQ/Utilities/KeychainHelper.swift similarity index 100% rename from frontend/MusicApp/Utilities/KeychainHelper.swift rename to frontend/MusIQ/Utilities/KeychainHelper.swift diff --git a/frontend/MusicApp/Utilities/NetworkError.swift b/frontend/MusIQ/Utilities/NetworkError.swift similarity index 100% rename from frontend/MusicApp/Utilities/NetworkError.swift rename to frontend/MusIQ/Utilities/NetworkError.swift diff --git a/frontend/MusicApp/ViewModels/AppState.swift b/frontend/MusIQ/ViewModels/AppState.swift similarity index 100% rename from frontend/MusicApp/ViewModels/AppState.swift rename to frontend/MusIQ/ViewModels/AppState.swift diff --git a/frontend/MusicApp/ViewModels/AuthViewModel.swift b/frontend/MusIQ/ViewModels/AuthViewModel.swift similarity index 100% rename from frontend/MusicApp/ViewModels/AuthViewModel.swift rename to frontend/MusIQ/ViewModels/AuthViewModel.swift diff --git a/frontend/MusicApp/ViewModels/HomeFeedViewModel.swift b/frontend/MusIQ/ViewModels/HomeFeedViewModel.swift similarity index 100% rename from frontend/MusicApp/ViewModels/HomeFeedViewModel.swift rename to frontend/MusIQ/ViewModels/HomeFeedViewModel.swift diff --git a/frontend/MusicApp/ViewModels/NotificationViewModel.swift b/frontend/MusIQ/ViewModels/NotificationViewModel.swift similarity index 100% rename from frontend/MusicApp/ViewModels/NotificationViewModel.swift rename to frontend/MusIQ/ViewModels/NotificationViewModel.swift diff --git a/frontend/MusicApp/ViewModels/RankingViewModel.swift b/frontend/MusIQ/ViewModels/RankingViewModel.swift similarity index 100% rename from frontend/MusicApp/ViewModels/RankingViewModel.swift rename to frontend/MusIQ/ViewModels/RankingViewModel.swift diff --git a/frontend/MusicApp/ViewModels/RatingViewModel.swift b/frontend/MusIQ/ViewModels/RatingViewModel.swift similarity index 100% rename from frontend/MusicApp/ViewModels/RatingViewModel.swift rename to frontend/MusIQ/ViewModels/RatingViewModel.swift diff --git a/frontend/MusicApp/ViewModels/SocialViewModel.swift b/frontend/MusIQ/ViewModels/SocialViewModel.swift similarity index 100% rename from frontend/MusicApp/ViewModels/SocialViewModel.swift rename to frontend/MusIQ/ViewModels/SocialViewModel.swift diff --git a/frontend/MusicApp/ViewModels/TasteProfileViewModel.swift b/frontend/MusIQ/ViewModels/TasteProfileViewModel.swift similarity index 100% rename from frontend/MusicApp/ViewModels/TasteProfileViewModel.swift rename to frontend/MusIQ/ViewModels/TasteProfileViewModel.swift diff --git a/frontend/MusicApp/Views/Auth/AppleSignInButton.swift b/frontend/MusIQ/Views/Auth/AppleSignInButton.swift similarity index 100% rename from frontend/MusicApp/Views/Auth/AppleSignInButton.swift rename to frontend/MusIQ/Views/Auth/AppleSignInButton.swift diff --git a/frontend/MusicApp/Views/Auth/GoogleSignInButton.swift b/frontend/MusIQ/Views/Auth/GoogleSignInButton.swift similarity index 100% rename from frontend/MusicApp/Views/Auth/GoogleSignInButton.swift rename to frontend/MusIQ/Views/Auth/GoogleSignInButton.swift diff --git a/frontend/MusicApp/Views/Auth/LoginView.swift b/frontend/MusIQ/Views/Auth/LoginView.swift similarity index 100% rename from frontend/MusicApp/Views/Auth/LoginView.swift rename to frontend/MusIQ/Views/Auth/LoginView.swift diff --git a/frontend/MusicApp/Views/Auth/OAuthCallbackHandler.swift b/frontend/MusIQ/Views/Auth/OAuthCallbackHandler.swift similarity index 100% rename from frontend/MusicApp/Views/Auth/OAuthCallbackHandler.swift rename to frontend/MusIQ/Views/Auth/OAuthCallbackHandler.swift diff --git a/frontend/MusicApp/Views/Auth/SignupView.swift b/frontend/MusIQ/Views/Auth/SignupView.swift similarity index 100% rename from frontend/MusicApp/Views/Auth/SignupView.swift rename to frontend/MusIQ/Views/Auth/SignupView.swift diff --git a/frontend/MusicApp/Views/Auth/SpotifySignInButton.swift b/frontend/MusIQ/Views/Auth/SpotifySignInButton.swift similarity index 100% rename from frontend/MusicApp/Views/Auth/SpotifySignInButton.swift rename to frontend/MusIQ/Views/Auth/SpotifySignInButton.swift diff --git a/frontend/MusicApp/Views/FeedCardView.swift b/frontend/MusIQ/Views/FeedCardView.swift similarity index 100% rename from frontend/MusicApp/Views/FeedCardView.swift rename to frontend/MusIQ/Views/FeedCardView.swift diff --git a/frontend/MusicApp/Views/HomeFeedView.swift b/frontend/MusIQ/Views/HomeFeedView.swift similarity index 100% rename from frontend/MusicApp/Views/HomeFeedView.swift rename to frontend/MusIQ/Views/HomeFeedView.swift diff --git a/frontend/MusicApp/Views/MainAppView.swift b/frontend/MusIQ/Views/MainAppView.swift similarity index 100% rename from frontend/MusicApp/Views/MainAppView.swift rename to frontend/MusIQ/Views/MainAppView.swift diff --git a/frontend/MusicApp/Views/OnboardingView.swift b/frontend/MusIQ/Views/OnboardingView.swift similarity index 100% rename from frontend/MusicApp/Views/OnboardingView.swift rename to frontend/MusIQ/Views/OnboardingView.swift diff --git a/frontend/MusicApp/Views/ProfileView.swift b/frontend/MusIQ/Views/ProfileView.swift similarity index 100% rename from frontend/MusicApp/Views/ProfileView.swift rename to frontend/MusIQ/Views/ProfileView.swift diff --git a/frontend/MusicApp/Views/RatingModalView.swift b/frontend/MusIQ/Views/RatingModalView.swift similarity index 100% rename from frontend/MusicApp/Views/RatingModalView.swift rename to frontend/MusIQ/Views/RatingModalView.swift diff --git a/frontend/MusicApp/Views/SplashScreenView.swift b/frontend/MusIQ/Views/SplashScreenView.swift similarity index 100% rename from frontend/MusicApp/Views/SplashScreenView.swift rename to frontend/MusIQ/Views/SplashScreenView.swift diff --git a/frontend/MusicAppTests/MusicAppTests.swift b/frontend/MusIQTests/MusicAppTests.swift similarity index 100% rename from frontend/MusicAppTests/MusicAppTests.swift rename to frontend/MusIQTests/MusicAppTests.swift diff --git a/frontend/MusicAppUITests/MusicAppUITests.swift b/frontend/MusIQUITests/MusicAppUITests.swift similarity index 100% rename from frontend/MusicAppUITests/MusicAppUITests.swift rename to frontend/MusIQUITests/MusicAppUITests.swift diff --git a/frontend/MusicAppUITests/MusicAppUITestsLaunchTests.swift b/frontend/MusIQUITests/MusicAppUITestsLaunchTests.swift similarity index 100% rename from frontend/MusicAppUITests/MusicAppUITestsLaunchTests.swift rename to frontend/MusIQUITests/MusicAppUITestsLaunchTests.swift