Update dependencies - spring boot 4 and angular 21 #10

Merged
florian merged 12 commits from update-dependencies into main 2025-12-30 17:45:04 +01:00
30 changed files with 5178 additions and 8741 deletions

View File

@@ -33,28 +33,5 @@
<groupId>org.apache.tika</groupId> <groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId> <artifactId>tika-core</artifactId>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-data-jpa</artifactId>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-security</artifactId>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.postgresql</groupId>-->
<!-- <artifactId>postgresql</artifactId>-->
<!-- <scope>runtime</scope>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-test</artifactId>-->
<!-- <scope>test</scope>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.security</groupId>-->
<!-- <artifactId>spring-security-test</artifactId>-->
<!-- <scope>test</scope>-->
<!-- </dependency>-->
</dependencies> </dependencies>
</project> </project>

View File

@@ -29,7 +29,7 @@ public class SecurityConfiguration {
public SecurityFilterChain securityFilterChain( public SecurityFilterChain securityFilterChain(
HttpSecurity httpSecurity, HttpSecurity httpSecurity,
JwtAuthenticationFilter jwtAuthenticationFilter JwtAuthenticationFilter jwtAuthenticationFilter
) throws Exception { ) {
httpSecurity httpSecurity
.csrf(AbstractHttpConfigurer::disable) .csrf(AbstractHttpConfigurer::disable)
.httpBasic(Customizer.withDefaults()) .httpBasic(Customizer.withDefaults())

View File

@@ -1,6 +1,6 @@
package org.codiki.infrastructure.configuration; package org.codiki.infrastructure.configuration;
import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.persistence.autoconfigure.EntityScan;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

View File

@@ -15,11 +15,11 @@
<java.version>21</java.version> <java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source> <maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target> <maven.compiler.target>21</maven.compiler.target>
<jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version> <jakarta.servlet-api.version>6.1.0</jakarta.servlet-api.version>
<java-jwt.version>4.4.0</java-jwt.version> <java-jwt.version>4.5.0</java-jwt.version>
<postgresql.version>42.7.0</postgresql.version> <postgresql.version>42.7.8</postgresql.version>
<tika-core.version>2.9.0</tika-core.version> <tika-core.version>3.2.3</tika-core.version>
<commons-lang3.version>3.14.0</commons-lang3.version> <commons-lang3.version>3.20.0</commons-lang3.version>
</properties> </properties>
<modules> <modules>
@@ -35,7 +35,7 @@
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId> <artifactId>spring-boot-dependencies</artifactId>
<version>3.2.0</version> <version>4.0.1</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
@@ -84,8 +84,6 @@
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version> <version>${commons-lang3.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

View File

@@ -24,13 +24,14 @@
}, },
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-devkit/build-angular:application", "builder": "@angular/build:application",
"options": { "options": {
"outputPath": "dist/codiki", "outputPath": "dist/codiki",
"index": "src/index.html", "index": "src/index.html",
"browser": "src/main.ts", "browser": "src/main.ts",
"polyfills": [ "polyfills": [
"zone.js" "zone.js",
"@angular/localize/init"
], ],
"tsConfig": "tsconfig.app.json", "tsConfig": "tsconfig.app.json",
"inlineStyleLanguage": "scss", "inlineStyleLanguage": "scss",
@@ -102,7 +103,7 @@
"defaultConfiguration": "" "defaultConfiguration": ""
}, },
"serve": { "serve": {
"builder": "@angular-devkit/build-angular:dev-server", "builder": "@angular/build:dev-server",
"configurations": { "configurations": {
"production-en": { "production-en": {
"buildTarget": "codiki:build:production-en" "buildTarget": "codiki:build:production-en"
@@ -123,13 +124,13 @@
"defaultConfiguration": "development" "defaultConfiguration": "development"
}, },
"extract-i18n": { "extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n", "builder": "@angular/build:extract-i18n",
"options": { "options": {
"buildTarget": "codiki:build" "buildTarget": "codiki:build"
} }
}, },
"test": { "test": {
"builder": "@angular-devkit/build-angular:karma", "builder": "@angular/build:karma",
"options": { "options": {
"polyfills": [ "polyfills": [
"zone.js", "zone.js",
@@ -153,5 +154,31 @@
}, },
"cli": { "cli": {
"analytics": false "analytics": false
},
"schematics": {
"@schematics/angular:component": {
"type": "component"
},
"@schematics/angular:directive": {
"type": "directive"
},
"@schematics/angular:service": {
"type": "service"
},
"@schematics/angular:guard": {
"typeSeparator": "."
},
"@schematics/angular:interceptor": {
"typeSeparator": "."
},
"@schematics/angular:module": {
"typeSeparator": "."
},
"@schematics/angular:pipe": {
"typeSeparator": "."
},
"@schematics/angular:resolver": {
"typeSeparator": "."
}
} }
} }

13538
frontend/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -17,25 +17,25 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^18.2.5", "@angular/animations": "^21.0.6",
"@angular/cdk": "^18.2.5", "@angular/cdk": "^21.0.5",
"@angular/common": "^18.2.5", "@angular/common": "^21.0.6",
"@angular/compiler": "^18.2.5", "@angular/compiler": "^21.0.6",
"@angular/core": "^18.2.5", "@angular/core": "^21.0.6",
"@angular/forms": "^18.2.5", "@angular/forms": "^21.0.6",
"@angular/material": "^18.2.5", "@angular/material": "^21.0.5",
"@angular/platform-browser": "^18.2.5", "@angular/platform-browser": "^21.0.6",
"@angular/platform-browser-dynamic": "^18.2.5", "@angular/platform-browser-dynamic": "^21.0.6",
"@angular/router": "^18.2.5", "@angular/router": "^21.0.6",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.3.0", "tslib": "^2.3.0",
"zone.js": "~0.14.10" "zone.js": "~0.15.1"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "^18.2.5", "@angular/build": "^21.0.4",
"@angular/cli": "^18.2.5", "@angular/cli": "^21.0.4",
"@angular/compiler-cli": "^18.2.5", "@angular/compiler-cli": "^21.0.6",
"@angular/localize": "^18.2.5", "@angular/localize": "^21.0.6",
"@types/jasmine": "~5.1.0", "@types/jasmine": "~5.1.0",
"jasmine-core": "~5.1.0", "jasmine-core": "~5.1.0",
"karma": "~6.4.0", "karma": "~6.4.0",
@@ -43,6 +43,6 @@
"karma-coverage": "~2.2.0", "karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0", "karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0", "karma-jasmine-html-reporter": "~2.1.0",
"typescript": "~5.5.4" "typescript": "~5.9.3"
} }
} }

View File

@@ -1,4 +1,4 @@
import { CommonModule } from '@angular/common';
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router'; import { RouterOutlet } from '@angular/router';
import { HeaderComponent } from './components/header/header.component'; import { HeaderComponent } from './components/header/header.component';
@@ -6,13 +6,11 @@ import { FooterComponent } from './components/footer/footer.component';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
standalone: true,
imports: [ imports: [
CommonModule,
RouterOutlet, RouterOutlet,
HeaderComponent, HeaderComponent,
FooterComponent FooterComponent
], ],
templateUrl: './app.component.html', templateUrl: './app.component.html',
styleUrl: './app.component.scss' styleUrl: './app.component.scss'
}) })

View File

@@ -1,4 +1,4 @@
import { APP_INITIALIZER, ApplicationConfig } from '@angular/core'; import { ApplicationConfig, inject, provideAppInitializer } from '@angular/core';
import { provideRouter, withRouterConfig } from '@angular/router'; import { provideRouter, withRouterConfig } from '@angular/router';
import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
@@ -19,11 +19,9 @@ export const appConfig: ApplicationConfig = {
provideAnimationsAsync(), provideAnimationsAsync(),
provideHttpClient(withInterceptorsFromDi()), provideHttpClient(withInterceptorsFromDi()),
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
{ provideAppInitializer(() => {
provide: APP_INITIALIZER, const initializerFn = ((authenticationService: AuthenticationService) => () => authenticationService.startAuthenticationCheckingProcess())(inject(AuthenticationService));
useFactory: (authenticationService: AuthenticationService) => () => authenticationService.startAuthenticationCheckingProcess(), return initializerFn();
deps: [AuthenticationService], })
multi: true
}
] ]
}; };

View File

@@ -9,7 +9,6 @@ export interface ConfirmationDialogData {
@Component({ @Component({
selector: 'app-confirmation-dialog', selector: 'app-confirmation-dialog',
standalone: true,
templateUrl: './confirmation-dialog.component.html', templateUrl: './confirmation-dialog.component.html',
styleUrl: './confirmation-dialog.component.scss', styleUrl: './confirmation-dialog.component.scss',
imports: [MatRippleModule] imports: [MatRippleModule]

View File

@@ -5,7 +5,6 @@ import { RouterModule } from '@angular/router';
@Component({ @Component({
selector: 'app-footer', selector: 'app-footer',
standalone: true,
imports: [MatIconModule, MatTooltipModule, RouterModule], imports: [MatIconModule, MatTooltipModule, RouterModule],
templateUrl: './footer.component.html', templateUrl: './footer.component.html',
styleUrl: './footer.component.scss' styleUrl: './footer.component.scss'

View File

@@ -1,4 +1,4 @@
import { CommonModule } from '@angular/common';
import { Component, inject } from '@angular/core'; import { Component, inject } from '@angular/core';
import { FormControl, ReactiveFormsModule } from '@angular/forms'; import { FormControl, ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
@@ -13,9 +13,7 @@ import { SideMenuComponent } from '../side-menu/side-menu.component';
@Component({ @Component({
selector: 'app-header', selector: 'app-header',
standalone: true,
imports: [ imports: [
CommonModule,
MatButtonModule, MatButtonModule,
MatIconModule, MatIconModule,
MatMenuModule, MatMenuModule,
@@ -24,10 +22,10 @@ import { SideMenuComponent } from '../side-menu/side-menu.component';
PublicationsSearchBarComponent, PublicationsSearchBarComponent,
ReactiveFormsModule, ReactiveFormsModule,
RouterModule, RouterModule,
SideMenuComponent, SideMenuComponent
], ],
templateUrl: './header.component.html', templateUrl: './header.component.html',
styleUrl: './header.component.scss', styleUrl: './header.component.scss'
}) })
export class HeaderComponent { export class HeaderComponent {
private authenticationService = inject(AuthenticationService); private authenticationService = inject(AuthenticationService);

View File

@@ -86,7 +86,6 @@ export const PROGRAMMING_LANGUAGES: ProgramingLanguage[] = [
@Component({ @Component({
selector: 'app-code-block-dialog', selector: 'app-code-block-dialog',
standalone: true,
templateUrl: './code-block-dialog.component.html', templateUrl: './code-block-dialog.component.html',
styleUrl: './code-block-dialog.component.scss', styleUrl: './code-block-dialog.component.scss',
imports: [ imports: [

View File

@@ -10,7 +10,6 @@ import { MatTooltip } from "@angular/material/tooltip";
@Component({ @Component({
selector: 'app-picture-selection', selector: 'app-picture-selection',
standalone: true,
templateUrl: './picture-selection-dialog.component.html', templateUrl: './picture-selection-dialog.component.html',
styleUrl: './picture-selection-dialog.component.scss', styleUrl: './picture-selection-dialog.component.scss',
imports: [ imports: [
@@ -18,7 +17,7 @@ import { MatTooltip } from "@angular/material/tooltip";
MatRippleModule, MatRippleModule,
MatProgressSpinnerModule, MatProgressSpinnerModule,
MatTooltip MatTooltip
], ]
}) })
export class PictureSelectionDialog implements OnInit { export class PictureSelectionDialog implements OnInit {
private readonly pictureRestService = inject(PictureRestService); private readonly pictureRestService = inject(PictureRestService);

View File

@@ -19,7 +19,6 @@ import { MatRippleModule } from "@angular/material/core";
@Component({ @Component({
selector: 'app-publication-edition', selector: 'app-publication-edition',
standalone: true,
templateUrl: './publication-edition.component.html', templateUrl: './publication-edition.component.html',
styleUrl: './publication-edition.component.scss', styleUrl: './publication-edition.component.scss',
imports: [ imports: [
@@ -32,7 +31,6 @@ import { MatRippleModule } from "@angular/material/core";
MatSelectModule, MatSelectModule,
MatTabsModule, MatTabsModule,
MatTooltipModule, MatTooltipModule,
PictureSelectionDialog,
ReactiveFormsModule, ReactiveFormsModule,
SubmitButtonComponent SubmitButtonComponent
], ],

View File

@@ -7,7 +7,6 @@ import { MatTooltipModule } from "@angular/material/tooltip";
@Component({ @Component({
selector: 'app-publication-list', selector: 'app-publication-list',
standalone: true,
templateUrl: './publication-list.component.html', templateUrl: './publication-list.component.html',
styleUrl: './publication-list.component.scss', styleUrl: './publication-list.component.scss',
imports: [CommonModule, RouterModule, MatTooltipModule] imports: [CommonModule, RouterModule, MatTooltipModule]

View File

@@ -9,7 +9,6 @@ import { Router } from "@angular/router";
selector: 'app-publications-search-bar', selector: 'app-publications-search-bar',
templateUrl: './publications-search-bar.component.html', templateUrl: './publications-search-bar.component.html',
styleUrl: './publications-search-bar.component.scss', styleUrl: './publications-search-bar.component.scss',
standalone: true,
imports: [ imports: [
MatIconModule, MatIconModule,
MatRippleModule, MatRippleModule,

View File

@@ -7,7 +7,6 @@ import { RouterModule } from "@angular/router";
@Component({ @Component({
selector: 'app-categories-menu', selector: 'app-categories-menu',
standalone: true,
templateUrl: './categories-menu.component.html', templateUrl: './categories-menu.component.html',
imports: [ imports: [
CommonModule, CommonModule,

View File

@@ -7,7 +7,6 @@ import { MatRippleModule } from '@angular/material/core';
@Component({ @Component({
selector: 'app-side-menu', selector: 'app-side-menu',
standalone: true,
templateUrl: './side-menu.component.html', templateUrl: './side-menu.component.html',
styleUrl: './side-menu.component.scss', styleUrl: './side-menu.component.scss',
imports: [ imports: [

View File

@@ -1,18 +1,16 @@
import { CommonModule } from "@angular/common";
import { Component, EventEmitter, Input, Output } from "@angular/core"; import { Component, EventEmitter, Input, Output } from "@angular/core";
import { MatRippleModule } from "@angular/material/core"; import { MatRippleModule } from "@angular/material/core";
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner"; import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
@Component({ @Component({
selector: 'app-submit-button', selector: 'app-submit-button',
standalone: true,
templateUrl: 'submit-button.component.html', templateUrl: 'submit-button.component.html',
styleUrl: 'submit-button.component.scss', styleUrl: 'submit-button.component.scss',
imports: [ imports: [
CommonModule,
MatRippleModule, MatRippleModule,
MatProgressSpinnerModule MatProgressSpinnerModule
] ]
}) })
export class SubmitButtonComponent { export class SubmitButtonComponent {
@Input() requestPending: boolean = false; @Input() requestPending: boolean = false;

View File

@@ -5,7 +5,6 @@ import { Router } from '@angular/router';
@Component({ @Component({
selector: 'app-disconnection', selector: 'app-disconnection',
standalone: true,
imports: [MatProgressSpinnerModule], imports: [MatProgressSpinnerModule],
templateUrl: './disconnection.component.html', templateUrl: './disconnection.component.html',
styleUrl: './disconnection.component.scss' styleUrl: './disconnection.component.scss'

View File

@@ -8,7 +8,6 @@ import { CommonModule } from '@angular/common';
@Component({ @Component({
selector: 'app-home', selector: 'app-home',
standalone: true,
imports: [ imports: [
CommonModule, CommonModule,
MatProgressSpinnerModule, MatProgressSpinnerModule,

View File

@@ -10,7 +10,6 @@ import { MatRippleModule } from '@angular/material/core';
@Component({ @Component({
selector: 'app-login', selector: 'app-login',
standalone: true,
templateUrl: './login.component.html', templateUrl: './login.component.html',
styleUrl: './login.component.scss', styleUrl: './login.component.scss',
imports: [ imports: [

View File

@@ -12,7 +12,6 @@ import { MatRippleModule } from "@angular/material/core";
@Component({ @Component({
selector: 'app-my-component', selector: 'app-my-component',
standalone: true,
templateUrl: './my-publications.component.html', templateUrl: './my-publications.component.html',
styleUrl: './my-publications.component.scss', styleUrl: './my-publications.component.scss',
imports: [ imports: [

View File

@@ -7,17 +7,15 @@ import { BehaviorSubject, Observable, Subscription } from "rxjs";
import { Publication } from "../../core/rest-services/publications/model/publication"; import { Publication } from "../../core/rest-services/publications/model/publication";
import { AuthenticationService } from "../../core/service/authentication.service"; import { AuthenticationService } from "../../core/service/authentication.service";
import { Author } from "../../core/rest-services/publications/model/author"; import { Author } from "../../core/rest-services/publications/model/author";
import { CommonModule } from "@angular/common";
@Component({ @Component({
selector: 'app-publication-creation', selector: 'app-publication-creation',
standalone: true,
templateUrl: './publication-creation.component.html', templateUrl: './publication-creation.component.html',
styleUrl: './publication-creation.component.scss', styleUrl: './publication-creation.component.scss',
imports: [ imports: [
CommonModule,
PublicationEditionComponent PublicationEditionComponent
] ]
}) })
export class PublicationCreationComponent implements OnInit { export class PublicationCreationComponent implements OnInit {
private readonly authenticationService = inject(AuthenticationService); private readonly authenticationService = inject(AuthenticationService);

View File

@@ -11,14 +11,11 @@ import { MatTooltipModule } from '@angular/material/tooltip';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { PublicationEditionComponent } from '../../components/publication-edition/publication-edition.component'; import { PublicationEditionComponent } from '../../components/publication-edition/publication-edition.component';
import { SubmitButtonComponent } from '../../components/submit-button/submit-button.component';
import { Publication } from '../../core/rest-services/publications/model/publication'; import { Publication } from '../../core/rest-services/publications/model/publication';
import { PublicationRestService } from '../../core/rest-services/publications/publication.rest-service'; import { PublicationRestService } from '../../core/rest-services/publications/publication.rest-service';
import { PictureSelectionDialog } from '../../components/publication-edition/picture-selection-dialog/picture-selection-dialog.component';
@Component({ @Component({
selector: 'app-publication-update', selector: 'app-publication-update',
standalone: true,
imports: [ imports: [
CommonModule, CommonModule,
MatDialogModule, MatDialogModule,
@@ -27,13 +24,11 @@ import { PictureSelectionDialog } from '../../components/publication-edition/pic
MatProgressSpinnerModule, MatProgressSpinnerModule,
MatTabsModule, MatTabsModule,
MatTooltipModule, MatTooltipModule,
PictureSelectionDialog,
ReactiveFormsModule, ReactiveFormsModule,
SubmitButtonComponent,
PublicationEditionComponent PublicationEditionComponent
], ],
templateUrl: './publication-update.component.html', templateUrl: './publication-update.component.html',
styleUrl: './publication-update.component.scss', styleUrl: './publication-update.component.scss'
}) })
export class PublicationUpdateComponent implements OnInit, OnDestroy { export class PublicationUpdateComponent implements OnInit, OnDestroy {
private readonly publicationRestService = inject(PublicationRestService); private readonly publicationRestService = inject(PublicationRestService);
@@ -56,7 +51,7 @@ export class PublicationUpdateComponent implements OnInit, OnDestroy {
ngOnInit(): void { ngOnInit(): void {
this.isLoadingSubject.next(true); this.isLoadingSubject.next(true);
this.activatedRoute.paramMap.subscribe(params => { const activatedRouteSubscription = this.activatedRoute.paramMap.subscribe(params => {
const publicationId = params.get('publicationId'); const publicationId = params.get('publicationId');
if (publicationId == undefined) { if (publicationId == undefined) {
this.snackBar.open($localize`A technical error occurred while loading publication data.`, $localize`Close`, { duration: 5000 }); this.snackBar.open($localize`A technical error occurred while loading publication data.`, $localize`Close`, { duration: 5000 });
@@ -74,6 +69,7 @@ export class PublicationUpdateComponent implements OnInit, OnDestroy {
.finally(() => this.isLoadingSubject.next(false)); .finally(() => this.isLoadingSubject.next(false));
} }
}); });
this.subscriptions.push(activatedRouteSubscription);
} }
ngOnDestroy(): void { ngOnDestroy(): void {

View File

@@ -17,7 +17,6 @@ declare let Prism: any;
@Component({ @Component({
selector: 'app-publication', selector: 'app-publication',
standalone: true,
templateUrl: './publication.component.html', templateUrl: './publication.component.html',
styleUrl: './publication.component.scss', styleUrl: './publication.component.scss',
imports: [ imports: [

View File

@@ -11,7 +11,6 @@ import { SearchPublicationsService } from "./search-publications.service";
selector: 'app-search-publications', selector: 'app-search-publications',
templateUrl: './search-publications.component.html', templateUrl: './search-publications.component.html',
styleUrl: './search-publications.component.scss', styleUrl: './search-publications.component.scss',
standalone: true,
imports: [CommonModule, MatProgressSpinner, PublicationListComponent], imports: [CommonModule, MatProgressSpinner, PublicationListComponent],
providers: [SearchPublicationsService] providers: [SearchPublicationsService]
}) })

View File

@@ -11,7 +11,6 @@ import { MatRippleModule } from '@angular/material/core';
@Component({ @Component({
selector: 'app-signin', selector: 'app-signin',
standalone: true,
templateUrl: './signin.component.html', templateUrl: './signin.component.html',
styleUrl: './signin.component.scss', styleUrl: './signin.component.scss',
imports: [ imports: [

View File

@@ -13,15 +13,11 @@
"sourceMap": true, "sourceMap": true,
"declaration": false, "declaration": false,
"experimentalDecorators": true, "experimentalDecorators": true,
"moduleResolution": "node", "moduleResolution": "bundler",
"importHelpers": true, "importHelpers": true,
"target": "ES2022", "target": "ES2022",
"module": "ES2022", "module": "ES2022",
"useDefineForClassFields": false, "useDefineForClassFields": false
"lib": [
"ES2022",
"dom"
]
}, },
"angularCompilerOptions": { "angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false, "enableI18nLegacyMessageIdFormat": false,