From c06452dbbdd19b208d29fbf7de08838ed2e597d4 Mon Sep 17 00:00:00 2001 From: Daniel Appelgren Date: Wed, 30 Jun 2021 08:53:30 +0200 Subject: [PATCH] Merge pull request #29 in TEA/dafa-web-monorepo from refactor/stricter-eslint to develop Squashed commit of the following: commit 4e7a87134edb95c9d522514140dcf8ff8b5c9bfa Merge: c586d67 6f97f51 Author: Daniel Appelgren Date: Mon Jun 28 09:12:35 2021 +0200 Merge branch 'develop' into refactor/stricter-eslint # Conflicts: # apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.ts commit c586d675ced7a0dd4bd88599f62dd7a72fe39723 Author: Daniel Appelgren Date: Wed Jun 23 16:24:37 2021 +0200 Fix linting of avrop commit 70aa93e06c7677ce6b2e5068c74709ef5f9feecc Merge: ace9950 4afe9b5 Author: Daniel Appelgren Date: Wed Jun 23 16:12:30 2021 +0200 Merge branch 'develop' into refactor/stricter-eslint # Conflicts: # apps/dafa-web/src/app/pages/avrop/avrop.component.spec.ts # apps/dafa-web/src/app/pages/ciam-landing/ciam-landing.component.spec.ts # apps/dafa-web/src/app/pages/logout/logout.component.spec.ts commit ace9950d3dc9517d8fe4e4b53af6813b6b175720 Author: Daniel Appelgren Date: Wed Jun 23 10:53:00 2021 +0200 Fix remaining linting warnings/errors commit c15b0a4b8a62604928871d45095d9ad257add0a8 Author: Daniel Appelgren Date: Wed Jun 23 10:44:32 2021 +0200 fix more linting errors and warnings commit 924c925347dbf0a1029237859c748bf107cfd03c Author: Daniel Appelgren Date: Tue Jun 22 17:07:26 2021 +0200 Fixed a lot of linting errors commit f730f04ebb2d28e150ba20c2507493fac64f0a2d Author: Daniel Appelgren Date: Tue Jun 22 16:32:58 2021 +0200 fix some linting problems commit 64fe06c034586688fd7252198de0baf0caaccca2 Author: Daniel Appelgren Date: Tue Jun 22 16:15:32 2021 +0200 add recommended eslint rules with type-checking --- .prettierrc | 20 +- apps/dafa-web/.eslintrc.json | 3 + .../footer/footer.component.spec.ts | 2 +- .../logged-in-shell.component.ts | 12 +- .../navigation/navigation.component.spec.ts | 2 +- .../skip-to-content.component.spec.ts | 2 +- .../skip-to-content.component.ts | 2 +- .../toast-list/toast-list.component.spec.ts | 13 +- .../toast-list/toast/toast.component.spec.ts | 2 +- .../toast-list/toast/toast.component.ts | 2 +- .../src/app/data/models/error/custom-error.ts | 30 +- .../custom-error-handler.module.ts | 2 +- .../administration.component.spec.ts | 2 +- .../employee-card.component.spec.ts | 2 +- .../employee-card/employee-card.component.ts | 6 +- .../employee-form.component.spec.ts | 2 +- .../employee-form/employee-form.component.ts | 15 +- .../employees-list.component.spec.ts | 11 +- .../employees-list.component.ts | 17 +- .../employees/employees.component.spec.ts | 4 +- .../pages/employees/employees.component.ts | 2 +- .../avrop-filters/avrop-filters.component.ts | 13 +- .../temporary-filter.component.ts | 6 +- .../avrop-table-row.component.ts | 9 +- .../avrop-table/avrop-table.component.ts | 2 - .../app/pages/avrop/avrop.component.spec.ts | 2 +- .../src/app/pages/avrop/avrop.component.ts | 28 +- .../src/app/pages/avrop/avrop.service.ts | 23 +- .../ciam-landing.component.spec.ts | 0 .../ciam-landing/ciam-landing.component.ts | 45 +- .../app/pages/logout/logout.component.spec.ts | 0 .../src/app/pages/logout/logout.component.ts | 7 +- .../src/app/pages/logout/logout.module.ts | 7 +- .../pages/messages/messages.component.spec.ts | 2 +- .../mock-login/mock-login.component.spec.ts | 2 +- .../app/pages/mock-login/mock-login.module.ts | 7 +- .../page-not-found.component.spec.ts | 2 +- .../participant-card.component.ts | 2 +- .../participant-card.module.ts | 2 +- .../participants.component.spec.ts | 2 +- .../participants/participants.component.ts | 1 + .../pages/releases/releases.component.spec.ts | 2 +- .../pages/settings/settings.component.spec.ts | 2 +- .../app/pages/start/start.component.spec.ts | 2 +- .../src/app/pages/start/start.component.ts | 8 - .../statistics/statistics.component.spec.ts | 2 +- .../src/app/services/api/auth.interceptor.ts | 14 +- .../services/api/authentication.service.ts | 13 +- .../src/app/services/api/avrop-api.service.ts | 5 +- .../src/app/services/api/employee.service.ts | 33 +- .../app/services/api/participants.service.ts | 6 +- .../src/app/services/error.service.ts | 8 +- .../back-link/back-link.component.spec.ts | 2 +- .../components/icon/icon.component.spec.ts | 8 +- .../app/utils/map-path-to-page-name.util.ts | 2 +- .../social-security-number.validator.ts | 10 +- .../src/environments/environment.dotnet.ts | 4 +- apps/dafa-web/src/main.ts | 2 +- package-lock.json | 1871 ++++++++++++++--- package.json | 1 + 60 files changed, 1809 insertions(+), 501 deletions(-) create mode 100644 apps/dafa-web/src/app/pages/ciam-landing/ciam-landing.component.spec.ts create mode 100644 apps/dafa-web/src/app/pages/logout/logout.component.spec.ts diff --git a/.prettierrc b/.prettierrc index f5f61ca..68ad634 100644 --- a/.prettierrc +++ b/.prettierrc @@ -7,9 +7,23 @@ "bracketSpacing": true, "arrowParens": "avoid", "overrides": [ - { - "files": ".prettierrc", - "options": { "parser": "json" } + { + "files": ".prettierrc", + "options": { + "parser": "json" } + }, + { + "files": "*.component.html", + "options": { + "parser": "angular" + } + }, + { + "files": "*.html", + "options": { + "parser": "html" + } + } ] } diff --git a/apps/dafa-web/.eslintrc.json b/apps/dafa-web/.eslintrc.json index b0a9021..13fbbc2 100644 --- a/apps/dafa-web/.eslintrc.json +++ b/apps/dafa-web/.eslintrc.json @@ -6,6 +6,9 @@ "files": ["*.ts"], "extends": [ "plugin:@nrwl/nx/angular", + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-requiring-type-checking", "plugin:@angular-eslint/template/process-inline-templates" ], "parserOptions": { "project": ["apps/dafa-web/tsconfig.*?.json"] }, diff --git a/apps/dafa-web/src/app/components/footer/footer.component.spec.ts b/apps/dafa-web/src/app/components/footer/footer.component.spec.ts index 3298320..9363589 100644 --- a/apps/dafa-web/src/app/components/footer/footer.component.spec.ts +++ b/apps/dafa-web/src/app/components/footer/footer.component.spec.ts @@ -9,7 +9,7 @@ describe('FooterComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ declarations: [FooterComponent], imports: [RouterTestingModule, IconModule], }).compileComponents(); diff --git a/apps/dafa-web/src/app/components/logged-in-shell/logged-in-shell.component.ts b/apps/dafa-web/src/app/components/logged-in-shell/logged-in-shell.component.ts index 973544c..fa18935 100644 --- a/apps/dafa-web/src/app/components/logged-in-shell/logged-in-shell.component.ts +++ b/apps/dafa-web/src/app/components/logged-in-shell/logged-in-shell.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core'; +import { Component, ChangeDetectionStrategy } from '@angular/core'; import { NavigationBreadcrumbsItem } from '@af/digi-ng/_navigation/navigation-breadcrumbs'; import { BehaviorSubject, Observable } from 'rxjs'; import { User } from '@dafa-models/user.model'; @@ -14,7 +14,7 @@ import { environment } from '@dafa-environment'; selector: 'dafa-logged-in-shell', templateUrl: './logged-in-shell.component.html', styleUrls: ['./logged-in-shell.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, }) export class LoggedInShellComponent extends UnsubscribeDirective { private startBreadcrumb: NavigationBreadcrumbsItem = { @@ -28,18 +28,17 @@ export class LoggedInShellComponent extends UnsubscribeDirective { return this._breadcrumbsItems$.getValue(); } - get isLoggedIn() { + get isLoggedIn(): boolean { return this.authService.isLoggedIn(); } constructor(private router: Router, private authService: AuthenticationService, private userService: UserService) { super(); - if(this.authService.isLoggedOut()) { - this.router.navigateByUrl(environment.loginUrl); + if (this.authService.isLoggedOut()) { + void this.router.navigateByUrl(environment.loginUrl); } - super.unsubscribeOnDestroy( this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => { const urlTree = this.router.parseUrl(this.router.url); @@ -52,5 +51,4 @@ export class LoggedInShellComponent extends UnsubscribeDirective { }) ); } - } diff --git a/apps/dafa-web/src/app/components/navigation/navigation.component.spec.ts b/apps/dafa-web/src/app/components/navigation/navigation.component.spec.ts index 278b0ce..171f341 100644 --- a/apps/dafa-web/src/app/components/navigation/navigation.component.spec.ts +++ b/apps/dafa-web/src/app/components/navigation/navigation.component.spec.ts @@ -9,7 +9,7 @@ describe('NavigationComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ declarations: [NavigationComponent], imports: [RouterTestingModule, IconModule], }).compileComponents(); diff --git a/apps/dafa-web/src/app/components/skip-to-content/skip-to-content.component.spec.ts b/apps/dafa-web/src/app/components/skip-to-content/skip-to-content.component.spec.ts index b279f96..6f8cf1e 100644 --- a/apps/dafa-web/src/app/components/skip-to-content/skip-to-content.component.spec.ts +++ b/apps/dafa-web/src/app/components/skip-to-content/skip-to-content.component.spec.ts @@ -8,7 +8,7 @@ describe('SkipToContentComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ declarations: [SkipToContentComponent], imports: [RouterTestingModule], }).compileComponents(); diff --git a/apps/dafa-web/src/app/components/skip-to-content/skip-to-content.component.ts b/apps/dafa-web/src/app/components/skip-to-content/skip-to-content.component.ts index da5f63f..c1e577b 100644 --- a/apps/dafa-web/src/app/components/skip-to-content/skip-to-content.component.ts +++ b/apps/dafa-web/src/app/components/skip-to-content/skip-to-content.component.ts @@ -16,7 +16,7 @@ export class SkipToContentComponent extends UnsubscribeDirective { constructor(private router: Router, private changeDetectorRef: ChangeDetectorRef) { super(); super.unsubscribeOnDestroy( - this.router.events.pipe(filter((event: any) => event instanceof NavigationEnd)).subscribe(({ url }) => { + this.router.events.pipe(filter((event: NavigationEnd) => event instanceof NavigationEnd)).subscribe(({ url }) => { const mainContentId = `#${this.mainContentId}`; // Check if the current URL already includes the mainContentId. const existsInUrl: boolean = url.substring(url.length - mainContentId.length, url.length) === mainContentId; diff --git a/apps/dafa-web/src/app/components/toast-list/toast-list.component.spec.ts b/apps/dafa-web/src/app/components/toast-list/toast-list.component.spec.ts index 7925e4c..3bd7501 100644 --- a/apps/dafa-web/src/app/components/toast-list/toast-list.component.spec.ts +++ b/apps/dafa-web/src/app/components/toast-list/toast-list.component.spec.ts @@ -2,16 +2,17 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { ToastListComponent } from './toast-list.component'; - describe('ToastListComponent', () => { let component: ToastListComponent; let fixture: ComponentFixture; - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ToastListComponent], - }).compileComponents(); - })); + beforeEach( + waitForAsync(() => { + void TestBed.configureTestingModule({ + declarations: [ToastListComponent], + }).compileComponents(); + }) + ); beforeEach(() => { fixture = TestBed.createComponent(ToastListComponent); diff --git a/apps/dafa-web/src/app/components/toast-list/toast/toast.component.spec.ts b/apps/dafa-web/src/app/components/toast-list/toast/toast.component.spec.ts index a954dfc..ec5697c 100644 --- a/apps/dafa-web/src/app/components/toast-list/toast/toast.component.spec.ts +++ b/apps/dafa-web/src/app/components/toast-list/toast/toast.component.spec.ts @@ -10,7 +10,7 @@ describe('ToastComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [ToastComponent], }).compileComponents(); diff --git a/apps/dafa-web/src/app/components/toast-list/toast/toast.component.ts b/apps/dafa-web/src/app/components/toast-list/toast/toast.component.ts index 320fc70..80550b8 100644 --- a/apps/dafa-web/src/app/components/toast-list/toast/toast.component.ts +++ b/apps/dafa-web/src/app/components/toast-list/toast/toast.component.ts @@ -11,7 +11,7 @@ import { CustomError } from '@dafa-models/error/custom-error'; }) export class ToastComponent implements AfterViewInit { @Input() error: CustomError; - @Output() closeToast: EventEmitter = new EventEmitter(); + @Output() closeToast = new EventEmitter(); iconType = IconType; errorSeverity = ErrorSeverity; diff --git a/apps/dafa-web/src/app/data/models/error/custom-error.ts b/apps/dafa-web/src/app/data/models/error/custom-error.ts index 14ca260..66a2f56 100644 --- a/apps/dafa-web/src/app/data/models/error/custom-error.ts +++ b/apps/dafa-web/src/app/data/models/error/custom-error.ts @@ -24,21 +24,27 @@ export class CustomError implements Error { this.severity === ErrorSeverity.LOW ? 5000 : this.severity === ErrorSeverity.MEDIUM ? 10000 : 20000; } - static getStack(error: Error): string { + static getStack(error: Error | { error: Error }): string { if (!error) { return ''; } - if (error.stack) { + + if ('stack' in error) { return error.stack; - } else if ((error as any).error) { - return this.getStack((error as any).error); + } else if ('error' in error) { + return this.getStack(error.error); } else { - return error as any; + return error as never; } } - static getErrorType(error: Error): ErrorType { - let type = (error as any).type || ErrorType.UNKNOWN; + static getErrorType(error: Error | (Error & { type: ErrorType })): ErrorType { + let type: ErrorType; + if ('type' in error) { + type = error.type; + } else { + type = ErrorType.UNKNOWN; + } if (error.name === 'HttpErrorResponse') { type = ErrorType.API; @@ -48,20 +54,20 @@ export class CustomError implements Error { } } -export function errorToCustomError(error: Error): CustomError { +export function errorToCustomError(error: Error & { ngDebugContext: unknown }): CustomError { const type = CustomError.getErrorType(error); - const message = error.message || (error as any); + const message = error.message || error; const severity = ErrorSeverity.HIGH; // this is done to avoid circular references while running in debug mode - if ((error as any).ngDebugContext) { - (error as any).ngDebugContext = {}; + if ('ngDebugContext' in error) { + error.ngDebugContext = {}; } return new CustomError({ error, type, severity, - message, + message: message as string, }); } diff --git a/apps/dafa-web/src/app/interceptors/custom-error-handler.module.ts b/apps/dafa-web/src/app/interceptors/custom-error-handler.module.ts index 91d6073..06e5909 100644 --- a/apps/dafa-web/src/app/interceptors/custom-error-handler.module.ts +++ b/apps/dafa-web/src/app/interceptors/custom-error-handler.module.ts @@ -6,7 +6,7 @@ import { ErrorService } from '@dafa-services/error.service'; export class CustomErrorHandler implements ErrorHandler { constructor(private errorService: ErrorService) {} - handleError(error: any): void { + handleError(error: Error & { ngDebugContext: unknown }): void { const customError: CustomError = errorToCustomError(error); console.error(error); this.errorService.add(customError); diff --git a/apps/dafa-web/src/app/pages/administration/administration.component.spec.ts b/apps/dafa-web/src/app/pages/administration/administration.component.spec.ts index 3805f80..8cf40fa 100644 --- a/apps/dafa-web/src/app/pages/administration/administration.component.spec.ts +++ b/apps/dafa-web/src/app/pages/administration/administration.component.spec.ts @@ -8,7 +8,7 @@ describe('AdministrationComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ declarations: [AdministrationComponent], imports: [RouterTestingModule], }).compileComponents(); diff --git a/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.spec.ts b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.spec.ts index 986ae1e..3f05c51 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.spec.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.spec.ts @@ -10,7 +10,7 @@ describe('EmployeeCardComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [EmployeeCardComponent], imports: [RouterTestingModule, HttpClientTestingModule], diff --git a/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts index bcf7481..80bbe79 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts @@ -14,8 +14,10 @@ import { map, switchMap } from 'rxjs/operators'; }) export class EmployeeCardComponent { private _pendingSelectedParticipants$ = new BehaviorSubject([]); - private _employeeId$: Observable = this.activatedRoute.params.pipe(map(({ employeeId }) => employeeId)); - authorizationsAsString$: Observable; + private _employeeId$: Observable = this.activatedRoute.params.pipe( + map(({ employeeId }) => employeeId as string) + ); + detailedEmployeeData$: Observable = this._employeeId$.pipe( switchMap(employeeId => this.employeeService.fetchDetailedEmployeeData$(employeeId)) ); diff --git a/apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.spec.ts b/apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.spec.ts index 1776ecb..95ad9b8 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.spec.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.spec.ts @@ -17,7 +17,7 @@ describe('EmployeeFormComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [EmployeeFormComponent], imports: [ diff --git a/apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.ts index c28ad0f..60502f1 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-form/employee-form.component.ts @@ -25,7 +25,7 @@ export class EmployeeFormComponent { map(services => services.map(({ name, id }) => ({ name, value: id }))) ); toggleDialog = false; - modalAuthInfo: any = {'name': 'Test Behörighetsnamn'}; + modalAuthInfo: { name: string } = { name: 'Test Behörighetsnamn' }; formGroup: FormGroup = this.formBuilder.group({ firstName: this.formBuilder.control('', [RequiredValidator('Förnamn')]), @@ -68,6 +68,7 @@ export class EmployeeFormComponent { return controlsWithErrors.map(key => ({ id: key, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment message: this.formGroup.controls[key].errors.message, })); } @@ -80,7 +81,7 @@ export class EmployeeFormComponent { } toggleAuthorization(authorization: Authorization, checked: boolean): void { - const currentAuthorizations = this.authorizationsControl.value; + const currentAuthorizations = this.authorizationsControl.value as { id: unknown }[]; if (checked) { this.authorizationsControl.patchValue([...currentAuthorizations, authorization]); @@ -92,7 +93,7 @@ export class EmployeeFormComponent { } toggleService(service: Service, checked: boolean): void { - const currentServices = this.servicesControl.value; + const currentServices = this.servicesControl.value as { id: unknown }[]; if (checked) { this.servicesControl.patchValue([...currentServices, service]); @@ -101,8 +102,9 @@ export class EmployeeFormComponent { } } - openDialog(val: boolean, authName?:any) { - if(authName) { + openDialog(val: boolean, authName?: string): void { + if (authName) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access this.modalAuthInfo.name = authName; } this.toggleDialog = val; @@ -127,12 +129,13 @@ export class EmployeeFormComponent { submitForm(): void { this.submitted = true; if (this.formGroup.valid) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const submittableValues = { ...this.formGroup.value, }; const post = this.employeeService.postNewEmployee(submittableValues).subscribe({ next: id => { - this.router.navigate(['/administration', 'personal', id]); + void this.router.navigate(['/administration', 'personal', id]); }, complete: () => { post.unsubscribe(); diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.spec.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.spec.ts index 246f9a5..24036a8 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.spec.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.spec.ts @@ -1,4 +1,4 @@ -import { CUSTOM_ELEMENTS_SCHEMA, DebugElement } from '@angular/core'; +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { EmployeesListComponent } from './employees-list.component'; @@ -12,7 +12,6 @@ describe('EmployeesListComponent', () => { let fixture: ComponentFixture; const getEmployeeRows = () => fixture.debugElement.queryAll(By.css('.employees-list__row')); - beforeEach(async () => { await TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], @@ -31,17 +30,17 @@ describe('EmployeesListComponent', () => { describe('20 employees sorted by Full name Ascending', () => { beforeEach(() => { component.employees = employeesMock; - component.paginationMeta = {count: employeesMock.length, limit: 50, page: 1, totalPages: 3}; - component.sort = {key: 'fullName', order: SortOrder.ASC }; + component.paginationMeta = { count: employeesMock.length, limit: 50, page: 1, totalPages: 3 }; + component.sort = { key: 'fullName', order: SortOrder.ASC }; fixture.detectChanges(); - }) + }); it('should display the rows from employees object 20 rows regardless of pagination', () => { expect(getEmployeeRows().length).toBe(20); }); - it('should display the up caret next to Full name to indicate that it\'s sorted by full name Ascending', () => { + it('should display the up caret next to Full name to indicate that it´s sorted by full name Ascending', () => { const fullNameUpCaret = fixture.debugElement.query(By.css('#sort-button-fullName > digi-icon-caret-up')); expect(fullNameUpCaret).toBeTruthy(); }); diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts index 800919b..b71d050 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts @@ -4,7 +4,6 @@ import { Employee } from '@dafa-models/employee.model'; import { PaginationMeta } from '@dafa-models/pagination-meta.model'; import { Sort } from '@dafa-models/sort.model'; - @Component({ selector: 'dafa-employees-list', templateUrl: './employees-list.component.html', @@ -18,22 +17,36 @@ export class EmployeesListComponent { @Output() sorted = new EventEmitter(); @Output() paginated = new EventEmitter(); - columnHeaders: {label: string, key: keyof Employee}[] = [{label: 'Namn', key: 'fullName'}, {label: 'Tjänst', key: 'services'}, {label: 'Utförandeverksamheter', key: 'organizations'}]; + columnHeaders: { label: string; key: keyof Employee }[] = [ + { label: 'Namn', key: 'fullName' }, + { + label: 'Tjänst', + key: 'services', + }, + { + label: 'Utförandeverksamheter', + key: 'organizations', + }, + ]; orderType = SortOrder; get currentPage(): number { return this.paginationMeta.page; } + get totalPages(): number { return this.paginationMeta?.totalPages; } + get count(): number { return this.paginationMeta.count; } + get currentResultStart(): number { return (this.currentPage - 1) * this.paginationMeta.limit + 1; } + get currentResultEnd(): number { const end = this.currentResultStart + this.paginationMeta.limit - 1; return end < this.count ? end : this.count; diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.spec.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.spec.ts index 02a014a..d57f710 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.spec.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.spec.ts @@ -10,7 +10,7 @@ describe('EmployeesComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [EmployeesComponent], imports: [RouterTestingModule, HttpClientTestingModule], @@ -25,6 +25,6 @@ describe('EmployeesComponent', () => { }); it('should create', () => { - expect(component).toBeTruthy(); + void expect(component).toBeTruthy(); }); }); diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts index 8535df4..03d0687 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts @@ -27,7 +27,7 @@ export class EmployeesComponent { this.employeeService.setSearchFilter(this.searchValue); } - setSearchValue($event: CustomEvent): void { + setSearchValue($event: CustomEvent<{ target: { value: string } }>): void { this._searchValue$.next($event.detail.target.value); } diff --git a/apps/dafa-web/src/app/pages/avrop/avrop-filters/avrop-filters.component.ts b/apps/dafa-web/src/app/pages/avrop/avrop-filters/avrop-filters.component.ts index ae2cb8a..a8d0378 100644 --- a/apps/dafa-web/src/app/pages/avrop/avrop-filters/avrop-filters.component.ts +++ b/apps/dafa-web/src/app/pages/avrop/avrop-filters/avrop-filters.component.ts @@ -1,7 +1,6 @@ -import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core'; +import { Component, ChangeDetectionStrategy } from '@angular/core'; import { AvropService } from '../avrop.service'; import { Observable } from 'rxjs'; -import { Deltagare } from '../models/Deltagare'; import { MultiselectFilterOption } from '../models/AvropFilterOptions'; @Component({ @@ -10,7 +9,7 @@ import { MultiselectFilterOption } from '../models/AvropFilterOptions'; styleUrls: ['./avrop-filters.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class AvropFiltersComponent implements OnInit { +export class AvropFiltersComponent { selectableTjanster$: Observable = this.avropService.selectableTjanster$; selectableUtforandeVerksamheter$: Observable = this.avropService .selectableUtforandeVerksamheter$; @@ -18,17 +17,15 @@ export class AvropFiltersComponent implements OnInit { constructor(private avropService: AvropService) {} - ngOnInit(): void {} - - updateSelectedTjanster(filterOptions: MultiselectFilterOption[]) { + updateSelectedTjanster(filterOptions: MultiselectFilterOption[]): void { this.avropService.setSelectedTjanster(filterOptions); } - updateSelectedUtforandeVerksamheter(filterOptions: MultiselectFilterOption[]) { + updateSelectedUtforandeVerksamheter(filterOptions: MultiselectFilterOption[]): void { this.avropService.setSelectedUtforandeVerksamheter(filterOptions); } - updateSelectedKommuner(filterOptions: MultiselectFilterOption[]) { + updateSelectedKommuner(filterOptions: MultiselectFilterOption[]): void { this.avropService.setSelectedKommuner(filterOptions); } } diff --git a/apps/dafa-web/src/app/pages/avrop/avrop-filters/temporary-filter/temporary-filter.component.ts b/apps/dafa-web/src/app/pages/avrop/avrop-filters/temporary-filter/temporary-filter.component.ts index 9c6fdf9..574b471 100644 --- a/apps/dafa-web/src/app/pages/avrop/avrop-filters/temporary-filter/temporary-filter.component.ts +++ b/apps/dafa-web/src/app/pages/avrop/avrop-filters/temporary-filter/temporary-filter.component.ts @@ -1,7 +1,6 @@ import { Component, OnInit, ChangeDetectionStrategy, Input, Output } from '@angular/core'; import { MultiselectFilterOption } from '../../models/AvropFilterOptions'; import { BehaviorSubject, Observable } from 'rxjs'; -import { Deltagare } from '../../models/Deltagare'; import { EventEmitter } from '@angular/core'; @Component({ @@ -20,7 +19,6 @@ export class TemporaryFilterComponent implements OnInit { @Output() selectedOptionsChange = new EventEmitter(); // THIS SHOULD BE REPLACED BY DIGI COMPONENT - constructor() {} ngOnInit(): void { this._selectedAvropFilterOption$ = new BehaviorSubject(this.selectedOptions); @@ -31,7 +29,7 @@ export class TemporaryFilterComponent implements OnInit { return this.selectedOptions?.includes(filterOption) ?? false; } - setOptionState(filterOption: MultiselectFilterOption, isSelected: boolean) { + setOptionState(filterOption: MultiselectFilterOption, isSelected: boolean): void { if (isSelected) { return this._selectedAvropFilterOption$.next([...(this._selectedAvropFilterOption$.value ?? []), filterOption]); } @@ -40,7 +38,7 @@ export class TemporaryFilterComponent implements OnInit { ); } - emitSelectedOptions() { + emitSelectedOptions(): void { this.selectedOptionsChange.emit(this._selectedAvropFilterOption$.value); } } diff --git a/apps/dafa-web/src/app/pages/avrop/avrop-table/avrop-table-row/avrop-table-row.component.ts b/apps/dafa-web/src/app/pages/avrop/avrop-table/avrop-table-row/avrop-table-row.component.ts index 146f3c1..20dfcd1 100644 --- a/apps/dafa-web/src/app/pages/avrop/avrop-table/avrop-table-row/avrop-table-row.component.ts +++ b/apps/dafa-web/src/app/pages/avrop/avrop-table/avrop-table-row/avrop-table-row.component.ts @@ -1,5 +1,5 @@ import { EventEmitter } from '@angular/core'; -import { Component, OnInit, ChangeDetectionStrategy, Input, Output } from '@angular/core'; +import { Component, ChangeDetectionStrategy, Input, Output } from '@angular/core'; import { Deltagare } from '../../models/Deltagare'; import { Handledare } from '../../models/Handledare'; @@ -9,18 +9,15 @@ import { Handledare } from '../../models/Handledare'; styleUrls: ['./avrop-table-row.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class AvropTableRowComponent implements OnInit { +export class AvropTableRowComponent { @Input() deltagare: Deltagare; @Input() isSelected: boolean; @Input() isLocked: boolean; @Output() isSelectedChange = new EventEmitter(); @Input() handledare: Handledare; @Input() handledareConfirmed: boolean; - constructor() {} - ngOnInit(): void {} - - emitSelectionChange(isSelected: boolean) { + emitSelectionChange(isSelected: boolean): void { this.isSelectedChange.emit(isSelected); } } diff --git a/apps/dafa-web/src/app/pages/avrop/avrop-table/avrop-table.component.ts b/apps/dafa-web/src/app/pages/avrop/avrop-table/avrop-table.component.ts index a3d4150..609a1df 100644 --- a/apps/dafa-web/src/app/pages/avrop/avrop-table/avrop-table.component.ts +++ b/apps/dafa-web/src/app/pages/avrop/avrop-table/avrop-table.component.ts @@ -25,8 +25,6 @@ export class AvropTableComponent implements OnInit { return this.isLocked ? this.selectedDeltagareListInput : this.selectableDeltagareList; } - constructor() {} - ngOnInit(): void { this._selectedDeltagare$ .pipe(filter(x => !!x)) diff --git a/apps/dafa-web/src/app/pages/avrop/avrop.component.spec.ts b/apps/dafa-web/src/app/pages/avrop/avrop.component.spec.ts index e5c1092..7d4c20b 100644 --- a/apps/dafa-web/src/app/pages/avrop/avrop.component.spec.ts +++ b/apps/dafa-web/src/app/pages/avrop/avrop.component.spec.ts @@ -8,7 +8,7 @@ describe('CallOffComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ declarations: [AvropComponent], imports: [RouterTestingModule], }).compileComponents(); diff --git a/apps/dafa-web/src/app/pages/avrop/avrop.component.ts b/apps/dafa-web/src/app/pages/avrop/avrop.component.ts index 2dbe615..d78012b 100644 --- a/apps/dafa-web/src/app/pages/avrop/avrop.component.ts +++ b/apps/dafa-web/src/app/pages/avrop/avrop.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { ChangeDetectionStrategy, Component } from '@angular/core'; import { AvropService } from './avrop.service'; import { Observable } from 'rxjs'; import { MultiselectFilterOption } from './models/AvropFilterOptions'; @@ -11,7 +11,7 @@ import { Handledare } from './models/Handledare'; styleUrls: ['./avrop.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class AvropComponent implements OnInit { +export class AvropComponent { steps = 3; currentStep$ = this.avropService.currentStep$; @@ -27,41 +27,37 @@ export class AvropComponent implements OnInit { constructor(private avropService: AvropService) {} - updateSelectedDeltagareList(deltagareList: Deltagare[]) { + updateSelectedDeltagareList(deltagareList: Deltagare[]): void { this.avropService.setSelectedDeltagare(deltagareList); } - lockSelectedDeltagare() { + lockSelectedDeltagare(): void { this.avropService.lockSelectedDeltagare(); } - unlockSelectedDeltagare() { + unlockSelectedDeltagare(): void { this.avropService.unlockSelectedDeltagare(); } - ngOnInit(): void { - // this.avropService.loadFromAPI(); - } - - confirmHandledare() { + confirmHandledare(): void { this.avropService.confirmHandledare(); } - unconfirmHandledare() { + unconfirmHandledare(): void { this.avropService.unconfirmHandledare(); } - save() { - this.avropService.save(); + async save(): Promise { + return this.avropService.save(); } - changeHandledare(newHandledare: Event) { - const handledareId = newHandledare.target['value']; + changeHandledare(newHandledare: { target: HTMLInputElement }): void { + const handledareId = newHandledare.target.value; this.avropService.setHandledareState(handledareId); } - goToStep1() { + goToStep1(): void { this.avropService.goToStep1(); } } diff --git a/apps/dafa-web/src/app/pages/avrop/avrop.service.ts b/apps/dafa-web/src/app/pages/avrop/avrop.service.ts index e4c7a0c..9cc3e49 100644 --- a/apps/dafa-web/src/app/pages/avrop/avrop.service.ts +++ b/apps/dafa-web/src/app/pages/avrop/avrop.service.ts @@ -109,35 +109,35 @@ export class AvropService { return 1; } - setSelectedDeltagare(deltagare: Deltagare[]) { + setSelectedDeltagare(deltagare: Deltagare[]): void { this._selectedDeltagareList$.next(deltagare); } constructor(private avropApiService: AvropApiService) {} - lockSelectedDeltagare() { + lockSelectedDeltagare(): void { if ((this._selectedDeltagareList$?.value?.length ?? -1) <= 0) { throw new Error('För att låsa deltagare behöver några ha markerats först.'); } this._deltagareListIsLocked$.next(true); } - unlockSelectedDeltagare() { + unlockSelectedDeltagare(): void { this._deltagareListIsLocked$.next(false); } - confirmHandledare() { + confirmHandledare(): void { if (!this._selectedHandledare$?.value) { throw new Error('För att kunna tilldela behövs en handledare väljas först.'); } this._handledareIsConfirmed$.next(true); } - unconfirmHandledare() { + unconfirmHandledare(): void { this._handledareIsConfirmed$.next(false); } - async save() { + async save(): Promise { if (!this._handledareIsConfirmed$) { throw new Error('Handledaren måste bekräftas innan avropet kan sparas'); } @@ -148,27 +148,28 @@ export class AvropService { await this.avropApiService.tilldelaHandledare(this._selectedDeltagareList$.value, this._selectedHandledare$.value); this._avropIsSaved$.next(true); + return; } - setHandledareState(handledareId: string) { + setHandledareState(handledareId: string): void { this.selectableHandledareList$.pipe(first()).subscribe(handledareList => { this._selectedHandledare$.next(handledareList.find(handledare => handledare.id === handledareId)); }); } - setSelectedTjanster(selectedFilterOptions: MultiselectFilterOption[]) { + setSelectedTjanster(selectedFilterOptions: MultiselectFilterOption[]): void { this._selectedTjanster$.next(selectedFilterOptions); } - setSelectedUtforandeVerksamheter(selectedFilterOptions: MultiselectFilterOption[]) { + setSelectedUtforandeVerksamheter(selectedFilterOptions: MultiselectFilterOption[]): void { this._selectedUtforandeVerksamheter$.next(selectedFilterOptions); } - setSelectedKommuner(selectedFilterOptions: MultiselectFilterOption[]) { + setSelectedKommuner(selectedFilterOptions: MultiselectFilterOption[]): void { this._selectedKommuner$.next(selectedFilterOptions); } - goToStep1() { + goToStep1(): void { this._selectedHandledare$.next(null); this._selectedDeltagareList$.next(null); this._deltagareListIsLocked$.next(false); diff --git a/apps/dafa-web/src/app/pages/ciam-landing/ciam-landing.component.spec.ts b/apps/dafa-web/src/app/pages/ciam-landing/ciam-landing.component.spec.ts new file mode 100644 index 0000000..e69de29 diff --git a/apps/dafa-web/src/app/pages/ciam-landing/ciam-landing.component.ts b/apps/dafa-web/src/app/pages/ciam-landing/ciam-landing.component.ts index 58f6242..ec2fcb9 100644 --- a/apps/dafa-web/src/app/pages/ciam-landing/ciam-landing.component.ts +++ b/apps/dafa-web/src/app/pages/ciam-landing/ciam-landing.component.ts @@ -7,32 +7,31 @@ import { AuthenticationService } from '@dafa-services/api/authentication.service selector: 'dafa-ciam-landing', templateUrl: './ciam-landing.component.html', styleUrls: ['./ciam-landing.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, }) export class CiamLandingComponent implements OnInit { + constructor( + private route: ActivatedRoute, + private router: Router, + private authenticationService: AuthenticationService + ) {} - constructor(private route: ActivatedRoute, - private router: Router, - private authenticationService: AuthenticationService - ) { - - } - - ngOnInit() { - this.route.queryParams.pipe( - first(), - map(({code}) => { - if (!code) { - throw new Error('Expected CIAM to return \'code\' in queryparams.'); - } - return code as string; - }), - switchMap(code => { - return this.authenticationService.login$(code) - })) + ngOnInit(): void { + this.route.queryParams + .pipe( + first(), + map(({ code }) => { + if (!code) { + throw new Error('Expected CIAM to return "code" in queryparams.'); + } + return code as string; + }), + switchMap(code => { + return this.authenticationService.login$(code); + }) + ) .subscribe(() => { - this.router.navigateByUrl('/') - }) - ; + void this.router.navigateByUrl('/'); + }); } } diff --git a/apps/dafa-web/src/app/pages/logout/logout.component.spec.ts b/apps/dafa-web/src/app/pages/logout/logout.component.spec.ts new file mode 100644 index 0000000..e69de29 diff --git a/apps/dafa-web/src/app/pages/logout/logout.component.ts b/apps/dafa-web/src/app/pages/logout/logout.component.ts index 9a0aa0f..754317c 100644 --- a/apps/dafa-web/src/app/pages/logout/logout.component.ts +++ b/apps/dafa-web/src/app/pages/logout/logout.component.ts @@ -1,5 +1,4 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; import { environment } from '@dafa-environment'; import { AuthenticationService } from '@dafa-services/api/authentication.service'; @@ -12,11 +11,7 @@ import { AuthenticationService } from '@dafa-services/api/authentication.service export class LogoutComponent implements OnInit { loginUrl = environment.loginUrl; - constructor( - private authenticationService: AuthenticationService - ) { - - } + constructor(private authenticationService: AuthenticationService) {} ngOnInit(): void { this.authenticationService.logout(); diff --git a/apps/dafa-web/src/app/pages/logout/logout.module.ts b/apps/dafa-web/src/app/pages/logout/logout.module.ts index 63648f9..ee6b1c6 100644 --- a/apps/dafa-web/src/app/pages/logout/logout.module.ts +++ b/apps/dafa-web/src/app/pages/logout/logout.module.ts @@ -3,15 +3,10 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { LogoutComponent } from './logout.component'; import { DigiNgButtonModule } from '@af/digi-ng/_button/button'; -import { LoggedInShellModule } from '../../components/logged-in-shell/logged-in-shell.module'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [LogoutComponent], - imports: [ - CommonModule, - RouterModule.forChild([{ path: '', component: LogoutComponent }]), - DigiNgButtonModule - ] + imports: [CommonModule, RouterModule.forChild([{ path: '', component: LogoutComponent }]), DigiNgButtonModule], }) export class LogoutModule {} diff --git a/apps/dafa-web/src/app/pages/messages/messages.component.spec.ts b/apps/dafa-web/src/app/pages/messages/messages.component.spec.ts index 10653f5..8b5a48f 100644 --- a/apps/dafa-web/src/app/pages/messages/messages.component.spec.ts +++ b/apps/dafa-web/src/app/pages/messages/messages.component.spec.ts @@ -8,7 +8,7 @@ describe('MessagesComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ declarations: [MessagesComponent], imports: [RouterTestingModule], }).compileComponents(); diff --git a/apps/dafa-web/src/app/pages/mock-login/mock-login.component.spec.ts b/apps/dafa-web/src/app/pages/mock-login/mock-login.component.spec.ts index bab4209..83fc0e4 100644 --- a/apps/dafa-web/src/app/pages/mock-login/mock-login.component.spec.ts +++ b/apps/dafa-web/src/app/pages/mock-login/mock-login.component.spec.ts @@ -8,7 +8,7 @@ describe('ReleasesComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], declarations: [MockLoginComponent], }).compileComponents(); diff --git a/apps/dafa-web/src/app/pages/mock-login/mock-login.module.ts b/apps/dafa-web/src/app/pages/mock-login/mock-login.module.ts index 60895df..85f9014 100644 --- a/apps/dafa-web/src/app/pages/mock-login/mock-login.module.ts +++ b/apps/dafa-web/src/app/pages/mock-login/mock-login.module.ts @@ -3,15 +3,10 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { MockLoginComponent } from './mock-login.component'; import { DigiNgButtonModule } from '@af/digi-ng/_button/button'; -import { LoggedInShellModule } from '../../components/logged-in-shell/logged-in-shell.module'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [MockLoginComponent], - imports: [ - CommonModule, - RouterModule.forChild([{ path: '', component: MockLoginComponent }]), - DigiNgButtonModule - ] + imports: [CommonModule, RouterModule.forChild([{ path: '', component: MockLoginComponent }]), DigiNgButtonModule], }) export class MockLoginModule {} diff --git a/apps/dafa-web/src/app/pages/page-not-found/page-not-found.component.spec.ts b/apps/dafa-web/src/app/pages/page-not-found/page-not-found.component.spec.ts index ec66bc1..fc639c4 100644 --- a/apps/dafa-web/src/app/pages/page-not-found/page-not-found.component.spec.ts +++ b/apps/dafa-web/src/app/pages/page-not-found/page-not-found.component.spec.ts @@ -9,7 +9,7 @@ describe('PageNotFoundComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [PageNotFoundComponent], imports: [RouterTestingModule], diff --git a/apps/dafa-web/src/app/pages/participants/pages/participant-card/participant-card.component.ts b/apps/dafa-web/src/app/pages/participants/pages/participant-card/participant-card.component.ts index 069f23e..0b4bc05 100644 --- a/apps/dafa-web/src/app/pages/participants/pages/participant-card/participant-card.component.ts +++ b/apps/dafa-web/src/app/pages/participants/pages/participant-card/participant-card.component.ts @@ -14,7 +14,7 @@ import { map, switchMap } from 'rxjs/operators'; }) export class ParticipantCardComponent { private _participantId$: Observable = this.activatedRoute.params.pipe( - map(({ participantId }) => participantId) + map(({ participantId }) => participantId as string) ); detailedParticipantData$: Observable = this._participantId$.pipe( switchMap(participantId => this.participantsService.fetchDetailedParticipantData$(participantId)) diff --git a/apps/dafa-web/src/app/pages/participants/pages/participant-card/participant-card.module.ts b/apps/dafa-web/src/app/pages/participants/pages/participant-card/participant-card.module.ts index 1f748ab..c189aa9 100644 --- a/apps/dafa-web/src/app/pages/participants/pages/participant-card/participant-card.module.ts +++ b/apps/dafa-web/src/app/pages/participants/pages/participant-card/participant-card.module.ts @@ -4,8 +4,8 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { BackLinkModule } from '@dafa-shared/components/back-link/back-link.module'; import { IconModule } from '@dafa-shared/components/icon/icon.module'; -import { LoggedInShellModule } from 'apps/dafa-web/src/app/components/logged-in-shell/logged-in-shell.module'; import { ParticipantCardComponent } from './participant-card.component'; +import { LoggedInShellModule } from '../../../../components/logged-in-shell/logged-in-shell.module'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], diff --git a/apps/dafa-web/src/app/pages/participants/participants.component.spec.ts b/apps/dafa-web/src/app/pages/participants/participants.component.spec.ts index 03ff7da..fcbabab 100644 --- a/apps/dafa-web/src/app/pages/participants/participants.component.spec.ts +++ b/apps/dafa-web/src/app/pages/participants/participants.component.spec.ts @@ -12,7 +12,7 @@ describe('ParticipantsComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [ParticipantsComponent], imports: [RouterTestingModule, HttpClientTestingModule, DigiNgSkeletonBaseModule, ParticipantsListModule], diff --git a/apps/dafa-web/src/app/pages/participants/participants.component.ts b/apps/dafa-web/src/app/pages/participants/participants.component.ts index 6a2a31f..b51b02c 100644 --- a/apps/dafa-web/src/app/pages/participants/participants.component.ts +++ b/apps/dafa-web/src/app/pages/participants/participants.component.ts @@ -30,6 +30,7 @@ export class ParticipantsComponent { } handleSearchInput($event: CustomEvent): void { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access this._searchValue$.next($event.detail.target.value); } diff --git a/apps/dafa-web/src/app/pages/releases/releases.component.spec.ts b/apps/dafa-web/src/app/pages/releases/releases.component.spec.ts index f988218..f9ee725 100644 --- a/apps/dafa-web/src/app/pages/releases/releases.component.spec.ts +++ b/apps/dafa-web/src/app/pages/releases/releases.component.spec.ts @@ -8,7 +8,7 @@ describe('ReleasesComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], declarations: [ReleasesComponent], }).compileComponents(); diff --git a/apps/dafa-web/src/app/pages/settings/settings.component.spec.ts b/apps/dafa-web/src/app/pages/settings/settings.component.spec.ts index e52fe20..2184c03 100644 --- a/apps/dafa-web/src/app/pages/settings/settings.component.spec.ts +++ b/apps/dafa-web/src/app/pages/settings/settings.component.spec.ts @@ -8,7 +8,7 @@ describe('SettingsComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ declarations: [SettingsComponent], imports: [RouterTestingModule], }).compileComponents(); diff --git a/apps/dafa-web/src/app/pages/start/start.component.spec.ts b/apps/dafa-web/src/app/pages/start/start.component.spec.ts index d29fa96..1cc5f31 100644 --- a/apps/dafa-web/src/app/pages/start/start.component.spec.ts +++ b/apps/dafa-web/src/app/pages/start/start.component.spec.ts @@ -9,7 +9,7 @@ describe('StartComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [StartComponent], imports: [RouterTestingModule], diff --git a/apps/dafa-web/src/app/pages/start/start.component.ts b/apps/dafa-web/src/app/pages/start/start.component.ts index da381f5..f152359 100644 --- a/apps/dafa-web/src/app/pages/start/start.component.ts +++ b/apps/dafa-web/src/app/pages/start/start.component.ts @@ -1,12 +1,4 @@ -import { CardHeadingLevel, CardVariation } from '@af/digi-ng/_card/card'; -import { - NotificationAlertHeadingLevel, - NotificationAlertSize, - NotificationAlertVariation, -} from '@af/digi-ng/_notification/notification-alert'; import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { InfoCardHeadingLevel } from '@digi/core/dist/types/components/_info-card/info-card/info-card-heading-level.enum'; -import { InfoCardType } from '@digi/core/dist/types/components/_info-card/info-card/info-card-type.enum'; @Component({ selector: 'dafa-start', diff --git a/apps/dafa-web/src/app/pages/statistics/statistics.component.spec.ts b/apps/dafa-web/src/app/pages/statistics/statistics.component.spec.ts index d311ffb..180bc8b 100644 --- a/apps/dafa-web/src/app/pages/statistics/statistics.component.spec.ts +++ b/apps/dafa-web/src/app/pages/statistics/statistics.component.spec.ts @@ -8,7 +8,7 @@ describe('StatisticsComponent', () => { beforeEach( waitForAsync(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ declarations: [StatisticsComponent], imports: [RouterTestingModule], }).compileComponents(); diff --git a/apps/dafa-web/src/app/services/api/auth.interceptor.ts b/apps/dafa-web/src/app/services/api/auth.interceptor.ts index 6278f98..9651a70 100644 --- a/apps/dafa-web/src/app/services/api/auth.interceptor.ts +++ b/apps/dafa-web/src/app/services/api/auth.interceptor.ts @@ -1,24 +1,22 @@ -import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'; +import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { AuthenticationService } from './authentication.service'; +import { Observable } from 'rxjs'; @Injectable() export class AuthInterceptor implements HttpInterceptor { + constructor(private auth: AuthenticationService) {} - constructor(private auth: AuthenticationService) { - } - - intercept(req: HttpRequest, next: HttpHandler) { + intercept(req: HttpRequest, next: HttpHandler): Observable> { const idToken = this.auth.getAuthorizationToken(); if (idToken) { const cloned = req.clone({ - headers: req.headers.set('Authorization', 'Bearer ' + idToken) + headers: req.headers.set('Authorization', 'Bearer ' + idToken), }); return next.handle(cloned); - } - else { + } else { return next.handle(req); } } diff --git a/apps/dafa-web/src/app/services/api/authentication.service.ts b/apps/dafa-web/src/app/services/api/authentication.service.ts index ed74c48..53f7f56 100644 --- a/apps/dafa-web/src/app/services/api/authentication.service.ts +++ b/apps/dafa-web/src/app/services/api/authentication.service.ts @@ -6,19 +6,19 @@ import { map, tap } from 'rxjs/operators'; import { AuthenticationApiResponse, AuthenticationResult, - mapAuthApiResponseToAuthenticationResult + mapAuthApiResponseToAuthenticationResult, } from '@dafa-models/authentication.model'; import { add, isBefore } from 'date-fns'; const API_HEADERS = { headers: environment.api.headers }; @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class AuthenticationService { private static _authTokenApiUrl(code: string): string { return `${environment.api.url}/get-token?code=${code}`; - }; + } private static _setSession(authenticationResult: AuthenticationResult): void { const expiresAt = add(new Date(), { seconds: authenticationResult.expiresIn }); @@ -52,16 +52,13 @@ export class AuthenticationService { getExpiration(): number { const expiration = localStorage.getItem('expires_at'); - const expiresAt = JSON.parse(expiration); - return expiresAt; + return JSON.parse(expiration) as number; } - constructor(private httpClient: HttpClient) { - } + constructor(private httpClient: HttpClient) {} logout(): void { localStorage.removeItem('id_token'); localStorage.removeItem('expires_at'); } - } diff --git a/apps/dafa-web/src/app/services/api/avrop-api.service.ts b/apps/dafa-web/src/app/services/api/avrop-api.service.ts index 7b6d7a1..ade0564 100644 --- a/apps/dafa-web/src/app/services/api/avrop-api.service.ts +++ b/apps/dafa-web/src/app/services/api/avrop-api.service.ts @@ -30,8 +30,6 @@ const tempTjansterMock: MultiselectFilterOption[] = [ providedIn: 'root', }) export class AvropApiService { - constructor() {} - getNyaDeltagare$( tjanstIds: MultiselectFilterOption[], kommunIds: MultiselectFilterOption[], @@ -98,8 +96,9 @@ export class AvropApiService { return of(tempKommunerMock).pipe(delay(300)); } - async tilldelaHandledare(deltagare: Deltagare[], handledare: Handledare) { + async tilldelaHandledare(deltagare: Deltagare[], handledare: Handledare): Promise { console.log('[API call] SAVE avrop. Inputs: deltagare, handledare', deltagare, handledare); + await of(null).pipe(delay(200)).toPromise(); // TODO anropa API return; } diff --git a/apps/dafa-web/src/app/services/api/employee.service.ts b/apps/dafa-web/src/app/services/api/employee.service.ts index a8e0b15..b169864 100644 --- a/apps/dafa-web/src/app/services/api/employee.service.ts +++ b/apps/dafa-web/src/app/services/api/employee.service.ts @@ -28,6 +28,13 @@ export class EmployeeService { public sort$: Observable> = this._sort$.asObservable(); private _searchFilter$ = new BehaviorSubject(''); + public employeesData$: Observable = combineLatest([ + this._limit$, + this._page$, + this._sort$, + this._searchFilter$, + ]).pipe(switchMap(([limit, page, sort, searchFilter]) => this._fetchEmployees$(limit, page, sort, searchFilter))); + private _fetchEmployees$( limit: number, page: number, @@ -57,13 +64,6 @@ export class EmployeeService { ); } - public employeesData$: Observable = combineLatest([ - this._limit$, - this._page$, - this._sort$, - this._searchFilter$, - ]).pipe(switchMap(([limit, page, sort, searchFilter]) => this._fetchEmployees$(limit, page, sort, searchFilter))); - public fetchDetailedEmployeeData$(id: string): Observable { return this.httpClient .get(`${this._apiUrl}/${id}`, { ...API_HEADERS }) @@ -72,25 +72,28 @@ export class EmployeeService { constructor(private httpClient: HttpClient) {} - public setSearchFilter(value: string) { + public setSearchFilter(value: string): void { this._searchFilter$.next(value); } - public setSort(newSortKey: keyof Employee) { + public setSort(newSortKey: keyof Employee): void { const currentSort = this._sort$.getValue(); - let order = currentSort.key === newSortKey && currentSort.order === SortOrder.ASC ? SortOrder.DESC : SortOrder.ASC; + const order = + currentSort.key === newSortKey && currentSort.order === SortOrder.ASC ? SortOrder.DESC : SortOrder.ASC; this._sort$.next({ key: newSortKey, order }); } - public setPage(page: number) { + public setPage(page: number): void { this._page$.next(page); } public postNewEmployee(employeeData: Employee): Observable { - return this.httpClient.post(this._apiUrl, mapEmployeeToEmployeeApiRequestData(employeeData), API_HEADERS).pipe( - map(({ id }) => id), - catchError(error => throwError({ message: error, type: ErrorType.API })) - ); + return this.httpClient + .post<{ id: string }>(this._apiUrl, mapEmployeeToEmployeeApiRequestData(employeeData), API_HEADERS) + .pipe( + map(({ id }) => id), + catchError(error => throwError({ message: error as string, type: ErrorType.API })) + ); } } diff --git a/apps/dafa-web/src/app/services/api/participants.service.ts b/apps/dafa-web/src/app/services/api/participants.service.ts index 62cde44..cf7e17a 100644 --- a/apps/dafa-web/src/app/services/api/participants.service.ts +++ b/apps/dafa-web/src/app/services/api/participants.service.ts @@ -83,11 +83,11 @@ export class ParticipantsService { .pipe(map(result => mapParticipantApiResponseToParticipant(result.data))); } - public setSearchFilter(value: string) { + public setSearchFilter(value: string): void { this._searchFilter$.next(value); } - public setActiveParticipantsSortKey(key: keyof Participant) { + public setActiveParticipantsSortKey(key: keyof Participant): void { const currentSortBy = this._activeParticipantsSortBy$.getValue(); let order = currentSortBy.order; if (currentSortBy?.key === key) { @@ -96,7 +96,7 @@ export class ParticipantsService { this._activeParticipantsSortBy$.next({ key, order }); } - public setFollowUpParticipantsSortKey(key: keyof Participant) { + public setFollowUpParticipantsSortKey(key: keyof Participant): void { const currentSortBy = this._followUpParticipantsSortBy$.getValue(); let order = currentSortBy.order; if (currentSortBy?.key === key) { diff --git a/apps/dafa-web/src/app/services/error.service.ts b/apps/dafa-web/src/app/services/error.service.ts index 54654d9..eeffd5c 100644 --- a/apps/dafa-web/src/app/services/error.service.ts +++ b/apps/dafa-web/src/app/services/error.service.ts @@ -7,8 +7,8 @@ import { map } from 'rxjs/operators'; providedIn: 'root', }) export class ErrorService { - private appRef: any; - private errorQueue$: BehaviorSubject = new BehaviorSubject([]); + private appRef: ApplicationRef; + private errorQueue$ = new BehaviorSubject([]); public errors$: Observable = this.errorQueue$.pipe( map(errors => errors.sort((a, b) => (a.timestamp > b.timestamp ? -1 : 1))) @@ -20,12 +20,12 @@ export class ErrorService { setTimeout(() => (this.appRef = this.injector.get(ApplicationRef))); } - public add(error: CustomError) { + public add(error: CustomError): void { this.errorQueue$.next([...this.errorQueue$.value, error]); this.appRef.tick(); } - public remove(error: CustomError) { + public remove(error: CustomError): void { const newErrorQueue = this.errorQueue$.value.filter(currentError => currentError.id !== error.id); this.errorQueue$.next(newErrorQueue); this.appRef.tick(); diff --git a/apps/dafa-web/src/app/shared/components/back-link/back-link.component.spec.ts b/apps/dafa-web/src/app/shared/components/back-link/back-link.component.spec.ts index 423d6b2..b0df271 100644 --- a/apps/dafa-web/src/app/shared/components/back-link/back-link.component.spec.ts +++ b/apps/dafa-web/src/app/shared/components/back-link/back-link.component.spec.ts @@ -8,7 +8,7 @@ describe('BackLinkComponent', () => { let fixture: ComponentFixture; beforeEach(async(() => { - TestBed.configureTestingModule({ + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [BackLinkComponent], }).compileComponents(); diff --git a/apps/dafa-web/src/app/shared/components/icon/icon.component.spec.ts b/apps/dafa-web/src/app/shared/components/icon/icon.component.spec.ts index b0ebe76..5d8412e 100644 --- a/apps/dafa-web/src/app/shared/components/icon/icon.component.spec.ts +++ b/apps/dafa-web/src/app/shared/components/icon/icon.component.spec.ts @@ -1,18 +1,18 @@ /* tslint:disable:no-unused-variable */ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; import { IconComponent } from './icon.component'; describe('IconComponent', () => { let component: IconComponent; let fixture: ComponentFixture; - beforeEach(async(() => { - TestBed.configureTestingModule({ + beforeEach(() => { + void TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [IconComponent], }).compileComponents(); - })); + }); beforeEach(() => { fixture = TestBed.createComponent(IconComponent); diff --git a/apps/dafa-web/src/app/utils/map-path-to-page-name.util.ts b/apps/dafa-web/src/app/utils/map-path-to-page-name.util.ts index d249cd9..83a2749 100644 --- a/apps/dafa-web/src/app/utils/map-path-to-page-name.util.ts +++ b/apps/dafa-web/src/app/utils/map-path-to-page-name.util.ts @@ -1,5 +1,5 @@ import { Navigation } from '@dafa-constants/navigation'; export function mapPathToPageName(path: string): string { - return Navigation[path] || `${path.charAt(0).toUpperCase()}${path.slice(1)}`; + return (Navigation[path] || `${path.charAt(0).toUpperCase()}${path.slice(1)}`) as string; } diff --git a/apps/dafa-web/src/app/utils/validators/social-security-number.validator.ts b/apps/dafa-web/src/app/utils/validators/social-security-number.validator.ts index b7490b0..b5f7291 100644 --- a/apps/dafa-web/src/app/utils/validators/social-security-number.validator.ts +++ b/apps/dafa-web/src/app/utils/validators/social-security-number.validator.ts @@ -7,13 +7,13 @@ export function SocialSecurityNumberValidator(): ValidatorFn { return null; } - const ssn = control.value; + const ssn = control.value as string; if (/[^0-9-]/g.test(ssn)) { return { type: 'ssnInvalid', message: 'Inkorrekt personnummer' }; } - let strippedSsn = control.value.replace(/[^0-9]/g, ''); + let strippedSsn = ssn.replace(/[^0-9]/g, ''); // Year format 1991 -> 91 if (strippedSsn.length === 12) { @@ -26,14 +26,14 @@ export function SocialSecurityNumberValidator(): ValidatorFn { } // Check month - if (strippedSsn.substr(2, 2) > 12 || strippedSsn.substr(2, 2) === '00') { + if (+strippedSsn.substr(2, 2) > 12 || strippedSsn.substr(2, 2) === '00') { return { type: 'ssnInvalid', message: 'Inkorrekt personnummer' }; } // Check date (valid date + 60 is also apporved because of co-ordination number) if ( - (strippedSsn.substr(4, 2) > 31 || strippedSsn.substr(4, 2) === '00') && - (strippedSsn.substr(4, 2) > 91 || strippedSsn.substr(4, 2) <= 60) + (+strippedSsn.substr(4, 2) > 31 || strippedSsn.substr(4, 2) === '00') && + (+strippedSsn.substr(4, 2) > 91 || +strippedSsn.substr(4, 2) <= 60) ) { return { type: 'ssnInvalid', message: 'Inkorrekt personnummer' }; } diff --git a/apps/dafa-web/src/environments/environment.dotnet.ts b/apps/dafa-web/src/environments/environment.dotnet.ts index 47cd923..9011678 100644 --- a/apps/dafa-web/src/environments/environment.dotnet.ts +++ b/apps/dafa-web/src/environments/environment.dotnet.ts @@ -1,5 +1,7 @@ export const environment = { - loginUrl: 'https://ciam-test.arbetsformedlingen.se:8443/uas/oauth2/authorization?response_type=code&scope=openid&redirect_uri=https://localhost:4200/ciam-landing&client_id=5d08c2e4-763e-42f6-b858-24e4773bb83d', + loginUrl: + // eslint-disable-next-line max-len + 'https://ciam-test.arbetsformedlingen.se:8443/uas/oauth2/authorization?response_type=code&scope=openid&redirect_uri=https://localhost:4200/ciam-landing&client_id=5d08c2e4-763e-42f6-b858-24e4773bb83d', production: false, api: { url: '/api', diff --git a/apps/dafa-web/src/main.ts b/apps/dafa-web/src/main.ts index ea16492..8c85daf 100644 --- a/apps/dafa-web/src/main.ts +++ b/apps/dafa-web/src/main.ts @@ -12,4 +12,4 @@ platformBrowserDynamic() .bootstrapModule(AppModule) .catch(err => console.error(err)); -defineCustomElements(); +void defineCustomElements(); diff --git a/package-lock.json b/package-lock.json index c9c314b..702846a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "@af/auth": "^11.1.0", "@af/digi-ng": "^14.0.0", + "@angular-eslint/schematics": "^1.2.0", "@angular/animations": "^11.2.0", "@angular/cdk": "^11.2.12", "@angular/common": "^11.2.0", @@ -755,11 +756,70 @@ "axobject-query": "^2.2.0" } }, + "node_modules/@angular-eslint/schematics": { + "version": "1.2.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@angular-eslint/schematics/-/schematics-1.2.0.tgz", + "integrity": "sha512-F0Mb6XyLWGmmtov5kv/BHvt22Uo/FuD4y2WhO7NUA9rZRJd+anmyHCkC9HXmNKUuLQIUKjJ4DJgsmD0Kh0Hr2g==", + "license": "MIT", + "dependencies": { + "@angular-eslint/eslint-plugin": "1.2.0", + "@angular-eslint/eslint-plugin-template": "1.2.0", + "strip-json-comments": "3.1.1", + "tslint-to-eslint-config": "2.0.1" + }, + "peerDependencies": { + "@angular-devkit/core": "*", + "@angular-devkit/schematics": "*" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/@angular-eslint/eslint-plugin": { + "version": "1.2.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@angular-eslint/eslint-plugin/-/eslint-plugin-1.2.0.tgz", + "integrity": "sha512-HxSDdAS2/lbwYBJmRVRKlx5wjiKdeBPl7JJlciwhrP7QR01a66AWun+fW1ZpMnnqivkF+D5sISsoedRLthRcwA==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "4.3.0" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-jsdoc": "*", + "eslint-plugin-prefer-arrow": "*", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/@angular-eslint/eslint-plugin-template": { + "version": "1.2.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-1.2.0.tgz", + "integrity": "sha512-Oi/y+N/FETuyhbVuFxbkCqSfLo61CAvIPwnQQCfDku/IsCSTI1SjW+B2xO9thDI5po7t5V+3n26uMLQsWNZmlw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "4.3.0", + "aria-query": "^4.2.2", + "axobject-query": "^2.2.0" + }, + "peerDependencies": { + "@angular-eslint/template-parser": "*", + "eslint": "*", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@angular-eslint/template-parser": { "version": "1.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@angular-eslint/template-parser/-/template-parser-1.0.0.tgz", "integrity": "sha512-M7rj907yOoEzq10FO5BDX7Ylw24V+YfdsYfyEi/TzzQtNGxCwQhbEwXc1PAZgsQ+P1wbGFbg9mb3yFkps7/LEA==", - "dev": true, "dependencies": { "eslint-scope": "^5.1.0" } @@ -768,7 +828,6 @@ "version": "5.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -2391,7 +2450,6 @@ "version": "7.13.17", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@babel/runtime/-/runtime-7.13.17.tgz", "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==", - "devOptional": true, "dependencies": { "regenerator-runtime": "^0.13.4" } @@ -2400,7 +2458,6 @@ "version": "7.13.17", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", - "dev": true, "dependencies": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" @@ -2678,11 +2735,25 @@ "node": ">=10.0.0" } }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.8.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@es-joy/jsdoccomment/-/jsdoccomment-0.8.0.tgz", + "integrity": "sha512-Xd3GzYsL2sz2pcdtYt5Q0Wz1ol/o9Nt2UQL4nFPDcaEomvPmwjJsbjkKx1SKhl2h3TgwazNBLdcNr2m0UiGiFA==", + "license": "MIT", + "peer": true, + "dependencies": { + "comment-parser": "^1.1.5", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "1.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "0.1.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", - "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -2703,7 +2774,6 @@ "version": "12.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, "dependencies": { "type-fest": "^0.8.1" }, @@ -2715,7 +2785,6 @@ "version": "4.0.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, "engines": { "node": ">= 4" } @@ -2724,7 +2793,6 @@ "version": "3.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2737,7 +2805,6 @@ "version": "4.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } @@ -2746,7 +2813,6 @@ "version": "3.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { "node": ">=8" } @@ -3142,7 +3208,6 @@ "version": "2.1.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" @@ -3155,7 +3220,6 @@ "version": "2.0.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true, "engines": { "node": ">= 8" } @@ -3164,7 +3228,6 @@ "version": "1.2.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" @@ -4577,7 +4640,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/experimental-utils/-/experimental-utils-4.3.0.tgz", "integrity": "sha512-cmmIK8shn3mxmhpKfzMMywqiEheyfXLV/+yPDnOTvQX/ztngx7Lg/OD26J8gTZfkLKUmaEBxO2jYP3keV7h2OQ==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.3", "@typescript-eslint/scope-manager": "4.3.0", @@ -4594,7 +4656,6 @@ "version": "5.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -4622,7 +4683,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/scope-manager/-/scope-manager-4.3.0.tgz", "integrity": "sha512-cTeyP5SCNE8QBRfc+Lgh4Xpzje46kNUhXYfc3pQWmJif92sjrFuHT9hH4rtOkDTo/si9Klw53yIr+djqGZS1ig==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.3.0", "@typescript-eslint/visitor-keys": "4.3.0" @@ -4635,7 +4695,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/types/-/types-4.3.0.tgz", "integrity": "sha512-Cx9TpRvlRjOppGsU6Y6KcJnUDOelja2NNCX6AZwtVHRzaJkdytJWMuYiqi8mS35MRNA3cJSwDzXePfmhU6TANw==", - "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" } @@ -4644,7 +4703,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/typescript-estree/-/typescript-estree-4.3.0.tgz", "integrity": "sha512-ZAI7xjkl+oFdLV/COEz2tAbQbR3XfgqHEGy0rlUXzfGQic6EBCR4s2+WS3cmTPG69aaZckEucBoTxW9PhzHxxw==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.3.0", "@typescript-eslint/visitor-keys": "4.3.0", @@ -4663,7 +4721,6 @@ "version": "7.3.5", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -4678,7 +4735,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/visitor-keys/-/visitor-keys-4.3.0.tgz", "integrity": "sha512-xZxkuR7XLM6RhvLkgv9yYlTcBHnTULzfnw4i6+z2TGBLy9yljAypQaZl9c3zFvy7PNI7fYWyvKYtohyF8au3cw==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.3.0", "eslint-visitor-keys": "^2.0.0" @@ -4936,8 +4992,7 @@ "node_modules/acorn-jsx": { "version": "5.3.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==" }, "node_modules/acorn-walk": { "version": "7.2.0", @@ -5044,7 +5099,6 @@ "version": "4.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, "engines": { "node": ">=6" } @@ -5153,7 +5207,6 @@ "version": "4.2.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/aria-query/-/aria-query-4.2.2.tgz", "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, "dependencies": { "@babel/runtime": "^7.10.2", "@babel/runtime-corejs3": "^7.10.2" @@ -5205,11 +5258,30 @@ "dev": true, "license": "MIT" }, + "node_modules/array-includes": { + "version": "3.1.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, "engines": { "node": ">=8" } @@ -5231,6 +5303,24 @@ "node": ">=0.10.0" } }, + "node_modules/array.prototype.flat": { + "version": "1.2.4", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/arrify/-/arrify-1.0.1.tgz", @@ -5314,7 +5404,6 @@ "version": "1.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, "engines": { "node": ">=4" } @@ -5408,8 +5497,7 @@ "node_modules/axobject-query": { "version": "2.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" }, "node_modules/babel-code-frame": { "version": "6.26.0", @@ -6002,6 +6090,15 @@ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -6644,6 +6741,19 @@ "node": ">=0.10.0" } }, + "node_modules/coffeescript": { + "version": "1.12.7", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/coffeescript/-/coffeescript-1.12.7.tgz", + "integrity": "sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA==", + "license": "MIT", + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/collect-v8-coverage": { "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", @@ -6743,8 +6853,17 @@ "node_modules/commander": { "version": "2.20.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/comment-parser": { + "version": "1.1.5", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/comment-parser/-/comment-parser-1.1.5.tgz", + "integrity": "sha512-RePCE4leIhBlmrqiYTvaqEeGYg7qpSl4etaIabKtdOQVi+mSTIBBklGUwIr79GXYnl3LpMwmDw4KeR2stNc6FA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } }, "node_modules/common-tags": { "version": "1.8.0", @@ -7242,8 +7361,7 @@ "node_modules/core-js-pure": { "version": "3.11.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/core-js-pure/-/core-js-pure-3.11.0.tgz", - "integrity": "sha512-PxEiQGjzC+5qbvE7ZIs5Zn6BynNeZO9zHhrrWmkRff2SZLq0CE/H5LuZOJHhmOQ8L38+eMzEHAmPYWrUtDfuDQ==", - "dev": true + "integrity": "sha512-PxEiQGjzC+5qbvE7ZIs5Zn6BynNeZO9zHhrrWmkRff2SZLq0CE/H5LuZOJHhmOQ8L38+eMzEHAmPYWrUtDfuDQ==" }, "node_modules/core-util-is": { "version": "1.0.2", @@ -7393,6 +7511,18 @@ "node": ">=8" } }, + "node_modules/cson-parser": { + "version": "4.0.7", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/cson-parser/-/cson-parser-4.0.7.tgz", + "integrity": "sha512-BSnAl0gllETWjU9/lb8MmeqhsGaRINPwhoPiBjI/TJBRvKf/24I9EVqnwvmk6R3Gt66cMRSGVktl6QicxIb72g==", + "license": "BSD-3-Clause", + "dependencies": { + "coffeescript": "1.12.7" + }, + "engines": { + "node": ">=10.13" + } + }, "node_modules/css": { "version": "3.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/css/-/css-3.0.0.tgz", @@ -8589,8 +8719,7 @@ "node_modules/deep-is": { "version": "0.1.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "node_modules/deepmerge": { "version": "4.2.2", @@ -8841,7 +8970,6 @@ "version": "4.0.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, "engines": { "node": ">=0.3.1" } @@ -8876,7 +9004,6 @@ "version": "3.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, "dependencies": { "path-type": "^4.0.0" }, @@ -8888,7 +9015,6 @@ "version": "4.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -8922,7 +9048,6 @@ "version": "3.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "dependencies": { "esutils": "^2.0.2" }, @@ -9247,7 +9372,6 @@ "version": "2.3.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, "dependencies": { "ansi-colors": "^4.1.1" }, @@ -9631,7 +9755,6 @@ "version": "7.10.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint/-/eslint-7.10.0.tgz", "integrity": "sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "@eslint/eslintrc": "^0.1.3", @@ -9687,6 +9810,144 @@ "eslint-config-prettier": "bin/cli.js" } }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "2.6.9", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "license": "MIT", + "peer": true + }, + "node_modules/eslint-module-utils": { + "version": "2.6.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^3.2.7", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "license": "MIT", + "peer": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/eslint-plugin-cypress": { "version": "2.11.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.2.tgz", @@ -9696,6 +9957,243 @@ "globals": "^11.12.0" } }, + "node_modules/eslint-plugin-import": { + "version": "2.23.4", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", + "has": "^1.0.3", + "is-core-module": "^2.4.0", + "minimatch": "^3.0.4", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/find-up": { + "version": "2.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "license": "MIT", + "peer": true + }, + "node_modules/eslint-plugin-import/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/p-try": { + "version": "1.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "license": "MIT", + "peer": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "license": "MIT", + "peer": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "35.4.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-35.4.0.tgz", + "integrity": "sha512-0cr+NkPTxpTiMCtYOd8W5fd2IyC/CmaTHKb+0bzkpP9p8HfmJ3B2/M6FWj97rQJOLwLMkx+g2MIEZsrttpbFmQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@es-joy/jsdoccomment": "^0.8.0-alpha.2", + "comment-parser": "1.1.5", + "debug": "^4.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "^1.0.4", + "lodash": "^4.17.21", + "regextras": "^0.8.0", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/debug": { + "version": "4.3.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/ms": { + "version": "2.1.2", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT", + "peer": true + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.3.5", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "eslint": ">=2.0.0" + } + }, "node_modules/eslint-scope": { "version": "4.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -9713,7 +10211,6 @@ "version": "2.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -9725,7 +10222,6 @@ "version": "1.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, "engines": { "node": ">=4" } @@ -9734,7 +10230,6 @@ "version": "2.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true, "engines": { "node": ">=10" } @@ -9743,7 +10238,6 @@ "version": "7.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -9757,7 +10251,6 @@ "version": "5.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -9770,7 +10263,6 @@ "version": "1.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, "engines": { "node": ">=4" } @@ -9779,7 +10271,6 @@ "version": "12.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, "dependencies": { "type-fest": "^0.8.1" }, @@ -9791,7 +10282,6 @@ "version": "4.0.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, "engines": { "node": ">= 4" } @@ -9800,7 +10290,6 @@ "version": "3.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -9813,7 +10302,6 @@ "version": "3.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -9822,7 +10310,6 @@ "version": "4.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } @@ -9831,7 +10318,6 @@ "version": "7.3.5", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -9846,7 +10332,6 @@ "version": "2.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -9858,7 +10343,6 @@ "version": "3.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -9867,7 +10351,6 @@ "version": "3.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { "node": ">=8" } @@ -9876,7 +10359,6 @@ "version": "2.0.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -9891,7 +10373,6 @@ "version": "7.3.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -9905,7 +10386,6 @@ "version": "7.4.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -9917,7 +10397,6 @@ "version": "1.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, "engines": { "node": ">=4" } @@ -9938,7 +10417,6 @@ "version": "1.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -9950,7 +10428,6 @@ "version": "5.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, "engines": { "node": ">=4.0" } @@ -9959,7 +10436,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -9971,7 +10447,6 @@ "version": "5.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, "engines": { "node": ">=4.0" } @@ -9980,7 +10455,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, "engines": { "node": ">=4.0" } @@ -10446,7 +10920,6 @@ "version": "3.2.5", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/fast-glob/-/fast-glob-3.2.5.tgz", "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -10467,14 +10940,12 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "node_modules/fastq": { "version": "1.11.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/fastq/-/fastq-1.11.0.tgz", "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -10530,7 +11001,6 @@ "version": "5.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, "dependencies": { "flat-cache": "^2.0.1" }, @@ -10684,7 +11154,6 @@ "version": "2.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, "dependencies": { "flatted": "^2.0.0", "rimraf": "2.6.3", @@ -10698,7 +11167,6 @@ "version": "2.6.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -10709,8 +11177,7 @@ "node_modules/flatted": { "version": "2.0.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" }, "node_modules/flush-write-stream": { "version": "1.1.1", @@ -11157,8 +11624,7 @@ "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "node_modules/genfun": { "version": "5.0.0", @@ -11201,6 +11667,15 @@ "node": ">=8.0.0" } }, + "node_modules/get-stdin": { + "version": "6.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/get-stream/-/get-stream-4.1.0.tgz", @@ -11327,7 +11802,6 @@ "version": "11.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/globby/-/globby-11.0.3.tgz", "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", - "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -12132,7 +12606,6 @@ "version": "0.1.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, "engines": { "node": ">=0.8.19" } @@ -12489,11 +12962,15 @@ } }, "node_modules/is-core-module": { - "version": "2.3.0", - "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/is-core-module/-/is-core-module-2.3.0.tgz", - "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "version": "2.4.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "license": "MIT", "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-descriptor": { @@ -14127,6 +14604,16 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "1.0.4", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.0.4.tgz", + "integrity": "sha512-jzmW9gokeq9+bHPDR1nCeidMyFUikdZlbOhKzh9+/nJqB75XhpNKec1/UuxW5c4+O+Pi31Gc/dCboyfSm/pSpQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/jsdom": { "version": "16.5.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/jsdom/-/jsdom-16.5.3.tgz", @@ -14234,8 +14721,7 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -14518,7 +15004,6 @@ "version": "0.4.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -15103,7 +15588,6 @@ "version": "6.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -15567,7 +16051,6 @@ "version": "1.4.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -16011,8 +16494,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "node_modules/needle": { "version": "2.6.0", @@ -19784,7 +20266,6 @@ "version": "1.1.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/object.values/-/object.values-1.1.3.tgz", "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -19881,7 +20362,6 @@ "version": "0.9.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -20319,7 +20799,6 @@ "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -20331,7 +20810,6 @@ "version": "3.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -20673,6 +21151,92 @@ "node": ">=8" } }, + "node_modules/pkg-up": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "license": "MIT", + "peer": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/pnp-webpack-plugin": { "version": "1.6.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", @@ -24077,7 +24641,6 @@ "version": "1.2.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, "engines": { "node": ">= 0.8.0" } @@ -24183,7 +24746,6 @@ "version": "2.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -24367,8 +24929,7 @@ "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "node_modules/quick-lru": { "version": "4.0.1", @@ -24629,8 +25190,7 @@ "node_modules/regenerator-runtime": { "version": "0.13.7", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "devOptional": true + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, "node_modules/regenerator-transform": { "version": "0.14.5", @@ -24676,7 +25236,6 @@ "version": "3.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/regexpp/-/regexpp-3.1.0.tgz", "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true, "engines": { "node": ">=8" } @@ -24698,6 +25257,16 @@ "node": ">=4" } }, + "node_modules/regextras": { + "version": "0.8.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/regextras/-/regextras-0.8.0.tgz", + "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.1.14" + } + }, "node_modules/registry-auth-token": { "version": "4.2.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -25083,7 +25652,6 @@ "version": "1.0.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -25202,7 +25770,6 @@ "version": "1.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "dependencies": { "queue-microtask": "^1.2.2" } @@ -27592,7 +28159,6 @@ "version": "5.4.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, "dependencies": { "ajv": "^6.10.2", "lodash": "^4.17.14", @@ -27607,7 +28173,6 @@ "version": "4.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, "engines": { "node": ">=6" } @@ -27616,7 +28181,6 @@ "version": "3.2.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -27628,7 +28192,6 @@ "version": "1.9.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -27636,20 +28199,17 @@ "node_modules/table/node_modules/color-name": { "version": "1.1.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "node_modules/table/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "node_modules/table/node_modules/slice-ansi": { "version": "2.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", @@ -27663,7 +28223,6 @@ "version": "3.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -27677,7 +28236,6 @@ "version": "5.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, @@ -27939,8 +28497,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "node_modules/throat": { "version": "5.0.0", @@ -28534,11 +29091,260 @@ "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslib/-/tslib-2.2.0.tgz", "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "license": "Apache-2.0", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" + } + }, + "node_modules/tslint-to-eslint-config": { + "version": "2.0.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslint-to-eslint-config/-/tslint-to-eslint-config-2.0.1.tgz", + "integrity": "sha512-RURU/zcBQpW9jKS7H2J6of4+64npTb0nrH7ND8tNhagMwryVjVnUDcucsl8DQuD7tO9RgjFO9bmJfDhyP0yV1w==", + "license": "MIT", + "dependencies": { + "chalk": "4.1.0", + "commander": "6.2.0", + "cson-parser": "4.0.7", + "eslint-config-prettier": "6.15.0", + "glob": "7.1.6", + "json5": "2.1.3", + "lodash": "4.17.20", + "minimatch": "3.0.4", + "tslint": "6.1.3", + "typescript": "4.1.2" + }, + "bin": { + "tslint-to-eslint-config": "bin/tslint-to-eslint-config" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/tslint-to-eslint-config/node_modules/chalk": { + "version": "4.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/tslint-to-eslint-config/node_modules/commander": { + "version": "6.2.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/tslint-to-eslint-config/node_modules/eslint-config-prettier": { + "version": "6.15.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", + "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", + "license": "MIT", + "dependencies": { + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" + } + }, + "node_modules/tslint-to-eslint-config/node_modules/glob": { + "version": "7.1.6", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tslint-to-eslint-config/node_modules/json5": { + "version": "2.1.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslint-to-eslint-config/node_modules/lodash": { + "version": "4.17.20", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "license": "MIT" + }, + "node_modules/tslint-to-eslint-config/node_modules/typescript": { + "version": "4.1.2", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/typescript/-/typescript-4.1.2.tgz", + "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/tslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/tslint/node_modules/color-name": { + "version": "1.1.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "license": "MIT" + }, + "node_modules/tslint/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/tslint/node_modules/tsutils": { + "version": "2.29.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, "node_modules/tsutils": { "version": "3.21.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, "dependencies": { "tslib": "^1.8.1" }, @@ -28549,8 +29355,7 @@ "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/tty-browserify": { "version": "0.0.0", @@ -28586,7 +29391,6 @@ "version": "0.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -28643,7 +29447,6 @@ "version": "4.0.7", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/typescript/-/typescript-4.0.7.tgz", "integrity": "sha512-yi7M4y74SWvYbnazbn8/bmJmX4Zlej39ZOqwG/8dut/MYoSQ119GY9ZFbbGsD4PFZYWxqik/XsP3vk3+W5H3og==", - "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -28985,8 +29788,7 @@ "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "node_modules/v8-to-istanbul": { "version": "7.1.1", @@ -32231,7 +33033,6 @@ "version": "1.2.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -32312,7 +33113,6 @@ "version": "1.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, "dependencies": { "mkdirp": "^0.5.1" }, @@ -32336,7 +33136,6 @@ "version": "0.5.5", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "dependencies": { "minimist": "^1.2.5" }, @@ -32382,8 +33181,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yaml": { "version": "1.10.2", @@ -33089,11 +33887,46 @@ "axobject-query": "^2.2.0" } }, + "@angular-eslint/schematics": { + "version": "1.2.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@angular-eslint/schematics/-/schematics-1.2.0.tgz", + "integrity": "sha512-F0Mb6XyLWGmmtov5kv/BHvt22Uo/FuD4y2WhO7NUA9rZRJd+anmyHCkC9HXmNKUuLQIUKjJ4DJgsmD0Kh0Hr2g==", + "requires": { + "@angular-eslint/eslint-plugin": "1.2.0", + "@angular-eslint/eslint-plugin-template": "1.2.0", + "strip-json-comments": "3.1.1", + "tslint-to-eslint-config": "2.0.1" + }, + "dependencies": { + "@angular-eslint/eslint-plugin": { + "version": "1.2.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@angular-eslint/eslint-plugin/-/eslint-plugin-1.2.0.tgz", + "integrity": "sha512-HxSDdAS2/lbwYBJmRVRKlx5wjiKdeBPl7JJlciwhrP7QR01a66AWun+fW1ZpMnnqivkF+D5sISsoedRLthRcwA==", + "requires": { + "@typescript-eslint/experimental-utils": "4.3.0" + } + }, + "@angular-eslint/eslint-plugin-template": { + "version": "1.2.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-1.2.0.tgz", + "integrity": "sha512-Oi/y+N/FETuyhbVuFxbkCqSfLo61CAvIPwnQQCfDku/IsCSTI1SjW+B2xO9thDI5po7t5V+3n26uMLQsWNZmlw==", + "requires": { + "@typescript-eslint/experimental-utils": "4.3.0", + "aria-query": "^4.2.2", + "axobject-query": "^2.2.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + } + } + }, "@angular-eslint/template-parser": { "version": "1.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@angular-eslint/template-parser/-/template-parser-1.0.0.tgz", "integrity": "sha512-M7rj907yOoEzq10FO5BDX7Ylw24V+YfdsYfyEi/TzzQtNGxCwQhbEwXc1PAZgsQ+P1wbGFbg9mb3yFkps7/LEA==", - "dev": true, "requires": { "eslint-scope": "^5.1.0" }, @@ -33102,7 +33935,6 @@ "version": "5.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -34594,7 +35426,6 @@ "version": "7.13.17", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@babel/runtime/-/runtime-7.13.17.tgz", "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==", - "devOptional": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -34603,7 +35434,6 @@ "version": "7.13.17", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", - "dev": true, "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" @@ -34839,11 +35669,21 @@ "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", "dev": true }, + "@es-joy/jsdoccomment": { + "version": "0.8.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@es-joy/jsdoccomment/-/jsdoccomment-0.8.0.tgz", + "integrity": "sha512-Xd3GzYsL2sz2pcdtYt5Q0Wz1ol/o9Nt2UQL4nFPDcaEomvPmwjJsbjkKx1SKhl2h3TgwazNBLdcNr2m0UiGiFA==", + "peer": true, + "requires": { + "comment-parser": "^1.1.5", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "1.0.4" + } + }, "@eslint/eslintrc": { "version": "0.1.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", - "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -34861,7 +35701,6 @@ "version": "12.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, "requires": { "type-fest": "^0.8.1" } @@ -34869,14 +35708,12 @@ "ignore": { "version": "4.0.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, "import-fresh": { "version": "3.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -34885,14 +35722,12 @@ "resolve-from": { "version": "4.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "strip-json-comments": { "version": "3.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" } } }, @@ -35227,7 +36062,6 @@ "version": "2.1.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" @@ -35236,14 +36070,12 @@ "@nodelib/fs.stat": { "version": "2.0.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" }, "@nodelib/fs.walk": { "version": "1.2.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" @@ -36373,7 +37205,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/experimental-utils/-/experimental-utils-4.3.0.tgz", "integrity": "sha512-cmmIK8shn3mxmhpKfzMMywqiEheyfXLV/+yPDnOTvQX/ztngx7Lg/OD26J8gTZfkLKUmaEBxO2jYP3keV7h2OQ==", - "dev": true, "requires": { "@types/json-schema": "^7.0.3", "@typescript-eslint/scope-manager": "4.3.0", @@ -36387,7 +37218,6 @@ "version": "5.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -36411,7 +37241,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/scope-manager/-/scope-manager-4.3.0.tgz", "integrity": "sha512-cTeyP5SCNE8QBRfc+Lgh4Xpzje46kNUhXYfc3pQWmJif92sjrFuHT9hH4rtOkDTo/si9Klw53yIr+djqGZS1ig==", - "dev": true, "requires": { "@typescript-eslint/types": "4.3.0", "@typescript-eslint/visitor-keys": "4.3.0" @@ -36420,14 +37249,12 @@ "@typescript-eslint/types": { "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/types/-/types-4.3.0.tgz", - "integrity": "sha512-Cx9TpRvlRjOppGsU6Y6KcJnUDOelja2NNCX6AZwtVHRzaJkdytJWMuYiqi8mS35MRNA3cJSwDzXePfmhU6TANw==", - "dev": true + "integrity": "sha512-Cx9TpRvlRjOppGsU6Y6KcJnUDOelja2NNCX6AZwtVHRzaJkdytJWMuYiqi8mS35MRNA3cJSwDzXePfmhU6TANw==" }, "@typescript-eslint/typescript-estree": { "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/typescript-estree/-/typescript-estree-4.3.0.tgz", "integrity": "sha512-ZAI7xjkl+oFdLV/COEz2tAbQbR3XfgqHEGy0rlUXzfGQic6EBCR4s2+WS3cmTPG69aaZckEucBoTxW9PhzHxxw==", - "dev": true, "requires": { "@typescript-eslint/types": "4.3.0", "@typescript-eslint/visitor-keys": "4.3.0", @@ -36443,7 +37270,6 @@ "version": "7.3.5", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -36454,7 +37280,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/@typescript-eslint/visitor-keys/-/visitor-keys-4.3.0.tgz", "integrity": "sha512-xZxkuR7XLM6RhvLkgv9yYlTcBHnTULzfnw4i6+z2TGBLy9yljAypQaZl9c3zFvy7PNI7fYWyvKYtohyF8au3cw==", - "dev": true, "requires": { "@typescript-eslint/types": "4.3.0", "eslint-visitor-keys": "^2.0.0" @@ -36696,8 +37521,7 @@ "acorn-jsx": { "version": "5.3.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==" }, "acorn-walk": { "version": "7.2.0", @@ -36787,8 +37611,7 @@ "ansi-colors": { "version": "4.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" }, "ansi-escapes": { "version": "3.2.0", @@ -36871,7 +37694,6 @@ "version": "4.2.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/aria-query/-/aria-query-4.2.2.tgz", "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, "requires": { "@babel/runtime": "^7.10.2", "@babel/runtime-corejs3": "^7.10.2" @@ -36910,11 +37732,23 @@ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, + "array-includes": { + "version": "3.1.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + } + }, "array-union": { "version": "2.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, "array-uniq": { "version": "1.0.3", @@ -36927,6 +37761,17 @@ "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "peer": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, "arrify": { "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/arrify/-/arrify-1.0.1.tgz", @@ -37003,8 +37848,7 @@ "astral-regex": { "version": "1.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" }, "async": { "version": "0.9.2", @@ -37077,8 +37921,7 @@ "axobject-query": { "version": "2.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" }, "babel-code-frame": { "version": "6.26.0", @@ -37603,6 +38446,11 @@ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, "builtin-status-codes": { "version": "3.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -38113,6 +38961,11 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "coffeescript": { + "version": "1.12.7", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/coffeescript/-/coffeescript-1.12.7.tgz", + "integrity": "sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA==" + }, "collect-v8-coverage": { "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", @@ -38202,8 +39055,13 @@ "commander": { "version": "2.20.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "comment-parser": { + "version": "1.1.5", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/comment-parser/-/comment-parser-1.1.5.tgz", + "integrity": "sha512-RePCE4leIhBlmrqiYTvaqEeGYg7qpSl4etaIabKtdOQVi+mSTIBBklGUwIr79GXYnl3LpMwmDw4KeR2stNc6FA==", + "peer": true }, "common-tags": { "version": "1.8.0", @@ -38639,8 +39497,7 @@ "core-js-pure": { "version": "3.11.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/core-js-pure/-/core-js-pure-3.11.0.tgz", - "integrity": "sha512-PxEiQGjzC+5qbvE7ZIs5Zn6BynNeZO9zHhrrWmkRff2SZLq0CE/H5LuZOJHhmOQ8L38+eMzEHAmPYWrUtDfuDQ==", - "dev": true + "integrity": "sha512-PxEiQGjzC+5qbvE7ZIs5Zn6BynNeZO9zHhrrWmkRff2SZLq0CE/H5LuZOJHhmOQ8L38+eMzEHAmPYWrUtDfuDQ==" }, "core-util-is": { "version": "1.0.2", @@ -38777,6 +39634,14 @@ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, + "cson-parser": { + "version": "4.0.7", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/cson-parser/-/cson-parser-4.0.7.tgz", + "integrity": "sha512-BSnAl0gllETWjU9/lb8MmeqhsGaRINPwhoPiBjI/TJBRvKf/24I9EVqnwvmk6R3Gt66cMRSGVktl6QicxIb72g==", + "requires": { + "coffeescript": "1.12.7" + } + }, "css": { "version": "3.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/css/-/css-3.0.0.tgz", @@ -39753,8 +40618,7 @@ "deep-is": { "version": "0.1.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "deepmerge": { "version": "4.2.2", @@ -39954,8 +40818,7 @@ "diff": { "version": "4.0.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" }, "diff-sequences": { "version": "25.2.6", @@ -39986,7 +40849,6 @@ "version": "3.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, "requires": { "path-type": "^4.0.0" }, @@ -39994,8 +40856,7 @@ "path-type": { "version": "4.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" } } }, @@ -40028,7 +40889,6 @@ "version": "3.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "requires": { "esutils": "^2.0.2" } @@ -40317,7 +41177,6 @@ "version": "2.3.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, "requires": { "ansi-colors": "^4.1.1" } @@ -40611,7 +41470,6 @@ "version": "7.10.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint/-/eslint-7.10.0.tgz", "integrity": "sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@eslint/eslintrc": "^0.1.3", @@ -40656,7 +41514,6 @@ "version": "7.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -40667,7 +41524,6 @@ "version": "5.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -40676,14 +41532,12 @@ "eslint-visitor-keys": { "version": "1.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" }, "globals": { "version": "12.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, "requires": { "type-fest": "^0.8.1" } @@ -40691,14 +41545,12 @@ "ignore": { "version": "4.0.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, "import-fresh": { "version": "3.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -40707,20 +41559,17 @@ "path-key": { "version": "3.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "resolve-from": { "version": "4.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "semver": { "version": "7.3.5", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -40729,7 +41578,6 @@ "version": "2.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -40737,20 +41585,17 @@ "shebang-regex": { "version": "3.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-json-comments": { "version": "3.1.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "which": { "version": "2.0.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -40763,6 +41608,112 @@ "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", "dev": true }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "peer": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "peer": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", + "peer": true, + "requires": { + "debug": "^3.2.7", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "peer": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "peer": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "peer": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "peer": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "peer": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "peer": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "peer": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "peer": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, "eslint-plugin-cypress": { "version": "2.11.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.2.tgz", @@ -40772,6 +41723,175 @@ "globals": "^11.12.0" } }, + "eslint-plugin-import": { + "version": "2.23.4", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", + "peer": true, + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", + "has": "^1.0.3", + "is-core-module": "^2.4.0", + "minimatch": "^3.0.4", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "peer": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "peer": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "peer": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "peer": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "peer": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "peer": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "peer": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "peer": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "peer": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "peer": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + } + } + }, + "eslint-plugin-jsdoc": { + "version": "35.4.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-35.4.0.tgz", + "integrity": "sha512-0cr+NkPTxpTiMCtYOd8W5fd2IyC/CmaTHKb+0bzkpP9p8HfmJ3B2/M6FWj97rQJOLwLMkx+g2MIEZsrttpbFmQ==", + "peer": true, + "requires": { + "@es-joy/jsdoccomment": "^0.8.0-alpha.2", + "comment-parser": "1.1.5", + "debug": "^4.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "^1.0.4", + "lodash": "^4.17.21", + "regextras": "^0.8.0", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "semver": { + "version": "7.3.5", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "peer": true, + "requires": {} + }, "eslint-scope": { "version": "4.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -40786,7 +41906,6 @@ "version": "2.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" }, @@ -40794,22 +41913,19 @@ "eslint-visitor-keys": { "version": "1.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" } } }, "eslint-visitor-keys": { "version": "2.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" }, "espree": { "version": "7.3.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -40819,14 +41935,12 @@ "acorn": { "version": "7.4.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "eslint-visitor-keys": { "version": "1.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" } } }, @@ -40839,7 +41953,6 @@ "version": "1.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, "requires": { "estraverse": "^5.1.0" }, @@ -40847,8 +41960,7 @@ "estraverse": { "version": "5.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" } } }, @@ -40856,7 +41968,6 @@ "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "requires": { "estraverse": "^5.2.0" }, @@ -40864,16 +41975,14 @@ "estraverse": { "version": "5.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" } } }, "estraverse": { "version": "4.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "esutils": { "version": "2.0.3", @@ -41271,7 +42380,6 @@ "version": "3.2.5", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/fast-glob/-/fast-glob-3.2.5.tgz", "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -41289,14 +42397,12 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fastq": { "version": "1.11.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/fastq/-/fastq-1.11.0.tgz", "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", - "dev": true, "requires": { "reusify": "^1.0.4" } @@ -41346,7 +42452,6 @@ "version": "5.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, "requires": { "flat-cache": "^2.0.1" } @@ -41470,7 +42575,6 @@ "version": "2.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, "requires": { "flatted": "^2.0.0", "rimraf": "2.6.3", @@ -41481,7 +42585,6 @@ "version": "2.6.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -41491,8 +42594,7 @@ "flatted": { "version": "2.0.2", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" }, "flush-write-stream": { "version": "1.1.1", @@ -41874,8 +42976,7 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "genfun": { "version": "5.0.0", @@ -41909,6 +43010,11 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, + "get-stdin": { + "version": "6.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" + }, "get-stream": { "version": "4.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/get-stream/-/get-stream-4.1.0.tgz", @@ -42021,7 +43127,6 @@ "version": "11.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/globby/-/globby-11.0.3.tgz", "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", - "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -42688,8 +43793,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", @@ -42968,9 +44072,9 @@ } }, "is-core-module": { - "version": "2.3.0", - "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/is-core-module/-/is-core-module-2.3.0.tgz", - "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "version": "2.4.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", "requires": { "has": "^1.0.3" } @@ -44273,6 +45377,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "jsdoc-type-pratt-parser": { + "version": "1.0.4", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.0.4.tgz", + "integrity": "sha512-jzmW9gokeq9+bHPDR1nCeidMyFUikdZlbOhKzh9+/nJqB75XhpNKec1/UuxW5c4+O+Pi31Gc/dCboyfSm/pSpQ==", + "peer": true + }, "jsdom": { "version": "16.5.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/jsdom/-/jsdom-16.5.3.tgz", @@ -44361,8 +45471,7 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "json-stringify-safe": { "version": "5.0.1", @@ -44581,7 +45690,6 @@ "version": "0.4.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -45056,7 +46164,6 @@ "version": "6.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -45428,8 +46535,7 @@ "merge2": { "version": "1.4.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "methods": { "version": "1.1.2", @@ -45776,8 +46882,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "needle": { "version": "2.6.0", @@ -48457,7 +49562,6 @@ "version": "1.1.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/object.values/-/object.values-1.1.3.tgz", "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", - "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -48535,7 +49639,6 @@ "version": "0.9.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -48918,7 +50021,6 @@ "version": "1.0.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "requires": { "callsites": "^3.0.0" }, @@ -48926,8 +50028,7 @@ "callsites": { "version": "3.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" } } }, @@ -49191,6 +50292,66 @@ "find-up": "^4.0.0" } }, + "pkg-up": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "peer": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "peer": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "peer": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "peer": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "peer": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "peer": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "peer": true + } + } + }, "pnp-webpack-plugin": { "version": "1.6.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", @@ -51994,8 +53155,7 @@ "prelude-ls": { "version": "1.2.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" }, "prettier": { "version": "2.2.1", @@ -52077,8 +53237,7 @@ "progress": { "version": "2.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise-inflight": { "version": "1.0.1", @@ -52237,8 +53396,7 @@ "queue-microtask": { "version": "1.2.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "quick-lru": { "version": "4.0.1", @@ -52455,8 +53613,7 @@ "regenerator-runtime": { "version": "0.13.7", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "devOptional": true + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, "regenerator-transform": { "version": "0.14.5", @@ -52495,8 +53652,7 @@ "regexpp": { "version": "3.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" }, "regexpu-core": { "version": "4.7.1", @@ -52512,6 +53668,12 @@ "unicode-match-property-value-ecmascript": "^1.2.0" } }, + "regextras": { + "version": "0.8.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/regextras/-/regextras-0.8.0.tgz", + "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==", + "peer": true + }, "registry-auth-token": { "version": "4.2.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -52822,8 +53984,7 @@ "reusify": { "version": "1.0.4", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rework": { "version": "1.0.1", @@ -52922,7 +54083,6 @@ "version": "1.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "requires": { "queue-microtask": "^1.2.2" } @@ -54882,7 +56042,6 @@ "version": "5.4.6", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, "requires": { "ajv": "^6.10.2", "lodash": "^4.17.14", @@ -54893,14 +56052,12 @@ "ansi-regex": { "version": "4.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "ansi-styles": { "version": "3.2.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -54909,7 +56066,6 @@ "version": "1.9.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -54917,20 +56073,17 @@ "color-name": { "version": "1.1.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "emoji-regex": { "version": "7.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "slice-ansi": { "version": "2.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", @@ -54941,7 +56094,6 @@ "version": "3.1.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -54952,7 +56104,6 @@ "version": "5.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -55146,8 +56297,7 @@ "text-table": { "version": "0.2.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "throat": { "version": "5.0.0", @@ -55635,11 +56785,174 @@ "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslib/-/tslib-2.2.0.tgz", "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" }, + "tslint": { + "version": "6.1.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsutils": { + "version": "2.29.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "tslint-to-eslint-config": { + "version": "2.0.1", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslint-to-eslint-config/-/tslint-to-eslint-config-2.0.1.tgz", + "integrity": "sha512-RURU/zcBQpW9jKS7H2J6of4+64npTb0nrH7ND8tNhagMwryVjVnUDcucsl8DQuD7tO9RgjFO9bmJfDhyP0yV1w==", + "requires": { + "chalk": "4.1.0", + "commander": "6.2.0", + "cson-parser": "4.0.7", + "eslint-config-prettier": "6.15.0", + "glob": "7.1.6", + "json5": "2.1.3", + "lodash": "4.17.20", + "minimatch": "3.0.4", + "tslint": "6.1.3", + "typescript": "4.1.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "commander": { + "version": "6.2.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==" + }, + "eslint-config-prettier": { + "version": "6.15.0", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", + "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", + "requires": { + "get-stdin": "^6.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "json5": { + "version": "2.1.3", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "typescript": { + "version": "4.1.2", + "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/typescript/-/typescript-4.1.2.tgz", + "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==" + } + } + }, "tsutils": { "version": "3.21.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, "requires": { "tslib": "^1.8.1" }, @@ -55647,8 +56960,7 @@ "tslib": { "version": "1.14.1", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -55683,7 +56995,6 @@ "version": "0.4.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "requires": { "prelude-ls": "^1.2.1" } @@ -55727,8 +57038,7 @@ "typescript": { "version": "4.0.7", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/typescript/-/typescript-4.0.7.tgz", - "integrity": "sha512-yi7M4y74SWvYbnazbn8/bmJmX4Zlej39ZOqwG/8dut/MYoSQ119GY9ZFbbGsD4PFZYWxqik/XsP3vk3+W5H3og==", - "dev": true + "integrity": "sha512-yi7M4y74SWvYbnazbn8/bmJmX4Zlej39ZOqwG/8dut/MYoSQ119GY9ZFbbGsD4PFZYWxqik/XsP3vk3+W5H3og==" }, "uglify-js": { "version": "3.13.6", @@ -56009,8 +57319,7 @@ "v8-compile-cache": { "version": "2.3.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "v8-to-istanbul": { "version": "7.1.1", @@ -58581,8 +59890,7 @@ "word-wrap": { "version": "1.2.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "wordwrap": { "version": "1.0.0", @@ -58652,7 +59960,6 @@ "version": "1.0.3", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, "requires": { "mkdirp": "^0.5.1" }, @@ -58661,7 +59968,6 @@ "version": "0.5.5", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -58715,8 +60021,7 @@ "yallist": { "version": "4.0.0", "resolved": "http://nexus.arbetsformedlingen.se/repository/npm/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yaml": { "version": "1.10.2", diff --git a/package.json b/package.json index 4fa4a80..edf2952 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "dependencies": { "@af/auth": "^11.1.0", "@af/digi-ng": "^14.0.0", + "@angular-eslint/schematics": "^1.2.0", "@angular/animations": "^11.2.0", "@angular/cdk": "^11.2.12", "@angular/common": "^11.2.0",