angular 18 -> 19 + migrations

This commit is contained in:
Cucumberrbob 2025-02-28 12:28:21 +00:00
parent b4f950bc7c
commit e06c1efb6a
No known key found for this signature in database
GPG key ID: 2B935C47401C3614
18 changed files with 3799 additions and 3522 deletions

View file

@ -1,10 +1,10 @@
{ {
"/Api": { "/Api": {
"target": "http://localhost:6500/", "target": "http://sativus.local:6500/",
"secure": false "secure": false
}, },
"/hub": { "/hub": {
"target": "http://localhost:6500/", "target": "http://sativus.local:6500/",
"secure": false, "secure": false,
"ws": true "ws": true
} }

7192
client/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -12,16 +12,16 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^18.2.13", "@angular/animations": "^19.2.0",
"@angular/cdk": "^18.2.14", "@angular/cdk": "^19.2.1",
"@angular/common": "^18.2.13", "@angular/common": "^19.2.0",
"@angular/compiler": "^18.2.13", "@angular/compiler": "^19.2.0",
"@angular/core": "^18.2.13", "@angular/core": "^19.2.0",
"@angular/flex-layout": "^15.0.0-beta.42", "@angular/flex-layout": "^15.0.0-beta.42",
"@angular/forms": "^18.2.13", "@angular/forms": "^19.2.0",
"@angular/platform-browser": "^18.2.13", "@angular/platform-browser": "^19.2.0",
"@angular/platform-browser-dynamic": "^18.2.13", "@angular/platform-browser-dynamic": "^19.2.0",
"@angular/router": "^18.2.13", "@angular/router": "^19.2.0",
"@fortawesome/fontawesome-free": "^6.4.2", "@fortawesome/fontawesome-free": "^6.4.2",
"@microsoft/signalr": "^6.0.21", "@microsoft/signalr": "^6.0.21",
"bulma": "^0.9.4", "bulma": "^0.9.4",
@ -30,18 +30,18 @@
"ngx-filesize": "^3.0.5", "ngx-filesize": "^3.0.5",
"rxjs": "~7.8.1", "rxjs": "~7.8.1",
"tslib": "^2.6.2", "tslib": "^2.6.2",
"zone.js": "~0.14.10" "zone.js": "~0.15.0"
}, },
"devDependencies": { "devDependencies": {
"@angular-eslint/builder": "18.4.3", "@angular-eslint/builder": "19.1.0",
"@angular-eslint/eslint-plugin": "18.4.3", "@angular-eslint/eslint-plugin": "19.1.0",
"@angular-eslint/eslint-plugin-template": "18.4.3", "@angular-eslint/eslint-plugin-template": "19.1.0",
"@angular-eslint/schematics": "18.4.3", "@angular-eslint/schematics": "19.1.0",
"@angular-eslint/template-parser": "18.4.3", "@angular-eslint/template-parser": "19.1.0",
"@angular/build": "^18.2.14", "@angular/build": "^19.2.0",
"@angular/cli": "^18.2.14", "@angular/cli": "^19.2.0",
"@angular/compiler-cli": "^18.2.13", "@angular/compiler-cli": "^19.2.0",
"@angular/language-service": "^18.2.13", "@angular/language-service": "^19.2.0",
"@types/file-saver": "^2.0.5", "@types/file-saver": "^2.0.5",
"@types/file-saver-es": "^2.0.1", "@types/file-saver-es": "^2.0.1",
"@types/node": "^20.5.8", "@types/node": "^20.5.8",
@ -49,6 +49,6 @@
"@typescript-eslint/parser": "^7.2.0", "@typescript-eslint/parser": "^7.2.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"prettier": "^3.0.3", "prettier": "^3.0.3",
"typescript": "5.4.5" "typescript": "5.7.3"
} }
} }

View file

@ -5,9 +5,10 @@ import { Torrent, TorrentFileAvailability } from '../models/torrent.model';
import { SettingsService } from '../settings.service'; import { SettingsService } from '../settings.service';
@Component({ @Component({
selector: 'app-add-new-torrent', selector: 'app-add-new-torrent',
templateUrl: './add-new-torrent.component.html', templateUrl: './add-new-torrent.component.html',
styleUrls: ['./add-new-torrent.component.scss'], styleUrls: ['./add-new-torrent.component.scss'],
standalone: false
}) })
export class AddNewTorrentComponent implements OnInit { export class AddNewTorrentComponent implements OnInit {
public fileName: string; public fileName: string;

View file

@ -1,8 +1,9 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
template: '<router-outlet></router-outlet>', template: '<router-outlet></router-outlet>',
styles: [], styles: [],
standalone: false
}) })
export class AppComponent {} export class AppComponent {}

View file

@ -1,7 +1,8 @@
import { Pipe, PipeTransform } from '@angular/core'; import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ @Pipe({
name: 'decodeURI', name: 'decodeURI',
standalone: false
}) })
export class DecodeURIPipe implements PipeTransform { export class DecodeURIPipe implements PipeTransform {
transform(input: any) { transform(input: any) {

View file

@ -3,7 +3,8 @@ import { FileSizePipe } from 'ngx-filesize';
import { Download } from './models/download.model'; import { Download } from './models/download.model';
@Pipe({ @Pipe({
name: 'downloadStatus', name: 'downloadStatus',
standalone: false
}) })
export class DownloadStatusPipe implements PipeTransform { export class DownloadStatusPipe implements PipeTransform {
constructor(private pipe: FileSizePipe) {} constructor(private pipe: FileSizePipe) {}

View file

@ -3,9 +3,10 @@ import { Router } from '@angular/router';
import { AuthService } from '../auth.service'; import { AuthService } from '../auth.service';
@Component({ @Component({
selector: 'app-login', selector: 'app-login',
templateUrl: './login.component.html', templateUrl: './login.component.html',
styleUrls: ['./login.component.scss'], styleUrls: ['./login.component.scss'],
standalone: false
}) })
export class LoginComponent { export class LoginComponent {
public userName: string; public userName: string;

View file

@ -1,9 +1,10 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
@Component({ @Component({
selector: 'app-main-layout', selector: 'app-main-layout',
templateUrl: './main-layout.component.html', templateUrl: './main-layout.component.html',
styleUrls: ['./main-layout.component.scss'], styleUrls: ['./main-layout.component.scss'],
standalone: false
}) })
export class MainLayoutComponent { export class MainLayoutComponent {
constructor() {} constructor() {}

View file

@ -5,9 +5,10 @@ import { Profile } from '../models/profile.model';
import { SettingsService } from '../settings.service'; import { SettingsService } from '../settings.service';
@Component({ @Component({
selector: 'app-navbar', selector: 'app-navbar',
templateUrl: './navbar.component.html', templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.scss'], styleUrls: ['./navbar.component.scss'],
standalone: false
}) })
export class NavbarComponent implements OnInit { export class NavbarComponent implements OnInit {
public showMobileMenu = false; public showMobileMenu = false;

View file

@ -2,7 +2,8 @@ import { Pipe, PipeTransform, SecurityContext, VERSION } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser'; import { DomSanitizer } from '@angular/platform-browser';
@Pipe({ @Pipe({
name: 'nl2br', name: 'nl2br',
standalone: false
}) })
export class Nl2BrPipe implements PipeTransform { export class Nl2BrPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {} constructor(private sanitizer: DomSanitizer) {}

View file

@ -2,9 +2,10 @@ import { Component } from '@angular/core';
import { AuthService } from '../auth.service'; import { AuthService } from '../auth.service';
@Component({ @Component({
selector: 'app-profile', selector: 'app-profile',
templateUrl: './profile.component.html', templateUrl: './profile.component.html',
styleUrls: ['./profile.component.scss'], styleUrls: ['./profile.component.scss'],
standalone: false
}) })
export class ProfileComponent { export class ProfileComponent {
constructor(private authService: AuthService) {} constructor(private authService: AuthService) {}

View file

@ -3,9 +3,10 @@ import { SettingsService } from 'src/app/settings.service';
import { Setting } from '../models/setting.model'; import { Setting } from '../models/setting.model';
@Component({ @Component({
selector: 'app-settings', selector: 'app-settings',
templateUrl: './settings.component.html', templateUrl: './settings.component.html',
styleUrls: ['./settings.component.scss'], styleUrls: ['./settings.component.scss'],
standalone: false
}) })
export class SettingsComponent implements OnInit { export class SettingsComponent implements OnInit {
public activeTab = 0; public activeTab = 0;

View file

@ -3,9 +3,10 @@ import { Router } from '@angular/router';
import { AuthService } from '../auth.service'; import { AuthService } from '../auth.service';
@Component({ @Component({
selector: 'app-setup', selector: 'app-setup',
templateUrl: './setup.component.html', templateUrl: './setup.component.html',
styleUrls: ['./setup.component.scss'], styleUrls: ['./setup.component.scss'],
standalone: false
}) })
export class SetupComponent { export class SetupComponent {
public userName: string; public userName: string;

View file

@ -1,7 +1,8 @@
import { Pipe, PipeTransform } from '@angular/core'; import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ @Pipe({
name: 'sort', name: 'sort',
standalone: false
}) })
export class SortPipe implements PipeTransform { export class SortPipe implements PipeTransform {
transform(array: any[], field: string, order: 'asc' | 'desc' = 'asc'): any[] { transform(array: any[], field: string, order: 'asc' | 'desc' = 'asc'): any[] {

View file

@ -3,7 +3,8 @@ import { FileSizePipe } from 'ngx-filesize';
import { RealDebridStatus, Torrent } from './models/torrent.model'; import { RealDebridStatus, Torrent } from './models/torrent.model';
@Pipe({ @Pipe({
name: 'status', name: 'status',
standalone: false
}) })
export class TorrentStatusPipe implements PipeTransform { export class TorrentStatusPipe implements PipeTransform {
constructor(private pipe: FileSizePipe) {} constructor(private pipe: FileSizePipe) {}

View file

@ -5,9 +5,10 @@ import { TorrentService } from '../torrent.service';
import { forkJoin, Observable } from 'rxjs'; import { forkJoin, Observable } from 'rxjs';
@Component({ @Component({
selector: 'app-torrent-table', selector: 'app-torrent-table',
templateUrl: './torrent-table.component.html', templateUrl: './torrent-table.component.html',
styleUrls: ['./torrent-table.component.scss'], styleUrls: ['./torrent-table.component.scss'],
standalone: false
}) })
export class TorrentTableComponent implements OnInit { export class TorrentTableComponent implements OnInit {
public torrents: Torrent[] = []; public torrents: Torrent[] = [];

View file

@ -5,9 +5,10 @@ import { Torrent } from '../models/torrent.model';
import { TorrentService } from '../torrent.service'; import { TorrentService } from '../torrent.service';
@Component({ @Component({
selector: 'app-torrent', selector: 'app-torrent',
templateUrl: './torrent.component.html', templateUrl: './torrent.component.html',
styleUrls: ['./torrent.component.scss'], styleUrls: ['./torrent.component.scss'],
standalone: false
}) })
export class TorrentComponent implements OnInit { export class TorrentComponent implements OnInit {
public torrent: Torrent; public torrent: Torrent;