Update angular core and cli to version 14

master
parent d07c6a2f3d
commit 1d18b265c3

2
.gitignore vendored

@ -1,4 +1,4 @@
/.angular/cache
.angular
node_modules/
dist/
.idea/

@ -193,6 +193,5 @@
}
}
}
},
"defaultProject": "connect-admin"
}
}

@ -13,21 +13,21 @@
"e2e": "ng e2e",
"mining": "chmod +x interactivemining-install.sh && ./interactivemining-install.sh",
"postinstall": "npm run mining",
"after-build-clean": "rm -rf dist/connect-admin/assets/common-assets/.git dist/connect-admin/assets/dashboard-theme/.git"
"after-build-clean": "rm -rf dist/connect-admin/assets/common-assets/.git dist/connect-admin/assets/openaire-theme/.git .angular"
},
"private": true,
"dependencies": {
"@angular/animations": "~13.3.11",
"@angular/animations": "^14.2.3",
"@angular/cdk": "^13.3.9",
"@angular/common": "~13.3.11",
"@angular/compiler": "~13.3.11",
"@angular/core": "~13.3.11",
"@angular/forms": "~13.3.11",
"@angular/localize": "^13.3.11",
"@angular/common": "^14.2.3",
"@angular/compiler": "^14.2.3",
"@angular/core": "^14.2.3",
"@angular/forms": "^14.2.3",
"@angular/localize": "^14.2.3",
"@angular/material": "^13.3.9",
"@angular/platform-browser": "~13.3.11",
"@angular/platform-browser-dynamic": "~13.3.11",
"@angular/router": "~13.3.11",
"@angular/platform-browser": "^14.2.3",
"@angular/platform-browser-dynamic": "^14.2.3",
"@angular/router": "^14.2.3",
"clipboard": "^1.5.16",
"core-js": "^2.5.4",
"express": "^4.15.2",
@ -43,10 +43,10 @@
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~13.3.9",
"@angular/cli": "~13.3.9",
"@angular/compiler-cli": "~13.3.11",
"@angular/language-service": "~13.3.11",
"@angular-devkit/build-angular": "^14.2.3",
"@angular/cli": "^14.2.3",
"@angular/compiler-cli": "^14.2.3",
"@angular/language-service": "^14.2.3",
"@types/express": "^4.17.0",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
@ -63,4 +63,4 @@
"ts-node": "~7.0.0",
"typescript": "~4.6.4"
}
}
}

@ -1 +1 @@
Subproject commit da6f36bdf3569e814e26cdd69347e951423582d6
Subproject commit bf779e922d1c059f326f7748474cdfabd3fa56d0

@ -10,7 +10,7 @@ import {Title} from '@angular/platform-browser';
import {StringUtils} from "../../openaireLibrary/utils/string-utils.class";
import {properties} from "../../../environments/environment";
import {Page} from "../../openaireLibrary/utils/entities/adminTool/page";
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import {UntypedFormBuilder, UntypedFormGroup, Validators} from "@angular/forms";
import {Subscription} from "rxjs";
import {CommunityService} from "../../openaireLibrary/connect/community/community.service";
import {CommunityInfo} from "../../openaireLibrary/connect/community/communityInfo";
@ -27,7 +27,7 @@ export class AffiliationsComponent implements OnInit, OnDestroy {
public properties: EnvProperties = properties;
public index = 0;
public affiliations: Affiliation[];
public affiliationFb: FormGroup;
public affiliationFb: UntypedFormGroup;
public community: CommunityInfo;
public organizationsPage: Page;
public page: number = 1;
@ -39,7 +39,7 @@ export class AffiliationsComponent implements OnInit, OnDestroy {
constructor(private route: ActivatedRoute,
private router: Router,
private title: Title,
private fb: FormBuilder,
private fb: UntypedFormBuilder,
private communityService: CommunityService,
private affiliationService: AffiliationService,
private helpContentService: HelpContentService,

@ -1,5 +1,5 @@
import {Component} from "@angular/core";
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import {UntypedFormBuilder, UntypedFormGroup, Validators} from "@angular/forms";
import {EnvProperties} from "../../../../openaireLibrary/utils/properties/env-properties";
import {properties} from "../../../../../environments/environment";
import {CommunityInfo} from "../../../../openaireLibrary/connect/community/communityInfo";
@ -88,7 +88,7 @@ import {ClearCacheService} from "../../../../openaireLibrary/services/clear-cach
styleUrls: ['edit-community.component.less']
})
export class EditCommunityComponent {
public communityFb: FormGroup;
public communityFb: UntypedFormGroup;
public statuses: Option[] = [
{label: 'Visible', value: 'all'},
{label: 'Visible to managers', value: 'manager'},
@ -109,7 +109,7 @@ export class EditCommunityComponent {
private maxsize: number = 200 * 1024;
user: User;
constructor(private fb: FormBuilder,
constructor(private fb: UntypedFormBuilder,
private communityService: CommunityService,
private utilsService: UtilitiesService,
private userManagementService: UserManagementService,

@ -9,7 +9,7 @@ import {RouterHelper} from '../../openaireLibrary/utils/routerHelper.class';
import {StringUtils} from '../../openaireLibrary/utils/string-utils.class';
import {ManageCommunityContentProvidersService} from '../../services/manageContentProviders.service';
import {properties} from "../../../environments/environment";
import {FormBuilder, FormGroup} from "@angular/forms";
import {UntypedFormBuilder, UntypedFormGroup} from "@angular/forms";
import {SearchInputComponent} from "../../openaireLibrary/sharedComponents/search-input/search-input.component";
import {Subscriber} from "rxjs";
import {debounceTime, distinctUntilChanged} from "rxjs/operators";
@ -38,7 +38,7 @@ export class AddContentProvidersComponent implements OnInit {
public openAIREEntities = OpenaireEntities;
public queryParameters: string = "";
public resultsPerPage: number = properties.resultsPerPage;
filterForm: FormGroup;
filterForm: UntypedFormGroup;
@ViewChild('searchInputComponent') searchInputComponent: SearchInputComponent;
public contentProviderUrl: string = "https://" + ((properties.environment == "beta" || properties.environment == "development") ? "beta." : "") + "explore.openaire.eu" + properties.searchLinkToDataProvider;
public body: string = "Send from page";
@ -49,7 +49,7 @@ export class AddContentProvidersComponent implements OnInit {
private searchDataprovidersService: SearchDataprovidersService,
private manageCommunityContentProvidersService: ManageCommunityContentProvidersService,
private _clearCacheService: ClearCacheService,
private fb: FormBuilder) {
private fb: UntypedFormBuilder) {
this.errorCodes = new ErrorCodes();
this.openaireSearchUtils.status = this.errorCodes.LOADING;
}

@ -6,7 +6,7 @@ import {
Criteria,
SelectionCriteria
} from '../../../openaireLibrary/utils/entities/contentProvider';
import {AbstractControl, FormArray, FormBuilder, FormGroup, Validators} from '@angular/forms';
import {AbstractControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';
import {ManageCommunityContentProvidersService} from '../../../services/manageContentProviders.service';
import {properties} from "../../../../environments/environment";
import {Option} from "../../../openaireLibrary/sharedComponents/input/input.component";
@ -24,7 +24,7 @@ import {OpenaireEntities} from "../../../openaireLibrary/utils/properties/search
export class CriteriaComponent implements OnInit {
@Input()
public dataProvider: ContentProvider;
public selectionCriteria: FormGroup;
public selectionCriteria: UntypedFormGroup;
public properties: EnvProperties = properties;
public fields: Option[] = CriteriaUtils.fields;
public verbs: Option[] = CriteriaUtils.verbs;
@ -36,7 +36,7 @@ export class CriteriaComponent implements OnInit {
constructor(private manageCommunityContentProvidersService: ManageCommunityContentProvidersService,
private cdr: ChangeDetectorRef,
private fb: FormBuilder) {
private fb: UntypedFormBuilder) {
}
ngOnInit() {
@ -53,7 +53,7 @@ export class CriteriaComponent implements OnInit {
let selectionCriteria = this.dataProvider.selectioncriteria;
if (selectionCriteria) {
selectionCriteria.criteria.forEach(criterion => {
let constraintArray: FormArray = this.fb.array([]);
let constraintArray: UntypedFormArray = this.fb.array([]);
criterion.constraint.forEach(constraint => {
constraintArray.push(this.fb.group({
field: this.fb.control(constraint.field, Validators.required),
@ -86,16 +86,16 @@ export class CriteriaComponent implements OnInit {
return (this.page - 1)*this.pageSize + index;
}
public get criteria(): FormArray {
return this.selectionCriteria.get('criteria') as FormArray;
public get criteria(): UntypedFormArray {
return this.selectionCriteria.get('criteria') as UntypedFormArray;
}
public getConstraint(i: number): FormArray {
return this.criteria.at(i).get('constraint') as FormArray;
public getConstraint(i: number): UntypedFormArray {
return this.criteria.at(i).get('constraint') as UntypedFormArray;
}
public addCriteria() {
let constraintArray: FormArray = this.fb.array([
let constraintArray: UntypedFormArray = this.fb.array([
this.fb.group({
field: this.fb.control('', Validators.required),
verb: this.fb.control('contains', Validators.required),
@ -111,7 +111,7 @@ export class CriteriaComponent implements OnInit {
}
public addConstraint(i: number) {
let constraintArray: FormArray = this.criteria.at(i).get('constraint') as FormArray;
let constraintArray: UntypedFormArray = this.criteria.at(i).get('constraint') as UntypedFormArray;
constraintArray.push(this.fb.group({
field: this.fb.control('', Validators.required),
verb: this.fb.control('contains', Validators.required),
@ -122,7 +122,7 @@ export class CriteriaComponent implements OnInit {
}
public removeConstraint(i: number, j: number) {
let constraintArray: FormArray = this.criteria.at(i).get('constraint') as FormArray;
let constraintArray: UntypedFormArray = this.criteria.at(i).get('constraint') as UntypedFormArray;
constraintArray.removeAt(j);
if (constraintArray.length === 0) {
this.criteria.removeAt(i);

@ -10,7 +10,7 @@ import {RouterHelper} from '../../openaireLibrary/utils/routerHelper.class';
import {ContentProvider, Criteria} from '../../openaireLibrary/utils/entities/contentProvider';
import {properties} from "../../../environments/environment";
import {SearchInputComponent} from "../../openaireLibrary/sharedComponents/search-input/search-input.component";
import {FormBuilder, FormGroup} from "@angular/forms";
import {UntypedFormBuilder, UntypedFormGroup} from "@angular/forms";
import {CriteriaUtils} from "./criteria-utils";
import {CommunityInfo} from "../../openaireLibrary/connect/community/communityInfo";
import {NotificationHandler} from "../../openaireLibrary/utils/notification-handler";
@ -45,14 +45,14 @@ export class RemoveContentProvidersComponent implements OnInit {
resultsPerPage: number = properties.resultsPerPage;
/** Search */
@ViewChild('searchInputComponent') searchInputComponent: SearchInputComponent;
filterForm: FormGroup;
filterForm: UntypedFormGroup;
private searchText: RegExp = new RegExp('');
public keyword: string = '';
@Output() addContentProviders: EventEmitter<void> = new EventEmitter();
@Output() editCriteria: EventEmitter<ContentProvider> = new EventEmitter<ContentProvider>();
constructor(private route: ActivatedRoute, private _router: Router,
private _fb: FormBuilder,
private _fb: UntypedFormBuilder,
private _manageCommunityContentProvidersService: ManageCommunityContentProvidersService,
private _searchCommunityContentProvidersService: SearchCommunityDataprovidersService,
private _clearCacheService: ClearCacheService) {

@ -9,7 +9,7 @@ import {Title} from '@angular/platform-browser';
import {properties} from "../../../environments/environment";
import {Subscription} from "rxjs";
import {SearchInputComponent} from '../../openaireLibrary/sharedComponents/search-input/search-input.component';
import {FormBuilder, FormGroup} from '@angular/forms';
import {UntypedFormBuilder, UntypedFormGroup} from '@angular/forms';
import {SearchUtilsClass} from '../../openaireLibrary/searchPages/searchUtils/searchUtils.class';
import {ErrorCodes} from '../../openaireLibrary/utils/properties/errorCodes';
@ -124,11 +124,11 @@ export class ManageCommunitiesComponent implements OnInit, OnDestroy {
public errorCodes: ErrorCodes;
// Search
@ViewChild('searchInputComponent') searchInputComponent: SearchInputComponent;
filterForm: FormGroup;
filterForm: UntypedFormGroup;
private searchText: string = '';
constructor(private route: ActivatedRoute,
private _fb: FormBuilder,
private _fb: UntypedFormBuilder,
private communitiesService: CommunitiesService,
private title: Title,
private userManagementService: UserManagementService) {

@ -11,7 +11,7 @@ import {ManageCommunityProjectsService} from '../../services/manageProjects.serv
import {properties} from "../../../environments/environment";
import {Subscriber} from "rxjs";
import {FormBuilder, FormGroup} from "@angular/forms";
import {UntypedFormBuilder, UntypedFormGroup} from "@angular/forms";
import {debounceTime, distinctUntilChanged} from "rxjs/operators";
import {ResultPreview} from "../../openaireLibrary/utils/result-preview/result-preview";
import {SearchInputComponent} from "../../openaireLibrary/sharedComponents/search-input/search-input.component";
@ -47,7 +47,7 @@ export class AddProjectsComponent implements OnInit {
public selectedFunderId: string = "";
public selectedFunder: Value = null;
filterForm: FormGroup;
filterForm: UntypedFormGroup;
funders: Filter = null;
@ViewChild('searchInputComponent') searchInputComponent: SearchInputComponent;
@ -59,7 +59,7 @@ export class AddProjectsComponent implements OnInit {
constructor(private route: ActivatedRoute, private _router: Router, private _searchProjectsService: SearchProjectsService,
private _manageCommunityProjectsService: ManageCommunityProjectsService,
private _clearCacheService: ClearCacheService,
private _fb: FormBuilder) {
private _fb: UntypedFormBuilder) {
this.errorCodes = new ErrorCodes();
this.openaireSearchUtils.status = this.errorCodes.LOADING;
this.openaireSearchUtils.refineStatus = this.errorCodes.LOADING;

@ -8,7 +8,7 @@ import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properti
import {ManageCommunityProjectsService} from '../../services/manageProjects.service';
import {SearchCommunityProjectsService} from '../../openaireLibrary/connect/projects/searchProjects.service';
import {RouterHelper} from '../../openaireLibrary/utils/routerHelper.class';
import {FormArray, FormBuilder, FormGroup} from "@angular/forms";
import {UntypedFormArray, UntypedFormBuilder, UntypedFormGroup} from "@angular/forms";
import {properties} from "../../../environments/environment";
import {CommunityService} from "../../openaireLibrary/connect/community/community.service";
import {Option} from "../../openaireLibrary/sharedComponents/input/input.component";
@ -50,8 +50,8 @@ export class RemoveProjectsComponent implements OnInit {
/* Search */
@ViewChild('searchInputComponent') searchInputComponent: SearchInputComponent;
filterForm: FormGroup;
public fundersCtrl: FormArray;
filterForm: UntypedFormGroup;
public fundersCtrl: UntypedFormArray;
private searchText: RegExp = new RegExp('');
public keyword: string = '';
selectedFunders: string[] = [];
@ -68,7 +68,7 @@ export class RemoveProjectsComponent implements OnInit {
public openaireEntiites = OpenaireEntities;
constructor(private route: ActivatedRoute, private _router: Router,
private _fb: FormBuilder,
private _fb: UntypedFormBuilder,
private communityService: CommunityService,
private _manageCommunityProjectsService: ManageCommunityProjectsService,
private _searchCommunityProjectsService: SearchCommunityProjectsService,

@ -1,5 +1,5 @@
import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
import {FormArray, FormBuilder, FormControl} from '@angular/forms';
import {UntypedFormArray, UntypedFormBuilder, UntypedFormControl} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import {CommunityService} from '../../../openaireLibrary/connect/community/community.service';
import {SubjectsService} from '../subjects.service';
@ -20,7 +20,7 @@ import {ClearCacheService} from "../../../openaireLibrary/services/clear-cache.s
templateUrl: './subjects-edit-form.component.html',
})
export class SubjectsEditFormComponent implements OnInit {
myForm = new FormArray([new FormControl({subject: ''})]);
myForm = new UntypedFormArray([new UntypedFormControl({subject: ''})]);
public showLoading = true;
public res = [];
params: any;
@ -38,7 +38,7 @@ export class SubjectsEditFormComponent implements OnInit {
isEditModal: boolean = false;
public selectedKeyword: string;
@ViewChild('searchInputComponent') searchInputComponent: SearchInputComponent;
public filterForm: FormControl;
public filterForm: UntypedFormControl;
private subscriptions: any[] = [];
/*//Check again functionality to enable page
subjectsPage;
@ -46,7 +46,7 @@ export class SubjectsEditFormComponent implements OnInit {
constructor(private element: ElementRef,
private route: ActivatedRoute,
private _router: Router,
public _fb: FormBuilder,
public _fb: UntypedFormBuilder,
private title: Title,
// private _helpContentService: HelpContentService,
private _communityService: CommunityService,
@ -233,7 +233,7 @@ export class SubjectsEditFormComponent implements OnInit {
}
public addSubjectInForm() {
this.myForm.push(new FormControl(''));
this.myForm.push(new UntypedFormControl(''));
}
public removeSubjectInForm(i: number) {
@ -241,9 +241,9 @@ export class SubjectsEditFormComponent implements OnInit {
}
public reset(subjects: string[]) {
this.myForm = new FormArray([]);
this.myForm = new UntypedFormArray([]);
for (let subject in subjects) {
this.myForm.push(new FormControl(''));
this.myForm.push(new UntypedFormControl(''));
}
this.myForm.patchValue(subjects);
}

@ -1,5 +1,5 @@
import {Component, ElementRef, Input, OnInit} from '@angular/core';
import {FormBuilder, FormGroup} from '@angular/forms';
import {UntypedFormBuilder, UntypedFormGroup} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
import {Session, User} from '../../openaireLibrary/login/utils/helper.class';
@ -23,7 +23,7 @@ import {NotificationHandler} from "../../openaireLibrary/utils/notification-hand
export class ManageUserNotificationsComponent implements OnInit {
@Input('group')
myForm: FormGroup;
myForm: UntypedFormGroup;
public properties: EnvProperties = properties;
public community: CommunityInfo;
public userNotifications: UserNotificationsRights = null;
@ -38,7 +38,7 @@ export class ManageUserNotificationsComponent implements OnInit {
frequencyOptions: Option[] = [{label: "Daily", value: 24}, {label: "Every two days", value: 48}, {label: "Weekly", value: 168}]
constructor(private route: ActivatedRoute, private _router: Router, public _fb: FormBuilder,
constructor(private route: ActivatedRoute, private _router: Router, public _fb: UntypedFormBuilder,
private title: Title,
private manageUserNotificationsService: ManageUserNotificationsService,
private element: ElementRef, private userManagementService: UserManagementService,

@ -5,7 +5,7 @@ import {AlertModal} from "../../../openaireLibrary/utils/modal/alert";
import {CuratorService} from "../../../openaireLibrary/connect/curators/curator.service";
import {UtilitiesService} from "../../../openaireLibrary/services/utilities.service";
import {UserManagementService} from "../../../openaireLibrary/services/user-management.service";
import {FormArray, FormBuilder, FormGroup, Validators} from "@angular/forms";
import {UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators} from "@angular/forms";
import {Subscriber} from "rxjs";
import {EnvProperties} from "../../../openaireLibrary/utils/properties/env-properties";
import {properties} from "../../../../environments/environment";
@ -180,7 +180,7 @@ export class PersonalInfoComponent implements OnInit, OnDestroy {
public loading = false;
public user: User;
public curator: Curator;
public curatorFb: FormGroup;
public curatorFb: UntypedFormGroup;
public properties: EnvProperties = properties;
public curatorsPage: Page;
public newCurator = false;
@ -193,7 +193,7 @@ export class PersonalInfoComponent implements OnInit, OnDestroy {
private deletePhoto = false;
private subs: any[] = [];
/** Affiliations */
public affiliationFb: FormGroup;
public affiliationFb: UntypedFormGroup;
public index: number = -1;
@ViewChild('fileInput') fileInput: ElementRef;
@ViewChild('privacyStatement') privacyStatement: AlertModal;
@ -203,7 +203,7 @@ export class PersonalInfoComponent implements OnInit, OnDestroy {
constructor(private route: ActivatedRoute,
private title: Title,
private fb: FormBuilder,
private fb: UntypedFormBuilder,
private curatorService: CuratorService,
private utilitiesService: UtilitiesService,
private helpContentService: HelpContentService,
@ -274,7 +274,7 @@ export class PersonalInfoComponent implements OnInit, OnDestroy {
if (this.fileInput) {
this.fileInput.nativeElement.value = null;
}
let affiliations: FormArray = this.fb.array([]);
let affiliations: UntypedFormArray = this.fb.array([]);
this.curator.affiliations.forEach(affiliation => {
affiliations.push(this.fb.group({
id: this.fb.control(affiliation.id),
@ -298,8 +298,8 @@ export class PersonalInfoComponent implements OnInit, OnDestroy {
}
}
get affiliations(): FormArray {
return this.curatorFb.get('affiliations') as FormArray;
get affiliations(): UntypedFormArray {
return this.curatorFb.get('affiliations') as UntypedFormArray;
}
saveCurator() {

@ -1,5 +1,5 @@
import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';
import {FormBuilder, FormControl} from '@angular/forms';
import {UntypedFormBuilder, UntypedFormControl} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
import {properties} from "../../../environments/environment";
@ -24,7 +24,7 @@ export class AddZenodoCommunitiesComponent implements OnInit {
public totalZenodoCommunities = null;
properties: EnvProperties = properties;
@Input() community: CommunityInfo = null;
public filterForm: FormControl;
public filterForm: UntypedFormControl;
private subscriptions: any[] = [];
public subResults: any;
public zenodoCommunitySearchUtils: SearchUtilsClass = new SearchUtilsClass();
@ -37,7 +37,7 @@ export class AddZenodoCommunitiesComponent implements OnInit {
constructor(private route: ActivatedRoute,
private _router: Router,
public _fb: FormBuilder,
public _fb: UntypedFormBuilder,
private _zenodoCommunitieService: ZenodoCommunitiesService,
private _manageZenodoCommunitiesService: ManageZenodoCommunitiesService) {

@ -9,7 +9,7 @@ import {
ViewChild,
ViewEncapsulation
} from '@angular/core';
import {FormBuilder, FormControl} from '@angular/forms';
import {UntypedFormBuilder, UntypedFormControl} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
import {properties} from "../../../environments/environment";
@ -43,12 +43,12 @@ export class ManageZenodoCommunitiesComponent implements OnInit, OnDestroy {
page = 1;
size = 10;
@ViewChild('searchInputComponent') searchInputComponent: SearchInputComponent;
public filterForm: FormControl;
public filterForm: UntypedFormControl;
private subscriptions: any[] = [];
constructor(private route: ActivatedRoute,
private _router: Router,
public _fb: FormBuilder,
public _fb: UntypedFormBuilder,
private cdr: ChangeDetectorRef,
private _manageZenodoCommunitiesService: ManageZenodoCommunitiesService) {
this.errorCodes = new ErrorCodes();

@ -1 +1 @@
Subproject commit b3b48a9fe73282d7e80dc81b8fba58ab23c0cde3
Subproject commit 85ad768a46df5e59843fa5d97780ab754d0429a0

@ -10,7 +10,7 @@
"moduleResolution": "node",
"experimentalDecorators": true,
"importHelpers": true,
"target": "es2015",
"target": "es2020",
"typeRoots": [
"node_modules/@types"
],

Loading…
Cancel
Save