Major enhancements to batch URL import feature: Frontend improvements: - Add prominent "Bulk Import" button to main UI (no longer hidden in Advanced Options) - Implement real-time URL validation with visual feedback badges - Add duplicate URL detection and smart filtering - Enhance modal with better textarea, placeholder text, and professional styling - Add expandable error details showing specific invalid URLs - Implement dynamic import button text showing valid URL count - Add confirmation dialogs for invalid URL scenarios Technical enhancements: - Create comprehensive URL validation logic with regex patterns - Add live validation feedback as user types - Implement smart import process (only processes valid URLs) - Add progress tracking and cancellation support - Enhance modal styling with larger size and monospace font Test coverage: - Add 33 comprehensive test cases covering all new functionality - Include unit tests for URL validation logic - Add component tests for modal interactions - Implement UI integration tests for user workflows - Add performance tests for large dataset handling - Include accessibility tests for WCAG compliance Dependencies: - Add missing test dependencies (@types/jasmine, karma packages) - Fix zone.js testing imports for Angular 19 compatibility - Update package.json with proper testing infrastructure 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
55 lines
1.6 KiB
JSON
55 lines
1.6 KiB
JSON
{
|
|
"name": "metube",
|
|
"version": "0.0.0",
|
|
"scripts": {
|
|
"ng": "ng",
|
|
"start": "ng serve",
|
|
"build": "ng build",
|
|
"test": "ng test",
|
|
"lint": "ng lint",
|
|
"e2e": "ng e2e"
|
|
},
|
|
"private": true,
|
|
"dependencies": {
|
|
"@angular/animations": "^19.2.14",
|
|
"@angular/common": "^19.2.14",
|
|
"@angular/compiler": "^19.2.14",
|
|
"@angular/core": "^19.2.14",
|
|
"@angular/forms": "^19.2.14",
|
|
"@angular/localize": "^19.2.14",
|
|
"@angular/platform-browser": "^19.2.14",
|
|
"@angular/platform-browser-dynamic": "^19.2.14",
|
|
"@angular/router": "^19.2.14",
|
|
"@angular/service-worker": "^19.2.14",
|
|
"@fortawesome/angular-fontawesome": "~1.0.0",
|
|
"@fortawesome/fontawesome-svg-core": "^6.7.0",
|
|
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
|
"@fortawesome/free-regular-svg-icons": "^6.7.0",
|
|
"@fortawesome/free-solid-svg-icons": "^6.7.0",
|
|
"@ng-bootstrap/ng-bootstrap": "^18.0.0",
|
|
"@ng-select/ng-select": "^14.0.0",
|
|
"bootstrap": "^5.3.6",
|
|
"ngx-cookie-service": "^19.0.0",
|
|
"ngx-socket-io": "~4.8.0",
|
|
"rxjs": "~7.8.0",
|
|
"tslib": "^2.8.1",
|
|
"zone.js": "~0.15.1"
|
|
},
|
|
"devDependencies": {
|
|
"@angular-devkit/build-angular": "^19.2.14",
|
|
"@angular/cli": "^19.2.14",
|
|
"@angular/compiler-cli": "^19.2.14",
|
|
"@types/jasmine": "^5.1.9",
|
|
"@types/node": "^22.18.0",
|
|
"codelyzer": "^6.0.2",
|
|
"karma": "^6.4.4",
|
|
"karma-chrome-launcher": "^3.2.0",
|
|
"karma-coverage": "^2.2.1",
|
|
"karma-coverage-istanbul-reporter": "^3.0.3",
|
|
"karma-jasmine": "^5.1.0",
|
|
"karma-jasmine-html-reporter": "^2.1.0",
|
|
"ts-node": "~10.9.1",
|
|
"tslint": "~6.1.3",
|
|
"typescript": "~5.8.3"
|
|
}
|
|
}
|