From 6587abaea7892108be4b18ef81042b50d193df03 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Mon, 18 Nov 2024 15:30:45 -0600 Subject: [PATCH 01/22] feat(covalent): upgrade to Angular 18 BREAKING CHANGE: Upgrade covalent to Angular 18 --- .eslintrc.json | 9 +- .prettierignore | 2 + apps/docs-app/src/app/app.module.ts | 16 +- .../shared/demo-tools/demo.module.ts | 7 +- .../src/app/content/echarts/echarts.module.ts | 7 +- .../src/lib/code-editor.component.spec.ts | 74 +- .../src/lib/dynamic-forms.component.spec.ts | 71 +- .../src/lib/guided.tour.ts | 2 +- .../src/lib/highlight.component.spec.ts | 307 +- .../src/lib/highlight.component.ts | 7 +- .../src/lib/text-editor.component.spec.ts | 55 +- .../src/breadcrumbs.component.spec.ts | 307 +- .../breadcrumbs/src/breadcrumbs.component.ts | 4 +- .../src/animations/bounce/bounce.animation.ts | 1 - .../src/animations/flash/flash.animation.ts | 2 - .../headshake/headshake.animation.ts | 2 - .../src/animations/jello/jello.animation.ts | 2 - .../src/animations/pulse/pulse.animation.ts | 2 - .../forms/auto-trim/auto-trim.directive.ts | 2 +- .../src/services/router-path.service.spec.ts | 79 +- libs/angular/dynamic-menu/ng-package.json | 3 +- .../src/dynamic-menu.component.spec.ts | 240 +- .../directives/file-drop.directive.spec.ts | 65 +- .../directives/file-select.directive.spec.ts | 91 +- .../file-input/file-input.component.spec.ts | 268 +- .../file-upload/file-upload.component.spec.ts | 428 +- .../src/file-upload/file-upload.component.ts | 4 +- .../file/src/services/file.service.spec.ts | 12 +- .../src/json-formatter.component.spec.ts | 465 +- .../src/directives/loading.directive.spec.ts | 43 +- .../src/services/loading.service.spec.ts | 52 +- .../message/src/message.component.spec.ts | 34 +- libs/angular/theming/_teradata-theme.scss | 28 +- .../prebuilt/blue-grey-deep-orange.scss | 8 +- .../angular/theming/prebuilt/blue-orange.scss | 8 +- .../angular/theming/prebuilt/indigo-pink.scss | 8 +- .../theming/prebuilt/orange-light-blue.scss | 8 +- .../angular/theming/prebuilt/teal-orange.scss | 8 +- libs/angular/user-profile/ng-package.json | 3 +- libs/components/project.json | 6 +- libs/components/src/app-shell/app-shell.scss | 2 +- .../src/status-dialog/status-dialog.ts | 3 +- libs/components/src/toolbar/toolbar.scss | 2 +- libs/components/vite.config.js | 8 +- .../email-templates/src/styles/_generated.css | 2 +- libs/email-templates/vite.config.ts | 3 - ...arkdown-navigator-window.directive.spec.ts | 116 +- .../markdown-navigator-window.service.ts | 8 +- .../src/markdown-navigator.component.spec.ts | 1495 +- libs/markdown/_markdown-theme.scss | 35 +- .../src/lib/markdown.component.spec.ts | 940 +- libs/markdown/src/lib/markdown.module.ts | 12 +- migrations.json | 209 +- nx.json | 8 +- package-lock.json | 17532 +++++++++------- package.json | 98 +- 56 files changed, 13132 insertions(+), 10081 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index bc0d179f40..8710ec9e4c 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -35,13 +35,18 @@ }, "rules": { "rxjs/no-unsafe-takeuntil": "error", - "rxjs-angular/prefer-takeuntil": "warn" + "rxjs-angular/prefer-takeuntil": "warn", + "@typescript-eslint/no-extra-semi": "error", + "no-extra-semi": "off" } }, { "files": ["*.js", "*.jsx"], "extends": ["plugin:@nx/javascript"], - "rules": {} + "rules": { + "@typescript-eslint/no-extra-semi": "error", + "no-extra-semi": "off" + } } ] } diff --git a/.prettierignore b/.prettierignore index 1d6e78b8cb..a8b4abedf8 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,3 +5,5 @@ /.nx/cache .angular + +/.nx/workspace-data \ No newline at end of file diff --git a/apps/docs-app/src/app/app.module.ts b/apps/docs-app/src/app/app.module.ts index 65149f6b09..796c58e685 100644 --- a/apps/docs-app/src/app/app.module.ts +++ b/apps/docs-app/src/app/app.module.ts @@ -1,7 +1,11 @@ import { NgModule, LOCALE_ID } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; -import { HttpClientModule, HttpClient } from '@angular/common/http'; +import { + HttpClient, + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { @@ -53,13 +57,13 @@ import { HomeComponent } from './components/home/home.component'; import { ToolbarModule } from './components/toolbar/toolbar.module'; @NgModule({ - declarations: [DocsAppComponent, HomeComponent], // directives, components, and pipes owned by this NgModule + declarations: [DocsAppComponent, HomeComponent], // additional providers needed for this module + bootstrap: [DocsAppComponent], imports: [ BrowserAnimationsModule, CommonModule, FormsModule, BrowserModule, - HttpClientModule, /** Material Modules */ MatButtonModule, MatListModule, @@ -89,7 +93,7 @@ import { ToolbarModule } from './components/toolbar/toolbar.module'; ContentContainerModule, appRoutes, CovalentFileModule, - ], // modules needed to run this module + ], providers: [ appRoutingProviders, GitHubService, @@ -101,7 +105,7 @@ import { ToolbarModule } from './components/toolbar/toolbar.module'; deps: [TranslateService], }, SelectivePreloadingStrategyService, - ], // additional providers needed for this module - bootstrap: [DocsAppComponent], + provideHttpClient(withInterceptorsFromDi()), + ], }) export class AppModule {} diff --git a/apps/docs-app/src/app/components/shared/demo-tools/demo.module.ts b/apps/docs-app/src/app/components/shared/demo-tools/demo.module.ts index f33c238fd2..ca100324e9 100644 --- a/apps/docs-app/src/app/components/shared/demo-tools/demo.module.ts +++ b/apps/docs-app/src/app/components/shared/demo-tools/demo.module.ts @@ -6,7 +6,10 @@ import { MatCardModule } from '@angular/material/card'; import { MatIconModule } from '@angular/material/icon'; import { MatButtonModule } from '@angular/material/button'; import { CovalentHighlightModule } from '@covalent/highlight'; -import { HttpClientModule } from '@angular/common/http'; +import { + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; import { MatToolbarModule } from '@angular/material/toolbar'; import { MatDividerModule } from '@angular/material/divider'; @@ -23,8 +26,8 @@ import { MatDividerModule } from '@angular/material/divider'; MatCardModule, MatIconModule, MatButtonModule, - HttpClientModule, MatDividerModule, ], + providers: [provideHttpClient(withInterceptorsFromDi())], }) export class DemoModule {} diff --git a/apps/docs-app/src/app/content/echarts/echarts.module.ts b/apps/docs-app/src/app/content/echarts/echarts.module.ts index 7f19c381f1..7bb00f8d34 100644 --- a/apps/docs-app/src/app/content/echarts/echarts.module.ts +++ b/apps/docs-app/src/app/content/echarts/echarts.module.ts @@ -1,6 +1,9 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { HttpClientModule } from '@angular/common/http'; +import { + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; import { MatIconModule } from '@angular/material/icon'; import { MatDividerModule } from '@angular/material/divider'; @@ -39,7 +42,6 @@ import { moduleRoutes } from './echarts.routes'; MatTabsModule, MatRippleModule, MatMenuModule, - HttpClientModule, MatTooltipModule, // Covalent Core CovalentLayoutModule, @@ -49,5 +51,6 @@ import { moduleRoutes } from './echarts.routes'; SidenavContentModule, ComponentOverviewModule, ], + providers: [provideHttpClient(withInterceptorsFromDi())], }) export class EchartsModule {} diff --git a/libs/angular-code-editor/src/lib/code-editor.component.spec.ts b/libs/angular-code-editor/src/lib/code-editor.component.spec.ts index 42ea653933..6b57c3512e 100644 --- a/libs/angular-code-editor/src/lib/code-editor.component.spec.ts +++ b/libs/angular-code-editor/src/lib/code-editor.component.spec.ts @@ -1,9 +1,4 @@ -import { - TestBed, - inject, - ComponentFixture, - waitForAsync, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component, ViewChild } from '@angular/core'; import { TdCodeEditorComponent } from './code-editor.component'; import { FormsModule } from '@angular/forms'; @@ -11,7 +6,7 @@ import { covalentThemeName, covalentThemeConf } from './editor.theme'; Object.defineProperty(window, 'matchMedia', { writable: true, - value: jest.fn().mockImplementation(query => ({ + value: jest.fn().mockImplementation((query) => ({ matches: false, media: query, onchange: null, @@ -86,29 +81,24 @@ const language: any = { ], }; - describe('Component: App', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ - TdCodeEditorComponent, - TestMultipleEditorsComponent, - TestEditorOptionsComponent, - TestTwoWayBindingWithValueComponent, - TestTwoWayBindingWithNgModelComponent, - ], - imports: [FormsModule], - }); - TestBed.compileComponents(); - }) - ); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ + TdCodeEditorComponent, + TestMultipleEditorsComponent, + TestEditorOptionsComponent, + TestTwoWayBindingWithValueComponent, + TestTwoWayBindingWithNgModelComponent, + ], + imports: [FormsModule], + }); + TestBed.compileComponents(); + })); it('should set the editor value and retrieve that same value from editor', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdCodeEditorComponent - ); + const fixture = TestBed.createComponent(TdCodeEditorComponent); const component: TdCodeEditorComponent = fixture.debugElement.componentInstance; fixture.changeDetectorRef.detectChanges(); @@ -131,9 +121,7 @@ describe('Component: App', () => { it('should register a custom language and custom theme and set to custom language', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdCodeEditorComponent - ); + const fixture = TestBed.createComponent(TdCodeEditorComponent); const component: TdCodeEditorComponent = fixture.debugElement.componentInstance; fixture.changeDetectorRef.detectChanges(); @@ -158,9 +146,7 @@ describe('Component: App', () => { it('should remove style tags on destroy', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdCodeEditorComponent - ); + const fixture = TestBed.createComponent(TdCodeEditorComponent); const component: TdCodeEditorComponent = fixture.debugElement.componentInstance; @@ -190,9 +176,7 @@ describe('Component: App', () => { it('should set the editor style', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdCodeEditorComponent - ); + const fixture = TestBed.createComponent(TdCodeEditorComponent); const component: TdCodeEditorComponent = fixture.debugElement.componentInstance; fixture.changeDetectorRef.detectChanges(); @@ -218,9 +202,7 @@ describe('Component: App', () => { it('should set the editor options and retrieve them', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TestEditorOptionsComponent - ); + const fixture = TestBed.createComponent(TestEditorOptionsComponent); const component: TestEditorOptionsComponent = fixture.debugElement.componentInstance; fixture.changeDetectorRef.detectChanges(); @@ -236,9 +218,7 @@ describe('Component: App', () => { it('should show multiple editors and set the editors values and retrieve that same values from editors', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TestMultipleEditorsComponent - ); + const fixture = TestBed.createComponent(TestMultipleEditorsComponent); const component: TestMultipleEditorsComponent = fixture.debugElement.componentInstance; fixture.changeDetectorRef.detectChanges(); @@ -279,9 +259,7 @@ describe('Component: App', () => { xit('should show editor in fullscreen mode and then unset fullscreen mode', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdCodeEditorComponent - ); + const fixture = TestBed.createComponent(TdCodeEditorComponent); const component: TdCodeEditorComponent = fixture.debugElement.componentInstance; fixture.changeDetectorRef.detectChanges(); @@ -309,9 +287,7 @@ describe('Component: App', () => { it('should expose editor instance on editorInitialized event', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdCodeEditorComponent - ); + const fixture = TestBed.createComponent(TdCodeEditorComponent); const component: TdCodeEditorComponent = fixture.debugElement.componentInstance; fixture.changeDetectorRef.detectChanges(); @@ -331,7 +307,7 @@ describe('Component: App', () => { it('should work with 2 way binding via value', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( + const fixture = TestBed.createComponent( TestTwoWayBindingWithValueComponent ); const component: TestTwoWayBindingWithValueComponent = @@ -360,7 +336,7 @@ describe('Component: App', () => { it('should work with 2 way binding via ngModel', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( + const fixture = TestBed.createComponent( TestTwoWayBindingWithNgModelComponent ); const component: TestTwoWayBindingWithNgModelComponent = diff --git a/libs/angular-dynamic-forms/src/lib/dynamic-forms.component.spec.ts b/libs/angular-dynamic-forms/src/lib/dynamic-forms.component.spec.ts index 120fd35d5e..d80ef8ed74 100644 --- a/libs/angular-dynamic-forms/src/lib/dynamic-forms.component.spec.ts +++ b/libs/angular-dynamic-forms/src/lib/dynamic-forms.component.spec.ts @@ -1,9 +1,4 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component, NgModule, DebugElement } from '@angular/core'; import { MatNativeDateModule } from '@angular/material/core'; import { @@ -39,9 +34,7 @@ describe('Component: TdDynamicForms', () => { it('should create the component', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -52,9 +45,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -109,9 +100,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form invalid because an input is required', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -152,9 +141,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form invalid because a number is less than min', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -196,9 +183,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form valid', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -248,9 +233,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form invalid because character length is less than minLength', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -287,9 +270,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form invalid because character length is more than maxLength', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -326,9 +307,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form valid', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -366,9 +345,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form invalid with custom validation', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -412,9 +389,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form invalid with Angular validation', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -455,9 +430,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements and show form valid with custom validations', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -512,9 +485,7 @@ describe('Component: TdDynamicForms', () => { it('should render errors with manual validations', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -558,9 +529,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic elements with one element disabled', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -603,9 +572,7 @@ describe('Component: TdDynamicForms', () => { it('should render disabled file input', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -637,9 +604,7 @@ describe('Component: TdDynamicForms', () => { it('should render dynamic custom element', waitForAsync( inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; @@ -679,9 +644,7 @@ describe('Component: TdDynamicForms', () => { it(`should render the placeholder for input fields`, waitForAsync( inject([], async () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicFormsTestComponent - ); + const fixture = TestBed.createComponent(TdDynamicFormsTestComponent); const component: TdDynamicFormsTestComponent = fixture.debugElement.componentInstance; diff --git a/libs/angular-guided-tour/src/lib/guided.tour.ts b/libs/angular-guided-tour/src/lib/guided.tour.ts index 4080bc2ea2..a864c431d5 100644 --- a/libs/angular-guided-tour/src/lib/guided.tour.ts +++ b/libs/angular-guided-tour/src/lib/guided.tour.ts @@ -323,7 +323,7 @@ export class CovalentGuidedTour extends TourButtonsActions { } const advanceArr$: Subject[] = []; - advanceOn.forEach((_: any, i: number) => { + advanceOn.forEach((_: any) => { const advanceEvent$: Subject = new Subject(); advanceArr$.push(advanceEvent$); diff --git a/libs/angular-highlight/src/lib/highlight.component.spec.ts b/libs/angular-highlight/src/lib/highlight.component.spec.ts index fe6cf96977..fd3678aefc 100644 --- a/libs/angular-highlight/src/lib/highlight.component.spec.ts +++ b/libs/angular-highlight/src/lib/highlight.component.spec.ts @@ -1,234 +1,197 @@ -import { - TestBed, - waitForAsync, - ComponentFixture, - fakeAsync, -} from '@angular/core/testing'; +import { TestBed, waitForAsync, fakeAsync } from '@angular/core/testing'; import { Component } from '@angular/core'; import { By } from '@angular/platform-browser'; import { CovalentHighlightModule } from './highlight.module'; describe('Component: Highlight', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [CovalentHighlightModule], - declarations: [ - TdHighlightEmptyStaticTestRenderingComponent, - TdHighlightStaticHtmlTestRenderingComponent, - TdHighlightDynamicCssTestRenderingComponent, - TdHighlightUndefinedLangTestRenderingComponent, + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [CovalentHighlightModule], + declarations: [ + TdHighlightEmptyStaticTestRenderingComponent, + TdHighlightStaticHtmlTestRenderingComponent, + TdHighlightDynamicCssTestRenderingComponent, + TdHighlightUndefinedLangTestRenderingComponent, - TdHighlightEmptyStaticTestEventsComponent, - TdHighlightStaticHtmlTestEventsComponent, - TdHighlightDynamicCssTestEventsComponent, - TdHighlightUndefinedLangTestEventsComponent, - ], - }); - TestBed.compileComponents(); - }) - ); + TdHighlightEmptyStaticTestEventsComponent, + TdHighlightStaticHtmlTestEventsComponent, + TdHighlightDynamicCssTestEventsComponent, + TdHighlightUndefinedLangTestEventsComponent, + ], + }); + TestBed.compileComponents(); + })); describe('Rendering: ', () => { - it( - 'should render empty', - waitForAsync(() => { - fakeAsync(() => { - const fixture: ComponentFixture = TestBed.createComponent( - TdHighlightEmptyStaticTestRenderingComponent - ); - const element: HTMLElement = fixture.nativeElement; - - expect( - fixture.debugElement - .query(By.css('td-highlight')) - .nativeElement.textContent.trim() - ).toBe(``); - expect(element.querySelector('td-highlight pre code')).toBeFalsy(); - fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(element.querySelector('td-highlight pre code')).toBeFalsy(); - expect( - fixture.debugElement - .query(By.css('td-highlight > div > div')) - .nativeElement.textContent.trim() - ).toBe(''); - }); - }); - }) - ); - - it( - 'should render code from static content', - waitForAsync(() => { - const fixture: ComponentFixture = TestBed.createComponent( - TdHighlightStaticHtmlTestRenderingComponent + it('should render empty', waitForAsync(() => { + fakeAsync(() => { + const fixture = TestBed.createComponent( + TdHighlightEmptyStaticTestRenderingComponent ); const element: HTMLElement = fixture.nativeElement; + expect( + fixture.debugElement + .query(By.css('td-highlight')) + .nativeElement.textContent.trim() + ).toBe(``); expect(element.querySelector('td-highlight pre code')).toBeFalsy(); fixture.detectChanges(); fixture.whenStable().then(() => { fixture.detectChanges(); + expect(element.querySelector('td-highlight pre code')).toBeFalsy(); expect( fixture.debugElement - .query(By.css('td-highlight')) + .query(By.css('td-highlight > div > div')) .nativeElement.textContent.trim() - ).toContain(`{{property}}`.trim()); - expect(element.querySelector('td-highlight pre code')).toBeTruthy(); - expect( - element.querySelector('td-highlight pre code')?.textContent?.trim() - ).toContain(`{{property}}`); - expect(element.querySelectorAll('.hljs-tag').length).toBe(6); + ).toBe(''); }); - }) - ); + }); + })); - it( - 'should render code from dynamic content', - waitForAsync(() => { - const fixture: ComponentFixture = TestBed.createComponent( - TdHighlightDynamicCssTestRenderingComponent - ); - const component: TdHighlightDynamicCssTestRenderingComponent = - fixture.debugElement.componentInstance; - component.content = ` + it('should render code from static content', waitForAsync(() => { + const fixture = TestBed.createComponent( + TdHighlightStaticHtmlTestRenderingComponent + ); + const element: HTMLElement = fixture.nativeElement; + + expect(element.querySelector('td-highlight pre code')).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect( + fixture.debugElement + .query(By.css('td-highlight')) + .nativeElement.textContent.trim() + ).toContain(`{{property}}`.trim()); + expect(element.querySelector('td-highlight pre code')).toBeTruthy(); + expect( + element.querySelector('td-highlight pre code')?.textContent?.trim() + ).toContain(`{{property}}`); + expect(element.querySelectorAll('.hljs-tag').length).toBe(6); + }); + })); + + it('should render code from dynamic content', waitForAsync(() => { + const fixture = TestBed.createComponent( + TdHighlightDynamicCssTestRenderingComponent + ); + const component: TdHighlightDynamicCssTestRenderingComponent = + fixture.debugElement.componentInstance; + component.content = ` pre { background: #002451; border-radius: 2px; }`; - const element: HTMLElement = fixture.nativeElement; + const element: HTMLElement = fixture.nativeElement; - expect( - fixture.debugElement - .query(By.css('td-highlight > div > div')) - .nativeElement.textContent.trim() - ).toBe(''); - expect(element.querySelector('td-highlight pre code')).toBeFalsy(); + expect( + fixture.debugElement + .query(By.css('td-highlight > div > div')) + .nativeElement.textContent.trim() + ).toBe(''); + expect(element.querySelector('td-highlight pre code')).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(element.querySelector('td-highlight pre code')).toBeTruthy(); - expect(element.querySelectorAll('.hljs-number').length).toBe(2); - }); - }) - ); + expect(element.querySelector('td-highlight pre code')).toBeTruthy(); + expect(element.querySelectorAll('.hljs-number').length).toBe(2); + }); + })); - it( - 'should throw error for undefined language', - waitForAsync(() => { - const fixture: ComponentFixture = TestBed.createComponent( - TdHighlightUndefinedLangTestRenderingComponent - ); - expect(function (): void { - fixture.detectChanges(); - }).toThrowError(); - }) - ); + it('should throw error for undefined language', waitForAsync(() => { + const fixture = TestBed.createComponent( + TdHighlightUndefinedLangTestRenderingComponent + ); + expect(function (): void { + fixture.detectChanges(); + }).toThrowError(); + })); }); describe('Event bindings: ', () => { describe('contentReady event: ', () => { - it( - 'should be fired only once after display renders empty static content', - waitForAsync(() => { - const fixture: ComponentFixture = TestBed.createComponent( - TdHighlightEmptyStaticTestEventsComponent - ); - const component: TdHighlightEmptyStaticTestEventsComponent = - fixture.debugElement.componentInstance; - jest.spyOn(component, 'tdHighlightContentIsReady'); + it('should be fired only once after display renders empty static content', waitForAsync(() => { + const fixture = TestBed.createComponent( + TdHighlightEmptyStaticTestEventsComponent + ); + const component: TdHighlightEmptyStaticTestEventsComponent = + fixture.debugElement.componentInstance; + jest.spyOn(component, 'tdHighlightContentIsReady'); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(component.tdHighlightContentIsReady).toHaveBeenCalledTimes( - 1 - ); - }); - }) - ); + expect(component.tdHighlightContentIsReady).toHaveBeenCalledTimes(1); + }); + })); - it( - 'should be fired only once after display renders highlight from static html', - waitForAsync(() => { - const fixture: ComponentFixture = TestBed.createComponent( - TdHighlightStaticHtmlTestEventsComponent - ); - const component: TdHighlightStaticHtmlTestEventsComponent = - fixture.debugElement.componentInstance; - jest.spyOn(component, 'tdHighlightContentIsReady'); + it('should be fired only once after display renders highlight from static html', waitForAsync(() => { + const fixture = TestBed.createComponent( + TdHighlightStaticHtmlTestEventsComponent + ); + const component: TdHighlightStaticHtmlTestEventsComponent = + fixture.debugElement.componentInstance; + jest.spyOn(component, 'tdHighlightContentIsReady'); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(component.tdHighlightContentIsReady).toHaveBeenCalledTimes( - 1 - ); - }); - }) - ); + expect(component.tdHighlightContentIsReady).toHaveBeenCalledTimes(1); + }); + })); - it( - 'should be fired only once after display renders inital highlight from dynamic css content', - waitForAsync(() => { - const fixture: ComponentFixture = TestBed.createComponent( - TdHighlightDynamicCssTestEventsComponent - ); - const component: TdHighlightDynamicCssTestEventsComponent = - fixture.debugElement.componentInstance; - jest.spyOn(component, 'tdHighlightContentIsReady'); + it('should be fired only once after display renders inital highlight from dynamic css content', waitForAsync(() => { + const fixture = TestBed.createComponent( + TdHighlightDynamicCssTestEventsComponent + ); + const component: TdHighlightDynamicCssTestEventsComponent = + fixture.debugElement.componentInstance; + jest.spyOn(component, 'tdHighlightContentIsReady'); - // Inital dynamic css content - component.content = ` + // Inital dynamic css content + component.content = ` pre { background: #002451; border-radius: 2px; }`; + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(component.tdHighlightContentIsReady).toHaveBeenCalledTimes( - 1 - ); - }); - }) - ); + expect(component.tdHighlightContentIsReady).toHaveBeenCalledTimes(1); + }); + })); - it( - 'should be fired twice after changing the inital rendered highlight dynamic css content', - waitForAsync(() => { - const fixture: ComponentFixture = TestBed.createComponent( - TdHighlightDynamicCssTestEventsComponent - ); - const component: TdHighlightDynamicCssTestEventsComponent = - fixture.debugElement.componentInstance; - jest.spyOn(component, 'tdHighlightContentIsReady'); + it('should be fired twice after changing the inital rendered highlight dynamic css content', waitForAsync(() => { + const fixture = TestBed.createComponent( + TdHighlightDynamicCssTestEventsComponent + ); + const component: TdHighlightDynamicCssTestEventsComponent = + fixture.debugElement.componentInstance; + jest.spyOn(component, 'tdHighlightContentIsReady'); - component.content = ` + component.content = ` pre { background: #002451; border-radius: 2px; }`; - fixture.detectChanges(); + fixture.detectChanges(); - component.content = ` + component.content = ` pre { color: red; background: #000000; border-radius: 1em; }`; + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(component.tdHighlightContentIsReady).toBeCalledTimes(2); - }); - }) - ); + expect(component.tdHighlightContentIsReady).toBeCalledTimes(2); + }); + })); }); }); }); diff --git a/libs/angular-highlight/src/lib/highlight.component.ts b/libs/angular-highlight/src/lib/highlight.component.ts index c343b33b82..126f39cc7b 100644 --- a/libs/angular-highlight/src/lib/highlight.component.ts +++ b/libs/angular-highlight/src/lib/highlight.component.ts @@ -18,7 +18,7 @@ import { IRawToggleLabels, } from './copy-code-button/copy-code-button.component'; -import hljs from 'highlight.js'; +import hljs, { HighlightResult } from 'highlight.js'; @Component({ selector: 'td-highlight', @@ -237,7 +237,10 @@ export class TdHighlightComponent implements AfterViewInit, AfterViewChecked { .replace(/>/gi, '>'); // replace with < and > to render HTML in Angular this.copyContent = codeToParse; // Parse code with highlight.js depending on language - const highlightedCode: any = hljs.highlight(this._lang, codeToParse, true); + const highlightedCode: HighlightResult = hljs.highlight(codeToParse, { + language: this._lang, + ignoreIllegals: true, + }); highlightedCode.value = highlightedCode.value .replace(/=""<\/span>/gi, '') .replace('', '') diff --git a/libs/angular-text-editor/src/lib/text-editor.component.spec.ts b/libs/angular-text-editor/src/lib/text-editor.component.spec.ts index 58830d6bf8..014fdea369 100644 --- a/libs/angular-text-editor/src/lib/text-editor.component.spec.ts +++ b/libs/angular-text-editor/src/lib/text-editor.component.spec.ts @@ -1,33 +1,24 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component, ViewChild } from '@angular/core'; import { TdTextEditorComponent } from './text-editor.component'; describe('Component: TextEditor', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ - TdTextEditorComponent, - TestTextEditorComponent, - TestTextEditorResetComponent, - TestTextEditorOptionsComponent, - ], - imports: [], - }); - TestBed.compileComponents(); - }) - ); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ + TdTextEditorComponent, + TestTextEditorComponent, + TestTextEditorResetComponent, + TestTextEditorOptionsComponent, + ], + imports: [], + }); + TestBed.compileComponents(); + })); it('should initialize the markdown editor and set value and test ngModel', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TestTextEditorComponent - ); + const fixture = TestBed.createComponent(TestTextEditorComponent); const component: TestTextEditorComponent = fixture.debugElement.componentInstance; fixture.detectChanges(); @@ -46,9 +37,7 @@ describe('Component: TextEditor', () => { it('should initialize the markdown editor with no toolbar options', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TestTextEditorOptionsComponent - ); + const fixture = TestBed.createComponent(TestTextEditorOptionsComponent); fixture.detectChanges(); fixture.whenStable().then(() => { fixture.detectChanges(); @@ -63,9 +52,7 @@ describe('Component: TextEditor', () => { it('should test isPreviewActive', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TestTextEditorOptionsComponent - ); + const fixture = TestBed.createComponent(TestTextEditorOptionsComponent); const component: TestTextEditorOptionsComponent = fixture.debugElement.componentInstance; fixture.detectChanges(); @@ -81,9 +68,7 @@ describe('Component: TextEditor', () => { it('should test isSideBySideActive', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TestTextEditorOptionsComponent - ); + const fixture = TestBed.createComponent(TestTextEditorOptionsComponent); const component: TestTextEditorOptionsComponent = fixture.debugElement.componentInstance; fixture.detectChanges(); @@ -99,9 +84,7 @@ describe('Component: TextEditor', () => { it('should test isFullscreenActive', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TestTextEditorOptionsComponent - ); + const fixture = TestBed.createComponent(TestTextEditorOptionsComponent); const component: TestTextEditorOptionsComponent = fixture.debugElement.componentInstance; fixture.detectChanges(); @@ -146,7 +129,7 @@ class TestTextEditorResetComponent { `, }) class TestTextEditorOptionsComponent { - opts: any = { + opts: { toolbar: boolean } = { toolbar: false, }; @ViewChild('editor1', { static: true }) editor1!: TdTextEditorComponent; diff --git a/libs/angular/breadcrumbs/src/breadcrumbs.component.spec.ts b/libs/angular/breadcrumbs/src/breadcrumbs.component.spec.ts index daabba8ecb..e48db4f3de 100644 --- a/libs/angular/breadcrumbs/src/breadcrumbs.component.spec.ts +++ b/libs/angular/breadcrumbs/src/breadcrumbs.component.spec.ts @@ -16,7 +16,7 @@ import { TdBreadcrumbsComponent } from './breadcrumbs.component'; const resizeEvent = document.createEvent('Event'); resizeEvent.initEvent('resize', true, true); -global.window.resizeTo = (width, height) => { +global.window.resizeTo = (width) => { global.window.innerWidth = width || global.window.innerWidth; global.window.innerHeight = width || global.window.innerHeight; global.window.dispatchEvent(resizeEvent); @@ -38,197 +38,174 @@ const sampleBreadcrumb: IBreadcrumbItem = { route: 'test', text: 'test' }; export class FakeComponent {} describe('Component: Breadcrumbs', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ - TdBreadcrumbsTestComponent, - TdBreadcrumbsToolbarTestComponent, - TdBreadcrumbsSizeIconChangeTestComponent, - FakeComponent, - ], - imports: [ - NoopAnimationsModule, - MatToolbarModule, - RouterTestingModule.withRoutes([ - { path: '', component: FakeComponent }, - { path: 'layouts', component: FakeComponent }, - { path: 'layouts2', component: FakeComponent }, - { path: 'layouts3', component: FakeComponent }, - ]), - CovalentBreadcrumbsModule, - ], + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ + TdBreadcrumbsTestComponent, + TdBreadcrumbsToolbarTestComponent, + TdBreadcrumbsSizeIconChangeTestComponent, + FakeComponent, + ], + imports: [ + NoopAnimationsModule, + MatToolbarModule, + RouterTestingModule.withRoutes([ + { path: '', component: FakeComponent }, + { path: 'layouts', component: FakeComponent }, + { path: 'layouts2', component: FakeComponent }, + { path: 'layouts3', component: FakeComponent }, + ]), + CovalentBreadcrumbsModule, + ], + }); + TestBed.compileComponents(); + })); + + it('should render 5 Breadcrumbs', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdBreadcrumbsTestComponent); + fixture.detectChanges(); + fixture.whenStable().then(() => { + const breadcrumbs: TdBreadcrumbsComponent = fixture.debugElement.query( + By.directive(TdBreadcrumbsComponent) + ).componentInstance; + expect(breadcrumbs.count).toBe(5); + }); + }) + )); + + it('should change the separatorIcon', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdBreadcrumbsTestComponent); + const component: TdBreadcrumbsTestComponent = + fixture.debugElement.componentInstance; + component.separatorIcon = 'flight_land'; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement + .queryAll(By.css('.td-breadcrumb'))[1] + .nativeElement.innerHTML.indexOf('flight_land') + ).toBeGreaterThan(-1); }); - TestBed.compileComponents(); }) - ); + )); - it( - 'should render 5 Breadcrumbs', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdBreadcrumbsTestComponent - ); + //TODO find a better way to test breadcrumb resizing + xit('should resize window and hide breadcrumbs', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdBreadcrumbsTestComponent); + fixture.detectChanges(); + fixture.whenStable().then(() => { + document.body.style.width = '300px'; + window.dispatchEvent(new Event('resize')); fixture.detectChanges(); fixture.whenStable().then(() => { const breadcrumbs: TdBreadcrumbsComponent = fixture.debugElement.query( By.directive(TdBreadcrumbsComponent) ).componentInstance; - expect(breadcrumbs.count).toBe(5); - }); - }) - ) - ); - - it( - 'should change the separatorIcon', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdBreadcrumbsTestComponent - ); - const component: TdBreadcrumbsTestComponent = - fixture.debugElement.componentInstance; - component.separatorIcon = 'flight_land'; - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - fixture.debugElement - .queryAll(By.css('.td-breadcrumb'))[1] - .nativeElement.innerHTML.indexOf('flight_land') - ).toBeGreaterThan(-1); - }); - }) - ) - ); - - //TODO find a better way to test breadcrumb resizing - xit( - 'should resize window and hide breadcrumbs', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdBreadcrumbsTestComponent - ); - fixture.detectChanges(); - fixture.whenStable().then(() => { - document.body.style.width = '300px'; - window.dispatchEvent(new Event('resize')); - fixture.detectChanges(); - fixture.whenStable().then(() => { - const breadcrumbs: TdBreadcrumbsComponent = - fixture.debugElement.query( - By.directive(TdBreadcrumbsComponent) - ).componentInstance; - expect(breadcrumbs.hiddenBreadcrumbs.length).toBe(2); - }); + expect(breadcrumbs.hiddenBreadcrumbs.length).toBe(2); }); - }) - ) - ); + }); + }) + )); // TODO find a better way to test breadcrumb resizing - xit( - 'should resize window and hide breadcrumbs with breadcrumb in mat-toolbar with padding', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdBreadcrumbsToolbarTestComponent - ); + xit('should resize window and hide breadcrumbs with breadcrumb in mat-toolbar with padding', waitForAsync( + inject([], () => { + const fixture: ComponentFixture = TestBed.createComponent( + TdBreadcrumbsToolbarTestComponent + ); - // Trigger the window resize event. - window.dispatchEvent(new Event('resize')); + // Trigger the window resize event. + window.dispatchEvent(new Event('resize')); + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.componentInstance.nativeElementWidth = 300; + + fixture.detectChanges(); fixture.detectChanges(); + fixture.componentInstance.nativeElementWidth = 300; fixture.whenStable().then(() => { - fixture.componentInstance.nativeElementWidth = 300; - - fixture.detectChanges(); - fixture.detectChanges(); - fixture.componentInstance.nativeElementWidth = 300; - fixture.whenStable().then(() => { - const breadcrumbs: TdBreadcrumbsComponent = - fixture.debugElement.query( - By.directive(TdBreadcrumbsComponent) - ).componentInstance; + const breadcrumbs: TdBreadcrumbsComponent = + fixture.debugElement.query( + By.directive(TdBreadcrumbsComponent) + ).componentInstance; - expect(breadcrumbs.hiddenBreadcrumbs.length).toBe(3); - }); + expect(breadcrumbs.hiddenBreadcrumbs.length).toBe(3); }); - }) - ) - ); + }); + }) + )); - it( - 'should react to change of breadcrumbs size & separator icon', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdBreadcrumbsSizeIconChangeTestComponent); + it('should react to change of breadcrumbs size & separator icon', waitForAsync( + inject([], async () => { + const fixture = TestBed.createComponent( + TdBreadcrumbsSizeIconChangeTestComponent + ); - fixture.detectChanges(); - await fixture.whenStable(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - let breadcrumbs: DebugElement = fixture.debugElement.query( - By.directive(TdBreadcrumbsComponent) - ); - expect(breadcrumbs.children.length).toBe(1); - expect(breadcrumbs.children[0].query(By.css('mat-icon'))).toBeFalsy(); - const component: TdBreadcrumbsSizeIconChangeTestComponent = - fixture.debugElement.componentInstance; - component.breadcrumbItems = [ - ...component.breadcrumbItems, - sampleBreadcrumb, - ]; + let breadcrumbs: DebugElement = fixture.debugElement.query( + By.directive(TdBreadcrumbsComponent) + ); + expect(breadcrumbs.children.length).toBe(1); + expect(breadcrumbs.children[0].query(By.css('mat-icon'))).toBeFalsy(); + const component: TdBreadcrumbsSizeIconChangeTestComponent = + fixture.debugElement.componentInstance; + component.breadcrumbItems = [ + ...component.breadcrumbItems, + sampleBreadcrumb, + ]; - fixture.detectChanges(); - await fixture.whenStable(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - breadcrumbs = fixture.debugElement.query( - By.directive(TdBreadcrumbsComponent) - ); - expect(breadcrumbs.children.length).toBe(2); - expect(breadcrumbs.children[0].query(By.css('mat-icon'))).toBeTruthy(); - expect( - breadcrumbs.children[0].query(By.css('mat-icon')).nativeElement - .textContent - ).toContain('chevron_right'); - expect(breadcrumbs.children[1].query(By.css('mat-icon'))).toBeFalsy(); - component.separatorIcon = 'motorcycle'; + breadcrumbs = fixture.debugElement.query( + By.directive(TdBreadcrumbsComponent) + ); + expect(breadcrumbs.children.length).toBe(2); + expect(breadcrumbs.children[0].query(By.css('mat-icon'))).toBeTruthy(); + expect( + breadcrumbs.children[0].query(By.css('mat-icon')).nativeElement + .textContent + ).toContain('chevron_right'); + expect(breadcrumbs.children[1].query(By.css('mat-icon'))).toBeFalsy(); + component.separatorIcon = 'motorcycle'; - fixture.detectChanges(); - await fixture.whenStable(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - breadcrumbs = fixture.debugElement.query( - By.directive(TdBreadcrumbsComponent) - ); - expect(breadcrumbs.children.length).toBe(2); - expect(breadcrumbs.children[0].query(By.css('mat-icon'))).toBeTruthy(); - expect( - breadcrumbs.children[0].query(By.css('mat-icon')).nativeElement - .textContent - ).toContain('motorcycle'); - expect(breadcrumbs.children[1].query(By.css('mat-icon'))).toBeFalsy(); + breadcrumbs = fixture.debugElement.query( + By.directive(TdBreadcrumbsComponent) + ); + expect(breadcrumbs.children.length).toBe(2); + expect(breadcrumbs.children[0].query(By.css('mat-icon'))).toBeTruthy(); + expect( + breadcrumbs.children[0].query(By.css('mat-icon')).nativeElement + .textContent + ).toContain('motorcycle'); + expect(breadcrumbs.children[1].query(By.css('mat-icon'))).toBeFalsy(); - component.breadcrumbItems = [sampleBreadcrumb]; + component.breadcrumbItems = [sampleBreadcrumb]; - fixture.detectChanges(); - await fixture.whenStable(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - expect(breadcrumbs.children.length).toBe(1); - expect(breadcrumbs.children[0].query(By.css('mat-icon'))).toBeFalsy(); - }) - ) - ); + expect(breadcrumbs.children.length).toBe(1); + expect(breadcrumbs.children[0].query(By.css('mat-icon'))).toBeFalsy(); + }) + )); }); @Component({ diff --git a/libs/angular/breadcrumbs/src/breadcrumbs.component.ts b/libs/angular/breadcrumbs/src/breadcrumbs.component.ts index eee45e66c9..a2d132206d 100644 --- a/libs/angular/breadcrumbs/src/breadcrumbs.component.ts +++ b/libs/angular/breadcrumbs/src/breadcrumbs.component.ts @@ -75,10 +75,8 @@ export class TdBreadcrumbsComponent } ngAfterContentInit(): void { - // Note: doesn't need to unsubscribe since `QueryList.changes` - // gets completed by Angular when the view is destroyed. this._breadcrumbs.changes - .pipe(startWith(this._breadcrumbs)) + .pipe(startWith(this._breadcrumbs), takeUntil(this._destroy$)) .subscribe(() => { this._waitToCalculateVisibility(); this.setCrumbIcons(); diff --git a/libs/angular/common/src/animations/bounce/bounce.animation.ts b/libs/angular/common/src/animations/bounce/bounce.animation.ts index f34a668c92..708a8d3f89 100644 --- a/libs/angular/common/src/animations/bounce/bounce.animation.ts +++ b/libs/angular/common/src/animations/bounce/bounce.animation.ts @@ -10,7 +10,6 @@ import { animateChild, group, } from '@angular/animations'; -import { IAnimationOptions } from '../common/interfaces'; /** * const tdBounceAnimation diff --git a/libs/angular/common/src/animations/flash/flash.animation.ts b/libs/angular/common/src/animations/flash/flash.animation.ts index f5c8e33831..5914a5d4d4 100644 --- a/libs/angular/common/src/animations/flash/flash.animation.ts +++ b/libs/angular/common/src/animations/flash/flash.animation.ts @@ -6,12 +6,10 @@ import { transition, animate, AnimationTriggerMetadata, - AUTO_STYLE, query, animateChild, group, } from '@angular/animations'; -import { IAnimationOptions } from '../common/interfaces'; /** * const tdFlashAnimation diff --git a/libs/angular/common/src/animations/headshake/headshake.animation.ts b/libs/angular/common/src/animations/headshake/headshake.animation.ts index fa398e249b..f9032b0861 100644 --- a/libs/angular/common/src/animations/headshake/headshake.animation.ts +++ b/libs/angular/common/src/animations/headshake/headshake.animation.ts @@ -6,12 +6,10 @@ import { transition, animate, AnimationTriggerMetadata, - AUTO_STYLE, query, animateChild, group, } from '@angular/animations'; -import { IAnimationOptions } from '../common/interfaces'; /** * const tdHeadshakeAnimation diff --git a/libs/angular/common/src/animations/jello/jello.animation.ts b/libs/angular/common/src/animations/jello/jello.animation.ts index 9466b4446d..940091142e 100644 --- a/libs/angular/common/src/animations/jello/jello.animation.ts +++ b/libs/angular/common/src/animations/jello/jello.animation.ts @@ -6,12 +6,10 @@ import { transition, animate, AnimationTriggerMetadata, - AUTO_STYLE, query, animateChild, group, } from '@angular/animations'; -import { IAnimationOptions } from '../common/interfaces'; /** * const tdJelloAnimation diff --git a/libs/angular/common/src/animations/pulse/pulse.animation.ts b/libs/angular/common/src/animations/pulse/pulse.animation.ts index a89521875b..09d4bc98dd 100644 --- a/libs/angular/common/src/animations/pulse/pulse.animation.ts +++ b/libs/angular/common/src/animations/pulse/pulse.animation.ts @@ -6,12 +6,10 @@ import { transition, animate, AnimationTriggerMetadata, - AUTO_STYLE, query, animateChild, group, } from '@angular/animations'; -import { IAnimationOptions } from '../common/interfaces'; /** * const tdPulseAnimation diff --git a/libs/angular/common/src/forms/auto-trim/auto-trim.directive.ts b/libs/angular/common/src/forms/auto-trim/auto-trim.directive.ts index de2202e5e3..6f666bc548 100644 --- a/libs/angular/common/src/forms/auto-trim/auto-trim.directive.ts +++ b/libs/angular/common/src/forms/auto-trim/auto-trim.directive.ts @@ -12,7 +12,7 @@ export class TdAutoTrimDirective { * Listens to host's (blur) event and trims value. */ @HostListener('blur', ['$event']) - onBlur(event: Event): void { + onBlur(): void { if ( this._model && this._model.value && diff --git a/libs/angular/common/src/services/router-path.service.spec.ts b/libs/angular/common/src/services/router-path.service.spec.ts index c6c346175d..e3ccb50bd7 100644 --- a/libs/angular/common/src/services/router-path.service.spec.ts +++ b/libs/angular/common/src/services/router-path.service.spec.ts @@ -1,11 +1,6 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component } from '@angular/core'; -import { Router, Routes, RoutesRecognized } from '@angular/router'; +import { Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { RouterPathService } from './router-path.service'; @@ -19,49 +14,43 @@ import { RouterPathService } from './router-path.service'; export class FakeComponent {} describe('Service: RouterPath', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ - RouterTestingModule.withRoutes([ - { path: '', component: FakeComponent }, - { path: 'foo', component: FakeComponent }, - ]), - ], - declarations: [FakeComponent], - providers: [RouterPathService], - }); - TestBed.compileComponents(); - }) - ); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [ + RouterTestingModule.withRoutes([ + { path: '', component: FakeComponent }, + { path: 'foo', component: FakeComponent }, + ]), + ], + declarations: [FakeComponent], + providers: [RouterPathService], + }); + TestBed.compileComponents(); + })); - it( - 'route to new path and check that getPreviousRoute was set correctly', - waitForAsync( - inject( - [Router, RouterPathService], - (router: Router, routerPathService: RouterPathService) => { - const fixture: ComponentFixture = - TestBed.createComponent(FakeComponent); + it('route to new path and check that getPreviousRoute was set correctly', waitForAsync( + inject( + [Router, RouterPathService], + (router: Router, routerPathService: RouterPathService) => { + const fixture = TestBed.createComponent(FakeComponent); - // navigate to /foo then navigate to / - // which will set previous route to /foo - router.navigate(['/foo']); + // navigate to /foo then navigate to / + // which will set previous route to /foo + router.navigate(['/foo']); + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.detectChanges(); + router.navigate(['/']); fixture.detectChanges(); fixture.whenStable().then(() => { - fixture.detectChanges(); - router.navigate(['/']); - fixture.detectChanges(); - fixture.whenStable().then(() => { - // have to use setTimeout so this gets pushed on end of stack - // and event doesn't happen before - setTimeout(() => { - expect(routerPathService.getPreviousRoute()).toBe('/foo'); - }); + // have to use setTimeout so this gets pushed on end of stack + // and event doesn't happen before + setTimeout(() => { + expect(routerPathService.getPreviousRoute()).toBe('/foo'); }); }); - } - ) + }); + } ) - ); + )); }); diff --git a/libs/angular/dynamic-menu/ng-package.json b/libs/angular/dynamic-menu/ng-package.json index 9946303a2a..df823bb29a 100644 --- a/libs/angular/dynamic-menu/ng-package.json +++ b/libs/angular/dynamic-menu/ng-package.json @@ -1,4 +1,3 @@ { - "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json", - "assets": ["./src/*.theme.scss"] + "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json" } diff --git a/libs/angular/dynamic-menu/src/dynamic-menu.component.spec.ts b/libs/angular/dynamic-menu/src/dynamic-menu.component.spec.ts index b4dc5a7d9b..0803a3ed57 100644 --- a/libs/angular/dynamic-menu/src/dynamic-menu.component.spec.ts +++ b/libs/angular/dynamic-menu/src/dynamic-menu.component.spec.ts @@ -1,141 +1,135 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component } from '@angular/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { CovalentDynamicMenuModule } from './dynamic-menu.module'; import { IMenuTrigger, IMenuItem } from './dynamic-menu.menu'; import { By, DomSanitizer } from '@angular/platform-browser'; import { MatIconRegistry } from '@angular/material/icon'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { provideHttpClientTesting } from '@angular/common/http/testing'; +import { + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; describe('Component: DynamicMenu', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [TdDynamicMenuBasicTestComponent], - imports: [ - NoopAnimationsModule, - CovalentDynamicMenuModule, - HttpClientTestingModule, - ], - }); - TestBed.compileComponents(); - }) - ); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TdDynamicMenuBasicTestComponent], + imports: [NoopAnimationsModule, CovalentDynamicMenuModule], + providers: [ + provideHttpClient(withInterceptorsFromDi()), + provideHttpClientTesting(), + ], + }); + TestBed.compileComponents(); + })); - it( - 'should show menu and submenu appropriately', - waitForAsync( - inject( - [MatIconRegistry, DomSanitizer], - (iconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdDynamicMenuBasicTestComponent - ); - const component: TdDynamicMenuBasicTestComponent = - fixture.debugElement.componentInstance; - component.trigger = { - id: 'triggerbutton', - icon: 'list', - text: 'Trigger With Text And Icon', - }; - component.items = [ - { - id: 'covalentlinkstrigger', - text: 'Covalent Links', - svgIcon: 'assets:covalent', - children: [ - { - id: 'quickstartlink', - text: 'Quickstart', - icon: 'flash_on', - link: 'https://github.com/Teradata/covalent-quickstart', - newTab: true, - }, - { - id: 'electronlink', - text: 'Electron App', - icon: 'laptop_mac', - link: 'https://github.com/Teradata/covalent-electron', - newTab: true, - }, - { - id: 'datalink', - text: 'Covalent Data', - icon: 'aspect_ratio', - link: 'https://github.com/Teradata/covalent-data', - newTab: true, - }, - ], - }, - { - id: 'angularlink', - text: 'Angular Link', - svgIcon: 'assets:angular', - children: [ - { - text: 'Angular Homepage', - icon: 'star_rate', - link: 'https://angular.io/', - newTab: true, - }, - ], - }, - ]; + it('should show menu and submenu appropriately', waitForAsync( + inject( + [MatIconRegistry, DomSanitizer], + (iconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) => { + const fixture = TestBed.createComponent( + TdDynamicMenuBasicTestComponent + ); + const component: TdDynamicMenuBasicTestComponent = + fixture.debugElement.componentInstance; + component.trigger = { + id: 'triggerbutton', + icon: 'list', + text: 'Trigger With Text And Icon', + }; + component.items = [ + { + id: 'covalentlinkstrigger', + text: 'Covalent Links', + svgIcon: 'assets:covalent', + children: [ + { + id: 'quickstartlink', + text: 'Quickstart', + icon: 'flash_on', + link: 'https://github.com/Teradata/covalent-quickstart', + newTab: true, + }, + { + id: 'electronlink', + text: 'Electron App', + icon: 'laptop_mac', + link: 'https://github.com/Teradata/covalent-electron', + newTab: true, + }, + { + id: 'datalink', + text: 'Covalent Data', + icon: 'aspect_ratio', + link: 'https://github.com/Teradata/covalent-data', + newTab: true, + }, + ], + }, + { + id: 'angularlink', + text: 'Angular Link', + svgIcon: 'assets:angular', + children: [ + { + text: 'Angular Homepage', + icon: 'star_rate', + link: 'https://angular.io/', + newTab: true, + }, + ], + }, + ]; - iconRegistry.addSvgIconInNamespace( - 'assets', - 'angular', - domSanitizer.bypassSecurityTrustResourceUrl( - 'assets/icons/angular.svg' - ) - ); + iconRegistry.addSvgIconInNamespace( + 'assets', + 'angular', + domSanitizer.bypassSecurityTrustResourceUrl( + 'assets/icons/angular.svg' + ) + ); - iconRegistry.addSvgIconInNamespace( - 'assets', - 'covalent', - domSanitizer.bypassSecurityTrustResourceUrl( - 'assets/icons/covalent.svg' - ) - ); + iconRegistry.addSvgIconInNamespace( + 'assets', + 'covalent', + domSanitizer.bypassSecurityTrustResourceUrl( + 'assets/icons/covalent.svg' + ) + ); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('#triggerbutton')) - ).toBeTruthy(); - expect( - fixture.debugElement.query(By.css('#covalentlinkstrigger')) - ).toBeFalsy(); - expect( - fixture.debugElement.query(By.css('#quickstartlink')) - ).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('#triggerbutton')) + ).toBeTruthy(); + expect( + fixture.debugElement.query(By.css('#covalentlinkstrigger')) + ).toBeFalsy(); + expect( + fixture.debugElement.query(By.css('#quickstartlink')) + ).toBeFalsy(); - fixture.debugElement - .query(By.css('#triggerbutton')) - .triggerEventHandler('click', new Event('click')); - expect( - fixture.debugElement.query(By.css('#covalentlinkstrigger')) - ).toBeTruthy(); - expect( - fixture.debugElement.query(By.css('#quickstartlink')) - ).toBeFalsy(); + fixture.debugElement + .query(By.css('#triggerbutton')) + .triggerEventHandler('click', new Event('click')); + expect( + fixture.debugElement.query(By.css('#covalentlinkstrigger')) + ).toBeTruthy(); + expect( + fixture.debugElement.query(By.css('#quickstartlink')) + ).toBeFalsy(); - fixture.debugElement - .query(By.css('#covalentlinkstrigger')) - .triggerEventHandler('click', new Event('click')); - expect( - fixture.debugElement.query(By.css('#quickstartlink')) - ).toBeTruthy(); - }); - } - ) + fixture.debugElement + .query(By.css('#covalentlinkstrigger')) + .triggerEventHandler('click', new Event('click')); + expect( + fixture.debugElement.query(By.css('#quickstartlink')) + ).toBeTruthy(); + }); + } ) - ); + )); }); @Component({ diff --git a/libs/angular/file/src/directives/file-drop.directive.spec.ts b/libs/angular/file/src/directives/file-drop.directive.spec.ts index 015118d911..c5bd05d52c 100644 --- a/libs/angular/file/src/directives/file-drop.directive.spec.ts +++ b/libs/angular/file/src/directives/file-drop.directive.spec.ts @@ -1,9 +1,4 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, waitForAsync } from '@angular/core/testing'; import { ApplicationRef, Component, DebugElement } from '@angular/core'; import { By } from '@angular/platform-browser'; @@ -11,19 +6,15 @@ import { CovalentFileModule } from '../file.module'; import { TdFileDropDirective } from './file-drop.directive'; describe('Directive: FileDrop', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [TdFileDropBasicTestComponent], - imports: [CovalentFileModule], - }); - }) - ); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TdFileDropBasicTestComponent], + imports: [CovalentFileModule], + }); + })); it('should add/remove class on dragenter and dragleave', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.multiple = false; @@ -38,9 +29,7 @@ describe('Directive: FileDrop', () => { }); it('should disable element and not add class on dragenter', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.disabled = true; @@ -53,9 +42,7 @@ describe('Directive: FileDrop', () => { }); it('should not run change detection on dragenter and dragleave events', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); fixture.detectChanges(); const directive: DebugElement = fixture.debugElement.query( By.directive(TdFileDropDirective) @@ -85,9 +72,7 @@ describe('Directive: FileDrop', () => { }); it('should throw dragover event and add copy dropEffect for a single file', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.multiple = false; @@ -107,9 +92,7 @@ describe('Directive: FileDrop', () => { }); it('should throw dragover event and not add copy dropEffect for a multiple file', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.multiple = false; @@ -129,9 +112,7 @@ describe('Directive: FileDrop', () => { }); it('should throw dragover event and add copy dropEffect for a multiple file', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.multiple = true; @@ -151,9 +132,7 @@ describe('Directive: FileDrop', () => { }); it('should throw dragover event and not add copy dropEffect on disabled state', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.multiple = false; @@ -173,9 +152,7 @@ describe('Directive: FileDrop', () => { }); it('should not run change detection on dragover event', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.multiple = false; @@ -204,9 +181,7 @@ describe('Directive: FileDrop', () => { }); it('should throw ondrop event for a single file', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.multiple = false; @@ -226,9 +201,7 @@ describe('Directive: FileDrop', () => { }); it('should throw ondrop event for a multiple files', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.multiple = true; @@ -247,9 +220,7 @@ describe('Directive: FileDrop', () => { }); it('should not throw ondrop event for disabled state', () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileDropBasicTestComponent - ); + const fixture = TestBed.createComponent(TdFileDropBasicTestComponent); const component: TdFileDropBasicTestComponent = fixture.debugElement.componentInstance; component.disabled = true; diff --git a/libs/angular/file/src/directives/file-select.directive.spec.ts b/libs/angular/file/src/directives/file-select.directive.spec.ts index e5946cb3b5..b3602e0e55 100644 --- a/libs/angular/file/src/directives/file-select.directive.spec.ts +++ b/libs/angular/file/src/directives/file-select.directive.spec.ts @@ -1,9 +1,4 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component, DebugElement } from '@angular/core'; import { CovalentFileModule } from '../file.module'; import { TdFileSelectDirective } from '../directives/file-select.directive'; @@ -11,59 +6,47 @@ import { TdFileSelectDirective } from '../directives/file-select.directive'; import { By } from '@angular/platform-browser'; describe('Directive: FileSelect', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [TdFileSelectBasicTestComponent], - imports: [CovalentFileModule], - }); - TestBed.compileComponents(); - }) - ); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TdFileSelectBasicTestComponent], + imports: [CovalentFileModule], + }); + TestBed.compileComponents(); + })); - it( - 'should add multiple attr', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileSelectBasicTestComponent + it('should add multiple attr', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileSelectBasicTestComponent); + const component: TdFileSelectBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = true; + fixture.detectChanges(); + fixture.whenStable().then(() => { + const directive: DebugElement = fixture.debugElement.query( + By.directive(TdFileSelectDirective) ); - const component: TdFileSelectBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = true; - fixture.detectChanges(); - fixture.whenStable().then(() => { - const directive: DebugElement = fixture.debugElement.query( - By.directive(TdFileSelectDirective) - ); - expect((directive.attributes).multiple).toBeDefined(); - }); - }) - ) - ); + expect((directive.attributes).multiple).toBeDefined(); + }); + }) + )); - it( - 'should throw (fileSelect) event for a single file', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileSelectBasicTestComponent + it('should throw (fileSelect) event for a single file', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileSelectBasicTestComponent); + const component: TdFileSelectBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + const directive: DebugElement = fixture.debugElement.query( + By.directive(TdFileSelectDirective) ); - const component: TdFileSelectBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; - fixture.detectChanges(); - fixture.whenStable().then(() => { - const directive: DebugElement = fixture.debugElement.query( - By.directive(TdFileSelectDirective) - ); - directive.triggerEventHandler('change', { - target: directive.nativeElement, - }); + directive.triggerEventHandler('change', { + target: directive.nativeElement, }); - }) - ) - ); + }); + }) + )); }); @Component({ diff --git a/libs/angular/file/src/file-input/file-input.component.spec.ts b/libs/angular/file/src/file-input/file-input.component.spec.ts index 884e071d28..425c76d00d 100644 --- a/libs/angular/file/src/file-input/file-input.component.spec.ts +++ b/libs/angular/file/src/file-input/file-input.component.spec.ts @@ -1,9 +1,4 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { ApplicationRef, Component } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; @@ -13,89 +8,48 @@ import { CovalentFileModule } from '../file.module'; import { TdFileInputComponent } from '../file-input/file-input.component'; describe('Component: FileInput', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ - TdFileInputBasicTestComponent, - TdFileInputModelTestComponent, - ], - imports: [FormsModule, CovalentFileModule], + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ + TdFileInputBasicTestComponent, + TdFileInputModelTestComponent, + ], + imports: [FormsModule, CovalentFileModule], + }); + TestBed.compileComponents(); + })); + + it('should render content inside .td-file-input button', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileInputBasicTestComponent); + const component: TdFileInputBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('.td-file-input span')) + ).toBeTruthy(); }); - TestBed.compileComponents(); }) - ); - - it( - 'should render content inside .td-file-input button', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileInputBasicTestComponent - ); - const component: TdFileInputBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('.td-file-input span')) - ).toBeTruthy(); - }); - }) - ) - ); - - it( - 'should mimic file selection and then clear it', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileInputBasicTestComponent - ); - const component: TdFileInputBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; - fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.debugElement - .query(By.directive(TdFileInputComponent)) - .componentInstance.handleSelect([{}]); - fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.debugElement - .query(By.directive(TdFileInputComponent)) - .componentInstance.clear(); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.directive(TdFileInputComponent)) - .componentInstance.value - ).toBeUndefined(); - }); - }); - }); - }) - ) - ); + )); - it( - 'should mimic file selection and then clear it by disabling it', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileInputBasicTestComponent - ); - const component: TdFileInputBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; - component.disabled = false; + it('should mimic file selection and then clear it', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileInputBasicTestComponent); + const component: TdFileInputBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.debugElement + .query(By.directive(TdFileInputComponent)) + .componentInstance.handleSelect([{}]); fixture.detectChanges(); fixture.whenStable().then(() => { fixture.debugElement .query(By.directive(TdFileInputComponent)) - .componentInstance.handleSelect([{}]); - component.disabled = true; + .componentInstance.clear(); fixture.detectChanges(); fixture.whenStable().then(() => { expect( @@ -104,38 +58,56 @@ describe('Component: FileInput', () => { ).toBeUndefined(); }); }); - }) - ) - ); + }); + }) + )); - it( - 'should mimic file (select) event', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileInputBasicTestComponent - ); - const component: TdFileInputBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; + it('should mimic file selection and then clear it by disabling it', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileInputBasicTestComponent); + const component: TdFileInputBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + component.disabled = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.debugElement + .query(By.directive(TdFileInputComponent)) + .componentInstance.handleSelect([{}]); + component.disabled = true; fixture.detectChanges(); - expect(component.files).toBeUndefined(); fixture.whenStable().then(() => { - fixture.debugElement - .query(By.directive(TdFileInputComponent)) - .componentInstance.handleSelect([{}]); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect(component.files).toBeTruthy(); - }); + expect( + fixture.debugElement.query(By.directive(TdFileInputComponent)) + .componentInstance.value + ).toBeUndefined(); }); - }) - ) - ); + }); + }) + )); + + it('should mimic file (select) event', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileInputBasicTestComponent); + const component: TdFileInputBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + fixture.detectChanges(); + expect(component.files).toBeUndefined(); + fixture.whenStable().then(() => { + fixture.debugElement + .query(By.directive(TdFileInputComponent)) + .componentInstance.handleSelect([{}]); + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect(component.files).toBeTruthy(); + }); + }); + }) + )); it('should not run change detection when the button is clicked, but should redirect the click to ``', () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdFileInputBasicTestComponent); + const fixture = TestBed.createComponent(TdFileInputBasicTestComponent); fixture.detectChanges(); const appRef = TestBed.inject(ApplicationRef); jest.spyOn(appRef, 'tick'); @@ -153,62 +125,52 @@ describe('Component: FileInput', () => { }); // Todo do we really want to support ng model? - xit( - 'should mimic file selection event and check model', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileInputModelTestComponent - ); - const component: TdFileInputModelTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; + xit('should mimic file selection event and check model', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileInputModelTestComponent); + const component: TdFileInputModelTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + fixture.detectChanges(); + expect(component.files).toBeUndefined(); + fixture.whenStable().then(() => { + fixture.debugElement + .query(By.directive(TdFileInputComponent)) + .componentInstance.handleSelect([{}]); fixture.detectChanges(); - expect(component.files).toBeUndefined(); fixture.whenStable().then(() => { - fixture.debugElement - .query(By.directive(TdFileInputComponent)) - .componentInstance.handleSelect([{}]); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect(component.files).toBeTruthy(); - }); + expect(component.files).toBeTruthy(); }); - }) - ) - ); + }); + }) + )); // Todo do we really want to support ng model? - xit( - 'should mimic file selection event and check model and then clear it by disabling it', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileInputModelTestComponent - ); - const component: TdFileInputModelTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; + xit('should mimic file selection event and check model and then clear it by disabling it', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileInputModelTestComponent); + const component: TdFileInputModelTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + fixture.detectChanges(); + expect(component.files).toBeUndefined(); + fixture.whenStable().then(() => { + fixture.debugElement + .query(By.directive(TdFileInputComponent)) + .componentInstance.handleSelect([{}]); fixture.detectChanges(); - expect(component.files).toBeUndefined(); fixture.whenStable().then(() => { - fixture.debugElement - .query(By.directive(TdFileInputComponent)) - .componentInstance.handleSelect([{}]); + expect(component.files).toBeTruthy(); + component.disabled = true; + fixture.componentRef.changeDetectorRef.detectChanges(); fixture.detectChanges(); fixture.whenStable().then(() => { - expect(component.files).toBeTruthy(); - component.disabled = true; - fixture.componentRef.changeDetectorRef.detectChanges(); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect(component.files).toBeUndefined(); - }); + expect(component.files).toBeUndefined(); }); }); - }) - ) - ); + }); + }) + )); }); @Component({ diff --git a/libs/angular/file/src/file-upload/file-upload.component.spec.ts b/libs/angular/file/src/file-upload/file-upload.component.spec.ts index d80a1800cf..36ed0c68e7 100644 --- a/libs/angular/file/src/file-upload/file-upload.component.spec.ts +++ b/libs/angular/file/src/file-upload/file-upload.component.spec.ts @@ -1,318 +1,276 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component } from '@angular/core'; import { CovalentFileModule } from '../file.module'; import { TdFileUploadComponent } from './file-upload.component'; import { By } from '@angular/platform-browser'; describe('Component: FileUpload', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [TdFileUploadBasicTestComponent], - imports: [CovalentFileModule], + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TdFileUploadBasicTestComponent], + imports: [CovalentFileModule], + }); + TestBed.compileComponents(); + })); + + it('should render content inside .td-file-input button', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileUploadBasicTestComponent); + const component: TdFileUploadBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('.td-file-input span')) + ).toBeTruthy(); }); - TestBed.compileComponents(); }) - ); + )); - it( - 'should render content inside .td-file-input button', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileUploadBasicTestComponent - ); - const component: TdFileUploadBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('.td-file-input span')) - ).toBeTruthy(); - }); - }) - ) - ); - - it( - 'should mimic file selection and then clear it', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileUploadBasicTestComponent - ); - const component: TdFileUploadBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; + it('should mimic file selection and then clear it', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileUploadBasicTestComponent); + const component: TdFileUploadBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('td-file-input')) + ).toBeTruthy(); + expect( + fixture.debugElement.query(By.css('.td-file-upload')) + ).toBeFalsy(); + fixture.debugElement + .query(By.directive(TdFileUploadComponent)) + .componentInstance.handleSelect([{}]); + fixture.debugElement + .query(By.css('td-file-input')) + .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { expect( fixture.debugElement.query(By.css('td-file-input')) - ).toBeTruthy(); + ).toBeFalsy(); expect( fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeFalsy(); - fixture.debugElement - .query(By.directive(TdFileUploadComponent)) - .componentInstance.handleSelect([{}]); + ).toBeTruthy(); fixture.debugElement - .query(By.css('td-file-input')) + .query(By.css('.td-file-upload-cancel')) .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { expect( fixture.debugElement.query(By.css('td-file-input')) - ).toBeFalsy(); + ).toBeTruthy(); expect( fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeTruthy(); - fixture.debugElement - .query(By.css('.td-file-upload-cancel')) - .triggerEventHandler('click', new Event('click')); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('td-file-input')) - ).toBeTruthy(); - expect( - fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeFalsy(); - expect( - fixture.debugElement.query(By.directive(TdFileUploadComponent)) - .componentInstance.value - ).toBeUndefined(); - }); + ).toBeFalsy(); + expect( + fixture.debugElement.query(By.directive(TdFileUploadComponent)) + .componentInstance.value + ).toBeUndefined(); }); }); - }) - ) - ); + }); + }) + )); - it( - 'should mimic file selection and then clear it by disabling it', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileUploadBasicTestComponent - ); - const component: TdFileUploadBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; - component.disabled = false; + it('should mimic file selection and then clear it by disabling it', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileUploadBasicTestComponent); + const component: TdFileUploadBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + component.disabled = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('td-file-input')) + ).toBeTruthy(); + expect( + fixture.debugElement.query(By.css('.td-file-upload')) + ).toBeFalsy(); + fixture.debugElement + .query(By.directive(TdFileUploadComponent)) + .componentInstance.handleSelect([{}]); + fixture.debugElement + .query(By.css('td-file-input')) + .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { expect( fixture.debugElement.query(By.css('td-file-input')) - ).toBeTruthy(); + ).toBeFalsy(); expect( fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeFalsy(); - fixture.debugElement - .query(By.directive(TdFileUploadComponent)) - .componentInstance.handleSelect([{}]); - fixture.debugElement - .query(By.css('td-file-input')) - .triggerEventHandler('click', new Event('click')); + ).toBeTruthy(); + component.disabled = true; fixture.detectChanges(); fixture.whenStable().then(() => { expect( fixture.debugElement.query(By.css('td-file-input')) - ).toBeFalsy(); + ).toBeTruthy(); expect( fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeTruthy(); - component.disabled = true; - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('td-file-input')) - ).toBeTruthy(); - expect( - fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeFalsy(); - expect( - fixture.debugElement.query(By.directive(TdFileUploadComponent)) - .componentInstance.value - ).toBeUndefined(); - }); + ).toBeFalsy(); + expect( + fixture.debugElement.query(By.directive(TdFileUploadComponent)) + .componentInstance.value + ).toBeUndefined(); }); }); - }) - ) - ); + }); + }) + )); - it( - 'should mimic file selection and then upload it', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileUploadBasicTestComponent - ); - const component: TdFileUploadBasicTestComponent = - fixture.debugElement.componentInstance; - component.multiple = false; - component.disabled = false; + it('should mimic file selection and then upload it', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileUploadBasicTestComponent); + const component: TdFileUploadBasicTestComponent = + fixture.debugElement.componentInstance; + component.multiple = false; + component.disabled = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('td-file-input')) + ).toBeTruthy(); + expect( + fixture.debugElement.query(By.css('.td-file-upload')) + ).toBeFalsy(); + fixture.debugElement + .query(By.directive(TdFileUploadComponent)) + .componentInstance.handleSelect([{}]); + fixture.debugElement + .query(By.css('td-file-input')) + .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { expect( fixture.debugElement.query(By.css('td-file-input')) - ).toBeTruthy(); + ).toBeFalsy(); expect( fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeFalsy(); - fixture.debugElement - .query(By.directive(TdFileUploadComponent)) - .componentInstance.handleSelect([{}]); + ).toBeTruthy(); fixture.debugElement - .query(By.css('td-file-input')) + .query(By.css('.td-file-upload')) .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('td-file-input')) - ).toBeFalsy(); - expect( - fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeTruthy(); - fixture.debugElement - .query(By.css('.td-file-upload')) - .triggerEventHandler('click', new Event('click')); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect(component.files).toBeTruthy(); - }); + expect(component.files).toBeTruthy(); }); }); - }) - ) - ); + }); + }) + )); - it( - 'should mimic file selection and throw (select) event', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileUploadBasicTestComponent - ); - const component: TdFileUploadBasicTestComponent = - fixture.debugElement.componentInstance; + it('should mimic file selection and throw (select) event', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileUploadBasicTestComponent); + const component: TdFileUploadBasicTestComponent = + fixture.debugElement.componentInstance; - const eventSpy = jest.spyOn(component, 'selectEvent'); + const eventSpy = jest.spyOn(component, 'selectEvent'); - component.multiple = false; - component.disabled = false; + component.multiple = false; + component.disabled = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('td-file-input')) + ).toBeTruthy(); + expect( + fixture.debugElement.query(By.css('.td-file-upload')) + ).toBeFalsy(); + expect(eventSpy).toBeCalledTimes(0); + fixture.debugElement + .query(By.directive(TdFileUploadComponent)) + .componentInstance.handleSelect([{}]); fixture.detectChanges(); fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('td-file-input')) - ).toBeTruthy(); - expect( - fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeFalsy(); - expect(eventSpy).toBeCalledTimes(0); - fixture.debugElement - .query(By.directive(TdFileUploadComponent)) - .componentInstance.handleSelect([{}]); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect(eventSpy).toBeCalledTimes(1); - }); + expect(eventSpy).toBeCalledTimes(1); }); - }) - ) - ); + }); + }) + )); - it( - 'should mimic file selection, upload click and throw (upload) event', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileUploadBasicTestComponent - ); - const component: TdFileUploadBasicTestComponent = - fixture.debugElement.componentInstance; + it('should mimic file selection, upload click and throw (upload) event', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileUploadBasicTestComponent); + const component: TdFileUploadBasicTestComponent = + fixture.debugElement.componentInstance; - const eventSpy = jest.spyOn(component, 'uploadEvent'); + const eventSpy = jest.spyOn(component, 'uploadEvent'); - component.multiple = false; - component.disabled = false; + component.multiple = false; + component.disabled = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('td-file-input')) + ).toBeTruthy(); + expect( + fixture.debugElement.query(By.css('.td-file-upload')) + ).toBeFalsy(); + expect(eventSpy).toBeCalledTimes(0); + fixture.debugElement + .query(By.directive(TdFileUploadComponent)) + .componentInstance.handleSelect([{}]); fixture.detectChanges(); fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('td-file-input')) - ).toBeTruthy(); - expect( - fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeFalsy(); + expect(component.selectFiles).toBeTruthy(); expect(eventSpy).toBeCalledTimes(0); + fixture.debugElement - .query(By.directive(TdFileUploadComponent)) - .componentInstance.handleSelect([{}]); + .query(By.css('.td-file-upload')) + .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { - expect(component.selectFiles).toBeTruthy(); - expect(eventSpy).toBeCalledTimes(0); - - fixture.debugElement - .query(By.css('.td-file-upload')) - .triggerEventHandler('click', new Event('click')); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect(eventSpy).toBeCalledTimes(1); - }); + expect(eventSpy).toBeCalledTimes(1); }); }); - }) - ) - ); + }); + }) + )); - it( - 'should mimic file selection, cancel click and throw (cancel) event', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdFileUploadBasicTestComponent - ); - const component: TdFileUploadBasicTestComponent = - fixture.debugElement.componentInstance; + it('should mimic file selection, cancel click and throw (cancel) event', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent(TdFileUploadBasicTestComponent); + const component: TdFileUploadBasicTestComponent = + fixture.debugElement.componentInstance; - const eventSpy = jest.spyOn(component, 'cancelEvent'); + const eventSpy = jest.spyOn(component, 'cancelEvent'); - component.multiple = false; - component.disabled = false; + component.multiple = false; + component.disabled = false; + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect( + fixture.debugElement.query(By.css('td-file-input')) + ).toBeTruthy(); + expect( + fixture.debugElement.query(By.css('.td-file-upload')) + ).toBeFalsy(); + fixture.debugElement + .query(By.directive(TdFileUploadComponent)) + .componentInstance.handleSelect([{}]); fixture.detectChanges(); fixture.whenStable().then(() => { - expect( - fixture.debugElement.query(By.css('td-file-input')) - ).toBeTruthy(); - expect( - fixture.debugElement.query(By.css('.td-file-upload')) - ).toBeFalsy(); + expect(component.selectFiles).toBeTruthy(); + expect(eventSpy).toBeCalledTimes(0); fixture.debugElement - .query(By.directive(TdFileUploadComponent)) - .componentInstance.handleSelect([{}]); + .query(By.css('.td-file-upload-cancel')) + .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { - expect(component.selectFiles).toBeTruthy(); - expect(eventSpy).toBeCalledTimes(0); - fixture.debugElement - .query(By.css('.td-file-upload-cancel')) - .triggerEventHandler('click', new Event('click')); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect(eventSpy).toBeCalledTimes(1); - }); + expect(eventSpy).toBeCalledTimes(1); }); }); - }) - ) - ); + }); + }) + )); }); @Component({ diff --git a/libs/angular/file/src/file-upload/file-upload.component.ts b/libs/angular/file/src/file-upload/file-upload.component.ts index bc34131a48..8919c5ba92 100644 --- a/libs/angular/file/src/file-upload/file-upload.component.ts +++ b/libs/angular/file/src/file-upload/file-upload.component.ts @@ -15,7 +15,6 @@ import { TdFileInputLabelDirective, } from '../file-input/file-input.component'; import { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'; -import { noop } from 'rxjs'; export class TdFileUploadBase { constructor(public _changeDetectorRef: ChangeDetectorRef) {} @@ -127,7 +126,8 @@ export class TdFileUploadComponent implements ControlValueAccessor { * cancel?: function * Event emitted when cancel button is clicked. */ - @Output() cancel: EventEmitter = new EventEmitter(); + // eslint-disable-next-line @angular-eslint/no-output-native + @Output() cancel: EventEmitter = new EventEmitter(); // TODO: check if we can change the name of this emitter constructor(private _changeDetectorRef: ChangeDetectorRef) {} diff --git a/libs/angular/file/src/services/file.service.spec.ts b/libs/angular/file/src/services/file.service.spec.ts index c92efa0ae9..6ec6de46f1 100644 --- a/libs/angular/file/src/services/file.service.spec.ts +++ b/libs/angular/file/src/services/file.service.spec.ts @@ -2,14 +2,22 @@ import { TestBed } from '@angular/core/testing'; import { CovalentFileModule } from '../file.module'; import { TdFileService } from './file.service'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { provideHttpClientTesting } from '@angular/common/http/testing'; +import { + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; describe('Service: File', () => { let service: TdFileService; beforeEach(() => { TestBed.configureTestingModule({ - imports: [CovalentFileModule, HttpClientTestingModule], + imports: [CovalentFileModule], + providers: [ + provideHttpClient(withInterceptorsFromDi()), + provideHttpClientTesting(), + ], }); service = TestBed.inject(TdFileService); jest.spyOn(XMLHttpRequest.prototype, 'open'); diff --git a/libs/angular/json-formatter/src/json-formatter.component.spec.ts b/libs/angular/json-formatter/src/json-formatter.component.spec.ts index 7b94e52301..d4f858231b 100644 --- a/libs/angular/json-formatter/src/json-formatter.component.spec.ts +++ b/libs/angular/json-formatter/src/json-formatter.component.spec.ts @@ -1,9 +1,4 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component } from '@angular/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { CovalentJsonFormatterModule } from './json-formatter.module'; @@ -12,277 +7,259 @@ import { TdJsonFormatterComponent } from './json-formatter.component'; import { By } from '@angular/platform-browser'; describe('Component: JsonFormatter', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [TdJsonFormatterBasicTestComponent], - imports: [NoopAnimationsModule, CovalentJsonFormatterModule], + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TdJsonFormatterBasicTestComponent], + imports: [NoopAnimationsModule, CovalentJsonFormatterModule], + }); + TestBed.compileComponents(); + })); + + it('should render component with undefined in it', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent( + TdJsonFormatterBasicTestComponent + ); + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(fixture.debugElement.query(By.css('.undefined'))).toBeTruthy(); }); - TestBed.compileComponents(); }) - ); + )); - it( - 'should render component with undefined in it', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdJsonFormatterBasicTestComponent - ); + it('should render component with key truncated and elipsis', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent( + TdJsonFormatterBasicTestComponent + ); + const component: TdJsonFormatterBasicTestComponent = + fixture.debugElement.componentInstance; + component.data = { + loooooooooooooooooooooooooooooong: 'string', + }; + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(fixture.debugElement.query(By.css('.undefined'))).toBeTruthy(); - }); - }) - ) - ); + expect( + fixture.debugElement + .queryAll(By.css('.key'))[0] + .nativeElement.textContent.trim() + ).toBe('looooooooooooooooooooooooooooo…:'); + }); + }) + )); - it( - 'should render component with key truncated and elipsis', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdJsonFormatterBasicTestComponent - ); - const component: TdJsonFormatterBasicTestComponent = - fixture.debugElement.componentInstance; - component.data = { - loooooooooooooooooooooooooooooong: 'string', - }; + it('should throw error if [levelsOpen] is not an integer', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent( + TdJsonFormatterBasicTestComponent + ); + const component: TdJsonFormatterBasicTestComponent = + fixture.debugElement.componentInstance; + component.levelsOpen = '' as any; + expect(function (): void { fixture.detectChanges(); fixture.whenStable().then(() => { fixture.detectChanges(); - expect( - fixture.debugElement - .queryAll(By.css('.key'))[0] - .nativeElement.textContent.trim() - ).toBe('looooooooooooooooooooooooooooo…:'); }); - }) - ) - ); - - it( - 'should throw error if [levelsOpen] is not an integer', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdJsonFormatterBasicTestComponent - ); - const component: TdJsonFormatterBasicTestComponent = - fixture.debugElement.componentInstance; - component.levelsOpen = '' as any; - expect(function (): void { - fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - }); - }).toThrowError(); - }) - ) - ); + }).toThrowError(); + }) + )); - it( - 'should render component with key and values depending on type', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdJsonFormatterBasicTestComponent - ); - const component: TdJsonFormatterBasicTestComponent = - fixture.debugElement.componentInstance; - component.data = { - stringProperty: 'string', - dateProperty: new Date(), - numberProperty: 1, - functionProperty(): void { - /* */ - }, - /* tslint:disable-next-line */ - nullProperty: null, - undefinedProperty: undefined, - arrayProperty: [], - }; + it('should render component with key and values depending on type', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent( + TdJsonFormatterBasicTestComponent + ); + const component: TdJsonFormatterBasicTestComponent = + fixture.debugElement.componentInstance; + component.data = { + stringProperty: 'string', + dateProperty: new Date(), + numberProperty: 1, + functionProperty(): void { + /* */ + }, + /* tslint:disable-next-line */ + nullProperty: null, + undefinedProperty: undefined, + arrayProperty: [], + }; + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect( - fixture.debugElement - .queryAll(By.css('.key'))[0] - .nativeElement.textContent.trim() - ).toBe('stringProperty:'); - expect(fixture.debugElement.query(By.css('.string'))).toBeTruthy(); - expect( - fixture.debugElement - .queryAll(By.css('.key'))[1] - .nativeElement.textContent.trim() - ).toBe('dateProperty:'); - expect(fixture.debugElement.query(By.css('.date'))).toBeTruthy(); - expect( - fixture.debugElement - .queryAll(By.css('.key'))[2] - .nativeElement.textContent.trim() - ).toBe('numberProperty:'); - expect(fixture.debugElement.query(By.css('.number'))).toBeTruthy(); - expect( - fixture.debugElement - .queryAll(By.css('.key'))[3] - .nativeElement.textContent.trim() - ).toBe('functionProperty:'); - expect(fixture.debugElement.query(By.css('.function'))).toBeTruthy(); - expect( - fixture.debugElement - .queryAll(By.css('.key'))[4] - .nativeElement.textContent.trim() - ).toBe('nullProperty:'); - expect(fixture.debugElement.query(By.css('.null'))).toBeTruthy(); - expect( - fixture.debugElement - .queryAll(By.css('.key'))[5] - .nativeElement.textContent.trim() - ).toBe('undefinedProperty:'); - expect(fixture.debugElement.query(By.css('.undefined'))).toBeTruthy(); - expect( - fixture.debugElement - .queryAll(By.css('.key'))[6] - .nativeElement.textContent.trim() - ).toBe('arrayProperty:'); - expect(fixture.debugElement.query(By.css('.td-empty'))).toBeTruthy(); - }); - }) - ) - ); + expect( + fixture.debugElement + .queryAll(By.css('.key'))[0] + .nativeElement.textContent.trim() + ).toBe('stringProperty:'); + expect(fixture.debugElement.query(By.css('.string'))).toBeTruthy(); + expect( + fixture.debugElement + .queryAll(By.css('.key'))[1] + .nativeElement.textContent.trim() + ).toBe('dateProperty:'); + expect(fixture.debugElement.query(By.css('.date'))).toBeTruthy(); + expect( + fixture.debugElement + .queryAll(By.css('.key'))[2] + .nativeElement.textContent.trim() + ).toBe('numberProperty:'); + expect(fixture.debugElement.query(By.css('.number'))).toBeTruthy(); + expect( + fixture.debugElement + .queryAll(By.css('.key'))[3] + .nativeElement.textContent.trim() + ).toBe('functionProperty:'); + expect(fixture.debugElement.query(By.css('.function'))).toBeTruthy(); + expect( + fixture.debugElement + .queryAll(By.css('.key'))[4] + .nativeElement.textContent.trim() + ).toBe('nullProperty:'); + expect(fixture.debugElement.query(By.css('.null'))).toBeTruthy(); + expect( + fixture.debugElement + .queryAll(By.css('.key'))[5] + .nativeElement.textContent.trim() + ).toBe('undefinedProperty:'); + expect(fixture.debugElement.query(By.css('.undefined'))).toBeTruthy(); + expect( + fixture.debugElement + .queryAll(By.css('.key'))[6] + .nativeElement.textContent.trim() + ).toBe('arrayProperty:'); + expect(fixture.debugElement.query(By.css('.td-empty'))).toBeTruthy(); + }); + }) + )); - it( - 'should render component with an array hidden', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdJsonFormatterBasicTestComponent - ); - const component: TdJsonFormatterBasicTestComponent = - fixture.debugElement.componentInstance; - component.data = [1, 2, 3, 4, 5, 6]; + it('should render component with an array hidden', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent( + TdJsonFormatterBasicTestComponent + ); + const component: TdJsonFormatterBasicTestComponent = + fixture.debugElement.componentInstance; + component.data = [1, 2, 3, 4, 5, 6]; + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(fixture.debugElement.query(By.css('.td-key-node'))).toBeTruthy(); + expect( + fixture.debugElement.queryAll(By.css('.td-key-leaf')).length + ).toBe(6); fixture.detectChanges(); fixture.whenStable().then(() => { - fixture.detectChanges(); - expect( - fixture.debugElement.query(By.css('.td-key-node')) - ).toBeTruthy(); expect( - fixture.debugElement.queryAll(By.css('.td-key-leaf')).length - ).toBe(6); - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - (( - fixture.debugElement.query(By.css('.td-object-children')) - .nativeElement - )).style.height - ).toBe('0px'); - }); + (( + fixture.debugElement.query(By.css('.td-object-children')) + .nativeElement + )).style.height + ).toBe('0px'); }); - }) - ) - ); + }); + }) + )); - it( - 'should render component with an array hidden, click on node and then display array content', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdJsonFormatterBasicTestComponent - ); - const component: TdJsonFormatterBasicTestComponent = - fixture.debugElement.componentInstance; - component.data = [1, 2, 3, 4, 5, 6]; + it('should render component with an array hidden, click on node and then display array content', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent( + TdJsonFormatterBasicTestComponent + ); + const component: TdJsonFormatterBasicTestComponent = + fixture.debugElement.componentInstance; + component.data = [1, 2, 3, 4, 5, 6]; + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(fixture.debugElement.query(By.css('.td-key-node'))).toBeTruthy(); + /* tslint:disable-next-line */ fixture.detectChanges(); fixture.whenStable().then(() => { - fixture.detectChanges(); expect( - fixture.debugElement.query(By.css('.td-key-node')) - ).toBeTruthy(); - /* tslint:disable-next-line */ + (( + fixture.debugElement.query(By.css('.td-object-children')) + .nativeElement + )).style.height + ).toBe('0px'); + fixture.debugElement + .query(By.css('.td-key-node')) + .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { - expect( - (( - fixture.debugElement.query(By.css('.td-object-children')) - .nativeElement - )).style.height - ).toBe('0px'); - fixture.debugElement - .query(By.css('.td-key-node')) - .triggerEventHandler('click', new Event('click')); fixture.detectChanges(); fixture.whenStable().then(() => { fixture.detectChanges(); fixture.whenStable().then(() => { - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - (( - fixture.debugElement.query(By.css('.td-object-children')) - .nativeElement - )).style.height - ).toBe(''); - }); + expect( + (( + fixture.debugElement.query(By.css('.td-object-children')) + .nativeElement + )).style.height + ).toBe(''); }); }); }); }); - }) - ) - ); + }); + }) + )); - it( - 'should render component with an array display by 1 level', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdJsonFormatterBasicTestComponent - ); - const component: TdJsonFormatterBasicTestComponent = - fixture.debugElement.componentInstance; - component.data = [1, 2, 3, 4, 5, 6]; - component.levelsOpen = 1; + it('should render component with an array display by 1 level', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent( + TdJsonFormatterBasicTestComponent + ); + const component: TdJsonFormatterBasicTestComponent = + fixture.debugElement.componentInstance; + component.data = [1, 2, 3, 4, 5, 6]; + component.levelsOpen = 1; + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); fixture.whenStable().then(() => { - fixture.detectChanges(); - fixture.whenStable().then(() => { - expect( - (( - fixture.debugElement.query(By.css('.td-object-children')) - .nativeElement - )).style.height - ).toBe(''); - }); + expect( + (( + fixture.debugElement.query(By.css('.td-object-children')) + .nativeElement + )).style.height + ).toBe(''); }); - }) - ) - ); + }); + }) + )); - it( - 'should render component and rerender data only when refresh method explicitly called', - waitForAsync( - inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( - TdJsonFormatterBasicTestComponent - ); - const component: TdJsonFormatterBasicTestComponent = - fixture.debugElement.componentInstance; - component.data = { property: 'test' }; + it('should render component and rerender data only when refresh method explicitly called', waitForAsync( + inject([], () => { + const fixture = TestBed.createComponent( + TdJsonFormatterBasicTestComponent + ); + const component: TdJsonFormatterBasicTestComponent = + fixture.debugElement.componentInstance; + component.data = { property: 'test' }; + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.detectChanges(); + /* tslint:disable-next-line */ + expect( + fixture.debugElement + .query(By.css('.string')) + .nativeElement.textContent.trim() + ).toBe('"test"'); + component.data.property = 'test2'; fixture.detectChanges(); fixture.whenStable().then(() => { fixture.detectChanges(); - /* tslint:disable-next-line */ expect( fixture.debugElement .query(By.css('.string')) .nativeElement.textContent.trim() ).toBe('"test"'); - component.data.property = 'test2'; + fixture.debugElement + .query(By.directive(TdJsonFormatterComponent)) + .componentInstance.refresh(); fixture.detectChanges(); fixture.whenStable().then(() => { fixture.detectChanges(); @@ -290,24 +267,12 @@ describe('Component: JsonFormatter', () => { fixture.debugElement .query(By.css('.string')) .nativeElement.textContent.trim() - ).toBe('"test"'); - fixture.debugElement - .query(By.directive(TdJsonFormatterComponent)) - .componentInstance.refresh(); - fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect( - fixture.debugElement - .query(By.css('.string')) - .nativeElement.textContent.trim() - ).toBe('"test2"'); - }); + ).toBe('"test2"'); }); }); - }) - ) - ); + }); + }) + )); }); @Component({ diff --git a/libs/angular/loading/src/directives/loading.directive.spec.ts b/libs/angular/loading/src/directives/loading.directive.spec.ts index d467aff0a7..8ce6d0f9da 100644 --- a/libs/angular/loading/src/directives/loading.directive.spec.ts +++ b/libs/angular/loading/src/directives/loading.directive.spec.ts @@ -1,9 +1,4 @@ -import { - TestBed, - inject, - waitForAsync, - ComponentFixture, -} from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { Component } from '@angular/core'; import { Observable, Subject, of } from 'rxjs'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; @@ -36,9 +31,7 @@ describe('Directive: Loading', () => { it('should render a spinner, replace strategy, primary color by default', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingDefaultTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingDefaultTestComponent); fixture.detectChanges(); expect(fixture.debugElement.query(By.css('.content'))).toBeTruthy(); expect(fixture.debugElement.query(By.css('td-loading'))).toBeFalsy(); @@ -68,9 +61,7 @@ describe('Directive: Loading', () => { it('should render a spinner, replace strategy twice', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingDefaultTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingDefaultTestComponent); fixture.detectChanges(); expect(fixture.debugElement.query(By.css('.content'))).toBeTruthy(); expect(fixture.debugElement.query(By.css('td-loading'))).toBeFalsy(); @@ -110,9 +101,7 @@ describe('Directive: Loading', () => { it('should render a progress bar, replace strategy, accent color', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingBasicTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingBasicTestComponent); const component: TdLoadingBasicTestComponent = fixture.debugElement.componentInstance; component.name = 'name'; @@ -147,9 +136,7 @@ describe('Directive: Loading', () => { it('should render a spinner, overlay strategy, warn color', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingBasicTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingBasicTestComponent); const component: TdLoadingBasicTestComponent = fixture.debugElement.componentInstance; component.name = 'name'; @@ -210,9 +197,7 @@ describe('Directive: Loading', () => { it('should render a progress bar, overlay strategy, primary color, determinate mode and set values when shown', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingBasicTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingBasicTestComponent); const component: TdLoadingBasicTestComponent = fixture.debugElement.componentInstance; component.name = 'name'; @@ -299,9 +284,7 @@ describe('Directive: Loading', () => { it('should render fail to create component without a name and throw error', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingBasicTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingBasicTestComponent); expect(function (): void { fixture.detectChanges(); }).toThrowError(); @@ -311,7 +294,7 @@ describe('Directive: Loading', () => { it('should render fail to create component because of duplicate name', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( + const fixture = TestBed.createComponent( TdLoadingDuplicationTestComponent ); expect(function (): void { @@ -323,7 +306,7 @@ describe('Directive: Loading', () => { it('should render a circle loading while the observable returns a value using until syntax and async pipe and display it', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( + const fixture = TestBed.createComponent( TdLoadingStarUntilAsyncTestComponent ); const component: TdLoadingStarUntilAsyncTestComponent = @@ -365,7 +348,7 @@ describe('Directive: Loading', () => { it('should render a circle loading while the observable and resolve it with an error', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( + const fixture = TestBed.createComponent( TdLoadingNamedErrorStarUntilAsyncTestComponent ); const component: TdLoadingNamedErrorStarUntilAsyncTestComponent = @@ -396,7 +379,7 @@ describe('Directive: Loading', () => { it('should render a circle loading when false and remove it when true with boolean until syntax', (done) => { inject([], () => { - const fixture: ComponentFixture = TestBed.createComponent( + const fixture = TestBed.createComponent( TdLoadingBooleanTemplateUntilTestComponent ); const component: TdLoadingBooleanTemplateUntilTestComponent = @@ -427,9 +410,7 @@ describe('Directive: Loading', () => { it('should inject the content once even if we register/resolve quickly', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingDefaultTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingDefaultTestComponent); fixture.detectChanges(); expect(fixture.debugElement.query(By.css('.content'))).toBeTruthy(); expect(fixture.debugElement.query(By.css('td-loading'))).toBeFalsy(); diff --git a/libs/angular/loading/src/services/loading.service.spec.ts b/libs/angular/loading/src/services/loading.service.spec.ts index fc582207ae..d276440834 100644 --- a/libs/angular/loading/src/services/loading.service.spec.ts +++ b/libs/angular/loading/src/services/loading.service.spec.ts @@ -15,24 +15,22 @@ import { LoadingType } from '../loading.component'; describe('Service: Loading', () => { let overlayContainerElement: HTMLElement; - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [TdLoadingWrapperTestComponent], - imports: [NoopAnimationsModule, CovalentLoadingModule], - providers: [ - { - provide: OverlayContainer, - useFactory: () => { - overlayContainerElement = document.createElement('div'); - return { getContainerElement: () => overlayContainerElement }; - }, + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TdLoadingWrapperTestComponent], + imports: [NoopAnimationsModule, CovalentLoadingModule], + providers: [ + { + provide: OverlayContainer, + useFactory: () => { + overlayContainerElement = document.createElement('div'); + return { getContainerElement: () => overlayContainerElement }; }, - ], - }); - TestBed.compileComponents(); - }) - ); + }, + ], + }); + TestBed.compileComponents(); + })); afterEach(() => { overlayContainerElement.innerHTML = ''; @@ -40,9 +38,7 @@ describe('Service: Loading', () => { it('should render default fullscreen loading component', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingWrapperTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingWrapperTestComponent); fixture.detectChanges(); expect(fixture.debugElement.query(By.css('.content'))).toBeTruthy(); loadingService.register(); @@ -77,9 +73,7 @@ describe('Service: Loading', () => { it('should render configured progress bar, accent fullscreen loading component', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingWrapperTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingWrapperTestComponent); loadingService.create({ name: 'name', type: LoadingType.Linear, @@ -119,9 +113,7 @@ describe('Service: Loading', () => { it('should render configured progress bar, accent fullscreen loading component', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingWrapperTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingWrapperTestComponent); loadingService.create({ name: 'name', type: LoadingType.Linear, @@ -174,9 +166,7 @@ describe('Service: Loading', () => { it('should remove overriding loading component with the same name if fullscreen', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingWrapperTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingWrapperTestComponent); expect(function (): void { loadingService.create({ name: 'name', @@ -207,9 +197,7 @@ describe('Service: Loading', () => { it('should render default fullscreen by registering 3 times and then resolve by calling resolveAll', (done) => { inject([TdLoadingService], (loadingService: TdLoadingService) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdLoadingWrapperTestComponent - ); + const fixture = TestBed.createComponent(TdLoadingWrapperTestComponent); fixture.detectChanges(); expect(fixture.debugElement.query(By.css('.content'))).toBeTruthy(); loadingService.register(); diff --git a/libs/angular/message/src/message.component.spec.ts b/libs/angular/message/src/message.component.spec.ts index 32db508e00..b0444905b9 100644 --- a/libs/angular/message/src/message.component.spec.ts +++ b/libs/angular/message/src/message.component.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, waitForAsync, ComponentFixture } from '@angular/core/testing'; +import { TestBed, waitForAsync } from '@angular/core/testing'; import { Component } from '@angular/core'; import { By } from '@angular/platform-browser'; import { TdMessageComponent } from './message.component'; @@ -19,9 +19,7 @@ describe('Component: Message', () => { })); it('should set label, sublabel and color `primary`, `red` and then change to color `accent`', (done) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdMessageBasicTestComponent - ); + const fixture = TestBed.createComponent(TdMessageBasicTestComponent); const component: TdMessageBasicTestComponent = fixture.debugElement.componentInstance; @@ -108,9 +106,7 @@ describe('Component: Message', () => { }); it('should render the component with label and no sublabel', (done) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdMessageBasicTestComponent - ); + const fixture = TestBed.createComponent(TdMessageBasicTestComponent); const component: TdMessageBasicTestComponent = fixture.debugElement.componentInstance; @@ -130,9 +126,7 @@ describe('Component: Message', () => { }); it('should render the component with a button content as actions', (done) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdMessageContentTestComponent - ); + const fixture = TestBed.createComponent(TdMessageContentTestComponent); const component: TdMessageContentTestComponent = fixture.debugElement.componentInstance; @@ -149,9 +143,7 @@ describe('Component: Message', () => { }); it('should render the component, close it and then open it', (done) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdMessageBasicTestComponent - ); + const fixture = TestBed.createComponent(TdMessageBasicTestComponent); const component: TdMessageBasicTestComponent = fixture.debugElement.componentInstance; const message: TdMessageComponent = fixture.debugElement.query( @@ -186,9 +178,7 @@ describe('Component: Message', () => { }); it('should not render the component, open it and then close it', (done) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdMessageOpenedTestComponent - ); + const fixture = TestBed.createComponent(TdMessageOpenedTestComponent); const component: TdMessageOpenedTestComponent = fixture.debugElement.componentInstance; const message: TdMessageComponent = fixture.debugElement.query( @@ -223,9 +213,7 @@ describe('Component: Message', () => { }); it('should render the component, toggle it and then toggle it again', (done) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdMessageBasicTestComponent - ); + const fixture = TestBed.createComponent(TdMessageBasicTestComponent); const component: TdMessageBasicTestComponent = fixture.debugElement.componentInstance; const message: TdMessageComponent = fixture.debugElement.query( @@ -260,9 +248,7 @@ describe('Component: Message', () => { }); it('should render the component, then [opened] to false', (done) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdMessageOpenedTestComponent - ); + const fixture = TestBed.createComponent(TdMessageOpenedTestComponent); const component: TdMessageOpenedTestComponent = fixture.debugElement.componentInstance; @@ -286,9 +272,7 @@ describe('Component: Message', () => { }); it('should not render the component, set [opened] to true and then [opened] to false', (done) => { - const fixture: ComponentFixture = TestBed.createComponent( - TdMessageOpenedTestComponent - ); + const fixture = TestBed.createComponent(TdMessageOpenedTestComponent); const component: TdMessageOpenedTestComponent = fixture.debugElement.componentInstance; diff --git a/libs/angular/theming/_teradata-theme.scss b/libs/angular/theming/_teradata-theme.scss index f3e53eb606..ef6219882b 100644 --- a/libs/angular/theming/_teradata-theme.scss +++ b/libs/angular/theming/_teradata-theme.scss @@ -345,21 +345,21 @@ $td-dark-theme-foreground: ( ); // Custom typography -$td-custom-typography: mat.define-typography-config( - $button: mat.define-typography-level(14px, 14px, 400), +$td-custom-typography: mat.m2-define-typography-config( + $button: mat.m2-define-typography-level(14px, 14px, 400), ); -$td-custom-toolbar-typography: mat.define-typography-config( - $headline-6: mat.define-typography-level(20px, 32px, 400), +$td-custom-toolbar-typography: mat.m2-define-typography-config( + $headline-6: mat.m2-define-typography-level(20px, 32px, 400), ); // Create the theme object (a Sass map containing all of the palettes). -$td-light-theme: mat.define-light-theme( +$td-light-theme: mat.m2-define-light-theme( ( color: ( - primary: mat.define-palette($td-primary, '40', '30', '60'), - secondary: mat.define-palette($td-secondary, '40', '30', '60'), - accent: mat.define-palette($td-accent, '40', '30', '60'), - warn: mat.define-palette($td-warn, '40', '30', '60'), + primary: mat.m2-define-palette($td-primary, '40', '30', '60'), + secondary: mat.m2-define-palette($td-secondary, '40', '30', '60'), + accent: mat.m2-define-palette($td-accent, '40', '30', '60'), + warn: mat.m2-define-palette($td-warn, '40', '30', '60'), on-secondary: $light-on-secondary, ), typography: $td-custom-typography, @@ -375,13 +375,13 @@ $td-light-theme: mat.private-deep-merge-all( ) ); -$td-dark-theme: mat.define-dark-theme( +$td-dark-theme: mat.m2-define-dark-theme( ( color: ( - primary: mat.define-palette($td-primary-dark, '80', '70', '90'), - secondary: mat.define-palette($td-secondary-dark, '80', '70', '90'), - accent: mat.define-palette($td-accent-dark, '80', '70', '90'), - warn: mat.define-palette($td-warn-dark, '80', '70', '90'), + primary: mat.m2-define-palette($td-primary-dark, '80', '70', '90'), + secondary: mat.m2-define-palette($td-secondary-dark, '80', '70', '90'), + accent: mat.m2-define-palette($td-accent-dark, '80', '70', '90'), + warn: mat.m2-define-palette($td-warn-dark, '80', '70', '90'), on-secondary: $dark-on-secondary, ), typography: $td-custom-typography, diff --git a/libs/angular/theming/prebuilt/blue-grey-deep-orange.scss b/libs/angular/theming/prebuilt/blue-grey-deep-orange.scss index 4c37c8bcea..eb36720e6f 100644 --- a/libs/angular/theming/prebuilt/blue-grey-deep-orange.scss +++ b/libs/angular/theming/prebuilt/blue-grey-deep-orange.scss @@ -1,11 +1,11 @@ @use '@angular/material' as mat; @import '../all-theme'; -$primary: mat.define-palette(mat.$blue-grey-palette, 700); -$accent: mat.define-palette(mat.$deep-orange-palette, 500); -$warn: mat.define-palette(mat.$red-palette, 600); +$primary: mat.m2-define-palette(mat.$m2-blue-grey-palette, 700); +$accent: mat.m2-define-palette(mat.$m2-deep-orange-palette, 500); +$warn: mat.m2-define-palette(mat.$m2-red-palette, 600); -$theme: mat.define-light-theme( +$theme: mat.m2-define-light-theme( ( color: ( primary: $primary, diff --git a/libs/angular/theming/prebuilt/blue-orange.scss b/libs/angular/theming/prebuilt/blue-orange.scss index e635e34fe4..6fa75e0b6c 100644 --- a/libs/angular/theming/prebuilt/blue-orange.scss +++ b/libs/angular/theming/prebuilt/blue-orange.scss @@ -1,11 +1,11 @@ @use '@angular/material' as mat; @import '../all-theme'; -$primary: mat.define-palette(mat.$blue-palette, 700); -$accent: mat.define-palette(mat.$orange-palette, 800, A100, A400); -$warn: mat.define-palette(mat.$red-palette, 600); +$primary: mat.m2-define-palette(mat.$m2-blue-palette, 700); +$accent: mat.m2-define-palette(mat.$m2-orange-palette, 800, A100, A400); +$warn: mat.m2-define-palette(mat.$m2-red-palette, 600); -$theme: mat.define-light-theme( +$theme: mat.m2-define-light-theme( ( color: ( primary: $primary, diff --git a/libs/angular/theming/prebuilt/indigo-pink.scss b/libs/angular/theming/prebuilt/indigo-pink.scss index 2d81141a0b..dde8a3235f 100644 --- a/libs/angular/theming/prebuilt/indigo-pink.scss +++ b/libs/angular/theming/prebuilt/indigo-pink.scss @@ -1,11 +1,11 @@ @use '@angular/material' as mat; @import '../all-theme'; -$primary: mat.define-palette(mat.$indigo-palette, 500); -$accent: mat.define-palette(mat.$pink-palette, A200, A100, A400); -$warn: mat.define-palette(mat.$red-palette, 600); +$primary: mat.m2-define-palette(mat.$m2-indigo-palette, 500); +$accent: mat.m2-define-palette(mat.$m2-pink-palette, A200, A100, A400); +$warn: mat.m2-define-palette(mat.$m2-red-palette, 600); -$theme: mat.define-light-theme( +$theme: mat.m2-define-light-theme( ( color: ( primary: $primary, diff --git a/libs/angular/theming/prebuilt/orange-light-blue.scss b/libs/angular/theming/prebuilt/orange-light-blue.scss index 606a277a71..ecba891f93 100644 --- a/libs/angular/theming/prebuilt/orange-light-blue.scss +++ b/libs/angular/theming/prebuilt/orange-light-blue.scss @@ -1,11 +1,11 @@ @use '@angular/material' as mat; @import '../all-theme'; -$primary: mat.define-palette(mat.$orange-palette, 800); -$accent: mat.define-palette(mat.$light-blue-palette, 600, A100, A400); -$warn: mat.define-palette(mat.$red-palette, 600); +$primary: mat.m2-define-palette(mat.$m2-orange-palette, 800); +$accent: mat.m2-define-palette(mat.$m2-light-blue-palette, 600, A100, A400); +$warn: mat.m2-define-palette(mat.$m2-red-palette, 600); -$theme: mat.define-light-theme( +$theme: mat.m2-define-light-theme( ( color: ( primary: $primary, diff --git a/libs/angular/theming/prebuilt/teal-orange.scss b/libs/angular/theming/prebuilt/teal-orange.scss index dce314bbfe..376967df93 100644 --- a/libs/angular/theming/prebuilt/teal-orange.scss +++ b/libs/angular/theming/prebuilt/teal-orange.scss @@ -1,11 +1,11 @@ @use '@angular/material' as mat; @import '../all-theme'; -$primary: mat.define-palette(mat.$teal-palette, 700); -$accent: mat.define-palette(mat.$orange-palette, 800, A100, A400); -$warn: mat.define-palette(mat.$red-palette, 600); +$primary: mat.m2-define-palette(mat.$m2-teal-palette, 700); +$accent: mat.m2-define-palette(mat.$m2-orange-palette, 800, A100, A400); +$warn: mat.m2-define-palette(mat.$m2-red-palette, 600); -$theme: mat.define-light-theme( +$theme: mat.m2-define-light-theme( ( color: ( primary: $primary, diff --git a/libs/angular/user-profile/ng-package.json b/libs/angular/user-profile/ng-package.json index 9946303a2a..df823bb29a 100644 --- a/libs/angular/user-profile/ng-package.json +++ b/libs/angular/user-profile/ng-package.json @@ -1,4 +1,3 @@ { - "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json", - "assets": ["./src/*.theme.scss"] + "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json" } diff --git a/libs/components/project.json b/libs/components/project.json index e504a83e05..233fd5877f 100644 --- a/libs/components/project.json +++ b/libs/components/project.json @@ -49,8 +49,10 @@ "executor": "nx:run-commands", "options": { "commands": ["vitest -r libs/components -c vite.config.js -w false"], - "parallel": false, - "outputPath": "coverage/libs/components" + "parallel": false + }, + "coverage": { + "dir": "coverage/libs/components" } }, "lint": { diff --git a/libs/components/src/app-shell/app-shell.scss b/libs/components/src/app-shell/app-shell.scss index 0804445e5e..936d89812a 100644 --- a/libs/components/src/app-shell/app-shell.scss +++ b/libs/components/src/app-shell/app-shell.scss @@ -1,4 +1,4 @@ -@use '@material/drawer'; +@use '@material/mwc-drawer/node_modules/@material/drawer'; @use '@material/feature-targeting/feature-targeting'; @use '@material/rtl/rtl'; diff --git a/libs/components/src/status-dialog/status-dialog.ts b/libs/components/src/status-dialog/status-dialog.ts index fb2b1399e3..68801ca15e 100644 --- a/libs/components/src/status-dialog/status-dialog.ts +++ b/libs/components/src/status-dialog/status-dialog.ts @@ -1,7 +1,6 @@ import { css, html, unsafeCSS } from 'lit'; import { customElement, property, query, state } from 'lit/decorators.js'; import { styles as baseStyles } from '@material/mwc-dialog/mwc-dialog.css'; -import { cssClasses } from '@material/dialog/constants.js'; import { classMap } from 'lit/directives/class-map.js'; import CovalentDialog from '../dialog/dialog'; import styles from './status-dialog.scss?inline'; @@ -131,7 +130,7 @@ export class CovalentStatusDialog extends CovalentDialog { override render() { const classes = { - [cssClasses.STACKED]: this.stacked, + 'mdc-dialog--stacked': this.stacked, error: this.state === 'error', positive: this.state === 'positive', warning: this.state === 'warning', diff --git a/libs/components/src/toolbar/toolbar.scss b/libs/components/src/toolbar/toolbar.scss index d83a6de170..96691ce843 100644 --- a/libs/components/src/toolbar/toolbar.scss +++ b/libs/components/src/toolbar/toolbar.scss @@ -1,4 +1,4 @@ -@use '@material/top-app-bar/mdc-top-app-bar'; +@use '@material/mwc-top-app-bar/node_modules/@material/top-app-bar/mdc-top-app-bar'; :host { display: block; diff --git a/libs/components/vite.config.js b/libs/components/vite.config.js index 43ba07545f..3f8874a3a9 100644 --- a/libs/components/vite.config.js +++ b/libs/components/vite.config.js @@ -79,17 +79,11 @@ module.exports = defineConfig(({ mode }) => { }, }, test: { - deps: { - inline: [/safevalues/], // fix @material/chips issue - }, coverage: { - provider: 'c8', + provider: 'v8', enabled: true, reportsDirectory: '../../coverage/libs/components', }, - cache: { - dir: '../../node_modules/.vitest', - }, }, cacheDir: '../../node_modules/.vite', }; diff --git a/libs/email-templates/src/styles/_generated.css b/libs/email-templates/src/styles/_generated.css index 9e768d69eb..d3ee8e92ae 100644 --- a/libs/email-templates/src/styles/_generated.css +++ b/libs/email-templates/src/styles/_generated.css @@ -3,7 +3,7 @@ /** * Do not edit directly - * Generated on Thu, 25 Jul 2024 15:59:08 GMT + * Generated on Tue, 03 Sep 2024 03:46:25 GMT */ :root { diff --git a/libs/email-templates/vite.config.ts b/libs/email-templates/vite.config.ts index 826d418faa..8112404975 100644 --- a/libs/email-templates/vite.config.ts +++ b/libs/email-templates/vite.config.ts @@ -47,9 +47,6 @@ export default defineConfig({ test: { globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, environment: 'node', include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], passWithNoTests: true, diff --git a/libs/markdown-navigator/src/markdown-navigator-window-directive/markdown-navigator-window.directive.spec.ts b/libs/markdown-navigator/src/markdown-navigator-window-directive/markdown-navigator-window.directive.spec.ts index cb45ed2bb0..1249a061c6 100644 --- a/libs/markdown-navigator/src/markdown-navigator-window-directive/markdown-navigator-window.directive.spec.ts +++ b/libs/markdown-navigator/src/markdown-navigator-window-directive/markdown-navigator-window.directive.spec.ts @@ -35,73 +35,55 @@ describe('MarkdownNavigatorWindowDirective', () => { await fixture.whenStable(); } - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [NoopAnimationsModule, CovalentMarkdownNavigatorModule], - declarations: [TestComponent], - providers: [ - { - provide: OverlayContainer, - useFactory: () => { - overlayContainerElement = document.createElement('div'); - overlayContainerElement.classList.add('cdk-overlay-container'); - document.body.appendChild(overlayContainerElement); - return { getContainerElement: () => overlayContainerElement }; - }, + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [NoopAnimationsModule, CovalentMarkdownNavigatorModule], + declarations: [TestComponent], + providers: [ + { + provide: OverlayContainer, + useFactory: () => { + overlayContainerElement = document.createElement('div'); + overlayContainerElement.classList.add('cdk-overlay-container'); + document.body.appendChild(overlayContainerElement); + return { getContainerElement: () => overlayContainerElement }; }, - ], - }); - }) - ); + }, + ], + }); + })); - it( - 'should open and close markdown navigator window properly', - waitForAsync( - inject( - [TdMarkdownNavigatorWindowService], - async ( - _markdownNavigatorWindowService: TdMarkdownNavigatorWindowService - ) => { - const fixture: ComponentFixture = - TestBed.createComponent(TestComponent); - await wait(fixture); - fixture.debugElement.query(By.css('button')).nativeElement.click(); - await wait(fixture); - expect( - overlayContainerElement.querySelector(`td-markdown-navigator`) - ).toBeTruthy(); - // tslint:disable-next-line:no-useless-cast - (( - overlayContainerElement.querySelector(`[data-test="close-button"]`) - )).click(); - await wait(fixture); - expect( - overlayContainerElement.querySelector(`td-markdown-navigator`) - ).toBeFalsy(); - } - ) - ) - ); - it( - 'should not open markdown navigator window if disabled', - waitForAsync( - inject( - [TdMarkdownNavigatorWindowService], - async ( - _markdownNavigatorWindowService: TdMarkdownNavigatorWindowService - ) => { - const fixture: ComponentFixture = - TestBed.createComponent(TestComponent); - fixture.componentInstance.disabled = true; - await wait(fixture); - fixture.debugElement.query(By.css('button')).nativeElement.click(); - await wait(fixture); - expect( - overlayContainerElement.querySelector(`td-markdown-navigator`) - ).toBeFalsy(); - } - ) - ) - ); + it('should open and close markdown navigator window properly', waitForAsync( + inject([TdMarkdownNavigatorWindowService], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TestComponent); + await wait(fixture); + fixture.debugElement.query(By.css('button')).nativeElement.click(); + await wait(fixture); + expect( + overlayContainerElement.querySelector(`td-markdown-navigator`) + ).toBeTruthy(); + // tslint:disable-next-line:no-useless-cast + (( + overlayContainerElement.querySelector(`[data-test="close-button"]`) + )).click(); + await wait(fixture); + expect( + overlayContainerElement.querySelector(`td-markdown-navigator`) + ).toBeFalsy(); + }) + )); + it('should not open markdown navigator window if disabled', waitForAsync( + inject([TdMarkdownNavigatorWindowService], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TestComponent); + fixture.componentInstance.disabled = true; + await wait(fixture); + fixture.debugElement.query(By.css('button')).nativeElement.click(); + await wait(fixture); + expect( + overlayContainerElement.querySelector(`td-markdown-navigator`) + ).toBeFalsy(); + }) + )); }); diff --git a/libs/markdown-navigator/src/markdown-navigator-window-service/markdown-navigator-window.service.ts b/libs/markdown-navigator/src/markdown-navigator-window-service/markdown-navigator-window.service.ts index 3953c7525a..8aef873798 100644 --- a/libs/markdown-navigator/src/markdown-navigator-window-service/markdown-navigator-window.service.ts +++ b/libs/markdown-navigator/src/markdown-navigator-window-service/markdown-navigator-window.service.ts @@ -20,7 +20,7 @@ import { IDraggableRefs, ResizableDraggableDialog, } from '@covalent/core/dialogs'; -import { DragRef, Point } from '@angular/cdk/drag-drop'; +import { DragRef } from '@angular/cdk/drag-drop'; import { DOCUMENT } from '@angular/common'; import { IMarkdownNavigatorItem, @@ -45,7 +45,6 @@ const CDK_OVERLAY_CUSTOM_CLASS = 'td-window-dialog'; const DEFAULT_POSITION: DialogPosition = { bottom: '0px', right: '0px' }; const DEFAULT_WIDTH = '360px'; const DEFAULT_HEIGHT = '75vh'; -const MIN_HEIGHT = '56px'; const MAX_WIDTH = '100vw'; const DEFAULT_DRAGGABLE_DIALOG_CONFIG: MatDialogConfig = { @@ -58,11 +57,6 @@ const DEFAULT_DRAGGABLE_DIALOG_CONFIG: MatDialogConfig = { maxWidth: MAX_WIDTH, }; -interface IDialogDimensions { - width: string; - height: string; -} - @Injectable() export class TdMarkdownNavigatorWindowService { private _renderer2: Renderer2; diff --git a/libs/markdown-navigator/src/markdown-navigator.component.spec.ts b/libs/markdown-navigator/src/markdown-navigator.component.spec.ts index 49935fcc4a..3ccd4501cb 100644 --- a/libs/markdown-navigator/src/markdown-navigator.component.spec.ts +++ b/libs/markdown-navigator/src/markdown-navigator.component.spec.ts @@ -16,11 +16,15 @@ import { Component, DebugElement, Type, ViewChild } from '@angular/core'; import { CovalentMarkdownNavigatorModule } from './markdown-navigator.module'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { - HttpClientTestingModule, HttpTestingController, TestRequest, + provideHttpClientTesting, } from '@angular/common/http/testing'; -import { HttpClient } from '@angular/common/http'; +import { + HttpClient, + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; const RAW_MARKDOWN_HEADING = 'Heading'; const RAW_MARKDOWN = `# ${RAW_MARKDOWN_HEADING}`; @@ -334,793 +338,722 @@ describe('MarkdownNavigatorComponent', () => { let httpClient: HttpClient; let httpTestingController: HttpTestingController; - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [TdMarkdownNavigatorTestComponent], - imports: [ - NoopAnimationsModule, - CovalentMarkdownNavigatorModule, - HttpClientTestingModule, - ], - }).compileComponents(); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TdMarkdownNavigatorTestComponent], + imports: [NoopAnimationsModule, CovalentMarkdownNavigatorModule], + providers: [ + provideHttpClient(withInterceptorsFromDi()), + provideHttpClientTesting(), + ], + }).compileComponents(); + + httpClient = TestBed.inject(HttpClient); + httpTestingController = TestBed.inject(HttpTestingController); + })); + + it('should render empty state when an empty array is passed into items', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = []; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ).componentInstance; + + expect(markdownNavigator.showEmptyState).toBeTruthy(); + expect(markdownNavigator.loading).toBeFalsy(); + expect(markdownNavigator.showGoBackButton).toBeFalsy(); + expect(markdownNavigator.showMenu).toBeFalsy(); + expect(markdownNavigator.showTdMarkdown).toBeFalsy(); + expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); + }) + )); - httpClient = TestBed.inject(HttpClient); - httpTestingController = TestBed.inject(HttpTestingController); + it('should render empty state when undefined is passed into items', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = undefined; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ).componentInstance; + + expect(markdownNavigator.showEmptyState).toBeTruthy(); + expect(markdownNavigator.loading).toBeFalsy(); + expect(markdownNavigator.showGoBackButton).toBeFalsy(); + expect(markdownNavigator.showMenu).toBeFalsy(); + expect(markdownNavigator.showTdMarkdown).toBeFalsy(); + expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); }) - ); + )); - it( - 'should render empty state when an empty array is passed into items', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); + it('should render one raw markdown item', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); - fixture.componentInstance.items = []; - await wait(fixture); + fixture.componentInstance.items = RAW_MARKDOWN_ITEM; + await wait(fixture); - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - - expect(markdownNavigator.showEmptyState).toBeTruthy(); - expect(markdownNavigator.loading).toBeFalsy(); - expect(markdownNavigator.showGoBackButton).toBeFalsy(); - expect(markdownNavigator.showMenu).toBeFalsy(); - expect(markdownNavigator.showTdMarkdown).toBeFalsy(); - expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); - }) - ) - ); - - it( - 'should render empty state when undefined is passed into items', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = undefined; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - - expect(markdownNavigator.showEmptyState).toBeTruthy(); - expect(markdownNavigator.loading).toBeFalsy(); - expect(markdownNavigator.showGoBackButton).toBeFalsy(); - expect(markdownNavigator.showMenu).toBeFalsy(); - expect(markdownNavigator.showTdMarkdown).toBeFalsy(); - expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); - }) - ) - ); - - it( - 'should render one raw markdown item', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = RAW_MARKDOWN_ITEM; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - - expect(markdownNavigator.showEmptyState).toBeFalsy(); - expect(markdownNavigator.loading).toBeFalsy(); - expect(markdownNavigator.showGoBackButton).toBeFalsy(); - expect(markdownNavigator.showMenu).toBeFalsy(); - expect(markdownNavigator.showTdMarkdown).toBeTruthy(); - expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); - }) - ) - ); - - it( - 'should fetch childrenUrl and render', - waitForAsync( - inject([], async () => { - const itemATitle = 'fetched item A'; - const itemBTitle = 'fetched item B'; - - const testData: IMarkdownNavigatorItem[] = [ - { title: itemATitle }, - { title: itemBTitle }, - ]; - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = ITEMS_WITH_CHILDREN_URL; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - - expect(markdownNavigator.showMenu).toBeTruthy(); - expect(markdownNavigator.showTdMarkdown).toBeFalsy(); - - getItem(fixture, 0).click(); - const req: TestRequest = httpTestingController.expectOne(CHILDREN_URL); - req.flush(testData); - - await wait(fixture); - await wait(fixture); - - expect(markdownNavigator.showMenu).toBeTruthy(); - expect(markdownNavigator.showTdMarkdown).toBeFalsy(); - expect(getItem(fixture, 0).textContent).toContain(itemATitle); - expect(getItem(fixture, 1).textContent).toContain(itemBTitle); - - httpTestingController.verify(); - }) - ) - ); - - it( - 'should show proper error messages', - waitForAsync( - inject([], async () => { - const invalidMarkdownUrl = 'https://invalid_markdown_url.com'; - const invalidChildrenUrl = 'https://invalid_children_url.com'; - const ITEMS_WITH_ERRORS: IMarkdownNavigatorItem[] = [ - { - title: 'Invalid markdown url', - url: invalidMarkdownUrl, - children: [ - { - title: 'Invalid children url', - childrenUrl: invalidChildrenUrl, - }, - ], - }, - { - title: 'Invalid markdown and children url', - url: invalidMarkdownUrl, - childrenUrl: invalidChildrenUrl, - }, - ]; - const invalidMarkdownUrlOptions: object = { - status: 404, - statusText: 'Not Found', - }; - const message = 'Failed :('; - function getMarkdownLoaderError(): HTMLElement { - return ( - fixture.debugElement.query( - By.css('[data-test="markdown-loader-error"]') - ) || {} - ).nativeElement; - } - function getChildrenUrlError(): HTMLElement { - return ( - fixture.debugElement.query( - By.css('[data-test="children-url-error"]') - ) || {} - ).nativeElement; - } - - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - fixture.componentInstance.items = ITEMS_WITH_ERRORS; - - await wait(fixture); - getItem(fixture, 0).click(); - await wait(fixture); - - const invalidMarkdownUrlRequest: TestRequest = - httpTestingController.expectOne(invalidMarkdownUrl); - invalidMarkdownUrlRequest.flush(message, invalidMarkdownUrlOptions); - - await wait(fixture); - await wait(fixture); - await wait(fixture); - - expect(getMarkdownLoaderError()).toBeTruthy(); - expect(getMarkdownLoaderError().textContent).toContain('Not Found'); - - getItem(fixture, 0).click(); - const invalidChildrenUrlRequest: TestRequest = - httpTestingController.expectOne(invalidChildrenUrl); - invalidChildrenUrlRequest.flush(message, invalidMarkdownUrlOptions); - - await wait(fixture); - await wait(fixture); - await wait(fixture); - - expect(getMarkdownLoaderError()).toBeFalsy(); - expect(getChildrenUrlError()).toBeTruthy(); - goBack(fixture); - - const invalidMarkdownUrlRequest2: TestRequest = - httpTestingController.expectOne(invalidMarkdownUrl); - invalidMarkdownUrlRequest2.flush(message, invalidMarkdownUrlOptions); - - await wait(fixture); - await wait(fixture); - await wait(fixture); - - expect(getMarkdownLoaderError()).toBeTruthy(); - expect(getChildrenUrlError()).toBeFalsy(); - - goBack(fixture); - getItem(fixture, 1).click(); - await wait(fixture); - - const invalidMarkdownUrlRequest3: TestRequest = - httpTestingController.expectOne(invalidMarkdownUrl); - invalidMarkdownUrlRequest3.flush(message, invalidMarkdownUrlOptions); - const invalidChildrenUrlRequest2: TestRequest = - httpTestingController.expectOne(invalidChildrenUrl); - invalidChildrenUrlRequest2.flush(message, invalidMarkdownUrlOptions); - - await wait(fixture); - await wait(fixture); - await wait(fixture); - - expect(getMarkdownLoaderError()).toBeTruthy(); - expect(getChildrenUrlError()).toBeTruthy(); - - goBack(fixture); - - expect(getMarkdownLoaderError()).toBeFalsy(); - expect(getChildrenUrlError()).toBeFalsy(); - - httpTestingController.verify(); - }) - ) - ); - - it( - 'should render one url item from GitHub', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = URL_ITEM; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - - expect(markdownNavigator.showEmptyState).toBeFalsy(); - expect(markdownNavigator.loading).toBeFalsy(); - expect(markdownNavigator.showGoBackButton).toBeFalsy(); - expect(markdownNavigator.showMenu).toBeFalsy(); - expect(markdownNavigator.showTdMarkdown).toBeFalsy(); - expect(markdownNavigator.showTdMarkdownLoader).toBeTruthy(); - }) - ) - ); - - it( - 'should render a flat list of items', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = FLAT_MIXED_ITEMS; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - const listItems: DebugElement[] = fixture.debugElement.queryAll( - By.css('mat-action-list button') - ); - - expect(markdownNavigator.showEmptyState).toBeFalsy(); - expect(markdownNavigator.loading).toBeFalsy(); - expect(markdownNavigator.showGoBackButton).toBeFalsy(); - expect(markdownNavigator.showMenu).toBeTruthy(); - expect(markdownNavigator.showTdMarkdown).toBeFalsy(); - expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); - expect(listItems.length).toBe(FLAT_MIXED_ITEMS.length); - }) - ) - ); - - it( - 'should use custom icons if passed in', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = ITEMS_WITH_CUSTOM_ICONS; - await wait(fixture); - - const listItems: DebugElement[] = fixture.debugElement.queryAll( - By.css('mat-action-list button') - ); - - expect(listItems.length).toBe(ITEMS_WITH_CUSTOM_ICONS.length); - expect(listItems[0].nativeElement.textContent).toContain( - ITEMS_WITH_CUSTOM_ICONS[0].icon - ); - expect(listItems[1].nativeElement.textContent).toContain( - ITEMS_WITH_CUSTOM_ICONS[1].icon - ); - }) - ) - ); - - it( - 'should use descriptions if passed in', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = ITEMS_WITH_DESCRIPTIONS; - await wait(fixture); - - const listItems: DebugElement[] = fixture.debugElement.queryAll( - By.css('mat-action-list button') - ); - - expect(listItems.length).toBe(ITEMS_WITH_DESCRIPTIONS.length); - expect(listItems[0].nativeElement.textContent).toContain( - ITEMS_WITH_DESCRIPTIONS[0].description - ); - expect(listItems[1].nativeElement.textContent).toContain( - ITEMS_WITH_DESCRIPTIONS[1].description - ); - }) - ) - ); - - it( - 'should render a nested list of items', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = NESTED_MIXED_ITEMS; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - const listItems: DebugElement[] = fixture.debugElement.queryAll( - By.css('mat-action-list button') - ); - - expect(markdownNavigator.showEmptyState).toBeFalsy(); - expect(markdownNavigator.loading).toBeFalsy(); - expect(markdownNavigator.showGoBackButton).toBeFalsy(); - expect(markdownNavigator.showMenu).toBeTruthy(); - expect(markdownNavigator.showTdMarkdown).toBeFalsy(); - expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); - expect(listItems.length).toBe(NESTED_MIXED_ITEMS.length); - expect(listItems[0].nativeElement.textContent).toContain( - NESTED_MIXED_ITEMS[0].title - ); - expect(listItems[1].nativeElement.textContent).toContain( - NESTED_MIXED_ITEMS[1].title - ); - }) - ) - ); - - it( - 'should render list and markdown side by side', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = ITEMS_AT_SAME_LEVEL_AS_MARKDOWN; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ).componentInstance; + + expect(markdownNavigator.showEmptyState).toBeFalsy(); + expect(markdownNavigator.loading).toBeFalsy(); + expect(markdownNavigator.showGoBackButton).toBeFalsy(); + expect(markdownNavigator.showMenu).toBeFalsy(); + expect(markdownNavigator.showTdMarkdown).toBeTruthy(); + expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); + }) + )); + + it('should fetch childrenUrl and render', waitForAsync( + inject([], async () => { + const itemATitle = 'fetched item A'; + const itemBTitle = 'fetched item B'; + + const testData: IMarkdownNavigatorItem[] = [ + { title: itemATitle }, + { title: itemBTitle }, + ]; + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = ITEMS_WITH_CHILDREN_URL; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ).componentInstance; + + expect(markdownNavigator.showMenu).toBeTruthy(); + expect(markdownNavigator.showTdMarkdown).toBeFalsy(); + + getItem(fixture, 0).click(); + const req: TestRequest = httpTestingController.expectOne(CHILDREN_URL); + req.flush(testData); + + await wait(fixture); + await wait(fixture); + + expect(markdownNavigator.showMenu).toBeTruthy(); + expect(markdownNavigator.showTdMarkdown).toBeFalsy(); + expect(getItem(fixture, 0).textContent).toContain(itemATitle); + expect(getItem(fixture, 1).textContent).toContain(itemBTitle); + + httpTestingController.verify(); + }) + )); + + it('should show proper error messages', waitForAsync( + inject([], async () => { + const invalidMarkdownUrl = 'https://invalid_markdown_url.com'; + const invalidChildrenUrl = 'https://invalid_children_url.com'; + const ITEMS_WITH_ERRORS: IMarkdownNavigatorItem[] = [ + { + title: 'Invalid markdown url', + url: invalidMarkdownUrl, + children: [ + { + title: 'Invalid children url', + childrenUrl: invalidChildrenUrl, + }, + ], + }, + { + title: 'Invalid markdown and children url', + url: invalidMarkdownUrl, + childrenUrl: invalidChildrenUrl, + }, + ]; + const invalidMarkdownUrlOptions: object = { + status: 404, + statusText: 'Not Found', + }; + const message = 'Failed :('; + function getMarkdownLoaderError(): HTMLElement { + return ( fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - const listItems: DebugElement[] = fixture.debugElement.queryAll( - By.css('mat-action-list button') - ); - - expect(markdownNavigator.showTdMarkdown).toBeFalsy(); - expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); - expect(listItems.length).toBe(ITEMS_AT_SAME_LEVEL_AS_MARKDOWN.length); - expect(listItems[0].nativeElement.textContent).toContain( - ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].title - ); - expect(listItems[1].nativeElement.textContent).toContain( - ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[1].title - ); - getItem(fixture, 0).click(); - await wait(fixture); - - expect(markdownNavigator.showMenu).toBeTruthy(); - expect(markdownNavigator.showTdMarkdown).toBeTruthy(); - expect(getTitle(fixture)).toContain( - ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].title - ); - expect(getMarkdown(fixture)).toContain( - ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].markdownString - ); - - getItem(fixture, 0).click(); - await wait(fixture); - - if (!ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].children) { - return; - } - - expect(markdownNavigator.showMenu).toBeFalsy(); - expect(markdownNavigator.showTdMarkdown).toBeTruthy(); - expect(getTitle(fixture)).toContain( - ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].children[0].title - ); - expect(getMarkdown(fixture)).toContain( - ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].children[0].markdownString - ); - goBack(fixture); - - expect(markdownNavigator.showMenu).toBeTruthy(); - expect(markdownNavigator.showTdMarkdown).toBeTruthy(); - expect(getTitle(fixture)).toContain( - ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].title - ); - expect(getMarkdown(fixture)).toContain( - ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].markdownString - ); - }) - ) - ); - - it( - 'should use default labels if labels is undefined', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = undefined; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = + By.css('[data-test="markdown-loader-error"]') + ) || {} + ).nativeElement; + } + function getChildrenUrlError(): HTMLElement { + return ( fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - const elem: DebugElement = fixture.debugElement.query( + By.css('[data-test="children-url-error"]') + ) || {} + ).nativeElement; + } + + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + fixture.componentInstance.items = ITEMS_WITH_ERRORS; + + await wait(fixture); + getItem(fixture, 0).click(); + await wait(fixture); + + const invalidMarkdownUrlRequest: TestRequest = + httpTestingController.expectOne(invalidMarkdownUrl); + invalidMarkdownUrlRequest.flush(message, invalidMarkdownUrlOptions); + + await wait(fixture); + await wait(fixture); + await wait(fixture); + + expect(getMarkdownLoaderError()).toBeTruthy(); + expect(getMarkdownLoaderError().textContent).toContain('Not Found'); + + getItem(fixture, 0).click(); + const invalidChildrenUrlRequest: TestRequest = + httpTestingController.expectOne(invalidChildrenUrl); + invalidChildrenUrlRequest.flush(message, invalidMarkdownUrlOptions); + + await wait(fixture); + await wait(fixture); + await wait(fixture); + + expect(getMarkdownLoaderError()).toBeFalsy(); + expect(getChildrenUrlError()).toBeTruthy(); + goBack(fixture); + + const invalidMarkdownUrlRequest2: TestRequest = + httpTestingController.expectOne(invalidMarkdownUrl); + invalidMarkdownUrlRequest2.flush(message, invalidMarkdownUrlOptions); + + await wait(fixture); + await wait(fixture); + await wait(fixture); + + expect(getMarkdownLoaderError()).toBeTruthy(); + expect(getChildrenUrlError()).toBeFalsy(); + + goBack(fixture); + getItem(fixture, 1).click(); + await wait(fixture); + + const invalidMarkdownUrlRequest3: TestRequest = + httpTestingController.expectOne(invalidMarkdownUrl); + invalidMarkdownUrlRequest3.flush(message, invalidMarkdownUrlOptions); + const invalidChildrenUrlRequest2: TestRequest = + httpTestingController.expectOne(invalidChildrenUrl); + invalidChildrenUrlRequest2.flush(message, invalidMarkdownUrlOptions); + + await wait(fixture); + await wait(fixture); + await wait(fixture); + + expect(getMarkdownLoaderError()).toBeTruthy(); + expect(getChildrenUrlError()).toBeTruthy(); + + goBack(fixture); + + expect(getMarkdownLoaderError()).toBeFalsy(); + expect(getChildrenUrlError()).toBeFalsy(); + + httpTestingController.verify(); + }) + )); + + it('should render one url item from GitHub', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = URL_ITEM; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( By.directive(TdMarkdownNavigatorComponent) - ); - - expect(markdownNavigator.goBackLabel).toContain( - DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goBack - ); - expect(markdownNavigator.goHomeLabel).toContain( - DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goHome - ); - expect(markdownNavigator.emptyStateLabel).toContain( - DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState - ); - expect(elem.nativeElement.textContent).toContain( - DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState - ); - }) - ) - ); - - it( - 'should use default labels if labels is an empty object', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.labels = {}; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - const elem: DebugElement = fixture.debugElement.query( + ).componentInstance; + + expect(markdownNavigator.showEmptyState).toBeFalsy(); + expect(markdownNavigator.loading).toBeFalsy(); + expect(markdownNavigator.showGoBackButton).toBeFalsy(); + expect(markdownNavigator.showMenu).toBeFalsy(); + expect(markdownNavigator.showTdMarkdown).toBeFalsy(); + expect(markdownNavigator.showTdMarkdownLoader).toBeTruthy(); + }) + )); + + it('should render a flat list of items', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = FLAT_MIXED_ITEMS; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( By.directive(TdMarkdownNavigatorComponent) - ); - - expect(markdownNavigator.goBackLabel).toContain( - DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goBack - ); - expect(markdownNavigator.goHomeLabel).toContain( - DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goHome - ); - expect(markdownNavigator.emptyStateLabel).toContain( - DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState - ); - expect(elem.nativeElement.textContent).toContain( - DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState - ); - }) - ) - ); - - it( - 'should use labels if passed in', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - const SAMPLE_LABELS: IMarkdownNavigatorLabels = { - goHome: 'Vete pa tu casa', - goBack: 'Regresa', - emptyState: 'No hay nada', - }; - fixture.componentInstance.labels = SAMPLE_LABELS; - await wait(fixture); - - const markdownNavigator: TdMarkdownNavigatorComponent = - fixture.debugElement.query( - By.directive(TdMarkdownNavigatorComponent) - ).componentInstance; - const elem: DebugElement = fixture.debugElement.query( + ).componentInstance; + const listItems: DebugElement[] = fixture.debugElement.queryAll( + By.css('mat-action-list button') + ); + + expect(markdownNavigator.showEmptyState).toBeFalsy(); + expect(markdownNavigator.loading).toBeFalsy(); + expect(markdownNavigator.showGoBackButton).toBeFalsy(); + expect(markdownNavigator.showMenu).toBeTruthy(); + expect(markdownNavigator.showTdMarkdown).toBeFalsy(); + expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); + expect(listItems.length).toBe(FLAT_MIXED_ITEMS.length); + }) + )); + + it('should use custom icons if passed in', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = ITEMS_WITH_CUSTOM_ICONS; + await wait(fixture); + + const listItems: DebugElement[] = fixture.debugElement.queryAll( + By.css('mat-action-list button') + ); + + expect(listItems.length).toBe(ITEMS_WITH_CUSTOM_ICONS.length); + expect(listItems[0].nativeElement.textContent).toContain( + ITEMS_WITH_CUSTOM_ICONS[0].icon + ); + expect(listItems[1].nativeElement.textContent).toContain( + ITEMS_WITH_CUSTOM_ICONS[1].icon + ); + }) + )); + + it('should use descriptions if passed in', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = ITEMS_WITH_DESCRIPTIONS; + await wait(fixture); + + const listItems: DebugElement[] = fixture.debugElement.queryAll( + By.css('mat-action-list button') + ); + + expect(listItems.length).toBe(ITEMS_WITH_DESCRIPTIONS.length); + expect(listItems[0].nativeElement.textContent).toContain( + ITEMS_WITH_DESCRIPTIONS[0].description + ); + expect(listItems[1].nativeElement.textContent).toContain( + ITEMS_WITH_DESCRIPTIONS[1].description + ); + }) + )); + + it('should render a nested list of items', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = NESTED_MIXED_ITEMS; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( By.directive(TdMarkdownNavigatorComponent) - ); - - expect(markdownNavigator.goBackLabel).toContain(SAMPLE_LABELS.goBack); - expect(markdownNavigator.goHomeLabel).toContain(SAMPLE_LABELS.goHome); - expect(markdownNavigator.emptyStateLabel).toContain( - SAMPLE_LABELS.emptyState - ); - expect(elem.nativeElement.textContent).toContain( - SAMPLE_LABELS.emptyState - ); - }) - ) - ); - - it( - 'should be able to navigate up and down tree using the back button', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = DEEPLY_NESTED_TREE; - await wait(fixture); - - validateTree(fixture); - }) - ) - ); - - it( - 'should be able to go to root using home button', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = DEEPLY_NESTED_TREE; - await wait(fixture); - - getItem(fixture, 0).click(); - await wait(fixture); - getItem(fixture, 0).click(); - await wait(fixture); - getItem(fixture, 0).click(); - await wait(fixture); - expect(getMarkdown(fixture)).toContain('A1I'); - await goHome(fixture); - expect(getItem(fixture, 0).textContent).toContain('A'); - expect(getItem(fixture, 1).textContent).toContain('B'); - - validateTree(fixture); - }) - ) - ); - - it( - 'should be able to start at a certain item by passing a reference to that item', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - fixture.componentInstance.items = DEEPLY_NESTED_TREE; - fixture.componentInstance.startAt = DEEPLY_NESTED_TREE[0]; - await wait(fixture); - expect(getTitle(fixture)).toContain('A'); - goBack(fixture); - - // should not jump to new spot unless items is changed - fixture.componentInstance.startAt = DEEPLY_NESTED_TREE[0].children - ? DEEPLY_NESTED_TREE[0].children[0] - : []; - await wait(fixture); - expect(getItem(fixture, 0).textContent).toContain('A'); - - // should handle an invalid startAt - fixture.componentInstance.items = NESTED_MIXED_ITEMS; - await wait(fixture); - expect(getItem(fixture, 0).textContent).toContain('First item'); - - fixture.componentInstance.items = DEEPLY_NESTED_TREE; - fixture.componentInstance.startAt = DEEPLY_NESTED_TREE[1]; - await wait(fixture); - expect(getTitle(fixture)).toContain('B'); - await goBack(fixture); - validateTree(fixture); - }) - ) - ); - - it( - 'should be able to jump to start at a certain item by referencing an id', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = DEEPLY_NESTED_TREE; - fixture.componentInstance.startAt = { id: 'A_ID' }; - await wait(fixture); - expect(getTitle(fixture)).toContain('A'); - await goBack(fixture); - validateTree(fixture); - }) - ) - ); - - it( - 'should be able to jump to start at a certain item by referencing a path of items', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = DEEPLY_NESTED_TREE; - fixture.componentInstance.startAt = [{ id: 'A_ID' }]; - await wait(fixture); - await wait(fixture); - expect(getTitle(fixture)).toContain('A'); - await goBack(fixture); - validateTree(fixture); - }) - ) - ); - - it( - 'should not jump anywhere if path is invalid', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = DEEPLY_NESTED_TREE; - fixture.componentInstance.startAt = [ - { id: 'A_ID' }, - { id: 'NON_EXISTING_ID' }, - ]; - await wait(fixture); - await wait(fixture); - expect(getItem(fixture, 0).textContent).toContain('A'); - expect(getItem(fixture, 1).textContent).toContain('B'); - validateTree(fixture); - }) - ) - ); - - it( - 'should be able to jump to start at a certain item by referencing a path of items that depends on children_url', - waitForAsync( - inject([], async () => { - const childrenUrl1: string = CHILDREN_URL; - const childrenUrl2 = 'https://anothersamplechildrenurl.com'; - const childrenUrlRequest1: IMarkdownNavigatorItem[] = [ - { id: '2a', title: '2a', childrenUrl: childrenUrl2 }, - ]; - const childrenUrlRequest2: IMarkdownNavigatorItem[] = [ - { title: '3c', id: '3c' }, - ]; - - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = ITEMS_WITH_CHILDREN_URL; - fixture.componentInstance.startAt = [ - { id: 'root' }, - { id: '2a' }, - { id: '3c' }, - ]; - await wait(fixture); - const req1: TestRequest = httpTestingController.expectOne(childrenUrl1); - req1.flush(childrenUrlRequest1); - await wait(fixture); - const req2: TestRequest = httpTestingController.expectOne(childrenUrl2); - req2.flush(childrenUrlRequest2); - await wait(fixture); - await wait(fixture); - expect(getTitle(fixture)).toContain('3c'); - }) - ) - ); - - it( - 'should be able to jump to start at a certain item by using a custom compareWith function', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = DEEPLY_NESTED_TREE; - fixture.componentInstance.compareWith = compareByTitle; - fixture.componentInstance.startAt = { title: 'A' }; - await wait(fixture); - expect(getTitle(fixture)).toContain('A'); - - function deepHackyComparison( - o1: IMarkdownNavigatorItem, - o2: IMarkdownNavigatorItem - ): boolean { - // order matters - return JSON.stringify(o1) === JSON.stringify(o2); - } - - fixture.componentInstance.compareWith = deepHackyComparison; - fixture.componentInstance.items = NESTED_MIXED_ITEMS; - fixture.componentInstance.startAt = NESTED_MIXED_ITEMS[1]; - await wait(fixture); - expect(getTitle(fixture)).toContain(NESTED_MIXED_ITEMS[1].title); - }) - ) - ); - - it( - 'should be able to render a custom component as a footer', - waitForAsync( - inject([], async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownNavigatorTestComponent); - - fixture.componentInstance.items = ITEMS_WITH_FOOTERS; - fixture.componentInstance.footer = GlobalFooterComponent; - - await wait(fixture); - - expect(fixture.nativeElement.textContent).toContain( - 'Global Footer Content' - ); - - getItem(fixture, 0).click(); - - await wait(fixture); - - expect(fixture.nativeElement.textContent).toContain('Footer A Content'); - - goBack(fixture); - - await wait(fixture); - - getItem(fixture, 1).click(); - - await wait(fixture); - - expect(fixture.nativeElement.textContent).toContain( - 'Global Footer Content' - ); - }) - ) - ); + ).componentInstance; + const listItems: DebugElement[] = fixture.debugElement.queryAll( + By.css('mat-action-list button') + ); + + expect(markdownNavigator.showEmptyState).toBeFalsy(); + expect(markdownNavigator.loading).toBeFalsy(); + expect(markdownNavigator.showGoBackButton).toBeFalsy(); + expect(markdownNavigator.showMenu).toBeTruthy(); + expect(markdownNavigator.showTdMarkdown).toBeFalsy(); + expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); + expect(listItems.length).toBe(NESTED_MIXED_ITEMS.length); + expect(listItems[0].nativeElement.textContent).toContain( + NESTED_MIXED_ITEMS[0].title + ); + expect(listItems[1].nativeElement.textContent).toContain( + NESTED_MIXED_ITEMS[1].title + ); + }) + )); + + it('should render list and markdown side by side', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = ITEMS_AT_SAME_LEVEL_AS_MARKDOWN; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ).componentInstance; + const listItems: DebugElement[] = fixture.debugElement.queryAll( + By.css('mat-action-list button') + ); + + expect(markdownNavigator.showTdMarkdown).toBeFalsy(); + expect(markdownNavigator.showTdMarkdownLoader).toBeFalsy(); + expect(listItems.length).toBe(ITEMS_AT_SAME_LEVEL_AS_MARKDOWN.length); + expect(listItems[0].nativeElement.textContent).toContain( + ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].title + ); + expect(listItems[1].nativeElement.textContent).toContain( + ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[1].title + ); + getItem(fixture, 0).click(); + await wait(fixture); + + expect(markdownNavigator.showMenu).toBeTruthy(); + expect(markdownNavigator.showTdMarkdown).toBeTruthy(); + expect(getTitle(fixture)).toContain( + ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].title + ); + expect(getMarkdown(fixture)).toContain( + ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].markdownString + ); + + getItem(fixture, 0).click(); + await wait(fixture); + + if (!ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].children) { + return; + } + + expect(markdownNavigator.showMenu).toBeFalsy(); + expect(markdownNavigator.showTdMarkdown).toBeTruthy(); + expect(getTitle(fixture)).toContain( + ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].children[0].title + ); + expect(getMarkdown(fixture)).toContain( + ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].children[0].markdownString + ); + goBack(fixture); + + expect(markdownNavigator.showMenu).toBeTruthy(); + expect(markdownNavigator.showTdMarkdown).toBeTruthy(); + expect(getTitle(fixture)).toContain( + ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].title + ); + expect(getMarkdown(fixture)).toContain( + ITEMS_AT_SAME_LEVEL_AS_MARKDOWN[0].markdownString + ); + }) + )); + + it('should use default labels if labels is undefined', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = undefined; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ).componentInstance; + const elem: DebugElement = fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ); + + expect(markdownNavigator.goBackLabel).toContain( + DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goBack + ); + expect(markdownNavigator.goHomeLabel).toContain( + DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goHome + ); + expect(markdownNavigator.emptyStateLabel).toContain( + DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState + ); + expect(elem.nativeElement.textContent).toContain( + DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState + ); + }) + )); + + it('should use default labels if labels is an empty object', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.labels = {}; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ).componentInstance; + const elem: DebugElement = fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ); + + expect(markdownNavigator.goBackLabel).toContain( + DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goBack + ); + expect(markdownNavigator.goHomeLabel).toContain( + DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goHome + ); + expect(markdownNavigator.emptyStateLabel).toContain( + DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState + ); + expect(elem.nativeElement.textContent).toContain( + DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState + ); + }) + )); + + it('should use labels if passed in', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + const SAMPLE_LABELS: IMarkdownNavigatorLabels = { + goHome: 'Vete pa tu casa', + goBack: 'Regresa', + emptyState: 'No hay nada', + }; + fixture.componentInstance.labels = SAMPLE_LABELS; + await wait(fixture); + + const markdownNavigator: TdMarkdownNavigatorComponent = + fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ).componentInstance; + const elem: DebugElement = fixture.debugElement.query( + By.directive(TdMarkdownNavigatorComponent) + ); + + expect(markdownNavigator.goBackLabel).toContain(SAMPLE_LABELS.goBack); + expect(markdownNavigator.goHomeLabel).toContain(SAMPLE_LABELS.goHome); + expect(markdownNavigator.emptyStateLabel).toContain( + SAMPLE_LABELS.emptyState + ); + expect(elem.nativeElement.textContent).toContain( + SAMPLE_LABELS.emptyState + ); + }) + )); + + it('should be able to navigate up and down tree using the back button', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = DEEPLY_NESTED_TREE; + await wait(fixture); + + validateTree(fixture); + }) + )); + + it('should be able to go to root using home button', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = DEEPLY_NESTED_TREE; + await wait(fixture); + + getItem(fixture, 0).click(); + await wait(fixture); + getItem(fixture, 0).click(); + await wait(fixture); + getItem(fixture, 0).click(); + await wait(fixture); + expect(getMarkdown(fixture)).toContain('A1I'); + await goHome(fixture); + expect(getItem(fixture, 0).textContent).toContain('A'); + expect(getItem(fixture, 1).textContent).toContain('B'); + + validateTree(fixture); + }) + )); + + it('should be able to start at a certain item by passing a reference to that item', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + fixture.componentInstance.items = DEEPLY_NESTED_TREE; + fixture.componentInstance.startAt = DEEPLY_NESTED_TREE[0]; + await wait(fixture); + expect(getTitle(fixture)).toContain('A'); + goBack(fixture); + + // should not jump to new spot unless items is changed + fixture.componentInstance.startAt = DEEPLY_NESTED_TREE[0].children + ? DEEPLY_NESTED_TREE[0].children[0] + : []; + await wait(fixture); + expect(getItem(fixture, 0).textContent).toContain('A'); + + // should handle an invalid startAt + fixture.componentInstance.items = NESTED_MIXED_ITEMS; + await wait(fixture); + expect(getItem(fixture, 0).textContent).toContain('First item'); + + fixture.componentInstance.items = DEEPLY_NESTED_TREE; + fixture.componentInstance.startAt = DEEPLY_NESTED_TREE[1]; + await wait(fixture); + expect(getTitle(fixture)).toContain('B'); + await goBack(fixture); + validateTree(fixture); + }) + )); + + it('should be able to jump to start at a certain item by referencing an id', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = DEEPLY_NESTED_TREE; + fixture.componentInstance.startAt = { id: 'A_ID' }; + await wait(fixture); + expect(getTitle(fixture)).toContain('A'); + await goBack(fixture); + validateTree(fixture); + }) + )); + + it('should be able to jump to start at a certain item by referencing a path of items', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = DEEPLY_NESTED_TREE; + fixture.componentInstance.startAt = [{ id: 'A_ID' }]; + await wait(fixture); + await wait(fixture); + expect(getTitle(fixture)).toContain('A'); + await goBack(fixture); + validateTree(fixture); + }) + )); + + it('should not jump anywhere if path is invalid', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = DEEPLY_NESTED_TREE; + fixture.componentInstance.startAt = [ + { id: 'A_ID' }, + { id: 'NON_EXISTING_ID' }, + ]; + await wait(fixture); + await wait(fixture); + expect(getItem(fixture, 0).textContent).toContain('A'); + expect(getItem(fixture, 1).textContent).toContain('B'); + validateTree(fixture); + }) + )); + + it('should be able to jump to start at a certain item by referencing a path of items that depends on children_url', waitForAsync( + inject([], async () => { + const childrenUrl1: string = CHILDREN_URL; + const childrenUrl2 = 'https://anothersamplechildrenurl.com'; + const childrenUrlRequest1: IMarkdownNavigatorItem[] = [ + { id: '2a', title: '2a', childrenUrl: childrenUrl2 }, + ]; + const childrenUrlRequest2: IMarkdownNavigatorItem[] = [ + { title: '3c', id: '3c' }, + ]; + + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = ITEMS_WITH_CHILDREN_URL; + fixture.componentInstance.startAt = [ + { id: 'root' }, + { id: '2a' }, + { id: '3c' }, + ]; + await wait(fixture); + const req1: TestRequest = httpTestingController.expectOne(childrenUrl1); + req1.flush(childrenUrlRequest1); + await wait(fixture); + const req2: TestRequest = httpTestingController.expectOne(childrenUrl2); + req2.flush(childrenUrlRequest2); + await wait(fixture); + await wait(fixture); + expect(getTitle(fixture)).toContain('3c'); + }) + )); + + it('should be able to jump to start at a certain item by using a custom compareWith function', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = DEEPLY_NESTED_TREE; + fixture.componentInstance.compareWith = compareByTitle; + fixture.componentInstance.startAt = { title: 'A' }; + await wait(fixture); + expect(getTitle(fixture)).toContain('A'); + + function deepHackyComparison( + o1: IMarkdownNavigatorItem, + o2: IMarkdownNavigatorItem + ): boolean { + // order matters + return JSON.stringify(o1) === JSON.stringify(o2); + } + + fixture.componentInstance.compareWith = deepHackyComparison; + fixture.componentInstance.items = NESTED_MIXED_ITEMS; + fixture.componentInstance.startAt = NESTED_MIXED_ITEMS[1]; + await wait(fixture); + expect(getTitle(fixture)).toContain(NESTED_MIXED_ITEMS[1].title); + }) + )); + + it('should be able to render a custom component as a footer', waitForAsync( + inject([], async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownNavigatorTestComponent); + + fixture.componentInstance.items = ITEMS_WITH_FOOTERS; + fixture.componentInstance.footer = GlobalFooterComponent; + + await wait(fixture); + + expect(fixture.nativeElement.textContent).toContain( + 'Global Footer Content' + ); + + getItem(fixture, 0).click(); + + await wait(fixture); + + expect(fixture.nativeElement.textContent).toContain('Footer A Content'); + + goBack(fixture); + + await wait(fixture); + + getItem(fixture, 1).click(); + + await wait(fixture); + + expect(fixture.nativeElement.textContent).toContain( + 'Global Footer Content' + ); + }) + )); }); diff --git a/libs/markdown/_markdown-theme.scss b/libs/markdown/_markdown-theme.scss index 14586112e3..6122e8a627 100644 --- a/libs/markdown/_markdown-theme.scss +++ b/libs/markdown/_markdown-theme.scss @@ -7,63 +7,66 @@ td-markdown { a { - color: mat.get-color-from-palette($accent); + color: mat.m2-get-color-from-palette($accent); } h1, h2 { - border-bottom-color: mat.get-color-from-palette($foreground, divider); + border-bottom-color: mat.m2-get-color-from-palette($foreground, divider); } h3, h4, h5, h6 { - color: mat.get-color-from-palette($foreground, secondary-text); + color: mat.m2-get-color-from-palette($foreground, secondary-text); } hr { - border-color: mat.get-color-from-palette($foreground, divider); + border-color: mat.m2-get-color-from-palette($foreground, divider); } blockquote { - color: mat.get-color-from-palette($foreground, secondary-text); - border-left-color: mat.get-color-from-palette($foreground, divider); + color: mat.m2-get-color-from-palette($foreground, secondary-text); + border-left-color: mat.m2-get-color-from-palette($foreground, divider); } table { th, td { - border-color: mat.get-color-from-palette($foreground, dividers); + border-color: mat.m2-get-color-from-palette($foreground, dividers); } tr { - border-top-color: mat.get-color-from-palette($foreground, dividers); + border-top-color: mat.m2-get-color-from-palette($foreground, dividers); &:nth-child(2n) { - background-color: mat.get-color-from-palette($foreground, dividers); + background-color: mat.m2-get-color-from-palette( + $foreground, + dividers + ); } } } img { - background-color: mat.get-color-from-palette($background, card); + background-color: mat.m2-get-color-from-palette($background, card); } code { - background-color: mat.get-color-from-palette($background, hover); + background-color: mat.m2-get-color-from-palette($background, hover); } .highlight pre, pre { - background-color: mat.get-color-from-palette($background, app-bar); + background-color: mat.m2-get-color-from-palette($background, app-bar); } kbd { - color: mat.get-color-from-palette($foreground, secondary-text); - background-color: mat.get-color-from-palette($background, app-bar); - border-color: mat.get-color-from-palette($foreground, divider); - border-bottom-color: mat.get-color-from-palette($foreground, disabled); + color: mat.m2-get-color-from-palette($foreground, secondary-text); + background-color: mat.m2-get-color-from-palette($background, app-bar); + border-color: mat.m2-get-color-from-palette($foreground, divider); + border-bottom-color: mat.m2-get-color-from-palette($foreground, disabled); } } } diff --git a/libs/markdown/src/lib/markdown.component.spec.ts b/libs/markdown/src/lib/markdown.component.spec.ts index dfd053d4da..1ec5f21802 100644 --- a/libs/markdown/src/lib/markdown.component.spec.ts +++ b/libs/markdown/src/lib/markdown.component.spec.ts @@ -56,178 +56,156 @@ function anchorTestNonEnglishMarkdown(): string { } describe('Component: Markdown', () => { - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [CovalentMarkdownModule], - declarations: [ - TdMarkdownEmptyStaticContentTestRenderingComponent, - TdMarkdownStaticContentTestRenderingComponent, - TdMarkdownDymanicContentTestRenderingComponent, - TdMarkdownSimpleLineBreaksTestRenderingComponent, - - TdMarkdownEmptyStaticContentTestEventsComponent, - TdMarkdownStaticContentTestEventsComponent, - TdMarkdownDynamicContentTestEventsComponent, - TdMarkdownAnchorsTestEventsComponent, - TdMarkdownLinksTestEventsComponent, - ], - }); - TestBed.compileComponents(); - }) - ); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [CovalentMarkdownModule], + declarations: [ + TdMarkdownEmptyStaticContentTestRenderingComponent, + TdMarkdownStaticContentTestRenderingComponent, + TdMarkdownDymanicContentTestRenderingComponent, + TdMarkdownSimpleLineBreaksTestRenderingComponent, + + TdMarkdownEmptyStaticContentTestEventsComponent, + TdMarkdownStaticContentTestEventsComponent, + TdMarkdownDynamicContentTestEventsComponent, + TdMarkdownAnchorsTestEventsComponent, + TdMarkdownLinksTestEventsComponent, + ], + }); + TestBed.compileComponents(); + })); describe('Rendering: ', () => { - it( - 'should render empty static content', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownEmptyStaticContentTestRenderingComponent - ); - const element: HTMLElement = fixture.nativeElement; - - expect( - fixture.debugElement - .query(By.css('td-markdown')) - .nativeElement.textContent.trim() - ).toBe(``); - expect(element.querySelector('td-markdown div')).toBeFalsy(); + it('should render empty static content', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent( + TdMarkdownEmptyStaticContentTestRenderingComponent + ); + const element: HTMLElement = fixture.nativeElement; + + expect( + fixture.debugElement + .query(By.css('td-markdown')) + .nativeElement.textContent.trim() + ).toBe(``); + expect(element.querySelector('td-markdown div')).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(element.querySelector('td-markdown div')).toBeFalsy(); - expect( - fixture.debugElement - .query(By.css('td-markdown')) - .nativeElement.textContent.trim() - ).toBe(''); - }); - }) - ); - - it( - 'should render markup from static content', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownStaticContentTestRenderingComponent - ); - const element: HTMLElement = fixture.nativeElement; - + expect(element.querySelector('td-markdown div')).toBeFalsy(); expect( fixture.debugElement .query(By.css('td-markdown')) .nativeElement.textContent.trim() - ).toBe( - ` + ).toBe(''); + }); + })); + + it('should render markup from static content', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownStaticContentTestRenderingComponent); + const element: HTMLElement = fixture.nativeElement; + + expect( + fixture.debugElement + .query(By.css('td-markdown')) + .nativeElement.textContent.trim() + ).toBe( + ` # title * list item`.trim() - ); - expect(element.querySelector('td-markdown div')).toBeFalsy(); + ); + expect(element.querySelector('td-markdown div')).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(element.querySelector('td-markdown div')).toBeTruthy(); - expect( - element.querySelector('td-markdown div h1')?.textContent?.trim() - ).toBe('title'); - expect( - element.querySelector('td-markdown div ul li')?.textContent?.trim() - ).toBe('list item'); - }); - }) - ); - - it( - 'should render newlines as
if simpleLineBreaks is true', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownSimpleLineBreaksTestRenderingComponent - ); - const component: TdMarkdownSimpleLineBreaksTestRenderingComponent = - fixture.debugElement.componentInstance; - component.simpleLineBreaks = true; - const element: HTMLElement = fixture.nativeElement; - + expect(element.querySelector('td-markdown div')).toBeTruthy(); expect( - fixture.debugElement - .query(By.css('td-markdown')) - .nativeElement.textContent.trim() - ).toBe( - ` + element.querySelector('td-markdown div h1')?.textContent?.trim() + ).toBe('title'); + expect( + element.querySelector('td-markdown div ul li')?.textContent?.trim() + ).toBe('list item'); + }); + })); + + it('should render newlines as
if simpleLineBreaks is true', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent( + TdMarkdownSimpleLineBreaksTestRenderingComponent + ); + const component: TdMarkdownSimpleLineBreaksTestRenderingComponent = + fixture.debugElement.componentInstance; + component.simpleLineBreaks = true; + const element: HTMLElement = fixture.nativeElement; + + expect( + fixture.debugElement + .query(By.css('td-markdown')) + .nativeElement.textContent.trim() + ).toBe( + ` first line second line third line `.trim() - ); - expect(element.querySelector('td-markdown div')).toBeFalsy(); + ); + expect(element.querySelector('td-markdown div')).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(element.querySelector('td-markdown div')).toBeTruthy(); - expect( - element.querySelector('td-markdown')?.querySelectorAll('br') - .length - ).toBe(2); - }); + expect(element.querySelector('td-markdown div')).toBeTruthy(); + expect( + element.querySelector('td-markdown')?.querySelectorAll('br').length + ).toBe(2); }); - }) - ); - - it( - 'should not render newlines as
if simpleLineBreaks is false', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownSimpleLineBreaksTestRenderingComponent - ); - const component: TdMarkdownSimpleLineBreaksTestRenderingComponent = - fixture.debugElement.componentInstance; - component.simpleLineBreaks = false; - const element: HTMLElement = fixture.nativeElement; + }); + })); - expect( - fixture.debugElement - .query(By.css('td-markdown')) - .nativeElement.textContent.trim() - ).toBe( - ` + it('should not render newlines as
if simpleLineBreaks is false', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent( + TdMarkdownSimpleLineBreaksTestRenderingComponent + ); + const component: TdMarkdownSimpleLineBreaksTestRenderingComponent = + fixture.debugElement.componentInstance; + component.simpleLineBreaks = false; + const element: HTMLElement = fixture.nativeElement; + + expect( + fixture.debugElement + .query(By.css('td-markdown')) + .nativeElement.textContent.trim() + ).toBe( + ` first line second line third line `.trim() - ); - expect(element.querySelector('td-markdown div')).toBeFalsy(); + ); + expect(element.querySelector('td-markdown div')).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(element.querySelector('td-markdown div')).toBeTruthy(); - expect( - element.querySelector('td-markdown')?.querySelectorAll('br') - .length - ).toBe(0); - }); + expect(element.querySelector('td-markdown div')).toBeTruthy(); + expect( + element.querySelector('td-markdown')?.querySelectorAll('br').length + ).toBe(0); }); - }) - ); + }); + })); - it( - 'should render markup from dynamic content', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownDymanicContentTestRenderingComponent - ); - const component: TdMarkdownDymanicContentTestRenderingComponent = - fixture.debugElement.componentInstance; - component.content = ` + it('should render markup from dynamic content', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownDymanicContentTestRenderingComponent); + const component: TdMarkdownDymanicContentTestRenderingComponent = + fixture.debugElement.componentInstance; + component.content = ` # another title ## subtitle @@ -235,148 +213,136 @@ describe('Component: Markdown', () => { \`\`\` pseudo code \`\`\``; - const element: HTMLElement = fixture.nativeElement; - - expect( - fixture.debugElement - .query(By.css('td-markdown')) - .nativeElement.textContent.trim() - ).toBe(''); - expect(element.querySelector('td-markdown div')).toBeFalsy(); + const element: HTMLElement = fixture.nativeElement; + + expect( + fixture.debugElement + .query(By.css('td-markdown')) + .nativeElement.textContent.trim() + ).toBe(''); + expect(element.querySelector('td-markdown div')).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(element.querySelector('td-markdown div')).toBeTruthy(); - expect( - element.querySelector('td-markdown div h1')?.textContent?.trim() - ).toBe('another title'); - expect( - element.querySelector('td-markdown div h2')?.textContent?.trim() - ).toBe('subtitle'); - expect( - element.querySelector('td-markdown div code')?.textContent?.trim() - ).toBe('pseudo code'); - }); - }) - ); + expect(element.querySelector('td-markdown div')).toBeTruthy(); + expect( + element.querySelector('td-markdown div h1')?.textContent?.trim() + ).toBe('another title'); + expect( + element.querySelector('td-markdown div h2')?.textContent?.trim() + ).toBe('subtitle'); + expect( + element.querySelector('td-markdown div code')?.textContent?.trim() + ).toBe('pseudo code'); + }); + })); - it( - 'should render markup from dynamic content incorrectly', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownDymanicContentTestRenderingComponent - ); - const component: TdMarkdownDymanicContentTestRenderingComponent = - fixture.debugElement.componentInstance; - component.content = ` + it('should render markup from dynamic content incorrectly', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownDymanicContentTestRenderingComponent); + const component: TdMarkdownDymanicContentTestRenderingComponent = + fixture.debugElement.componentInstance; + component.content = ` # another title ## subtitle`; - const element: HTMLElement = fixture.nativeElement; - - expect( - fixture.debugElement - .query(By.css('td-markdown')) - .nativeElement.textContent.trim() - ).toBe(''); - expect(element.querySelector('td-markdown div')).toBeFalsy(); + const element: HTMLElement = fixture.nativeElement; + + expect( + fixture.debugElement + .query(By.css('td-markdown')) + .nativeElement.textContent.trim() + ).toBe(''); + expect(element.querySelector('td-markdown div')).toBeFalsy(); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(element.querySelector('td-markdown div')).toBeTruthy(); - expect( - element.querySelector('td-markdown div h1')?.textContent?.trim() - ).toBe('another title'); - expect(element.querySelector('td-markdown div h2')).toBeFalsy(); - expect( - element.querySelector('td-markdown div')?.textContent?.trim() - ).toContain('## subtitle'); - }); - }) - ); - - it( - 'should jump to anchor when anchor input is changed', - waitForAsync(async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownAnchorsTestEventsComponent); - const component: TdMarkdownAnchorsTestEventsComponent = - fixture.debugElement.componentInstance; - component.content = anchorTestMarkdown(); + expect(element.querySelector('td-markdown div')).toBeTruthy(); + expect( + element.querySelector('td-markdown div h1')?.textContent?.trim() + ).toBe('another title'); + expect(element.querySelector('td-markdown div h2')).toBeFalsy(); + expect( + element.querySelector('td-markdown div')?.textContent?.trim() + ).toContain('## subtitle'); + }); + })); - fixture.detectChanges(); - await fixture.whenStable(); + it('should jump to anchor when anchor input is changed', waitForAsync(async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownAnchorsTestEventsComponent); + const component: TdMarkdownAnchorsTestEventsComponent = + fixture.debugElement.componentInstance; + component.content = anchorTestMarkdown(); - window.scrollTo(0, 0); - const originalScrollPos: number = window.scrollY; - component.anchor = 'heading 1'; + fixture.detectChanges(); + await fixture.whenStable(); - fixture.detectChanges(); - await fixture.whenStable(); + window.scrollTo(0, 0); + const originalScrollPos: number = window.scrollY; + component.anchor = 'heading 1'; - const heading1ScrollPos: number = window.scrollY; - expect(heading1ScrollPos).toBeGreaterThanOrEqual(originalScrollPos); + fixture.detectChanges(); + await fixture.whenStable(); - component.anchor = 'heading 2'; + const heading1ScrollPos: number = window.scrollY; + expect(heading1ScrollPos).toBeGreaterThanOrEqual(originalScrollPos); - fixture.detectChanges(); - await fixture.whenStable(); + component.anchor = 'heading 2'; - const heading2ScrollPos: number = window.scrollY; - expect(heading2ScrollPos).toBeGreaterThanOrEqual(heading1ScrollPos); + fixture.detectChanges(); + await fixture.whenStable(); - component.anchor = 'heading 1'; + const heading2ScrollPos: number = window.scrollY; + expect(heading2ScrollPos).toBeGreaterThanOrEqual(heading1ScrollPos); - fixture.detectChanges(); - await fixture.whenStable(); - - expect(window.scrollY).toBeLessThanOrEqual(heading2ScrollPos); - }) - ); - - it( - 'should jump to anchor if an anchor link is clicked', - waitForAsync(async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownAnchorsTestEventsComponent); - const component: TdMarkdownAnchorsTestEventsComponent = - fixture.debugElement.componentInstance; - component.content = anchorTestMarkdown(); + component.anchor = 'heading 1'; - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - window.scrollTo(0, 0); - const originalScrollPos: number = window.scrollY; - const headings: HTMLElement[] = - fixture.debugElement.nativeElement.querySelectorAll('a'); - const heading1: HTMLElement = headings[0]; - const heading2: HTMLElement = headings[1]; - heading1.click(); + expect(window.scrollY).toBeLessThanOrEqual(heading2ScrollPos); + })); - fixture.detectChanges(); - await fixture.whenStable(); + it('should jump to anchor if an anchor link is clicked', waitForAsync(async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownAnchorsTestEventsComponent); + const component: TdMarkdownAnchorsTestEventsComponent = + fixture.debugElement.componentInstance; + component.content = anchorTestMarkdown(); - const heading1ScrollPos: number = window.scrollY; - expect(heading1ScrollPos).toBeGreaterThanOrEqual(originalScrollPos); + fixture.detectChanges(); + await fixture.whenStable(); - heading2.click(); + window.scrollTo(0, 0); + const originalScrollPos: number = window.scrollY; + const headings: HTMLElement[] = + fixture.debugElement.nativeElement.querySelectorAll('a'); + const heading1: HTMLElement = headings[0]; + const heading2: HTMLElement = headings[1]; + heading1.click(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - const heading2ScrollPos: number = window.scrollY; - expect(heading2ScrollPos).toBeGreaterThanOrEqual(heading1ScrollPos); + const heading1ScrollPos: number = window.scrollY; + expect(heading1ScrollPos).toBeGreaterThanOrEqual(originalScrollPos); - heading1.click(); + heading2.click(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); + + const heading2ScrollPos: number = window.scrollY; + expect(heading2ScrollPos).toBeGreaterThanOrEqual(heading1ScrollPos); - expect(window.scrollY).toBeLessThanOrEqual(heading2ScrollPos); - }) - ); + heading1.click(); + + fixture.detectChanges(); + await fixture.whenStable(); + + expect(window.scrollY).toBeLessThanOrEqual(heading2ScrollPos); + })); it('should jump to anchor if an anchor link is clicked but should not run change detection', async () => { const fixture: ComponentFixture = @@ -417,7 +383,6 @@ describe('Component: Markdown', () => { component.anchor = 'heading 1'; component.content = anchorTestMarkdown(); - const originalScrollPos: number = window.scrollY; const { componentInstance } = fixture.debugElement.query( By.directive(TdMarkdownComponent) ); @@ -434,247 +399,228 @@ describe('Component: Markdown', () => { expect(contentReadySpy).toHaveBeenCalled(); })); - it( - 'should jump to anchor if an anchor link is clicked regardless of lang', - waitForAsync(async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownAnchorsTestEventsComponent); - const component: TdMarkdownAnchorsTestEventsComponent = - fixture.debugElement.componentInstance; - component.content = anchorTestNonEnglishMarkdown(); + it('should jump to anchor if an anchor link is clicked regardless of lang', waitForAsync(async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownAnchorsTestEventsComponent); + const component: TdMarkdownAnchorsTestEventsComponent = + fixture.debugElement.componentInstance; + component.content = anchorTestNonEnglishMarkdown(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - window.scrollTo(0, 0); - const originalScrollPos: number = window.scrollY; - const headings: HTMLElement[] = - fixture.debugElement.nativeElement.querySelectorAll('a'); - const heading1: HTMLElement = headings[0]; - const heading2: HTMLElement = headings[1]; - heading1.click(); + window.scrollTo(0, 0); + const originalScrollPos: number = window.scrollY; + const headings: HTMLElement[] = + fixture.debugElement.nativeElement.querySelectorAll('a'); + const heading1: HTMLElement = headings[0]; + const heading2: HTMLElement = headings[1]; + heading1.click(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - const heading1ScrollPos: number = window.scrollY; - expect(heading1ScrollPos).toBeGreaterThanOrEqual(originalScrollPos); + const heading1ScrollPos: number = window.scrollY; + expect(heading1ScrollPos).toBeGreaterThanOrEqual(originalScrollPos); - heading2.click(); + heading2.click(); - fixture.detectChanges(); - await fixture.whenStable(); + fixture.detectChanges(); + await fixture.whenStable(); - const heading2ScrollPos: number = window.scrollY; - expect(heading2ScrollPos).toBeGreaterThanOrEqual(heading1ScrollPos); + const heading2ScrollPos: number = window.scrollY; + expect(heading2ScrollPos).toBeGreaterThanOrEqual(heading1ScrollPos); - heading1.click(); + heading1.click(); - fixture.detectChanges(); - await fixture.whenStable(); - - expect(window.scrollY).toBeLessThanOrEqual(heading2ScrollPos); - }) - ); - - it( - 'should generate the proper urls', - waitForAsync(async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownLinksTestEventsComponent); - const component: TdMarkdownLinksTestEventsComponent = - fixture.debugElement.componentInstance; + fixture.detectChanges(); + await fixture.whenStable(); - const ANCHOR = '#anchor'; - const CURRENT_MD_FILE = 'GETTING_STARTED.md'; - const ROOT_MD_FILE = 'README.md'; - const NON_RAW_LINK = 'https://github.com/Teradata/covalent/blob/main/'; - const RAW_LINK = - 'https://raw.githubusercontent.com/Teradata/covalent/main/'; - const RELATIVE_LINK = 'assets/covalent/'; - const EXTERNAL_URL = 'https://angular.io/'; - const SUB_DIRECTORY = 'docs/'; - const links: string[][] = [ - [`${ANCHOR}`, `${ANCHOR}`], - [`${NON_RAW_LINK}${ROOT_MD_FILE}`, `${NON_RAW_LINK}${ROOT_MD_FILE}`], - [ - `${NON_RAW_LINK}${ROOT_MD_FILE}${ANCHOR}`, - `${NON_RAW_LINK}${ROOT_MD_FILE}${ANCHOR}`, - ], - [`${RAW_LINK}${ROOT_MD_FILE}`, `${RAW_LINK}${ROOT_MD_FILE}`], - [ - `${RAW_LINK}${ROOT_MD_FILE}${ANCHOR}`, - `${RAW_LINK}${ROOT_MD_FILE}${ANCHOR}`, - ], - - [`${EXTERNAL_URL}${ROOT_MD_FILE}`, `${EXTERNAL_URL}${ROOT_MD_FILE}`], - [ - `${EXTERNAL_URL}${ROOT_MD_FILE}${ANCHOR}`, - `${EXTERNAL_URL}${ROOT_MD_FILE}${ANCHOR}`, - ], - [`${EXTERNAL_URL}`, `${EXTERNAL_URL}`], - [`${EXTERNAL_URL}${ANCHOR}`, `${EXTERNAL_URL}${ANCHOR}`], - ]; - - let markdown = ''; - - links.forEach((link: string[]) => { - markdown += `* [${link[0]}](${link[0]}) \n`; - }); - component.content = markdown; - const anchorElements: HTMLAnchorElement[] = - fixture.debugElement.nativeElement.querySelectorAll('a'); - function checkAnchors(): void { - Array.from(anchorElements).forEach( - (anchorElement: HTMLAnchorElement, index: number) => { - const href = anchorElement.getAttribute('href'); - const expectedHref: string = links[index][1]; - expect(href).toEqual(expectedHref); - } - ); - } + expect(window.scrollY).toBeLessThanOrEqual(heading2ScrollPos); + })); - component.hostedUrl = `${RAW_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; - fixture.detectChanges(); - await fixture.whenStable(); - checkAnchors(); + it('should generate the proper urls', waitForAsync(async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownLinksTestEventsComponent); + const component: TdMarkdownLinksTestEventsComponent = + fixture.debugElement.componentInstance; - component.hostedUrl = `${NON_RAW_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; - fixture.detectChanges(); - await fixture.whenStable(); - checkAnchors(); + const ANCHOR = '#anchor'; + const CURRENT_MD_FILE = 'GETTING_STARTED.md'; + const ROOT_MD_FILE = 'README.md'; + const NON_RAW_LINK = 'https://github.com/Teradata/covalent/blob/main/'; + const RAW_LINK = + 'https://raw.githubusercontent.com/Teradata/covalent/main/'; + const RELATIVE_LINK = 'assets/covalent/'; + const EXTERNAL_URL = 'https://angular.io/'; + const SUB_DIRECTORY = 'docs/'; + const links: string[][] = [ + [`${ANCHOR}`, `${ANCHOR}`], + [`${NON_RAW_LINK}${ROOT_MD_FILE}`, `${NON_RAW_LINK}${ROOT_MD_FILE}`], + [ + `${NON_RAW_LINK}${ROOT_MD_FILE}${ANCHOR}`, + `${NON_RAW_LINK}${ROOT_MD_FILE}${ANCHOR}`, + ], + [`${RAW_LINK}${ROOT_MD_FILE}`, `${RAW_LINK}${ROOT_MD_FILE}`], + [ + `${RAW_LINK}${ROOT_MD_FILE}${ANCHOR}`, + `${RAW_LINK}${ROOT_MD_FILE}${ANCHOR}`, + ], - component.hostedUrl = `${RELATIVE_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; - fixture.detectChanges(); - await fixture.whenStable(); - checkAnchors(); - }) - ); - - it( - 'should generate the proper image urls', - waitForAsync(async () => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownLinksTestEventsComponent); - const component: TdMarkdownLinksTestEventsComponent = - fixture.debugElement.componentInstance; + [`${EXTERNAL_URL}${ROOT_MD_FILE}`, `${EXTERNAL_URL}${ROOT_MD_FILE}`], + [ + `${EXTERNAL_URL}${ROOT_MD_FILE}${ANCHOR}`, + `${EXTERNAL_URL}${ROOT_MD_FILE}${ANCHOR}`, + ], + [`${EXTERNAL_URL}`, `${EXTERNAL_URL}`], + [`${EXTERNAL_URL}${ANCHOR}`, `${EXTERNAL_URL}${ANCHOR}`], + ]; - const CURRENT_MD_FILE = 'readme.md'; - const SIBLING_IMG = 'typescript.jpg'; - const ROOT_IMG = 'angular.png'; - const NON_RAW_LINK = 'https://github.com/Teradata/covalent/blob/main/'; - const RAW_LINK = - 'https://raw.githubusercontent.com/Teradata/covalent/main/'; - const RELATIVE_LINK = 'assets/covalent/'; - const EXTERNAL_IMG = - 'https://angular.io/assets/images/logos/angular/angular.svg'; - const SUB_DIRECTORY = 'dir/'; - const SVG_IMG = 'src/assets/icons/covalent.svg'; - // these are not valid image urls - const images: string[][] = [ - [`./${SIBLING_IMG}`, `${RAW_LINK}${SUB_DIRECTORY}${SIBLING_IMG}`], - [`${SIBLING_IMG}`, `${RAW_LINK}${SUB_DIRECTORY}${SIBLING_IMG}`], - [`../${ROOT_IMG}`, `${RAW_LINK}${ROOT_IMG}`], - [`/${ROOT_IMG}`, `${RAW_LINK}${ROOT_IMG}`], - [`${RAW_LINK}${ROOT_IMG}`, `${RAW_LINK}${ROOT_IMG}`], - [`${EXTERNAL_IMG}`, `${EXTERNAL_IMG}`], - [ - `${NON_RAW_LINK}${SUB_DIRECTORY}${SIBLING_IMG}`, - `${RAW_LINK}${SUB_DIRECTORY}${SIBLING_IMG}`, - ], - [`${NON_RAW_LINK}${SVG_IMG}`, `${RAW_LINK}${SVG_IMG}?sanitize=true`], - ]; - - let markdown = ''; - - images.forEach((link: string[]) => { - markdown += `* ![${link[0]}](${link[0]}) \n`; - }); - component.content = markdown; - - const imageElements: HTMLImageElement[] = - fixture.debugElement.nativeElement.querySelectorAll('img'); - function checkImages(): void { - Array.from(imageElements).forEach( - (imageElement: HTMLImageElement, index: number) => { - const src = imageElement.getAttribute('src'); - const expectedSrc: string = images[index][1]; - expect(src).toEqual(expectedSrc); - } - ); - } + let markdown = ''; - component.hostedUrl = `${RAW_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; - fixture.detectChanges(); - await fixture.whenStable(); - checkImages(); + links.forEach((link: string[]) => { + markdown += `* [${link[0]}](${link[0]}) \n`; + }); + component.content = markdown; + const anchorElements: HTMLAnchorElement[] = + fixture.debugElement.nativeElement.querySelectorAll('a'); + function checkAnchors(): void { + Array.from(anchorElements).forEach( + (anchorElement: HTMLAnchorElement, index: number) => { + const href = anchorElement.getAttribute('href'); + const expectedHref: string = links[index][1]; + expect(href).toEqual(expectedHref); + } + ); + } - component.hostedUrl = `${NON_RAW_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; - fixture.detectChanges(); - await fixture.whenStable(); - checkImages(); + component.hostedUrl = `${RAW_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; + fixture.detectChanges(); + await fixture.whenStable(); + checkAnchors(); - component.hostedUrl = `${RELATIVE_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; - fixture.detectChanges(); - await fixture.whenStable(); - checkImages(); - }) - ); + component.hostedUrl = `${NON_RAW_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; + fixture.detectChanges(); + await fixture.whenStable(); + checkAnchors(); + + component.hostedUrl = `${RELATIVE_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; + fixture.detectChanges(); + await fixture.whenStable(); + checkAnchors(); + })); + + it('should generate the proper image urls', waitForAsync(async () => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownLinksTestEventsComponent); + const component: TdMarkdownLinksTestEventsComponent = + fixture.debugElement.componentInstance; + + const CURRENT_MD_FILE = 'readme.md'; + const SIBLING_IMG = 'typescript.jpg'; + const ROOT_IMG = 'angular.png'; + const NON_RAW_LINK = 'https://github.com/Teradata/covalent/blob/main/'; + const RAW_LINK = + 'https://raw.githubusercontent.com/Teradata/covalent/main/'; + const RELATIVE_LINK = 'assets/covalent/'; + const EXTERNAL_IMG = + 'https://angular.io/assets/images/logos/angular/angular.svg'; + const SUB_DIRECTORY = 'dir/'; + const SVG_IMG = 'src/assets/icons/covalent.svg'; + // these are not valid image urls + const images: string[][] = [ + [`./${SIBLING_IMG}`, `${RAW_LINK}${SUB_DIRECTORY}${SIBLING_IMG}`], + [`${SIBLING_IMG}`, `${RAW_LINK}${SUB_DIRECTORY}${SIBLING_IMG}`], + [`../${ROOT_IMG}`, `${RAW_LINK}${ROOT_IMG}`], + [`/${ROOT_IMG}`, `${RAW_LINK}${ROOT_IMG}`], + [`${RAW_LINK}${ROOT_IMG}`, `${RAW_LINK}${ROOT_IMG}`], + [`${EXTERNAL_IMG}`, `${EXTERNAL_IMG}`], + [ + `${NON_RAW_LINK}${SUB_DIRECTORY}${SIBLING_IMG}`, + `${RAW_LINK}${SUB_DIRECTORY}${SIBLING_IMG}`, + ], + [`${NON_RAW_LINK}${SVG_IMG}`, `${RAW_LINK}${SVG_IMG}?sanitize=true`], + ]; + + let markdown = ''; + + images.forEach((link: string[]) => { + markdown += `* ![${link[0]}](${link[0]}) \n`; + }); + component.content = markdown; + + const imageElements: HTMLImageElement[] = + fixture.debugElement.nativeElement.querySelectorAll('img'); + function checkImages(): void { + Array.from(imageElements).forEach( + (imageElement: HTMLImageElement, index: number) => { + const src = imageElement.getAttribute('src'); + const expectedSrc: string = images[index][1]; + expect(src).toEqual(expectedSrc); + } + ); + } + + component.hostedUrl = `${RAW_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; + fixture.detectChanges(); + await fixture.whenStable(); + checkImages(); + + component.hostedUrl = `${NON_RAW_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; + fixture.detectChanges(); + await fixture.whenStable(); + checkImages(); + + component.hostedUrl = `${RELATIVE_LINK}${SUB_DIRECTORY}${CURRENT_MD_FILE}`; + fixture.detectChanges(); + await fixture.whenStable(); + checkImages(); + })); }); describe('Event bindings: ', () => { describe('contentReady event: ', () => { - it( - 'should be fired only once after display renders empty static content', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownEmptyStaticContentTestEventsComponent - ); - const component: TdMarkdownEmptyStaticContentTestEventsComponent = - fixture.debugElement.componentInstance; - - jest.spyOn(component, 'tdMarkdownContentIsReady'); + it('should be fired only once after display renders empty static content', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent( + TdMarkdownEmptyStaticContentTestEventsComponent + ); + const component: TdMarkdownEmptyStaticContentTestEventsComponent = + fixture.debugElement.componentInstance; + + jest.spyOn(component, 'tdMarkdownContentIsReady'); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(component.tdMarkdownContentIsReady).toHaveBeenCalledTimes(1); - }); - }) - ); + expect(component.tdMarkdownContentIsReady).toHaveBeenCalledTimes(1); + }); + })); - it( - 'should be fired only once after display renders markup from static content', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent(TdMarkdownStaticContentTestEventsComponent); - const component: TdMarkdownStaticContentTestEventsComponent = - fixture.debugElement.componentInstance; + it('should be fired only once after display renders markup from static content', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownStaticContentTestEventsComponent); + const component: TdMarkdownStaticContentTestEventsComponent = + fixture.debugElement.componentInstance; - jest.spyOn(component, 'tdMarkdownContentIsReady'); + jest.spyOn(component, 'tdMarkdownContentIsReady'); + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(component.tdMarkdownContentIsReady).toHaveBeenCalledTimes(1); - }); - }) - ); + expect(component.tdMarkdownContentIsReady).toHaveBeenCalledTimes(1); + }); + })); + + it('should be fired only once after display renders initial markup from dynamic content', waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownDynamicContentTestEventsComponent); + const component: TdMarkdownDynamicContentTestEventsComponent = + fixture.debugElement.componentInstance; + jest.spyOn(component, 'tdMarkdownContentIsReady'); - it( - 'should be fired only once after display renders initial markup from dynamic content', - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownDynamicContentTestEventsComponent - ); - const component: TdMarkdownDynamicContentTestEventsComponent = - fixture.debugElement.componentInstance; - jest.spyOn(component, 'tdMarkdownContentIsReady'); - - // Inital dynamic content - component.content = ` + // Inital dynamic content + component.content = ` # another title ## subtitle @@ -683,26 +629,21 @@ describe('Component: Markdown', () => { pseudo code \`\`\``; + fixture.detectChanges(); + fixture.whenStable().then(() => { fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(component.tdMarkdownContentIsReady).toHaveBeenCalledTimes(1); - }); - }) - ); + expect(component.tdMarkdownContentIsReady).toHaveBeenCalledTimes(1); + }); + })); - it( - `should be fired twice after changing the initial rendered markup dynamic content`, - waitForAsync(() => { - const fixture: ComponentFixture = - TestBed.createComponent( - TdMarkdownDynamicContentTestEventsComponent - ); - const component: TdMarkdownDynamicContentTestEventsComponent = - fixture.debugElement.componentInstance; - jest.spyOn(component, 'tdMarkdownContentIsReady'); - - component.content = ` + it(`should be fired twice after changing the initial rendered markup dynamic content`, waitForAsync(() => { + const fixture: ComponentFixture = + TestBed.createComponent(TdMarkdownDynamicContentTestEventsComponent); + const component: TdMarkdownDynamicContentTestEventsComponent = + fixture.debugElement.componentInstance; + jest.spyOn(component, 'tdMarkdownContentIsReady'); + + component.content = ` # another title ## subtitle @@ -711,9 +652,9 @@ describe('Component: Markdown', () => { pseudo code \`\`\``; - fixture.detectChanges(); + fixture.detectChanges(); - component.content = ` + component.content = ` # changed title ## changed subtitle @@ -722,14 +663,13 @@ describe('Component: Markdown', () => { changed pseudo code \`\`\``; - fixture.detectChanges(); + fixture.detectChanges(); - fixture.whenStable().then(() => { - fixture.detectChanges(); - expect(component.tdMarkdownContentIsReady).toHaveBeenCalledTimes(2); - }); - }) - ); + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(component.tdMarkdownContentIsReady).toHaveBeenCalledTimes(2); + }); + })); }); }); }); diff --git a/libs/markdown/src/lib/markdown.module.ts b/libs/markdown/src/lib/markdown.module.ts index 75c82c8703..684bda807d 100644 --- a/libs/markdown/src/lib/markdown.module.ts +++ b/libs/markdown/src/lib/markdown.module.ts @@ -1,15 +1,21 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { HttpClientModule } from '@angular/common/http'; +import { + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; import { TdMarkdownComponent } from './markdown.component'; import { TdMarkdownLoaderService } from './markdown-loader/markdown-loader.service'; @NgModule({ - imports: [CommonModule, HttpClientModule], declarations: [TdMarkdownComponent], exports: [TdMarkdownComponent], - providers: [TdMarkdownLoaderService], + imports: [CommonModule], + providers: [ + TdMarkdownLoaderService, + provideHttpClient(withInterceptorsFromDi()), + ], }) export class CovalentMarkdownModule {} diff --git a/migrations.json b/migrations.json index 83d62ff626..c5e9a94ce5 100644 --- a/migrations.json +++ b/migrations.json @@ -2,80 +2,195 @@ "migrations": [ { "cli": "nx", - "version": "17.3.0-beta.6", + "version": "18.0.0-beta.2", + "description": "Updates nx.json to disabled adding plugins when generating projects in an existing Nx workspace", + "implementation": "./src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces", + "x-repair-skip": true, + "package": "nx", + "name": "18.0.0-disable-adding-plugins-for-existing-workspaces" + }, + { + "version": "18.1.0-beta.3", + "description": "Moves affected.defaultBase to defaultBase in `nx.json`", + "implementation": "./src/migrations/update-17-2-0/move-default-base", + "package": "nx", + "name": "move-default-base-to-nx-json-root" + }, + { + "cli": "nx", + "version": "19.2.0-beta.2", + "description": "Updates the default workspace data directory to .nx/workspace-data", + "implementation": "./src/migrations/update-19-2-0/move-workspace-data-directory", + "package": "nx", + "name": "19-2-0-move-graph-cache-directory" + }, + { + "cli": "nx", + "version": "19.2.2-beta.0", "description": "Updates the nx wrapper.", "implementation": "./src/migrations/update-17-3-0/update-nxw", "package": "nx", - "name": "17.3.0-update-nx-wrapper" + "name": "19-2-2-update-nx-wrapper" + }, + { + "version": "19.2.4-beta.0", + "description": "Set project name in nx.json explicitly", + "implementation": "./src/migrations/update-19-2-4/set-project-name", + "x-repair-skip": true, + "package": "nx", + "name": "19-2-4-set-project-name" }, { - "version": "17.2.0-beta.0", - "description": "Simplify eslintFilePatterns", - "implementation": "./src/migrations/update-17-2-0/simplify-eslint-patterns", - "package": "@nx/eslint", - "name": "simplify-eslint-patterns" + "cli": "nx", + "version": "19.1.0-beta.6", + "description": "Migrate no-extra-semi rules into user config, out of nx extendable configs", + "implementation": "./src/migrations/update-19-1-0-migrate-no-extra-semi/migrate-no-extra-semi", + "package": "@nx/eslint-plugin", + "name": "update-19-1-0-rename-no-extra-semi" }, { - "version": "17.2.9", - "description": "Move executor options to target defaults", - "implementation": "./src/migrations/update-17-2-9/move-options-to-target-defaults", - "package": "@nx/eslint", - "name": "move-options-to-target-defaults" + "cli": "nx", + "version": "18.1.0-beta.3", + "description": "Update to Cypress ^13.6.6 if the workspace is using Cypress v13 to ensure workspaces don't use v13.6.5 which has an issue when verifying Cypress.", + "implementation": "./src/migrations/update-18-1-0/update-cypress-version-13-6-6", + "package": "@nx/cypress", + "name": "update-cypress-version-13-6-6" }, { "cli": "nx", - "version": "17.2.0-beta.2", - "description": "Rename '@nx/angular:webpack-dev-server' executor to '@nx/angular:dev-server'", - "factory": "./src/migrations/update-17-2-0/rename-webpack-dev-server", + "version": "19.6.0-beta.4", + "description": "Update ciWebServerCommand to use static serve for the application.", + "implementation": "./src/migrations/update-19-6-0/update-ci-webserver-for-static-serve", + "package": "@nx/cypress", + "name": "update-19-6-0-update-ci-webserver-for-vite" + }, + { + "version": "19.6.0-beta.0", + "description": "Add dependsOn: [build] to preview targets using preview-server", + "implementation": "./src/migrations/update-19-6-0/add-depends-on-for-preview", + "package": "@nx/vite", + "name": "update-19-6-0-add-depends-on-for-preview-server" + }, + { + "cli": "nx", + "version": "18.0.0-beta.0", + "description": "Add NX_MF_DEV_SERVER_STATIC_REMOTES to inputs for task hashing when '@nx/angular:webpack-browser' is used for Module Federation.", + "factory": "./src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults", + "package": "@nx/angular", + "name": "add-module-federation-env-var-to-target-defaults" + }, + { + "cli": "nx", + "version": "18.1.0-beta.1", + "requires": { "@angular/core": ">=17.2.0" }, + "description": "Update the @angular/cli package version to ~17.2.0.", + "factory": "./src/migrations/update-18-1-0/update-angular-cli", "package": "@nx/angular", - "name": "rename-webpack-dev-server-executor" + "name": "update-angular-cli-version-17-2-0" }, { "cli": "nx", - "version": "17.3.0-beta.10", - "requires": { - "@angular/core": ">=17.1.0" - }, - "description": "Update the @angular/cli package version to ~17.1.0.", - "factory": "./src/migrations/update-17-3-0/update-angular-cli", + "version": "18.1.1-beta.0", + "description": "Ensure targetDefaults inputs for task hashing when '@nx/angular:webpack-browser' is used are correct for Module Federation.", + "factory": "./src/migrations/update-18-1-1/fix-target-defaults-inputs", "package": "@nx/angular", - "name": "update-angular-cli-version-17-1-0" + "name": "fix-target-defaults-for-webpack-browser" }, { "cli": "nx", - "version": "17.3.0-beta.10", - "requires": { - "@angular/core": ">=17.1.0" - }, - "description": "Add 'browser-sync' as dev dependency when '@angular-devkit/build-angular:ssr-dev-server' or '@nx/angular:module-federation-dev-ssr' is used.", - "factory": "./src/migrations/update-17-3-0/add-browser-sync-dependency", + "version": "18.2.0-beta.0", + "requires": { "@angular/core": ">=17.3.0" }, + "description": "Update the @angular/cli package version to ~17.3.0.", + "factory": "./src/migrations/update-18-2-0/update-angular-cli", "package": "@nx/angular", - "name": "add-browser-sync-dependency" + "name": "update-angular-cli-version-17-3-0" }, { "cli": "nx", - "version": "17.3.0-beta.10", - "requires": { - "@angular/core": ">=17.1.0" - }, - "description": "Add 'autoprefixer' as dev dependency when '@nx/angular:ng-packagr-lite' or '@nx/angular:package` is used.", - "factory": "./src/migrations/update-17-3-0/add-autoprefixer-dependency", + "version": "19.1.0-beta.2", + "requires": { "@angular/core": ">=18.0.0" }, + "description": "Update the @angular/cli package version to ~18.0.0.", + "factory": "./src/migrations/update-19-1-0/update-angular-cli", "package": "@nx/angular", - "name": "add-autoprefixer-dependency" + "name": "update-angular-cli-version-18-0-0" + }, + { + "cli": "nx", + "version": "19.2.1-beta.0", + "requires": { "@angular-eslint/eslint-plugin": ">=18.0.0" }, + "description": "Installs the '@typescript-eslint/utils' package when having installed '@angular-eslint/eslint-plugin' or '@angular-eslint/eslint-plugin-template' with version >=18.0.0.", + "factory": "./src/migrations/update-19-2-1/add-typescript-eslint-utils", + "package": "@nx/angular", + "name": "add-typescript-eslint-utils" + }, + { + "cli": "nx", + "version": "19.5.0-beta.1", + "requires": { "@angular/core": ">=18.1.0" }, + "description": "Update the @angular/cli package version to ~18.1.0.", + "factory": "./src/migrations/update-19-5-0/update-angular-cli", + "package": "@nx/angular", + "name": "update-angular-cli-version-18-1-0" + }, + { + "cli": "nx", + "version": "19.6.0-beta.4", + "description": "Ensure Module Federation DTS is turned off by default.", + "factory": "./src/migrations/update-19-6-0/turn-off-dts-by-default", + "package": "@nx/angular", + "name": "update-19-6-0" + }, + { + "cli": "nx", + "version": "19.6.0-beta.7", + "requires": { "@angular/core": ">=18.2.0" }, + "description": "Update the @angular/cli package version to ~18.2.0.", + "factory": "./src/migrations/update-19-6-0/update-angular-cli", + "package": "@nx/angular", + "name": "update-angular-cli-version-18-2-0" + }, + { + "cli": "nx", + "version": "19.6.1-beta.0", + "description": "Ensure Target Defaults are set correctly for Module Federation.", + "factory": "./src/migrations/update-19-6-1/ensure-depends-on-for-mf", + "package": "@nx/angular", + "name": "update-19-6-1-ensure-module-federation-target-defaults" + }, + { + "version": "18.0.0", + "description": "Updates two-way bindings that have an invalid expression to use the longform expression instead.", + "factory": "./migrations/invalid-two-way-bindings/bundle", + "package": "@angular/core", + "name": "invalid-two-way-bindings" + }, + { + "version": "18.0.0", + "description": "Replace deprecated HTTP related modules with provider functions", + "factory": "./migrations/http-providers/bundle", + "package": "@angular/core", + "name": "migration-http-providers" + }, + { + "version": "18.1.0", + "description": "Updates calls to afterRender with an explicit phase to the new API", + "factory": "./migrations/after-render-phase/bundle", + "package": "@angular/core", + "name": "migration-after-render-phase" }, { - "version": "17.2.0-beta.0", - "description": "Simplify eslintFilePatterns", - "implementation": "./src/migrations/update-17-2-0/simplify-eslint-patterns", - "package": "@nx/linter", - "name": "simplify-eslint-patterns" + "version": "18.0.0-0", + "description": "Updates Angular Material to v18", + "factory": "./ng-update/index_bundled#updateToV18", + "package": "@angular/material", + "name": "migration-v18" }, { - "version": "17.2.9", - "description": "Move executor options to target defaults", - "implementation": "./src/migrations/update-17-2-9/move-options-to-target-defaults", - "package": "@nx/linter", - "name": "move-options-to-target-defaults" + "version": "18.0.0-0", + "description": "Updates the Angular CDK to v18", + "factory": "./ng-update/index#updateToV18", + "package": "@angular/cdk", + "name": "migration-v18" } ] } diff --git a/nx.json b/nx.json index 21463f77e6..c441b2fa15 100644 --- a/nx.json +++ b/nx.json @@ -1,7 +1,4 @@ { - "affected": { - "defaultBase": "main" - }, "cli": { "packageManager": "npm" }, @@ -65,5 +62,8 @@ "dependsOn": ["^build"], "inputs": ["production", "^production"] } - } + }, + "nxCloudId": "673778969f050256c167cdf7", + "useInferencePlugins": false, + "defaultBase": "main" } diff --git a/package-lock.json b/package-lock.json index 37ae0d127a..4af67781b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,16 +9,16 @@ "version": "8.23.2", "hasInstallScript": true, "dependencies": { - "@angular/animations": "17.x.x", - "@angular/cdk": "17.x.x", - "@angular/common": "17.x.x", - "@angular/compiler": "17.x.x", - "@angular/core": "17.x.x", - "@angular/forms": "17.x.x", - "@angular/material": "17.x.x", - "@angular/platform-browser": "17.x.x", - "@angular/platform-browser-dynamic": "17.x.x", - "@angular/router": "17.x.x", + "@angular/animations": "18.2.11", + "@angular/cdk": "18.2.11", + "@angular/common": "18.2.11", + "@angular/compiler": "18.2.11", + "@angular/core": "18.2.11", + "@angular/forms": "18.2.11", + "@angular/material": "18.2.11", + "@angular/platform-browser": "18.2.11", + "@angular/platform-browser-dynamic": "18.2.11", + "@angular/router": "18.2.11", "@knapsack/app": "^4.69.12", "@knapsack/renderer-angular": "^4.69.12", "@knapsack/renderer-web-components": "^4.69.12", @@ -27,6 +27,9 @@ "@material/card": "15.0.0-canary.7f224ddd4.0", "@material/chips": "15.0.0-canary.7f224ddd4.0", "@material/data-table": "15.0.0-canary.7f224ddd4.0", + "@material/dialog": "15.0.0-canary.7f224ddd4.0", + "@material/drawer": "15.0.0-canary.7f224ddd4.0", + "@material/form-field": "15.0.0-canary.7f224ddd4.0", "@material/icon-button": "15.0.0-canary.7f224ddd4.0", "@material/image-list": "15.0.0-canary.7f224ddd4.0", "@material/mwc-button": "^0.27.0", @@ -51,7 +54,15 @@ "@material/mwc-textfield": "^0.27.0", "@material/mwc-top-app-bar": "^0.27.0", "@material/mwc-top-app-bar-fixed": "^0.27.0", + "@material/radio": "15.0.0-canary.7f224ddd4.0", + "@material/slider": "15.0.0-canary.7f224ddd4.0", + "@material/snackbar": "15.0.0-canary.7f224ddd4.0", + "@material/switch": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", + "@material/textfield": "15.0.0-canary.7f224ddd4.0", "@material/tooltip": "15.0.0-canary.7f224ddd4.0", + "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", "@ngx-translate/core": "^14.0.0", "@ngx-translate/http-loader": "^7.0.0", "easymde": "^2.18.0", @@ -71,30 +82,30 @@ }, "devDependencies": { "@angular-builders/custom-webpack": "17.x.x", - "@angular-devkit/build-angular": "17.x.x", - "@angular-devkit/core": "17.x.x", - "@angular-devkit/schematics": "17.x.x", - "@angular-eslint/eslint-plugin": "17.x.x", - "@angular-eslint/eslint-plugin-template": "17.x.x", - "@angular-eslint/template-parser": "17.x.x", - "@angular/cli": "17.x.x", - "@angular/compiler-cli": "17.1.2", - "@angular/language-service": "17.1.2", + "@angular-devkit/build-angular": "18.2.11", + "@angular-devkit/core": "18.2.11", + "@angular-devkit/schematics": "18.2.11", + "@angular-eslint/eslint-plugin": "18.4.0", + "@angular-eslint/eslint-plugin-template": "18.4.0", + "@angular-eslint/template-parser": "18.4.0", + "@angular/cli": "~18.2.0", + "@angular/compiler-cli": "18.2.11", + "@angular/language-service": "18.2.11", "@commitlint/cli": "^18.4.3", "@commitlint/config-angular": "^16.2.1", "@commitlint/config-conventional": "^16.2.1", - "@covalent/tokens": "*", - "@nx/angular": "17.3.1", - "@nx/cypress": "17.3.1", - "@nx/eslint": "17.3.1", - "@nx/eslint-plugin": "17.3.1", - "@nx/jest": "17.3.1", - "@nx/js": "17.3.1", - "@nx/linter": "17.3.1", - "@nx/vite": "17.3.1", - "@nx/web": "17.3.1", - "@nx/workspace": "17.3.1", - "@schematics/angular": "17.1.2", + "@covalent/tokens": "latest", + "@nx/angular": "19.8.9", + "@nx/cypress": "19.8.9", + "@nx/eslint": "19.8.9", + "@nx/eslint-plugin": "19.8.9", + "@nx/jest": "19.8.9", + "@nx/js": "19.8.9", + "@nx/linter": "19.8.9", + "@nx/vite": "19.8.9", + "@nx/web": "19.8.9", + "@nx/workspace": "19.8.9", + "@schematics/angular": "18.2.11", "@semantic-release/changelog": "^6.0.1", "@semantic-release/exec": "^6.0.3", "@semantic-release/git": "^10.0.1", @@ -110,19 +121,20 @@ "@storybook/testing-library": "^0.2.2", "@storybook/theming": "7.6.15", "@types/echarts": "^4.9.13", - "@types/jest": "29.5.11", + "@types/jest": "29.5.14", "@types/jsdom": "^20.0.0", "@types/mjml-browser": "^4.15.0", "@types/node": "^18.16.9", "@types/showdown": "^2.0.6", - "@typescript-eslint/eslint-plugin": "6.20.0", - "@typescript-eslint/parser": "6.20.0", - "@vitest/coverage-c8": "^0.27.2", + "@typescript-eslint/eslint-plugin": "7.18.0", + "@typescript-eslint/parser": "7.18.0", + "@typescript-eslint/utils": "^7.16.0", + "@vitest/coverage-v8": "^2.1.5", "autoprefixer": "^10.4.0", "chromatic": "^7.5.4", "css-loader": "^6.7.1", "cypress": "^9.1.0", - "eslint": "8.48.0", + "eslint": "8.57.1", "eslint-config-prettier": "9.1.0", "eslint-plugin-cypress": "^2.15.1", "eslint-plugin-rxjs": "^5.0.3", @@ -130,14 +142,14 @@ "eslint-plugin-storybook": "^0.6.15", "html-webpack-plugin": "^5.5.3", "husky": "^7.0.4", - "jest": "29.4.3", + "jest": "29.7.0", "jest-canvas-mock": "^2.5.2", - "jest-environment-jsdom": "28.1.3", + "jest-environment-jsdom": "29.7.0", "jest-esm-transformer": "^1.0.0", - "jest-preset-angular": "13.1.1", + "jest-preset-angular": "14.1.1", "monaco-editor-webpack-plugin": "^7.1.0", - "ng-packagr": "17.0.3", - "nx": "17.3.1", + "ng-packagr": "18.2.1", + "nx": "19.8.9", "postcss": "^8.4.41", "postcss-custom-properties": "^14.0.1", "postcss-preset-env": "^9.1.0", @@ -156,10 +168,10 @@ "stylelint-config-standard": "^25.0.0", "tailwindcss": "^3.0.2", "ts-jest": "29.1.1", - "typescript": "5.3.3", - "vite": "^4.5.5", + "typescript": "5.5.4", + "vite": "^5.4.11", "vite-plugin-dts": "~2.3.0", - "vitest": "^0.27.2" + "vitest": "^2.1.5" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -172,9 +184,9 @@ } }, "node_modules/@adobe/css-tools": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", - "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", "dev": true }, "node_modules/@alloc/quick-lru": { @@ -190,12 +202,12 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -222,88 +234,72 @@ "@angular/compiler-cli": "^17.0.0" } }, - "node_modules/@angular-devkit/architect": { - "version": "0.1701.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.2.tgz", - "integrity": "sha512-g3gn5Ht6r9bCeFeAYF+HboZB8IvgvqqdeOnaWNaXJLI0ymEkpbqRdqrHGuVKHJV7JOMNXC7GPJEctBC6SXxOxA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "17.1.2", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-angular": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.2.tgz", - "integrity": "sha512-QIDTP+TjiCKCYRZYb8to4ymvIV1Djcfd5c17VdgMGhRqIQAAK1V4f4A1njdhGYOrgsLajZQAnKvFfk2ZMeI37A==", + "node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/build-angular": { + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.11.tgz", + "integrity": "sha512-lHX5V2dSts328yvo/9E2u9QMGcvJhbEKKDDp9dBecwvIG9s+4lTOJgi9DPUE7W+AtmPcmbbhwC2JRQ/SLQhAoA==", "dev": true, "dependencies": { - "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1701.2", - "@angular-devkit/build-webpack": "0.1701.2", - "@angular-devkit/core": "17.1.2", - "@babel/core": "7.23.7", + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1703.11", + "@angular-devkit/build-webpack": "0.1703.11", + "@angular-devkit/core": "17.3.11", + "@babel/core": "7.24.0", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-transform-async-generator-functions": "7.23.7", + "@babel/plugin-transform-async-generator-functions": "7.23.9", "@babel/plugin-transform-async-to-generator": "7.23.3", - "@babel/plugin-transform-runtime": "7.23.7", - "@babel/preset-env": "7.23.7", - "@babel/runtime": "7.23.7", + "@babel/plugin-transform-runtime": "7.24.0", + "@babel/preset-env": "7.24.0", + "@babel/runtime": "7.24.0", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.1.2", - "@vitejs/plugin-basic-ssl": "1.0.2", + "@ngtools/webpack": "17.3.11", + "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.16", + "autoprefixer": "10.4.18", "babel-loader": "9.1.3", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "11.0.0", - "critters": "0.0.20", - "css-loader": "6.8.1", - "esbuild-wasm": "0.19.11", + "critters": "0.0.22", + "css-loader": "6.10.0", + "esbuild-wasm": "0.20.1", "fast-glob": "3.3.2", - "http-proxy-middleware": "2.0.6", - "https-proxy-agent": "7.0.2", - "inquirer": "9.2.12", - "jsonc-parser": "3.2.0", + "http-proxy-middleware": "2.0.7", + "https-proxy-agent": "7.0.4", + "inquirer": "9.2.15", + "jsonc-parser": "3.2.1", "karma-source-map-support": "1.4.0", "less": "4.2.0", "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.30.5", - "mini-css-extract-plugin": "2.7.6", + "magic-string": "0.30.8", + "mini-css-extract-plugin": "2.8.1", "mrmime": "2.0.0", "open": "8.4.2", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "3.0.1", - "piscina": "4.2.1", - "postcss": "8.4.33", - "postcss-loader": "7.3.4", + "picomatch": "4.0.1", + "piscina": "4.4.0", + "postcss": "8.4.35", + "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.69.7", - "sass-loader": "13.3.3", - "semver": "7.5.4", + "sass": "1.71.1", + "sass-loader": "14.1.1", + "semver": "7.6.0", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.26.0", - "text-table": "0.2.0", + "terser": "5.29.1", "tree-kill": "1.2.2", "tslib": "2.6.2", - "undici": "6.2.1", - "vite": "5.0.12", + "undici": "6.11.1", + "vite": "5.1.8", "watchpack": "2.4.0", - "webpack": "5.89.0", - "webpack-dev-middleware": "6.1.1", + "webpack": "5.94.0", + "webpack-dev-middleware": "6.1.2", "webpack-dev-server": "4.15.1", "webpack-merge": "5.10.0", "webpack-subresource-integrity": "5.1.0" @@ -314,7 +310,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.19.11" + "esbuild": "0.20.1" }, "peerDependencies": { "@angular/compiler-cli": "^17.0.0", @@ -329,7 +325,7 @@ "ng-packagr": "^17.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.2 <5.4" + "typescript": ">=5.2 <5.5" }, "peerDependenciesMeta": { "@angular/localize": { @@ -367,10 +363,96 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", - "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/build-webpack": { + "version": "0.1703.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.11.tgz", + "integrity": "sha512-qbCiiHuoVkD7CtLyWoRi/Vzz6nrEztpF5XIyWUcQu67An1VlxbMTE4yoSQiURjCQMnB/JvS1GPVed7wOq3SJ/w==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1703.11", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/core": { + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", + "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/aix-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", + "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/android-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", + "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", "cpu": [ "arm" ], @@ -378,12 +460,15 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-android-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", - "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/android-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", + "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", "cpu": [ "arm64" ], @@ -391,12 +476,31 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", - "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/android-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", + "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", + "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", "cpu": [ "arm64" ], @@ -404,12 +508,15 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-darwin-x64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", - "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/darwin-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", + "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", "cpu": [ "x64" ], @@ -417,12 +524,47 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", - "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", + "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", + "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", + "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", "cpu": [ "arm" ], @@ -430,12 +572,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", - "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", + "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", "cpu": [ "arm64" ], @@ -443,25 +588,79 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", - "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", + "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", "cpu": [ - "arm64" + "ia32" ], "dev": true, "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", - "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-loong64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", + "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", + "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", + "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", + "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", "cpu": [ "riscv64" ], @@ -469,25 +668,31 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", - "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-s390x": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", + "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", "cpu": [ - "x64" + "s390x" ], "dev": true, "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", - "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", + "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", "cpu": [ "x64" ], @@ -495,12 +700,63 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", - "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", + "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", + "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/sunos-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", + "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/win32-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", + "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", "cpu": [ "arm64" ], @@ -508,12 +764,15 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", - "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/win32-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", + "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", "cpu": [ "ia32" ], @@ -521,12 +780,15 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", - "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/win32-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", + "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", "cpu": [ "x64" ], @@ -534,554 +796,5044 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@angular-builders/custom-webpack/node_modules/@ngtools/webpack": { + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.11.tgz", + "integrity": "sha512-SfTCbplt4y6ak5cf2IfqdoVOsnoNdh/j6Vu+wb8WWABKwZ5yfr2S/Gk6ithSKcdIZhAF8DNBOoyk1EJuf8Xkfg==", + "dev": true, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.5", + "webpack": "^5.54.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@angular-builders/custom-webpack/node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@angular-builders/custom-webpack/node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/@angular-builders/custom-webpack/node_modules/critters": { + "version": "0.0.22", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", + "integrity": "sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "postcss-media-query-parser": "^0.2.3" } }, - "node_modules/@angular-devkit/build-angular/node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "node_modules/@angular-builders/custom-webpack/node_modules/esbuild": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", + "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.1", + "@esbuild/android-arm": "0.20.1", + "@esbuild/android-arm64": "0.20.1", + "@esbuild/android-x64": "0.20.1", + "@esbuild/darwin-arm64": "0.20.1", + "@esbuild/darwin-x64": "0.20.1", + "@esbuild/freebsd-arm64": "0.20.1", + "@esbuild/freebsd-x64": "0.20.1", + "@esbuild/linux-arm": "0.20.1", + "@esbuild/linux-arm64": "0.20.1", + "@esbuild/linux-ia32": "0.20.1", + "@esbuild/linux-loong64": "0.20.1", + "@esbuild/linux-mips64el": "0.20.1", + "@esbuild/linux-ppc64": "0.20.1", + "@esbuild/linux-riscv64": "0.20.1", + "@esbuild/linux-s390x": "0.20.1", + "@esbuild/linux-x64": "0.20.1", + "@esbuild/netbsd-x64": "0.20.1", + "@esbuild/openbsd-x64": "0.20.1", + "@esbuild/sunos-x64": "0.20.1", + "@esbuild/win32-arm64": "0.20.1", + "@esbuild/win32-ia32": "0.20.1", + "@esbuild/win32-x64": "0.20.1" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true } - ], + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" + "agent-base": "^7.0.2", + "debug": "4" }, - "bin": { - "autoprefixer": "bin/autoprefixer" + "engines": { + "node": ">= 14" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/@angular-builders/custom-webpack/node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/mini-css-extract-plugin": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", + "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/picomatch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", + "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/piscina": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", + "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", + "dev": true, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/rollup": { + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.1.tgz", + "integrity": "sha512-TgWbfXdZsMNTNCLv6/YXzPTjyA0m1mFTe3/2/C5VxA8bSYwyam8OIJiHZZUhErmNzKNcPLWec3KUIdMdXZ6+FA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.27.1", + "@rollup/rollup-android-arm64": "4.27.1", + "@rollup/rollup-darwin-arm64": "4.27.1", + "@rollup/rollup-darwin-x64": "4.27.1", + "@rollup/rollup-freebsd-arm64": "4.27.1", + "@rollup/rollup-freebsd-x64": "4.27.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.1", + "@rollup/rollup-linux-arm-musleabihf": "4.27.1", + "@rollup/rollup-linux-arm64-gnu": "4.27.1", + "@rollup/rollup-linux-arm64-musl": "4.27.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.1", + "@rollup/rollup-linux-riscv64-gnu": "4.27.1", + "@rollup/rollup-linux-s390x-gnu": "4.27.1", + "@rollup/rollup-linux-x64-gnu": "4.27.1", + "@rollup/rollup-linux-x64-musl": "4.27.1", + "@rollup/rollup-win32-arm64-msvc": "4.27.1", + "@rollup/rollup-win32-ia32-msvc": "4.27.1", + "@rollup/rollup-win32-x64-msvc": "4.27.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/sass-loader": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", + "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.8.tgz", + "integrity": "sha512-mB8ToUuSmzODSpENgvpFk2fTiU/YQ1tmcVJJ4WZbq4fPdGJkFNVcmVL5k7iDug6xzWjjuGDKAuSievIsD6H7Xw==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/webpack-dev-middleware": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz", + "integrity": "sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@angular-builders/custom-webpack/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1703.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.11.tgz", + "integrity": "sha512-YNasVZk4rYdcM6M+KRH8PUBhVyJfqzUYLpO98GgRokW+taIDgifckSlmfDZzQRbw45qiwei1IKCLqcpC8nM5Tw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.11", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/@angular-devkit/core": { + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", + "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/architect/node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/@angular-devkit/architect/node_modules/picomatch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", + "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.11.tgz", + "integrity": "sha512-09Ln3NAdlMw/wMLgnwYU5VgWV5TPBEHolZUIvE9D8b6SFWBCowk3B3RWeAMgg7Peuf9SKwqQHBz2b1C7RTP/8g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.11", + "@angular-devkit/build-webpack": "0.1802.11", + "@angular-devkit/core": "18.2.11", + "@angular/build": "18.2.11", + "@babel/core": "7.25.2", + "@babel/generator": "7.25.0", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-transform-async-generator-functions": "7.25.0", + "@babel/plugin-transform-async-to-generator": "7.24.7", + "@babel/plugin-transform-runtime": "7.24.7", + "@babel/preset-env": "7.25.3", + "@babel/runtime": "7.25.0", + "@discoveryjs/json-ext": "0.6.1", + "@ngtools/webpack": "18.2.11", + "@vitejs/plugin-basic-ssl": "1.1.0", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.20", + "babel-loader": "9.1.3", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "12.0.2", + "critters": "0.0.24", + "css-loader": "7.1.2", + "esbuild-wasm": "0.23.0", + "fast-glob": "3.3.2", + "http-proxy-middleware": "3.0.3", + "https-proxy-agent": "7.0.5", + "istanbul-lib-instrument": "6.0.3", + "jsonc-parser": "3.3.1", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "12.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.3.1", + "magic-string": "0.30.11", + "mini-css-extract-plugin": "2.9.0", + "mrmime": "2.0.0", + "open": "10.1.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "postcss": "8.4.41", + "postcss-loader": "8.1.1", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.77.6", + "sass-loader": "16.0.0", + "semver": "7.6.3", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.31.6", + "tree-kill": "1.2.2", + "tslib": "2.6.3", + "vite": "5.4.6", + "watchpack": "2.4.1", + "webpack": "5.94.0", + "webpack-dev-middleware": "7.4.2", + "webpack-dev-server": "5.0.4", + "webpack-merge": "6.0.1", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.23.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "@web/test-runner": "^0.18.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^18.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { + "version": "0.1802.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.11.tgz", + "integrity": "sha512-p+XIc/j51aI83ExNdeZwvkm1F4wkuKMGUUoj0MVUUi5E6NoiMlXYm6uU8+HbRvPBzGy5+3KOiGp3Fks0UmDSAA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "18.2.11", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@discoveryjs/json-ext": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", + "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", + "dev": true, + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/darwin-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-loong64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-s390x": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/sunos-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/esbuild": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/esbuild-wasm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", + "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rollup": { + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.1.tgz", + "integrity": "sha512-TgWbfXdZsMNTNCLv6/YXzPTjyA0m1mFTe3/2/C5VxA8bSYwyam8OIJiHZZUhErmNzKNcPLWec3KUIdMdXZ6+FA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.27.1", + "@rollup/rollup-android-arm64": "4.27.1", + "@rollup/rollup-darwin-arm64": "4.27.1", + "@rollup/rollup-darwin-x64": "4.27.1", + "@rollup/rollup-freebsd-arm64": "4.27.1", + "@rollup/rollup-freebsd-x64": "4.27.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.1", + "@rollup/rollup-linux-arm-musleabihf": "4.27.1", + "@rollup/rollup-linux-arm64-gnu": "4.27.1", + "@rollup/rollup-linux-arm64-musl": "4.27.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.1", + "@rollup/rollup-linux-riscv64-gnu": "4.27.1", + "@rollup/rollup-linux-s390x-gnu": "4.27.1", + "@rollup/rollup-linux-x64-gnu": "4.27.1", + "@rollup/rollup-linux-x64-musl": "4.27.1", + "@rollup/rollup-win32-arm64-msvc": "4.27.1", + "@rollup/rollup-win32-ia32-msvc": "4.27.1", + "@rollup/rollup-win32-x64-msvc": "4.27.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/terser": { + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1802.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.11.tgz", + "integrity": "sha512-G76rNsyn1iQk7qjyr+K4rnDzfalmEswmwXQorypSDGaHYzIDY1SZXMoP4225WMq5fJNBOJrk82FA0PSfnPE+zQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1802.11", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { + "version": "0.1802.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.11.tgz", + "integrity": "sha512-p+XIc/j51aI83ExNdeZwvkm1F4wkuKMGUUoj0MVUUi5E6NoiMlXYm6uU8+HbRvPBzGy5+3KOiGp3Fks0UmDSAA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "18.2.11", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.11.tgz", + "integrity": "sha512-H9P1shRGigORWJHUY2BRa2YurT+DVminrhuaYHsbhXBRsPmgB2Dx/30YLTnC1s5XmR9QIRUCsg/d3kyT1wd5Zg==", + "dev": true, + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/core/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, + "node_modules/@angular-devkit/core/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.11.tgz", + "integrity": "sha512-efRK3FotTFp4KD5u42jWfXpHUALXB9kJNsWiB4wEImKFH6CN+vjBspJQuLqk2oeBFh/7D2qRMc5P+2tZHM5hdw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "18.2.11", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, + "node_modules/@angular-eslint/bundled-angular-compiler": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.0.tgz", + "integrity": "sha512-HlFHt2qgdd+jqyVIkCXmrjHauXo/XY3Rp0UNabk83ejGi/raM/6lEFI7iFWzHxLyiAKk4OgGI5W26giSQw991A==", + "dev": true + }, + "node_modules/@angular-eslint/eslint-plugin": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.0.tgz", + "integrity": "sha512-Saz9lkWPN3da7ZKW17UsOSN7DeY+TPh+wz/6GCNZCh67Uw2wvMC9agb+4hgpZNXYCP5+u7erqzxQmBoWnS/A+A==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.0", + "@angular-eslint/utils": "18.4.0" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/eslint-plugin-template": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.0.tgz", + "integrity": "sha512-n3uZFCy76DnggPqjSVFV3gYD1ik7jCG28o2/HO4kobcMNKnwW8XAlFUagQ4TipNQh7fQiAefsEqvv2quMsYDVw==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.0", + "@angular-eslint/utils": "18.4.0", + "aria-query": "5.3.2", + "axobject-query": "4.1.0" + }, + "peerDependencies": { + "@typescript-eslint/types": "^7.11.0 || ^8.0.0", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/template-parser": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.4.0.tgz", + "integrity": "sha512-VTep3Xd3IOaRIPL+JN/TV4/2DqUPbjtF3TNY15diD/llnrEhqFnmsvMihexbQyTqzOG+zU554oK44YfvAtHOrw==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.0", + "eslint-scope": "^8.0.2" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/utils": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.0.tgz", + "integrity": "sha512-At1yS8GRviGBoaupiQwEOL4/IcZJCE/+2vpXdItMWPGB1HWetxlKAUZTMmIBX/r5Z7CoXxl+LbqpGhrhyzIQAg==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.0" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular/animations": { + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.11.tgz", + "integrity": "sha512-ghgXa2VhtyJJnTMuH2NYxCMsveQbZno44AZGygPqrcW8UQMQe9GulFaTXCH5s6/so2CLy2ZviIwSZQRgK0ZlDw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.11" + } + }, + "node_modules/@angular/build": { + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.11.tgz", + "integrity": "sha512-AgirvSCmqUKiDE3C0rl3JA68OkOqQWDKUvjqRHXCkhxldLVOVoeIl87+jBYK/v9gcmk+K+ju+5wbGEfu1FjhiQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.11", + "@babel/core": "7.25.2", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-syntax-import-attributes": "7.24.7", + "@inquirer/confirm": "3.1.22", + "@vitejs/plugin-basic-ssl": "1.1.0", + "browserslist": "^4.23.0", + "critters": "0.0.24", + "esbuild": "0.23.0", + "fast-glob": "3.3.2", + "https-proxy-agent": "7.0.5", + "listr2": "8.2.4", + "lmdb": "3.0.13", + "magic-string": "0.30.11", + "mrmime": "2.0.0", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "rollup": "4.22.4", + "sass": "1.77.6", + "semver": "7.6.3", + "vite": "5.4.6", + "watchpack": "2.4.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "less": "^4.2.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular/build/node_modules/@angular-devkit/architect": { + "version": "0.1802.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.11.tgz", + "integrity": "sha512-p+XIc/j51aI83ExNdeZwvkm1F4wkuKMGUUoj0MVUUi5E6NoiMlXYm6uU8+HbRvPBzGy5+3KOiGp3Fks0UmDSAA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "18.2.11", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/build/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/build/node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/android-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/android-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/android-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/darwin-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-loong64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-s390x": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/sunos-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/win32-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/win32-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/win32-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-android-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular/build/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@angular/build/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@angular/build/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular/build/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true + }, + "node_modules/@angular/build/node_modules/esbuild": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" + } + }, + "node_modules/@angular/build/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/@angular/build/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/build/node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "dev": true, + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@angular/build/node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/@angular/build/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular/build/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/rollup": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular/build/node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@angular/build/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/build/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@angular/build/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/@angular/build/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/build/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@angular/build/node_modules/vite": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/build/node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/@angular/build/node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@angular/build/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@angular/cdk": { + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.11.tgz", + "integrity": "sha512-FuvfhrSz2ch0gyOVHrkWq2C/I2PnOzKYSXlG/VEG+ize/WNrvlYy//5WVrTh/hv+HD9sdoWPr9ULXsfFfgbo7w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.12.tgz", + "integrity": "sha512-xhuZ/b7IhqNw1MgXf+arWf4x+GfUSt/IwbdWU4+CO8A7h0Y46zQywouP/KUK3cMQZfVdHdciTBvlpF3vFacA6Q==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1802.12", + "@angular-devkit/core": "18.2.12", + "@angular-devkit/schematics": "18.2.12", + "@inquirer/prompts": "5.3.8", + "@listr2/prompt-adapter-inquirer": "2.0.15", + "@schematics/angular": "18.2.12", + "@yarnpkg/lockfile": "1.1.0", + "ini": "4.1.3", + "jsonc-parser": "3.3.1", + "listr2": "8.2.4", + "npm-package-arg": "11.0.3", + "npm-pick-manifest": "9.1.0", + "pacote": "18.0.6", + "resolve": "1.22.8", + "semver": "7.6.3", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1802.12", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.12.tgz", + "integrity": "sha512-bepVb2/GtJppYKaeW8yTGE6egmoWZ7zagFDsmBdbF+BYp+HmeoPsclARcdryBPVq68zedyTRdvhWSUTbw1AYuw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "18.2.12", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.12.tgz", + "integrity": "sha512-NtB6ypsaDyPE6/fqWOdfTmACs+yK5RqfH5tStEzWFeeDsIEDYKsJ06ypuRep7qTjYus5Rmttk0Ds+cFgz8JdUQ==", + "dev": true, + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.12.tgz", + "integrity": "sha512-mMea9txHbnCX5lXLHlo0RAgfhFHDio45/jMsREM2PA8UtVf2S8ltXz7ZwUrUyMQRv8vaSfn4ijDstF4hDMnRgQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "18.2.12", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@schematics/angular": { + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.12.tgz", + "integrity": "sha512-sIoeipsisK5eTLW3XuNZYcal83AfslBbgI7LnV+3VrXwpasKPGHwo2ZdwhCd2IXAkuJ02Iyu7MyV0aQRM9i/3g==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "18.2.12", + "@angular-devkit/schematics": "18.2.12", + "jsonc-parser": "3.3.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular/cli/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@angular-devkit/build-angular/node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "node_modules/@angular/cli/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, "engines": { - "node": ">= 12.13.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@angular-devkit/build-angular/node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "dev": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/@angular/cli/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/@angular/cli/node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "node_modules/@angular/cli/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true }, - "node_modules/@angular-devkit/build-angular/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/@angular/cli/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "dev": true }, - "node_modules/@angular-devkit/build-angular/node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "node_modules/@angular/cli/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/rollup": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", - "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "node_modules/@angular/cli/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, + "node_modules/@angular/cli/node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.10.0", - "@rollup/rollup-android-arm64": "4.10.0", - "@rollup/rollup-darwin-arm64": "4.10.0", - "@rollup/rollup-darwin-x64": "4.10.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", - "@rollup/rollup-linux-arm64-gnu": "4.10.0", - "@rollup/rollup-linux-arm64-musl": "4.10.0", - "@rollup/rollup-linux-riscv64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-musl": "4.10.0", - "@rollup/rollup-win32-arm64-msvc": "4.10.0", - "@rollup/rollup-win32-ia32-msvc": "4.10.0", - "@rollup/rollup-win32-x64-msvc": "4.10.0", - "fsevents": "~2.3.2" + "node": ">=18.0.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/sass": { - "version": "1.69.7", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", - "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "node_modules/@angular/cli/node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/@angular/cli/node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "get-east-asian-width": "^1.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/vite": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", - "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", + "node_modules/@angular/cli/node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" - }, - "bin": { - "vite": "bin/vite.js" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": ">=18" }, "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/@angular-devkit/build-angular/node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "node_modules/@angular/cli/node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "dev": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1701.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.2.tgz", - "integrity": "sha512-LqfSO5iTbiYByDadUET/8uIun8vSHMEdtoxiil/kdZ5T0NG0p7K8QqUMnWgg6suwO6kFfYJkMiS8Dq3Y/ONUNQ==", + "node_modules/@angular/cli/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.2", - "rxjs": "7.8.1" + "mimic-function": "^5.0.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=18" }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/core": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.2.tgz", - "integrity": "sha512-ku+/W/HMCBacSWFppenr9y6Lx8mDuTuQvn1IkTyBLiJOpWnzgVbx9kHDeaDchGa1PwLlJUBBrv27t3qgJOIDPw==", + "node_modules/@angular/cli/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "3.0.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" + "node": ">=12" }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@angular-devkit/schematics": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.2.tgz", - "integrity": "sha512-8S9RuM8olFN/gwN+mjbuF1CwHX61f0i59EGXz9tXLnKRUTjsRR+8vVMTAmX0dvVAT5fJTG/T69X+HX7FeumdqA==", + "node_modules/@angular/cli/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, - "dependencies": { - "@angular-devkit/core": "17.1.2", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.5", - "ora": "5.4.1", - "rxjs": "7.8.1" - }, "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.2.1.tgz", - "integrity": "sha512-puC0itsZv2QlrDOCcWtq1KZH+DvfrpV+mV78HHhi6+h25R5iIhr8ARKcl3EQxFjvrFq34jhG8pSupxKvFbHVfA==", - "dev": true - }, - "node_modules/@angular-eslint/eslint-plugin": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.2.1.tgz", - "integrity": "sha512-9yA81BHpsaCUKRBtHGN3ieAy8HpIoffzPQMu34lYqZFT4yGHGhYmhQjNSQGBRbV2LD9dVv2U35rMHNmUcozXpw==", + "node_modules/@angular/cli/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "dependencies": { - "@angular-eslint/utils": "17.2.1", - "@typescript-eslint/utils": "6.19.0" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.2.1.tgz", - "integrity": "sha512-hl1hcHtcm90wyVL1OQGTz16oA0KHon+FFb3Qg0fLXObaXxA495Ecefd9ub5Xxg4JEOPRDi29bF1Y3YKpwflgeg==", + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.2.1", - "@angular-eslint/utils": "17.2.1", - "@typescript-eslint/type-utils": "6.19.0", - "@typescript-eslint/utils": "6.19.0", - "aria-query": "5.3.0", - "axobject-query": "4.0.0" + "bin": { + "semver": "bin/semver.js" }, - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "engines": { + "node": ">=10" } }, - "node_modules/@angular-eslint/template-parser": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.2.1.tgz", - "integrity": "sha512-WPQYFvRju0tCDXQ/pwrzC911pE07JvpeDgcN2elhzV6lxDHJEZpA5O9pnW9qgNA6J6XM9Q7dBkJ22ztAzC4WFw==", + "node_modules/@angular/cli/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.2.1", - "eslint-scope": "^8.0.0" + "engines": { + "node": ">=14" }, - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@angular-eslint/utils": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.2.1.tgz", - "integrity": "sha512-qQYTBXy90dWM7fhhpa5i9lTtqqhJisvRa+naCrQx9kBgR458JScLdkVIdcZ9D/rPiDCmKiVUfgcDISnjUeqTqg==", + "node_modules/@angular/cli/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.2.1", - "@typescript-eslint/utils": "6.19.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/@angular/animations": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.2.tgz", - "integrity": "sha512-ZsHa/zoWBOZdispjcNgXCoF9MAtc6Zyzc/QFUjtOFI9vigOI8tWP6GY1Wfeg4cyL+R3uDGYBgMrdr8l84VfuKg==", + "node_modules/@angular/cli/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, "dependencies": { - "tslib": "^2.3.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": ">=18" }, - "peerDependencies": { - "@angular/core": "17.1.2" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular/cdk": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.1.2.tgz", - "integrity": "sha512-eu9D60RQv213qi7oh6ae9Z+d6+AG/aqi0y70Ag9BjwqTiatDiYvSySxswxYYKdzPp0hx0ZUTGi16LqtT6pyj6Q==", + "node_modules/@angular/cli/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "dependencies": { - "tslib": "^2.3.0" + "ansi-regex": "^6.0.1" }, - "optionalDependencies": { - "parse5": "^7.1.2" + "engines": { + "node": ">=12" }, - "peerDependencies": { - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", - "rxjs": "^6.5.3 || ^7.4.0" + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@angular/cli": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.2.tgz", - "integrity": "sha512-U1W6XZNrfeRkXW2fO3AU25rRttqZahVkhzcK3lAtJ8+lSrStCOF7x1gz6tmFZFte1fNHQrXqD0yIDkd8H2/cvw==", + "node_modules/@angular/cli/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.2", - "@angular-devkit/core": "17.1.2", - "@angular-devkit/schematics": "17.1.2", - "@schematics/angular": "17.1.2", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "4.1.1", - "inquirer": "9.2.12", - "jsonc-parser": "3.2.0", - "npm-package-arg": "11.0.1", - "npm-pick-manifest": "9.0.0", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "17.0.5", - "resolve": "1.22.8", - "semver": "7.5.4", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "bin": { - "ng": "bin/ng.js" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/@angular/common": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.2.tgz", - "integrity": "sha512-y/wD+zuPaPgK3dB80Q63qBtuu5TuryKuUgjWrOmrguBWV9oiJRhKQrcp1gVw9vVrowmbDBKGtPMS622Q4oxOWQ==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.11.tgz", + "integrity": "sha512-bamJeISl2zUlvjPYebQWazUjhjXU9nrot42cQJng94SkvNENT9LTWfPYgc+Bd972Kg+31jG4H41rgFNs7zySmw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "17.1.2", + "@angular/core": "18.2.11", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.2.tgz", - "integrity": "sha512-1vJuQRM5V01nC6qsLvBKrHVZXpzbK0YKubwVQUXCSfDNZBcDFak3SQcwU4C2t880rU3ZvFDB1UWfk7CKn5w9Kw==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.11.tgz", + "integrity": "sha512-PSVL1YXUhTzkgJNYXiWk9eAZxNV6laQJRGdj9++C1q9m2S9/GlehZGzkt5GtC5rlUweJucCNvBC1+2D5FAt9vA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "17.1.2" + "@angular/core": "18.2.11" }, "peerDependenciesMeta": { "@angular/core": { @@ -1090,16 +5842,16 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.2.tgz", - "integrity": "sha512-4P4ttCe4IF9yq7bxCDxbVW7purN7qV0nqofP5Tth1xCsgIJeGmOMMQJN5RJCZNrAPMkvMv39eV878sgcDjbpOA==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.11.tgz", + "integrity": "sha512-YJlAOiXZUYP6/RK9isu5AOucmNZhFB9lpY/beMzkkWgDku+va8szm4BZbLJFz176IUteyLWF3IP4aE7P9OBlXw==", "dev": true, "dependencies": { - "@babel/core": "7.23.2", + "@babel/core": "7.25.2", "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", + "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.1.2", + "reflect-metadata": "^0.2.0", "semver": "^7.0.0", "tslib": "^2.3.0", "yargs": "^17.2.1" @@ -1110,29 +5862,29 @@ "ngcc": "bundles/ngcc/index.js" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "17.1.2", - "typescript": ">=5.2 <5.4" + "@angular/compiler": "18.2.11", + "typescript": ">=5.4 <5.6" } }, "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1162,125 +5914,134 @@ "semver": "bin/semver.js" } }, + "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/compiler-cli/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular/core": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.2.tgz", - "integrity": "sha512-0M787BZVgYSVogHCUzo/dFrT56TgfQoEsOQngHMpyERJZv6dycXZlRdHc6TzvHUa+Uu/MNjn/RclBR8063bdWA==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.11.tgz", + "integrity": "sha512-/AGAFyZN8KR+kW5FUFCCBCj3qHyDDum7G0lJe5otrT9AqF6+g7PjF8yLha/6wPkJG7ri5xGLhini1sEivVeq/g==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.0" + "zone.js": "~0.14.10" } }, "node_modules/@angular/forms": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.2.tgz", - "integrity": "sha512-n1WsZAL2IVOB6ocROKR6CFOR14PIC9RGAB41SwTfPhJeBM1kjW48bXY0sw97TasxM4mWJKGCmFXu0jQwkoeSpQ==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.11.tgz", + "integrity": "sha512-QjxayOxDTqsTJGBzfWd3nms1LZIXj2f1+wIPxxUNXyNS5ZaM7hBWkz2BTFYeewlD/HdNj0alNVCYK3M8ElLWYw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2", + "@angular/common": "18.2.11", + "@angular/core": "18.2.11", + "@angular/platform-browser": "18.2.11", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.1.2.tgz", - "integrity": "sha512-EqmbDT696a1KC04l5I4dilf86IJnj0jPxw8OXI9dlSQhsWYp8Egkc5+C0Hd7wmuHt/BeqSuMSJfk7DhfzKbx1w==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-18.2.11.tgz", + "integrity": "sha512-kI36Wfvw3E01Xox/H535/rrSTiDfzQeXATFR5i5vqc94XWUdQG67e4X6ybnqFUrezXoLPTULHp+5Di896YFPzw==", "dev": true, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" } }, "node_modules/@angular/material": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.1.2.tgz", - "integrity": "sha512-50n7JDWtWGCxfrMKVKZ2wqkdozukA3IWeypQgXxzZc+4jqgT6Vj8/U4xNvcO9OgPLMOaTvktfT+wzUmCKJ0sng==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.11.tgz", + "integrity": "sha512-VPfnpwmg6p5DsH1UMfOXjKA+qAbUx6nyinGWpx4+ntr/T1oEhRk5CnoOtVS0Xk0rnRSbEF6ayjDBH2YPR9ol3A==", "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/auto-init": "15.0.0-canary.7f224ddd4.0", - "@material/banner": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/button": "15.0.0-canary.7f224ddd4.0", - "@material/card": "15.0.0-canary.7f224ddd4.0", - "@material/checkbox": "15.0.0-canary.7f224ddd4.0", - "@material/chips": "15.0.0-canary.7f224ddd4.0", - "@material/circular-progress": "15.0.0-canary.7f224ddd4.0", - "@material/data-table": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dialog": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/drawer": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/fab": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/floating-label": "15.0.0-canary.7f224ddd4.0", - "@material/form-field": "15.0.0-canary.7f224ddd4.0", - "@material/icon-button": "15.0.0-canary.7f224ddd4.0", - "@material/image-list": "15.0.0-canary.7f224ddd4.0", - "@material/layout-grid": "15.0.0-canary.7f224ddd4.0", - "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", - "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", - "@material/list": "15.0.0-canary.7f224ddd4.0", - "@material/menu": "15.0.0-canary.7f224ddd4.0", - "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", - "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", - "@material/radio": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/segmented-button": "15.0.0-canary.7f224ddd4.0", - "@material/select": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/slider": "15.0.0-canary.7f224ddd4.0", - "@material/snackbar": "15.0.0-canary.7f224ddd4.0", - "@material/switch": "15.0.0-canary.7f224ddd4.0", - "@material/tab": "15.0.0-canary.7f224ddd4.0", - "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", - "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", - "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", - "@material/textfield": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tooltip": "15.0.0-canary.7f224ddd4.0", - "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^17.0.0 || ^18.0.0", - "@angular/cdk": "17.1.2", - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", - "@angular/forms": "^17.0.0 || ^18.0.0", - "@angular/platform-browser": "^17.0.0 || ^18.0.0", + "@angular/animations": "^18.0.0 || ^19.0.0", + "@angular/cdk": "18.2.11", + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", + "@angular/forms": "^18.0.0 || ^19.0.0", + "@angular/platform-browser": "^18.0.0 || ^19.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.2.tgz", - "integrity": "sha512-unfpA5OLnqDmDb/oAQR2t2iROpOg02qwZayxyFg4MUZdDdnghPCfX77L2sr6oVVa7OJfKYFlmwmBXX1H3zjcXA==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.11.tgz", + "integrity": "sha512-bzcP0QdPT/ncTxOx0t7901z5m0wDmkraTo/es4g8reV6VK9Ptv0QDuD8aDvrHh7sLCX5VgwDF9ohc6S2TpYUCA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "17.1.2", - "@angular/common": "17.1.2", - "@angular/core": "17.1.2" + "@angular/animations": "18.2.11", + "@angular/common": "18.2.11", + "@angular/core": "18.2.11" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1289,45 +6050,39 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.2.tgz", - "integrity": "sha512-xiWVDHbA+owDhKo5SAnzZtawA1ktGthlCl3YTI+vmkJpF6axkYOqR7YL+aEQX/y/5GSK+oR+03SgAnYcpOwKlQ==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.11.tgz", + "integrity": "sha512-a30U4ZdTZSvL17xWwOq6xh9ToCDP2K7/j1HTJFREObbuAtZTa/6IVgBUM6oOMNQ43kHkT6Mr9Emkgf9iGtWwfw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/compiler": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2" + "@angular/common": "18.2.11", + "@angular/compiler": "18.2.11", + "@angular/core": "18.2.11", + "@angular/platform-browser": "18.2.11" } }, "node_modules/@angular/router": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.2.tgz", - "integrity": "sha512-8OexxiiscRdfEiB6jOKlZFyAKZtvIQvh0ugW6U7nAXPV5XsA2UL80sXkc829eH0DnJn2Wj/HS6ZNGgG81PWDHg==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.11.tgz", + "integrity": "sha512-xh4+t4pNBWxeH1a6GIoEGVSRZO4NDKK8q6b+AzB5GBgKsYgOz2lc74RXIPA//pK3aHrS9qD4sJLlodwgE/1+bA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2", + "@angular/common": "18.2.11", + "@angular/core": "18.2.11", + "@angular/platform-browser": "18.2.11", "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@assemblyscript/loader": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", - "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", - "dev": true - }, "node_modules/@aw-web-design/x-default-browser": { "version": "1.4.126", "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz", @@ -1410,11 +6165,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -1422,17 +6178,17 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -1440,11 +6196,11 @@ "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1490,12 +6246,11 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1514,13 +6269,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -1556,17 +6311,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1591,17 +6335,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1651,26 +6384,25 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1714,17 +6446,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-replace-supers": { "version": "7.25.0", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", @@ -1766,37 +6487,37 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "engines": { "node": ">=6.9.0" } @@ -1815,37 +6536,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -2271,9 +6978,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", - "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -2383,17 +7090,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", @@ -2848,17 +7544,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", @@ -2919,17 +7604,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-react-pure-annotations": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", @@ -2945,17 +7619,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-pure-annotations/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", @@ -2986,16 +7649,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz", - "integrity": "sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", + "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "semver": "^6.3.1" }, "engines": { @@ -3103,17 +7766,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typescript/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", @@ -3174,14 +7826,14 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", - "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", @@ -3206,13 +7858,13 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", "@babel/plugin-transform-async-to-generator": "^7.23.3", "@babel/plugin-transform-block-scoped-functions": "^7.23.3", "@babel/plugin-transform-block-scoping": "^7.23.4", "@babel/plugin-transform-class-properties": "^7.23.3", "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-classes": "^7.23.8", "@babel/plugin-transform-computed-properties": "^7.23.3", "@babel/plugin-transform-destructuring": "^7.23.3", "@babel/plugin-transform-dotall-regex": "^7.23.3", @@ -3228,13 +7880,13 @@ "@babel/plugin-transform-member-expression-literals": "^7.23.3", "@babel/plugin-transform-modules-amd": "^7.23.3", "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.23.3", "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", "@babel/plugin-transform-object-super": "^7.23.3", "@babel/plugin-transform-optional-catch-binding": "^7.23.4", "@babel/plugin-transform-optional-chaining": "^7.23.4", @@ -3254,9 +7906,9 @@ "@babel/plugin-transform-unicode-regex": "^7.23.3", "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -3486,9 +8138,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", - "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -3497,28 +8149,28 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -3527,27 +8179,38 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3678,58 +8341,6 @@ "node": ">=v18" } }, - "node_modules/@commitlint/format/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@commitlint/format/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@commitlint/format/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@commitlint/format/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@commitlint/is-ignored": { "version": "18.6.0", "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.6.0.tgz", @@ -3780,58 +8391,6 @@ "node": ">=v18" } }, - "node_modules/@commitlint/load/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@commitlint/load/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@commitlint/load/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@commitlint/load/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@commitlint/message": { "version": "18.4.4", "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.4.4.tgz", @@ -3936,58 +8495,6 @@ "node": ">=v18" } }, - "node_modules/@commitlint/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@commitlint/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@commitlint/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@commitlint/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@covalent/tokens": { "version": "8.20.8", "resolved": "https://registry.npmjs.org/@covalent/tokens/-/tokens-8.20.8.tgz", @@ -5030,6 +9537,34 @@ "node": ">=10.0.0" } }, + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", @@ -5040,9 +9575,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", - "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -5056,9 +9591,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -5072,9 +9607,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -5088,9 +9623,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -5104,9 +9639,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -5120,9 +9655,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -5136,9 +9671,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -5152,9 +9687,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -5168,9 +9703,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -5184,9 +9719,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -5200,9 +9735,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -5216,9 +9751,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -5232,9 +9767,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -5248,9 +9783,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -5264,9 +9799,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -5280,9 +9815,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -5296,9 +9831,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -5312,9 +9847,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -5327,10 +9862,26 @@ "node": ">=12" } }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -5344,9 +9895,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -5360,9 +9911,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -5376,9 +9927,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -5392,9 +9943,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -5431,6 +9982,23 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/compat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.3.tgz", + "integrity": "sha512-wlZhwlDFxkxIZ571aH0FoK4h4Vwx7P3HJx62Gp8hTc10bfpwT2x0nULuAHmQSJBOWPgPeVf+9YtnD4j50zVHmA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^9.10.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", @@ -5544,9 +10112,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", - "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5558,15 +10126,6 @@ "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", "dev": true }, - "node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@floating-ui/core": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", @@ -5606,12 +10165,13 @@ "dev": true }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", + "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" }, @@ -5655,11 +10215,258 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@inquirer/checkbox": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz", + "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", + "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", + "dev": true, + "dependencies": { + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.5", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@inquirer/type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", + "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", + "dev": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@types/node": { + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@inquirer/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@inquirer/core/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, + "node_modules/@inquirer/editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.2.0.tgz", + "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.3.0.tgz", + "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.8.tgz", + "integrity": "sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", + "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.1.0.tgz", + "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.2.0.tgz", + "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", + "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", + "dev": true, + "dependencies": { + "@inquirer/checkbox": "^2.4.7", + "@inquirer/confirm": "^3.1.22", + "@inquirer/editor": "^2.1.22", + "@inquirer/expand": "^2.1.22", + "@inquirer/input": "^2.2.9", + "@inquirer/number": "^1.0.10", + "@inquirer/password": "^2.1.22", + "@inquirer/rawlist": "^2.2.4", + "@inquirer/search": "^1.0.7", + "@inquirer/select": "^2.4.7" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.3.0.tgz", + "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/search": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.1.0.tgz", + "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.5.0.tgz", + "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "dev": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -5850,58 +10657,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/core": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", @@ -5949,46 +10704,6 @@ } } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/core/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -6021,18 +10736,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/environment": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", @@ -6190,58 +10893,6 @@ } } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -6324,64 +10975,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@jest/transform/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -6399,58 +10998,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -6490,9 +11037,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -6503,6 +11050,60 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dev": true, + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@juggle/resize-observer": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", @@ -6763,20 +11364,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@knapsack/app/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@knapsack/app/node_modules/babel-plugin-polyfill-corejs3": { "version": "0.10.6", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", @@ -6800,21 +11387,6 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@knapsack/app/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/@knapsack/app/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -6840,14 +11412,6 @@ "whatwg-url": "^7.0.0" } }, - "node_modules/@knapsack/app/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/@knapsack/app/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -6856,17 +11420,6 @@ "semver": "bin/semver.js" } }, - "node_modules/@knapsack/app/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@knapsack/app/node_modules/tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", @@ -7261,20 +11814,6 @@ "creator-utils": "bin.js" } }, - "node_modules/@knapsack/creator-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@knapsack/creator-utils/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -7802,54 +12341,6 @@ "syswide-cas": "^5.3.0" } }, - "node_modules/@knapsack/https/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@knapsack/https/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/@knapsack/https/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@knapsack/https/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@knapsack/ks-file-utils": { "version": "4.69.14", "resolved": "https://registry.npmjs.org/@knapsack/ks-file-utils/-/ks-file-utils-4.69.14.tgz", @@ -8163,11 +12654,26 @@ } }, "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "dev": true }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", + "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", + "dev": true, + "dependencies": { + "@inquirer/type": "^1.5.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 6" + } + }, "node_modules/@lit-labs/ssr-dom-shim": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", @@ -8182,17 +12688,95 @@ } }, "node_modules/@ljharb/through": { - "version": "2.3.12", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", - "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", + "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.5" + "call-bind": "^1.0.7" }, "engines": { "node": ">= 0.4" } }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", + "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", + "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", + "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", + "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", + "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", + "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@material/animation": { "version": "15.0.0-canary.7f224ddd4.0", "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz", @@ -8201,15 +12785,6 @@ "tslib": "^2.1.0" } }, - "node_modules/@material/auto-init": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, "node_modules/@material/banner": { "version": "15.0.0-canary.7f224ddd4.0", "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz", @@ -8315,21 +12890,6 @@ "tslib": "^2.1.0" } }, - "node_modules/@material/circular-progress": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, "node_modules/@material/data-table": { "version": "15.0.0-canary.7f224ddd4.0", "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz", @@ -8428,26 +12988,6 @@ "tslib": "^2.1.0" } }, - "node_modules/@material/fab": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, "node_modules/@material/feature-targeting": { "version": "15.0.0-canary.7f224ddd4.0", "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz", @@ -8525,14 +13065,6 @@ "tslib": "^2.1.0" } }, - "node_modules/@material/layout-grid": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/@material/line-ripple": { "version": "15.0.0-canary.7f224ddd4.0", "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz", @@ -11850,21 +16382,6 @@ "tslib": "^2.1.0" } }, - "node_modules/@material/segmented-button": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, "node_modules/@material/select": { "version": "15.0.0-canary.7f224ddd4.0", "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz", @@ -12480,39 +16997,425 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", + "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", + "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.15.0", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@module-federation/bridge-react-webpack-plugin": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/bridge-react-webpack-plugin/-/bridge-react-webpack-plugin-0.6.16.tgz", + "integrity": "sha512-AQj20lUL5fmdz4un56W3VF8naZaRDmztczl+/j4Qa69JAaUbbZK6zZJ3NEjx0cNzpiq/mGmG9Vik3V4rI/4BUA==", + "dev": true, + "dependencies": { + "@module-federation/sdk": "0.6.16", + "@types/semver": "7.5.8", + "semver": "7.6.3" + } + }, + "node_modules/@module-federation/bridge-react-webpack-plugin/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@module-federation/data-prefetch": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/data-prefetch/-/data-prefetch-0.6.16.tgz", + "integrity": "sha512-m5SNKlAkB2FFCs2cl6LWqo6s2NZ7HuCrp6QrrMzuKjB6EddvKojVQxOzrWdcMLs1vESy6fyU4M4U7PxSojw6Ww==", + "dev": true, + "dependencies": { + "@module-federation/runtime": "0.6.16", + "@module-federation/sdk": "0.6.16", + "fs-extra": "9.1.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@module-federation/data-prefetch/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@module-federation/dts-plugin": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/dts-plugin/-/dts-plugin-0.6.16.tgz", + "integrity": "sha512-XM6+EYVrS2Q/ZW0u9cH0sJT5t5SQHRjzmW7JWdPv0+wKGCA15WtRMc55boM4Wan7jXJZf+JeD5QLXWiSjaJdnw==", + "dev": true, + "dependencies": { + "@module-federation/error-codes": "0.6.14", + "@module-federation/managers": "0.6.16", + "@module-federation/sdk": "0.6.16", + "@module-federation/third-party-dts-extractor": "0.6.16", + "adm-zip": "^0.5.10", + "ansi-colors": "^4.1.3", + "axios": "^1.7.4", + "chalk": "3.0.0", + "fs-extra": "9.1.0", + "isomorphic-ws": "5.0.0", + "koa": "2.15.3", + "lodash.clonedeepwith": "4.5.0", + "log4js": "6.9.1", + "node-schedule": "2.1.1", + "rambda": "^9.1.0", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/@module-federation/dts-plugin/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@module-federation/dts-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@module-federation/enhanced": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-0.6.16.tgz", + "integrity": "sha512-5MqA35WGvPmCScT/xNnheR4RBa2oYHkLpeVjOA0xg0PeUTC7aSfGRLsntzFeyzLITSjbVTupK2YwmjiZr3Z0LQ==", + "dev": true, + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.6.16", + "@module-federation/data-prefetch": "0.6.16", + "@module-federation/dts-plugin": "0.6.16", + "@module-federation/managers": "0.6.16", + "@module-federation/manifest": "0.6.16", + "@module-federation/rspack": "0.6.16", + "@module-federation/runtime-tools": "0.6.16", + "@module-federation/sdk": "0.6.16", + "btoa": "^1.2.1", + "upath": "2.0.1" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@module-federation/error-codes": { + "version": "0.6.14", + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.6.14.tgz", + "integrity": "sha512-ik+ezloFkxmE5atqTUG9lRr9xV5EcKDjH+MZba2IJQT5cZIM6o2ThTC45E013N4SCleaGxBtIGoPLZJzT4xa0Q==", + "dev": true + }, + "node_modules/@module-federation/managers": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/managers/-/managers-0.6.16.tgz", + "integrity": "sha512-9oqJT0F61GhaFE4EFgJjVyQlD8ohXxMJBS9UGCKC6nHd3+PI4NBWGN2D+alBOwvwtt3LhtssbVH8H8HZEM1GnQ==", + "dev": true, + "dependencies": { + "@module-federation/sdk": "0.6.16", + "find-pkg": "2.0.0", + "fs-extra": "9.1.0" + } + }, + "node_modules/@module-federation/managers/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@module-federation/manifest": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/manifest/-/manifest-0.6.16.tgz", + "integrity": "sha512-YjOk+1uR6E5qIEWiy35IrMyEy+rDGI5nJd+6MQobkXG40DK94mdPxJ7TSCozj/bpZ9SadCxXRCkMiE/gTkryAQ==", + "dev": true, + "dependencies": { + "@module-federation/dts-plugin": "0.6.16", + "@module-federation/managers": "0.6.16", + "@module-federation/sdk": "0.6.16", + "chalk": "3.0.0", + "find-pkg": "2.0.0" + } + }, + "node_modules/@module-federation/manifest/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@module-federation/rspack": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/rspack/-/rspack-0.6.16.tgz", + "integrity": "sha512-9nQAyw7QvgXJYPTQseyQ31qQtSlo0VsppQOyFLstLITzgWWugN7cN8cGAriUKYBI78THuX+lp1mdgsNTBvxJPA==", + "dev": true, + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.6.16", + "@module-federation/dts-plugin": "0.6.16", + "@module-federation/managers": "0.6.16", + "@module-federation/manifest": "0.6.16", + "@module-federation/runtime-tools": "0.6.16", + "@module-federation/sdk": "0.6.16" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/@module-federation/runtime": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.6.16.tgz", + "integrity": "sha512-3oFDRkolGwiXuQz+wzX3YzBWI9so0+K05YRf0TEdJguj3W/v/AMrBCz7W4c4O/wSK45Kuqd4lHKhCyKWRPyhOw==", + "dev": true, + "dependencies": { + "@module-federation/error-codes": "0.6.14", + "@module-federation/sdk": "0.6.16" + } + }, + "node_modules/@module-federation/runtime-tools": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.6.16.tgz", + "integrity": "sha512-AIaxnx99tVYppYCgdJQz43mrGZ2pPJtC7YEIjuQV+UnSORj+d/GOIqF88MDx3i7siFcQ4zrT5BVtEWhXcJdv0g==", + "dev": true, + "dependencies": { + "@module-federation/runtime": "0.6.16", + "@module-federation/webpack-bundler-runtime": "0.6.16" + } + }, + "node_modules/@module-federation/sdk": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.6.16.tgz", + "integrity": "sha512-rzQH/v9bVc032lzV4j1IGYRc5gszwzBevYBBDJf3oNLwkY2kIDUJ99OWvq3aaPJoE0jEWPVe3K5iNc+dZe4tMQ==", + "dev": true, + "dependencies": { + "isomorphic-rslog": "0.0.5" + } + }, + "node_modules/@module-federation/third-party-dts-extractor": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/third-party-dts-extractor/-/third-party-dts-extractor-0.6.16.tgz", + "integrity": "sha512-F4W8QBlPLNY22TGjUWA+FyFYN6wVgGKhefd170A8BOqv2gB1yhm6OIEmDnO6TwfDfQQebVCcAu23AzLzgS5eCg==", + "dev": true, + "dependencies": { + "find-pkg": "2.0.0", + "fs-extra": "9.1.0", + "resolve": "1.22.8" + } + }, + "node_modules/@module-federation/third-party-dts-extractor/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@module-federation/webpack-bundler-runtime": { + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.6.16.tgz", + "integrity": "sha512-Tpi251DApEaQ62KCaJCh1RU1SZTUcVh8lx2zotn/YOMZdw83IzYu3PYYA1V0Eg5jVe6I2GmGH52pJPCtwbgjqA==", + "dev": true, + "dependencies": { + "@module-federation/runtime": "0.6.16", + "@module-federation/sdk": "0.6.16" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@microsoft/api-extractor/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], "dev": true, - "engines": { - "node": ">= 4.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@microsoft/tsdoc": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", - "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", - "dev": true + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", - "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", + "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", "dev": true, "dependencies": { - "@microsoft/tsdoc": "0.15.0", - "ajv": "~8.12.0", - "jju": "~1.4.0", - "resolve": "~1.22.2" + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", + "@tybys/wasm-util": "^0.9.0" } }, "node_modules/@ndelangen/get-tarball": { @@ -12527,18 +17430,18 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.2.tgz", - "integrity": "sha512-MdNVSIp0x8AK26L+CxMTXH4weq2sNIp4C09RSdk7y6UkfBxMA3O0jTto9tW3ehkBaaGZ4dSiWkXA8L/ydMiQmA==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.11.tgz", + "integrity": "sha512-iTdUGJ5O7yMm1DyCzyoMDMxBJ68emUSSXPWbQzEEdcqmtifRebn+VAq4vHN8OmtGM1mtuKeLEsbiZP8ywrw7Ug==", "dev": true, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "typescript": ">=5.2 <5.4", + "@angular/compiler-cli": "^18.0.0", + "typescript": ">=5.4 <5.6", "webpack": "^5.54.0" } }, @@ -12606,25 +17509,25 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.1.tgz", - "integrity": "sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" + "socks-proxy-agent": "^8.0.3" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/agent/node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -12635,13 +17538,10 @@ } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/@npmcli/fs": { "version": "3.1.0", @@ -12656,15 +17556,16 @@ } }, "node_modules/@npmcli/git": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz", - "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", @@ -12684,12 +17585,18 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/@npmcli/git/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, "engines": { - "node": "14 || >=16.14" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/git/node_modules/which": { @@ -12708,16 +17615,16 @@ } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -12733,9 +17640,9 @@ } }, "node_modules/@npmcli/package-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.0.tgz", - "integrity": "sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -12743,7 +17650,7 @@ "hosted-git-info": "^7.0.0", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^6.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.5.3" }, "engines": { @@ -12751,9 +17658,9 @@ } }, "node_modules/@npmcli/package-json/node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", @@ -12767,20 +17674,48 @@ } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { "node": ">=16 || 14 >=14.17" }, @@ -12788,6 +17723,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@npmcli/package-json/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@npmcli/package-json/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -12801,9 +17745,9 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", - "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, "dependencies": { "which": "^4.0.0" @@ -12836,16 +17780,26 @@ "node": "^16.13.0 || >=18.0.0" } }, + "node_modules/@npmcli/redact": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/@npmcli/run-script": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", - "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", "which": "^4.0.0" }, "engines": { @@ -12861,6 +17815,15 @@ "node": ">=16" } }, + "node_modules/@npmcli/run-script/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@npmcli/run-script/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -12877,67 +17840,67 @@ } }, "node_modules/@nrwl/angular": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/angular/-/angular-17.3.1.tgz", - "integrity": "sha512-EjJ0VdGAPN8HErACnt4TnsHMPYYB3dnfd8+GEbyGhbiapVkRR/DjkDKFBBfGClWX1zdQRS9YfselhKlSl5uRJg==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/angular/-/angular-19.8.9.tgz", + "integrity": "sha512-UeNMBuWjssj78m0IAGr+2OXBlYq6Jdl6rKUscUSS0C4TRPYHNj/GwI8n9LQSBwYJ/Vk0IOLBxzmEqYMQq5X9xw==", "dev": true, "dependencies": { - "@nx/angular": "17.3.1", + "@nx/angular": "19.8.9", "tslib": "^2.3.0" } }, "node_modules/@nrwl/cypress": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/cypress/-/cypress-17.3.1.tgz", - "integrity": "sha512-t+oLUobHhpl0+CBa61wZgOahUiGUhOnFvrACITDxKzcMJXtzail4IzaDy0Fy/XXd6KDyJ2RQqgmhbvEF/Hj+jQ==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/cypress/-/cypress-19.8.9.tgz", + "integrity": "sha512-XK2wOBDfwe4Qmu81Fi/IwY0KD1TjWv3vyqepr+zArLj7VAjMon82L2XS158CzDnH9iVA2VqA9oxB4YEvCoy55g==", "dev": true, "dependencies": { - "@nx/cypress": "17.3.1" + "@nx/cypress": "19.8.9" } }, "node_modules/@nrwl/devkit": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.3.1.tgz", - "integrity": "sha512-MtHlsdErSz0Z1j8j+qAKUafWzMs3XcHgXmJomjUzect1jS/HtmbcDvdMv9GwVtk+67JD+7ca2CWjk2atv6dZdw==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.8.9.tgz", + "integrity": "sha512-BCHdLzoySEg5HxWOWfcp/CEnUyVss66CBNlfdG1xAvQjDb6DfYRpeT9YUUmS+DddLHCDfI9uutbzW08tdv7/tA==", "dev": true, "dependencies": { - "@nx/devkit": "17.3.1" + "@nx/devkit": "19.8.9" } }, "node_modules/@nrwl/eslint-plugin-nx": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-17.3.1.tgz", - "integrity": "sha512-1KlHRMhB10R2dbym6/YrAZiqcmHxsUN/8ad4axIT3mZ1L2Pmvcikz2cyeTivmmhlJfmkx5JzU6kINADYJGw37A==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-19.8.9.tgz", + "integrity": "sha512-WRvfEIVdLk2/TyTzURZXze4epEEiW/2mSP+89eSJve49ztWQ2OJZXxC0ZjAdLhCNbu2jYObb2PThyBe10GAMTA==", "dev": true, "dependencies": { - "@nx/eslint-plugin": "17.3.1" + "@nx/eslint-plugin": "19.8.9" } }, "node_modules/@nrwl/jest": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/jest/-/jest-17.3.1.tgz", - "integrity": "sha512-zcd967sR+XaSK0UyCreqesP7oxZztOk+UOUoGINoFXktVvUJAogSTqDQtZd8smdFOREQaziFdcEtjAQ15scxxw==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/jest/-/jest-19.8.9.tgz", + "integrity": "sha512-2kJn7MN2b7sATRlzqPrxzS6oP/Fgm+EZwEepQSmEs9B5NTEp7gkFGepSt6jO6EX5JIgu8GoEQEBRNKeUVYYwgw==", "dev": true, "dependencies": { - "@nx/jest": "17.3.1" + "@nx/jest": "19.8.9" } }, "node_modules/@nrwl/js": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/js/-/js-17.3.1.tgz", - "integrity": "sha512-YHUrPJV3c6iWPAx3+il88x64c7dDRbPhQ4Xsj70VAgftgTJSIvHPVsZVYCEmvEobWSSvkklAXAU/zHFwuOLn4A==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/js/-/js-19.8.9.tgz", + "integrity": "sha512-6mK/xUxzQnHBd/sp17QXbxbhPe4Vwc4eeDNm9uVAlElYlet31OruA6tQ89ex0JEuMfh8f2w4URybkySyDMSfbQ==", "dev": true, "dependencies": { - "@nx/js": "17.3.1" + "@nx/js": "19.8.9" } }, "node_modules/@nrwl/tao": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.3.1.tgz", - "integrity": "sha512-bohZt2rzqCz2ITOpQ6H7sYlHhxn3NftHDz0a0QVVDJojjpak73r8XV0zCk2yUN2T8HdRJVyYLyAqDENl9X48pA==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.8.9.tgz", + "integrity": "sha512-WjtYl1t0K/WX52QRW1Oag4MfDigcYgpL/at69nLX3ugGh/FSzh8OBpQOYXaYv23KSuiDWyZLpv1pHrq4a2U5Vg==", "dev": true, "dependencies": { - "nx": "17.3.1", + "nx": "19.8.9", "tslib": "^2.3.0" }, "bin": { @@ -12945,181 +17908,87 @@ } }, "node_modules/@nrwl/vite": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/vite/-/vite-17.3.1.tgz", - "integrity": "sha512-sJymNblmpz5oEYpfyBJob6WIgJ2IY3HHs4EzAOJ1gMS56sgDVNC/27InrIc+SvYw5Ht+q5B+bzPp4gPfL8ntBw==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/vite/-/vite-19.8.9.tgz", + "integrity": "sha512-JyrzbVPow/KJGSV8QOZGGKSdjhag9hczn7qJ2r2WucIPOPwenloG79rsZvs2eCcmgMkwcfRdZ1vPqAzQOR/yWQ==", "dev": true, "dependencies": { - "@nx/vite": "17.3.1" + "@nx/vite": "19.8.9" } }, "node_modules/@nrwl/web": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/web/-/web-17.3.1.tgz", - "integrity": "sha512-ejoiEpFPQry4yHvqws3R7TdcS0yadn25aZSgpWULY4yc8n6ugHrSsCieea6WGVqryi6jcIaJxoZ/Qu7qoPRd/w==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/web/-/web-19.8.9.tgz", + "integrity": "sha512-M2vuGJcgQiC5PFAwkuacMJF8vTjwHu1zmlLAvKFccX2ZVIXiawkl0bGMiD4NkXAjiKQs9wjyXyrUyKRIbtttpA==", "dev": true, "dependencies": { - "@nx/web": "17.3.1" + "@nx/web": "19.8.9" } }, "node_modules/@nrwl/webpack": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/webpack/-/webpack-17.3.1.tgz", - "integrity": "sha512-9bEjF8RjC031U1y8T3PoU/QH1148JfZhQBun8/v/BrPWwrvv9VR0aaz7X3zs7NwPBo4DT9xi3+G4NnS5dHhvPw==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/webpack/-/webpack-19.8.9.tgz", + "integrity": "sha512-9Bxu4s+nUZo+w3pWCPkLNQzu1N4/5ajs0zzTEbYLZOpVs5CgCY5lCYQ854ksQW1VCAOz7SxdjQEhcE8+aIY3GQ==", "dev": true, "dependencies": { - "@nx/webpack": "17.3.1" + "@nx/webpack": "19.8.9" } }, "node_modules/@nrwl/workspace": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-17.3.1.tgz", - "integrity": "sha512-AfgWtnh5/w4MM0dzWh5FHx6HH/2vrMBQTFCD4et4MiBXzOWdqY8fnylz+J5pK+0LZXqm77Uz+DpJbg24kE4pYQ==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-19.8.9.tgz", + "integrity": "sha512-pFeqIX00F4K9+WVyrTo0Ap2cyM8DQ68BPHI6qUnYXjR9RiRWD8xOCrSoAyZ/57WFgQ9DzlAtZMk8FhQOLvzAHw==", "dev": true, "dependencies": { - "@nx/workspace": "17.3.1" + "@nx/workspace": "19.8.9" } }, "node_modules/@nx/angular": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/angular/-/angular-17.3.1.tgz", - "integrity": "sha512-Wvy1jP9CAMe4a1c6cce6HL6gYChXBys6ZfH6zdWNDychkdqpkkvC1TXe+ykr8IzT6m5dTDVVRy7hXu78oh0w6g==", - "dev": true, - "dependencies": { - "@nrwl/angular": "17.3.1", - "@nx/cypress": "17.3.1", - "@nx/devkit": "17.3.1", - "@nx/eslint": "17.3.1", - "@nx/jest": "17.3.1", - "@nx/js": "17.3.1", - "@nx/web": "17.3.1", - "@nx/webpack": "17.3.1", - "@nx/workspace": "17.3.1", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/angular/-/angular-19.8.9.tgz", + "integrity": "sha512-SPp3TosuwgvHx9ktRHiM/u2JZ2jAmhdQqJ4i7ZupUuw3GVZ3TPLZxx4gs7LmqgpLqXY3BdChptiwSoUCVcNsNg==", + "dev": true, + "dependencies": { + "@module-federation/enhanced": "~0.6.0", + "@nrwl/angular": "19.8.9", + "@nx/devkit": "19.8.9", + "@nx/eslint": "19.8.9", + "@nx/js": "19.8.9", + "@nx/web": "19.8.9", + "@nx/webpack": "19.8.9", + "@nx/workspace": "19.8.9", "@phenomnomnominal/tsquery": "~5.0.1", - "@typescript-eslint/type-utils": "^6.9.1", + "@typescript-eslint/type-utils": "^8.0.0", "chalk": "^4.1.0", "find-cache-dir": "^3.3.2", - "ignore": "^5.0.4", "magic-string": "~0.30.2", "minimatch": "9.0.3", - "piscina": "^4.2.1", - "semver": "7.5.3", + "piscina": "^4.4.0", + "semver": "^7.5.3", "tslib": "^2.3.0", - "webpack": "^5.80.0", + "webpack": "^5.88.0", "webpack-merge": "^5.8.0" }, "peerDependencies": { - "@angular-devkit/build-angular": ">= 15.0.0 < 18.0.0", - "@angular-devkit/core": ">= 15.0.0 < 18.0.0", - "@angular-devkit/schematics": ">= 15.0.0 < 18.0.0", - "@schematics/angular": ">= 15.0.0 < 18.0.0", - "esbuild": "^0.19.2", + "@angular-devkit/build-angular": ">= 16.0.0 < 19.0.0", + "@angular-devkit/core": ">= 16.0.0 < 19.0.0", + "@angular-devkit/schematics": ">= 16.0.0 < 19.0.0", + "@schematics/angular": ">= 16.0.0 < 19.0.0", "rxjs": "^6.5.3 || ^7.5.0" - }, - "peerDependenciesMeta": { - "esbuild": { - "optional": true - } - } - }, - "node_modules/@nx/angular/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@nx/angular/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@nx/angular/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/angular/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/@nx/angular/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nx/angular/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/angular/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@nx/cypress": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/cypress/-/cypress-17.3.1.tgz", - "integrity": "sha512-iC9s3GjLpfxM6tPFox6tyXbDCXjB49AxckmeyEYzjWO9FC6ARshgiq4o0TjaFuE/tjs3VEZWfDl8qR3EblBTZA==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/cypress/-/cypress-19.8.9.tgz", + "integrity": "sha512-LucRLhkQXtIRBaoKskKbIvq07Ln1o7gc7UVSHPlyg9eDVH7QN5RspE5GqN1jFTh4vaSCQojtKIaPfxoqd4fyJQ==", "dev": true, "dependencies": { - "@nrwl/cypress": "17.3.1", - "@nx/devkit": "17.3.1", - "@nx/eslint": "17.3.1", - "@nx/js": "17.3.1", + "@nrwl/cypress": "19.8.9", + "@nx/devkit": "19.8.9", + "@nx/eslint": "19.8.9", + "@nx/js": "19.8.9", "@phenomnomnominal/tsquery": "~5.0.1", "detect-port": "^1.5.1", - "semver": "7.5.3", "tslib": "^2.3.0" }, "peerDependencies": { @@ -13131,135 +18000,70 @@ } } }, - "node_modules/@nx/cypress/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nx/cypress/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nx/cypress/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@nx/devkit": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.3.1.tgz", - "integrity": "sha512-E44feT7x/pGTzMWSndjTAoBXvZYEdy2SU99O14LdW7atUK4gv0glKUfyq6nNFULrs6r173WKfJgfmJDL3l78lg==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.8.9.tgz", + "integrity": "sha512-jrt1RwVoI7Dh6AhWrOIThwXBawdNu360D/6Oeqfjx4PQFiTWTI9uo9d6+tF0VuRHwekR+EEIRxUh9zhbC4YD9Q==", "dev": true, "dependencies": { - "@nrwl/devkit": "17.3.1", + "@nrwl/devkit": "19.8.9", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", - "semver": "7.5.3", + "minimatch": "9.0.3", + "semver": "^7.5.3", "tmp": "~0.2.1", "tslib": "^2.3.0", "yargs-parser": "21.1.1" }, "peerDependencies": { - "nx": ">= 16 <= 18" - } - }, - "node_modules/@nx/devkit/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nx/devkit/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "nx": ">= 19 <= 21" } }, - "node_modules/@nx/devkit/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@nx/eslint": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-17.3.1.tgz", - "integrity": "sha512-0HVV4u1/CfGPnBNvIt4+k3Zwqpl9/uHH9APO2d4Qtj4hZBoHiMYvj9hwmF1xux2E2OYANwfvstw9TSUrCQ8GRA==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-19.8.9.tgz", + "integrity": "sha512-Nf/CnRFi8OzPHBLUnVaPtUItr5jkPgL51512JWZDPLzMLgpLfE54gsaX+9PtZqpjxJR6PcfYsxy5E+1+3SQM7g==", "dev": true, "dependencies": { - "@nx/devkit": "17.3.1", - "@nx/js": "17.3.1", - "@nx/linter": "17.3.1", + "@nx/devkit": "19.8.9", + "@nx/js": "19.8.9", + "@nx/linter": "19.8.9", + "semver": "^7.5.3", "tslib": "^2.3.0", - "typescript": "~5.3.2" + "typescript": "~5.4.2" }, "peerDependencies": { - "eslint": "^8.0.0", - "js-yaml": "4.1.0" + "@zkochan/js-yaml": "0.0.7", + "eslint": "^8.0.0 || ^9.0.0" }, "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "js-yaml": { + "@zkochan/js-yaml": { "optional": true } } }, "node_modules/@nx/eslint-plugin": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-17.3.1.tgz", - "integrity": "sha512-/HLhp+Z7JfctgVd+F9gUu+sktV44kU6ZosULNmp2RqpLhw8VkJIz0/wgUbLhuH97mNSZeEfkze3JZb88Qids+Q==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-19.8.9.tgz", + "integrity": "sha512-xU7NV8nPi2UTUpfzj4gKOPwVyyCkUmiSH0LB2dSI7U6rQZZGItYCH37iG/PujChoGUbAccE0+ANkVlEVj3qUvQ==", "dev": true, "dependencies": { - "@nrwl/eslint-plugin-nx": "17.3.1", - "@nx/devkit": "17.3.1", - "@nx/js": "17.3.1", - "@typescript-eslint/type-utils": "^6.13.2", - "@typescript-eslint/utils": "^6.13.2", + "@eslint/compat": "^1.1.1", + "@nrwl/eslint-plugin-nx": "19.8.9", + "@nx/devkit": "19.8.9", + "@nx/js": "19.8.9", + "@typescript-eslint/type-utils": "^8.0.0", + "@typescript-eslint/utils": "^8.0.0", "chalk": "^4.1.0", "confusing-browser-globals": "^1.0.9", + "globals": "^15.9.0", "jsonc-eslint-parser": "^2.1.0", - "semver": "7.5.3", + "semver": "^7.5.3", "tslib": "^2.3.0" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2 || ^7.0.0 || ^8.0.0", "eslint-config-prettier": "^9.0.0" }, "peerDependenciesMeta": { @@ -13268,169 +18072,183 @@ } } }, - "node_modules/@nx/eslint-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@nx/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.14.0.tgz", + "integrity": "sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@nx/eslint-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@nx/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.14.0.tgz", + "integrity": "sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nx/eslint-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@nx/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@nx/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.14.0.tgz", + "integrity": "sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@nx/eslint-plugin/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "node_modules/@nx/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.14.0.tgz", + "integrity": "sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/typescript-estree": "8.14.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" } }, - "node_modules/@nx/eslint-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@nx/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.14.0.tgz", + "integrity": "sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@typescript-eslint/types": "8.14.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@nx/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@nx/jest": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-17.3.1.tgz", - "integrity": "sha512-HKtaJq36jmpDcVqvCFNfzhW3BVrC9u+CuYD+niyKQdqf8KvRTDr1XE5T3htMFHdZkircU45jPwSdRhGxhHvY6A==", + "node_modules/@nx/eslint-plugin/node_modules/globals": { + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "dev": true, - "dependencies": { - "@jest/reporters": "^29.4.1", - "@jest/test-result": "^29.4.1", - "@nrwl/jest": "17.3.1", - "@nx/devkit": "17.3.1", - "@nx/js": "17.3.1", - "@phenomnomnominal/tsquery": "~5.0.1", - "chalk": "^4.1.0", - "identity-obj-proxy": "3.0.0", - "jest-config": "^29.4.1", - "jest-resolve": "^29.4.1", - "jest-util": "^29.4.1", - "minimatch": "9.0.3", - "resolve.exports": "1.1.0", - "tslib": "^2.3.0" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nx/jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@nx/eslint-plugin/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nx/jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@nx/eslint-plugin/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@nx/jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@nx/eslint/node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=8" + "node": ">=14.17" } }, - "node_modules/@nx/jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@nx/jest": { + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-19.8.9.tgz", + "integrity": "sha512-qGC71ZIqFD+jrSc9/09A1qexcgKe9iSUMEXgRZU7Xb8iISqN9wXQZBKWEnTOmhSM5+mBsAuy51bxvsuZ4kmHdw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@jest/reporters": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@nrwl/jest": "19.8.9", + "@nx/devkit": "19.8.9", + "@nx/js": "19.8.9", + "@phenomnomnominal/tsquery": "~5.0.1", + "chalk": "^4.1.0", + "identity-obj-proxy": "3.0.0", + "jest-config": "^29.4.1", + "jest-resolve": "^29.4.1", + "jest-util": "^29.4.1", + "minimatch": "9.0.3", + "resolve.exports": "1.1.0", + "semver": "^7.5.3", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" } }, "node_modules/@nx/js": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/js/-/js-17.3.1.tgz", - "integrity": "sha512-Vhk8bseDcK9DamJFR1op6XB+uILhpLNZTDIF/7eIrWjkl9JKLbCtG2WSYNiWUY6227dMbGWpQ3hg7jhs01FckQ==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/js/-/js-19.8.9.tgz", + "integrity": "sha512-ojoIiD145AuGOrxi40B3nmMxd5S8STvTIu9upymQnF+Tkvf3KDDoOQDVaUEpLcKM3zMf65bPXfSOpsNms2NRdQ==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", @@ -13440,25 +18258,25 @@ "@babel/preset-env": "^7.23.2", "@babel/preset-typescript": "^7.22.5", "@babel/runtime": "^7.22.6", - "@nrwl/js": "17.3.1", - "@nx/devkit": "17.3.1", - "@nx/workspace": "17.3.1", - "@phenomnomnominal/tsquery": "~5.0.1", + "@nrwl/js": "19.8.9", + "@nx/devkit": "19.8.9", + "@nx/workspace": "19.8.9", "babel-plugin-const-enum": "^1.0.1", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-typescript-metadata": "^0.3.1", "chalk": "^4.1.0", "columnify": "^1.6.0", "detect-port": "^1.5.1", + "enquirer": "~2.3.6", "fast-glob": "3.2.7", - "fs-extra": "^11.1.0", "ignore": "^5.0.4", "js-tokens": "^4.0.0", + "jsonc-parser": "3.2.0", "minimatch": "9.0.3", "npm-package-arg": "11.0.1", "npm-run-path": "^4.0.1", "ora": "5.3.0", - "semver": "7.5.3", + "semver": "^7.5.3", "source-map-support": "0.5.19", "ts-node": "10.9.1", "tsconfig-paths": "^4.1.2", @@ -13473,52 +18291,12 @@ } } }, - "node_modules/@nx/js/node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@nx/js/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@nx/js/node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "node_modules/@nx/js/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@nx/js/node_modules/fast-glob": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", @@ -13535,27 +18313,6 @@ "node": ">=8" } }, - "node_modules/@nx/js/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/js/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@nx/js/node_modules/ora": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", @@ -13578,21 +18335,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nx/js/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@nx/js/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13612,18 +18354,6 @@ "source-map": "^0.6.0" } }, - "node_modules/@nx/js/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@nx/js/node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -13667,25 +18397,19 @@ } } }, - "node_modules/@nx/js/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@nx/linter": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/linter/-/linter-17.3.1.tgz", - "integrity": "sha512-8+zu/ZBD+wHyrOQg94fRS1rLudw1OkJrvn7u/ImZecYF0IJhbh8C/NIW0kdPf8EWNw0a9XLObyHyN/JgwsXTJw==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/linter/-/linter-19.8.9.tgz", + "integrity": "sha512-5c/WXYKxzldNrMg0bte2yLhUi8XZZDuVab8eRpRDPPbWucy/sdG/WpM0LYnmb04KX3cYCZZ9QUTLClbwwBXLHQ==", "dev": true, "dependencies": { - "@nx/eslint": "17.3.1" + "@nx/eslint": "19.8.9" } }, "node_modules/@nx/nx-darwin-arm64": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.3.1.tgz", - "integrity": "sha512-19YkMr/9fMWQsaiFxkLmz50WzIQ6nktEwDfjhSOOFeRc40SCw848ZWZ4EZDH6dOgKK3UOeW6OX9vr5+GMn2yLA==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.8.9.tgz", + "integrity": "sha512-x/jAxUB7wrUEQu1LpMgloUuAL3LhZg1MmFJkb82lsv/jMUyb6IWisZaw5IP921z4gf3tYIWz+gzF6JmXH7yszg==", "cpu": [ "arm64" ], @@ -13699,9 +18423,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.3.1.tgz", - "integrity": "sha512-FaI9VI7XwG32jDArAZK0F+mWN6ZU7Y8anFr7C1VMcgVbaMLz6i4kp3sy5kFAbFDgFcpTdUOiZq5Ay+hJtDyufg==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.8.9.tgz", + "integrity": "sha512-EXK1PoQC+yxw/fqxLdaF4j20kqHD95CMqEIWExgperSarjAaf5aAAa/y9OKgQepxM+hB2ZOxDEate3F7TLXNOg==", "cpu": [ "x64" ], @@ -13715,9 +18439,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.3.1.tgz", - "integrity": "sha512-AZ+kl5x+O+8Ptrzw/RXgSZFs6V4U6TlieTOoCtrPtmVR7mz9nxMfwQNf/GAz8kbiC+u9PDH5rFl/UblEi4WF6g==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.8.9.tgz", + "integrity": "sha512-nP43Bi5kJHik+UCAt5xB247a3Pq4zBIeCPnbvW6J3095lqnCrfp1msZMRftouapI15HE3kNjEcJut/R2iPSLQQ==", "cpu": [ "x64" ], @@ -13731,9 +18455,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.3.1.tgz", - "integrity": "sha512-a8Y7435O2lxbtNsQ4vciYqXJ8eFVyOJizhiQ6koh/VHN/0FEYuGVkJRRXinDS44W0dfiDRXvbQKvPtjAvD5gJQ==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.8.9.tgz", + "integrity": "sha512-TrAGTKyoSRSFN1DdxobtwcusZnjNxpRAurELQmjYjXPt+DqKcXVajaM//Tz1snDIQ/8/pl9idBwkEBGbjHKC1g==", "cpu": [ "arm" ], @@ -13747,9 +18471,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.3.1.tgz", - "integrity": "sha512-B/o/xTvSUlWG/OTCh96BkaWD1rE1kSJ20BdRgyG4CGGH318/PgcvimeMvJcwNJNDoRsyJxAEKveGGD6gKkffcQ==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.8.9.tgz", + "integrity": "sha512-vNKr+Rs8iU0L131ZLx/k0zTlblCfgbC02LNgTkiHnzpfQ1gV3BCmTl/UMUGZCwOB/qiI+BxlQJanaUGpdQOVPg==", "cpu": [ "arm64" ], @@ -13763,9 +18487,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.3.1.tgz", - "integrity": "sha512-lOIAE3N6I1U2/dctuw2b3QIR+pXjlag3dYk+hLC+p/Sd5FZ0GBzpQhGzi03VsbQdIkIJ95K2gd05yolZLFOVqw==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.8.9.tgz", + "integrity": "sha512-9QwutzSfjjQZxRKsMj7E31QPRl4Xyqbv6V5V/+1BLEtXI4JTETZGjQPLp/9DsTeHHnwxGHTNfDmRC8F6/C7fzA==", "cpu": [ "arm64" ], @@ -13779,9 +18503,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.3.1.tgz", - "integrity": "sha512-pTCwQFAojEpeYP02xDZtnmRvViRLzbBXXWZNBf5pprCJGGKtHsVrwrswRJlt3btN/UWn2J/uFbTXyHDFWu8egA==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.8.9.tgz", + "integrity": "sha512-BGqY+yQsA+xfBVoK+3bosJppt3/7jKcdVGisIf8igpWpWsP11j6hcGiSUfXErdA6cfxJHLfOY//bi/6GB4OwQQ==", "cpu": [ "x64" ], @@ -13795,9 +18519,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.3.1.tgz", - "integrity": "sha512-WIV4gQjQAVp2oW/qtY4FmP7eeLwyo+bkoVw9PY42A89N6o7rYa/z77s9ajnl98A3eGb2ghe9fwwgAerLgmuFzA==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.8.9.tgz", + "integrity": "sha512-/YGXTIo77lC5Mc9vrnD9Bi5IS/csiz2f+CB8ofhEZWWYcJ268JQQ/WUXM0EYbmmiDyVZVICWAuOVp3da84taLw==", "cpu": [ "x64" ], @@ -13811,9 +18535,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.3.1.tgz", - "integrity": "sha512-HKc4QWIP7r+FmK0Anzrey7udlDLaKscHbrNGQN9YV2/ulYVtHidIVZCXYZq3p93Gg55e4t2uAiUuXSXdyy8Q6g==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.8.9.tgz", + "integrity": "sha512-f0/gMZ2ZezIR0Kncdhpoc2Jzi72fAxG1SPMn3TuZEzfMxzWm+sG2VXUF1fG51rhwPWCWHQr5dPjBBO4WqSoX7w==", "cpu": [ "arm64" ], @@ -13827,9 +18551,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.3.1.tgz", - "integrity": "sha512-o2QrIeHGBG6BqViVCPP0J3V9UEDMjyDxyMJF/l/DT4dWr/+zdrIJ11eiQs7Tvo2GLXJFXI0fMur8p3HopnOvAQ==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.8.9.tgz", + "integrity": "sha512-5QqW03r1ChEE3NYClzGFuZeg0+1OAce4Sy7VShYUA4IWW1I2ryYeKKSW87tJKFJUhIAUxzSK0kZLmvoC8Javxw==", "cpu": [ "x64" ], @@ -13843,101 +18567,54 @@ } }, "node_modules/@nx/vite": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/vite/-/vite-17.3.1.tgz", - "integrity": "sha512-EYvCUNL3YPPLLSZGzdaR8R9ZoZ5u3HrZFJnL7zIv0gZDkQMasYC3dNrnbHPl72Fs93M5nbrf6cNU1umlhkpjow==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/vite/-/vite-19.8.9.tgz", + "integrity": "sha512-P6duRF2IdmFZWeQWbhp0lwI5423y7ADraLo0YRUj5mj86hEtZke/2jbXa11xy95zehdKsdOZh0E3dHOUMPADyw==", "dev": true, "dependencies": { - "@nrwl/vite": "17.3.1", - "@nx/devkit": "17.3.1", - "@nx/js": "17.3.1", + "@nrwl/vite": "19.8.9", + "@nx/devkit": "19.8.9", + "@nx/js": "19.8.9", "@phenomnomnominal/tsquery": "~5.0.1", "@swc/helpers": "~0.5.0", "enquirer": "~2.3.6", + "minimatch": "9.0.3", "tsconfig-paths": "^4.1.2" }, "peerDependencies": { "vite": "^5.0.0", - "vitest": "^1.0.0" + "vitest": "^1.3.1 || ^2.0.0" } }, "node_modules/@nx/web": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/web/-/web-17.3.1.tgz", - "integrity": "sha512-xWPJOBbVsY6Tjzju+qb8MC92Ns6ysm2xwqis8NGGWwwA+oZSYSXpkmvjPuR+2JaNEbF5K2c3d6L2MoS8B9DVkg==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/web/-/web-19.8.9.tgz", + "integrity": "sha512-78GMQwu1xUb0vzIgfB9Gal4G9i0Zuaxg5NyTvxIgArMyXLa5TKc4nqkcOy1cfAwtRsbQVG8dYtWgdCHQEIld2A==", "dev": true, "dependencies": { - "@nrwl/web": "17.3.1", - "@nx/devkit": "17.3.1", - "@nx/js": "17.3.1", - "chalk": "^4.1.0", + "@nrwl/web": "19.8.9", + "@nx/devkit": "19.8.9", + "@nx/js": "19.8.9", "detect-port": "^1.5.1", "http-server": "^14.1.0", + "picocolors": "^1.1.0", "tslib": "^2.3.0" } }, - "node_modules/@nx/web/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@nx/web/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@nx/web/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/web/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@nx/webpack": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/webpack/-/webpack-17.3.1.tgz", - "integrity": "sha512-abBItbJH30AQ0B7HMkHaVywXwkewM/IFVNAKVct1zqUg8PLdtjZhRJfocAxDsl75s3f3vHQW8GCv1vYXvZVzog==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/webpack/-/webpack-19.8.9.tgz", + "integrity": "sha512-1im0UJowP2bbR4fWc2SbuDKG037G29MlYNbPtDyDbR+fxaEK9XLss/uuZ2OCt57EIQO/At5mlA82D2GNWT7b8w==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", - "@nrwl/webpack": "17.3.1", - "@nx/devkit": "17.3.1", - "@nx/js": "17.3.1", + "@module-federation/enhanced": "^0.6.0", + "@module-federation/sdk": "^0.6.0", + "@nrwl/webpack": "19.8.9", + "@nx/devkit": "19.8.9", + "@nx/js": "19.8.9", + "@phenomnomnominal/tsquery": "~5.0.1", + "ajv": "^8.12.0", "autoprefixer": "^10.4.9", "babel-loader": "^9.1.2", "browserslist": "^4.21.4", @@ -13945,20 +18622,22 @@ "copy-webpack-plugin": "^10.2.4", "css-loader": "^6.4.0", "css-minimizer-webpack-plugin": "^5.0.0", + "express": "^4.19.2", "fork-ts-checker-webpack-plugin": "7.2.13", + "http-proxy-middleware": "^3.0.0", "less": "4.1.3", "less-loader": "11.1.0", "license-webpack-plugin": "^4.0.2", "loader-utils": "^2.0.3", "mini-css-extract-plugin": "~2.4.7", "parse5": "4.0.0", - "postcss": "^8.4.14", + "postcss": "^8.4.38", "postcss-import": "~14.1.0", "postcss-loader": "^6.1.1", "rxjs": "^7.8.0", "sass": "^1.42.1", "sass-loader": "^12.2.0", - "source-map-loader": "^3.0.0", + "source-map-loader": "^5.0.0", "style-loader": "^3.3.0", "stylus": "^0.59.0", "stylus-loader": "^7.1.0", @@ -13967,26 +18646,11 @@ "tsconfig-paths-webpack-plugin": "4.0.0", "tslib": "^2.3.0", "webpack": "^5.80.0", - "webpack-dev-server": "^4.9.3", + "webpack-dev-server": "^5.0.4", "webpack-node-externals": "^3.0.0", "webpack-subresource-integrity": "^5.1.0" } }, - "node_modules/@nx/webpack/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@nx/webpack/node_modules/array-union": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", @@ -13999,22 +18663,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nx/webpack/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@nx/webpack/node_modules/copy-webpack-plugin": { "version": "10.2.4", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", @@ -14087,27 +18735,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nx/webpack/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/webpack/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@nx/webpack/node_modules/less": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", @@ -14134,6 +18761,26 @@ "source-map": "~0.6.0" } }, + "node_modules/@nx/webpack/node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, "node_modules/@nx/webpack/node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", @@ -14289,39 +18936,6 @@ "node": ">=0.10.0" } }, - "node_modules/@nx/webpack/node_modules/source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/@nx/webpack/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@nx/webpack/node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", @@ -14332,72 +18946,20 @@ } }, "node_modules/@nx/workspace": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-17.3.1.tgz", - "integrity": "sha512-j2IKiTcu6YYjjpDvwZPI+pUPNG8VrDurfWbn934ka7zPNv8t0Dkbm3Ro3GoAggan2txMKb1ZOHcRPhZZijocZg==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-19.8.9.tgz", + "integrity": "sha512-XLCvMXkWruL1fW2qeXaOctZXp1BjioEu49/zL6Bb4K1flK/k4RdjomusFbCznUfW6QIq5g4NaT7bTcDvLZz8Xw==", "dev": true, "dependencies": { - "@nrwl/workspace": "17.3.1", - "@nx/devkit": "17.3.1", + "@nrwl/workspace": "19.8.9", + "@nx/devkit": "19.8.9", "chalk": "^4.1.0", "enquirer": "~2.3.6", - "nx": "17.3.1", + "nx": "19.8.9", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, - "node_modules/@nx/workspace/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@nx/workspace/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@nx/workspace/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/workspace/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@phenomnomnominal/tsquery": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-5.0.1.tgz", @@ -15172,9 +19734,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.1.tgz", + "integrity": "sha512-Y/i1fVMnP6PEllrv2yMFWIxq5axF3cIzeLHqKwKYd9FgIq0Py1qKWoHoosbxHmsokbLJtfjyH7/ebY6KTAIARQ==", "cpu": [ "arm" ], @@ -15185,9 +19747,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.1.tgz", + "integrity": "sha512-WXrtqF2zOOTGjE6pNDF5oYPBlwpopSGaQPIZULbMKvchT7OyYzmUnEim0ICNAlz4qHYs4vxJOn1S4aLd930EKA==", "cpu": [ "arm64" ], @@ -15198,9 +19760,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.1.tgz", + "integrity": "sha512-FkEfMuiAA+utxcauRC23iw3zT/wioQjYv9eBGMVvbNqzOLa4IPHED2qIgPh/W6nrHDTH4AO47T8JvqTDV+aFWA==", "cpu": [ "arm64" ], @@ -15211,9 +19773,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.1.tgz", + "integrity": "sha512-0KA3hHrcqdnAfyRb0bl6ifXTNoiktWR6mYKWxiCJZmUMrmR90M2Y11w5lDcjatmflo98iI0id0TztTuHcZKqRg==", "cpu": [ "x64" ], @@ -15223,10 +19785,49 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.1.tgz", + "integrity": "sha512-WOAkR+4FwxTZ5QvsSt2j1XB5Artr5eGyAInfH8G1uvL2ic1sdXuOtNDX3oj5jFswnb8Tv5r5uOFSI3e+io435A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.1.tgz", + "integrity": "sha512-9tj94xM3QCXb/tJqrJj0UQWjYcb7c+VQM4YZDctRFfgVAc/edfmZUc2f/lvoZMmenllcN+D44bMxC8nIrEq6pw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.1.tgz", + "integrity": "sha512-AYyiqk5p6qH/Rfgm9WsMs559S8ICzwBTS7hu8J9vya1lqCg9Htw6U/KV+gsJ1SE4Z4IctkbIkQy24htk9nfs6A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.1.tgz", + "integrity": "sha512-MHkwGQ96RbQTJVeV7O10gzB09Y3H1WAIUm6vMPrGRCZEsbqLHych5MlyvHHL1BXjSLB8t441eSXoepMsh8jxtg==", "cpu": [ "arm" ], @@ -15237,9 +19838,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.1.tgz", + "integrity": "sha512-p9huy9uW0FCtjqAHRrHcBVU63xtbfBwcvjV4N4a0cy69sdvTsHLlg/pb3WqSz4eTFxnpfZ6SMTpilew53+DQ1Q==", "cpu": [ "arm64" ], @@ -15250,9 +19851,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.1.tgz", + "integrity": "sha512-1d5UxhZlVFnyF5rFWNXMrr/MHkBU32xfmFI/KPosuKhvUS7ge2T3Z3R5r3PlB/tv9fMETcvr761G35r08MK3sQ==", "cpu": [ "arm64" ], @@ -15262,10 +19863,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.1.tgz", + "integrity": "sha512-/ht989pqM1mw+6xBAExE5WlgCCT0HV4uJQmRYUUZvXAPtbnPjkZ4oevR0upyF2fPhrtgsrptMtBiD2Zax0PXzw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.1.tgz", + "integrity": "sha512-udOKLtPNOVwSwre2v+Bmp3qYBvqkjP+wYIGic1r3XqzpiuvIxfQOt8hSxnp45eFeiHV50+ol4IpZJ2WEt4Hkog==", "cpu": [ "riscv64" ], @@ -15275,10 +19889,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.1.tgz", + "integrity": "sha512-eVs55EQmW92BDzlwzp1Yg5dGEP8UxXb611qe0DS2xM4WxmFPjjTyb7JSsrxRbdl91A5ZNcW4O8cQuDJ7ELYdeg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.1.tgz", + "integrity": "sha512-8/s+Qj8bGaE03YqfAbS4SI1imWVJj0NvP/828FO8qGu7nS6b0ur7n+PcM8UOU0+lzSgcO/aUk97EXMaPkegGDw==", "cpu": [ "x64" ], @@ -15289,9 +19916,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.1.tgz", + "integrity": "sha512-mU8t4pSlUkvdRrhP8Gl8cU46W61avh+wUWTLQd/EBm/Ny19slYYXVvB9lHpAtLT9AVaXxMvTSc9m6H1qmUDDlw==", "cpu": [ "x64" ], @@ -15302,9 +19929,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.1.tgz", + "integrity": "sha512-AcQsa9FF6T9FrHXWXGAqJ6Kjcae2lYEDZA7wRQmK/3Bvv/0hH38tJL51CYclTY90fRf1mtKuwpC4LRcMkZuV1w==", "cpu": [ "arm64" ], @@ -15315,9 +19942,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.1.tgz", + "integrity": "sha512-rTQbl/dhpKbOb83i8AHAQm5FTeDmoKQqiNH2F3vlp5fySgT4t36wehWoCcrax7LRCmXc1LWrj66LEnrcXK/SRA==", "cpu": [ "ia32" ], @@ -15328,9 +19955,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.1.tgz", + "integrity": "sha512-zpKGR76smqVOCPeQPqmqXNhEXx+1WwHwozJWvWU6cYy5itRQyYC8TQQoWph+ikxJz5H81u6vwNB8cnYzvXV5Mw==", "cpu": [ "x64" ], @@ -15341,12 +19968,12 @@ ] }, "node_modules/@rollup/wasm-node": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.9.6.tgz", - "integrity": "sha512-B3FpAkroTE6q+MRHzv8XLBgPbxdjJiy5UnduZNQ/4lxeF1JT2O/OAr0JPpXeRG/7zpKm/kdqU/4m6AULhmnSqw==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.27.1.tgz", + "integrity": "sha512-wBG9tL6dit6W8parnFOwyqeZyMwZmj3vIyD8ymx6g8anD4bfAJo3/A9BfCNuPz6rJj0fJnLwVSeckJHnh88e/Q==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -15359,6 +19986,12 @@ "fsevents": "~2.3.2" } }, + "node_modules/@rollup/wasm-node/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, "node_modules/@rushstack/node-core-library": { "version": "3.66.1", "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.66.1.tgz", @@ -15513,15 +20146,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/@rushstack/terminal/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@rushstack/terminal/node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -15568,21 +20192,27 @@ } }, "node_modules/@schematics/angular": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.2.tgz", - "integrity": "sha512-1GlH0POaN7hVDF1sAm90E5SvAqnKK+PbD1oKSpug9l+1AUQ3vOamyGhEAaO+IxUqvNdgqZexxd5o9MyySTT2Zw==", + "version": "18.2.11", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.11.tgz", + "integrity": "sha512-jT54mc9+hPOwie9bji/g2krVuK1kkNh2PNFGwfgCg3Ofmt3hcyOBai1DKuot5uLTX4VCCbvfwiVR/hJniQl2SA==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.2", - "@angular-devkit/schematics": "17.1.2", - "jsonc-parser": "3.2.0" + "@angular-devkit/core": "18.2.11", + "@angular-devkit/schematics": "18.2.11", + "jsonc-parser": "3.3.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@schematics/angular/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, "node_modules/@semantic-release/changelog": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", @@ -15742,72 +20372,83 @@ } }, "node_modules/@sigstore/bundle": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.1.tgz", - "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/core": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-0.2.0.tgz", - "integrity": "sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", - "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.1.tgz", - "integrity": "sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1", - "make-fetch-happen": "^13.0.0" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@sigstore/sign/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@sigstore/tuf": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.0.tgz", - "integrity": "sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/verify": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-0.1.0.tgz", - "integrity": "sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -15827,6 +20468,18 @@ "node": ">=6" } }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", @@ -16801,58 +21454,6 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@storybook/cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@storybook/client-api": { "version": "7.6.15", "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-7.6.15.tgz", @@ -17333,37 +21934,6 @@ "node": ">=12" } }, - "node_modules/@storybook/core-common/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@storybook/core-common/node_modules/esbuild": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", @@ -17439,15 +22009,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/core-common/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@storybook/core-common/node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -17472,18 +22033,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/core-common/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@storybook/core-events": { "version": "7.6.15", "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.15.tgz", @@ -17550,58 +22099,6 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@storybook/core-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@storybook/csf": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.2.tgz", @@ -17908,58 +22405,6 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/telemetry/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/telemetry/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@storybook/telemetry/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/telemetry/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@storybook/testing-library": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.2.2.tgz", @@ -18046,21 +22491,6 @@ "node": ">=14" } }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@testing-library/dom/node_modules/aria-query": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", @@ -18070,43 +22500,6 @@ "deep-equal": "^2.0.5" } }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@testing-library/user-event": { "version": "14.5.2", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", @@ -18214,18 +22607,42 @@ } }, "node_modules/@tufjs/models": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", - "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/argparse": { "version": "1.0.38", "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", @@ -18298,21 +22715,6 @@ "@types/node": "*" } }, - "node_modules/@types/chai": { - "version": "4.3.19", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz", - "integrity": "sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==", - "dev": true - }, - "node_modules/@types/chai-subset": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", - "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, "node_modules/@types/codemirror": { "version": "5.60.15", "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.15.tgz", @@ -18382,26 +22784,6 @@ "integrity": "sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==", "dev": true }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -18468,9 +22850,9 @@ "dev": true }, "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -18506,9 +22888,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.11", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", - "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -18634,6 +23016,15 @@ "@types/node": "*" } }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { "version": "18.19.14", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", @@ -18726,9 +23117,9 @@ "dev": true }, "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", "dev": true }, "node_modules/@types/scheduler": { @@ -18738,9 +23129,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/send": { @@ -18837,10 +23228,16 @@ "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", "dev": true }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true + }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", "dev": true, "dependencies": { "@types/node": "*" @@ -18878,33 +23275,31 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz", - "integrity": "sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/type-utils": "6.20.0", - "@typescript-eslint/utils": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -18913,25 +23308,25 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz", - "integrity": "sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/utils": "6.20.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -18939,31 +23334,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz", - "integrity": "sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, "node_modules/@typescript-eslint/experimental-utils": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", @@ -19106,26 +23476,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz", - "integrity": "sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -19134,16 +23504,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz", - "integrity": "sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -19151,39 +23521,53 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", - "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.14.0.tgz", + "integrity": "sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/typescript-estree": "8.14.0", + "@typescript-eslint/utils": "8.14.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.14.0.tgz", + "integrity": "sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", - "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.14.0.tgz", + "integrity": "sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -19191,22 +23575,22 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", - "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.14.0.tgz", + "integrity": "sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -19218,30 +23602,79 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.14.0.tgz", + "integrity": "sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/typescript-estree": "8.14.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", - "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.14.0.tgz", + "integrity": "sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.14.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz", - "integrity": "sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -19249,22 +23682,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz", - "integrity": "sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -19276,147 +23709,368 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", - "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", - "semver": "^7.5.4" + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", - "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0" + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", - "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=14.6.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", - "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", + "node_modules/@vitest/coverage-v8": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.5.tgz", + "integrity": "sha512-/RoopB7XGW7UEkUndRXF87A9CwkoZAJW01pj8/3pgmDVsjMH2IKy6H1A38po9tmUlwhSyYs0az82rbKd9Yaynw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^0.2.3", + "debug": "^4.3.7", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.12", + "magicast": "^0.3.5", + "std-env": "^3.8.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^1.2.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "2.1.5", + "vitest": "2.1.5" }, "peerDependenciesMeta": { - "typescript": { + "@vitest/browser": { "optional": true } } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", - "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", + "node_modules/@vitest/coverage-v8/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "eslint-visitor-keys": "^3.4.1" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=14" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz", - "integrity": "sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==", + "node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "eslint-visitor-keys": "^3.4.1" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=10" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.2.tgz", - "integrity": "sha512-DKHKVtpI+eA5fvObVgQ3QtTGU70CcCnedalzqmGSR050AzKZMdUzgC8KmlOneHWH8dF2hJ3wkC9+8FDVAaDRCw==", + "node_modules/@vitest/coverage-v8/node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=14.6.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@vitest/expect": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.5.tgz", + "integrity": "sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==", + "dev": true, + "dependencies": { + "@vitest/spy": "2.1.5", + "@vitest/utils": "2.1.5", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.5.tgz", + "integrity": "sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==", + "dev": true, + "dependencies": { + "@vitest/spy": "2.1.5", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/mocker/node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.5.tgz", + "integrity": "sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==", + "dev": true, + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.5.tgz", + "integrity": "sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==", + "dev": true, + "dependencies": { + "@vitest/utils": "2.1.5", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/coverage-c8": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.27.3.tgz", - "integrity": "sha512-xIN4FXXwJqeP6z0gfQ06gbyBMRN2mYvZ4/mn4F96mKXzch0Y93fBeS81eo7D/2YtjbeJBUcU9/amPVb2T+h83Q==", - "deprecated": "v8 coverage is moved to @vitest/coverage-v8 package", + "node_modules/@vitest/snapshot": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.5.tgz", + "integrity": "sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==", "dev": true, "dependencies": { - "c8": "^7.12.0", - "vitest": "0.27.3" + "@vitest/pretty-format": "2.1.5", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" }, "funding": { - "url": "https://github.com/sponsors/antfu" + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.5.tgz", + "integrity": "sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==", + "dev": true, + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.5.tgz", + "integrity": "sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==", + "dev": true, + "dependencies": { + "@vitest/pretty-format": "2.1.5", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, "node_modules/@webassemblyjs/ast": { @@ -19633,9 +24287,9 @@ } }, "node_modules/@zkochan/js-yaml": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", - "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", + "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", "dev": true, "dependencies": { "argparse": "^2.0.1" @@ -19678,9 +24332,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "bin": { "acorn": "bin/acorn" }, @@ -19689,34 +24343,13 @@ } }, "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" } }, "node_modules/acorn-import-attributes": { @@ -19737,10 +24370,13 @@ } }, "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -19781,10 +24417,19 @@ "node": ">=8.9.0" } }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "dev": true, + "engines": { + "node": ">=12.0" + } + }, "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" @@ -19924,29 +24569,19 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-styles/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansi-styles/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -20045,12 +24680,12 @@ } }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { @@ -20128,12 +24763,12 @@ } }, "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "engines": { - "node": "*" + "node": ">=12" } }, "node_modules/ast-types": { @@ -20183,9 +24818,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", "dev": true, "funding": [ { @@ -20202,8 +24837,8 @@ } ], "dependencies": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -20255,9 +24890,9 @@ } }, "node_modules/axios": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dev": true, "dependencies": { "follow-redirects": "^1.15.6", @@ -20272,12 +24907,12 @@ "dev": true }, "node_modules/axobject-query": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", - "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "engines": { + "node": ">= 0.4" } }, "node_modules/babel-core": { @@ -20310,58 +24945,6 @@ "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-loader": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", @@ -20677,29 +25260,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -20989,20 +25556,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/boxen/node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -21014,40 +25567,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/boxen/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -21112,12 +25631,6 @@ "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", "dev": true }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, "node_modules/browserify-zlib": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", @@ -21128,9 +25641,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -21146,10 +25659,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -21179,6 +25692,18 @@ "node-int64": "^0.4.0" } }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "dev": true, + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -21238,6 +25763,21 @@ "semver": "^7.0.0" } }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -21252,102 +25792,6 @@ "integrity": "sha512-i4uu6M4zuMUiyfZN4RU2+i9+peJh//pXhd9x1oSe1LBkZ3LEbCoygu8W0bXTukU1Jme2txKuotpCZRaC3FLxcQ==", "dev": true }, - "node_modules/c8": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz", - "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.3", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.1.4", - "rimraf": "^3.0.2", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9" - }, - "bin": { - "c8": "bin/c8.js" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/c8/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/c8/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/c8/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/c8/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/c8/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", @@ -21439,6 +25883,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "dev": true, + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -21590,9 +26047,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001655", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", - "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", "funding": [ { "type": "opencollective", @@ -21636,34 +26093,34 @@ } }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/change-case": { @@ -21740,15 +26197,12 @@ } }, "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, "engines": { - "node": "*" + "node": ">= 16" } }, "node_modules/check-more-types": { @@ -22065,21 +26519,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -22404,12 +26843,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/confbox": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", - "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", - "dev": true - }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -22578,6 +27011,19 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", + "dev": true, + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", @@ -22591,20 +27037,20 @@ } }, "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, "dependencies": { - "fast-glob": "^3.2.11", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", - "globby": "^13.1.1", + "globby": "^14.0.0", "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -22627,28 +27073,29 @@ } }, "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "node_modules/copy-webpack-plugin/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, "engines": { "node": ">=12" @@ -22657,6 +27104,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/core-js-compat": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", @@ -22766,58 +27225,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/create-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/create-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/create-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -22825,9 +27232,10 @@ "dev": true }, "node_modules/critters": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", - "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.24.tgz", + "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", + "deprecated": "Ownership of Critters has moved to the Nuxt team, who will be maintaining the project going forward. If you'd like to keep using Critters, please switch to the actively-maintained fork at https://github.com/danielroe/beasties", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -22836,59 +27244,19 @@ "domhandler": "^5.0.2", "htmlparser2": "^8.0.2", "postcss": "^8.4.23", - "pretty-bytes": "^5.3.0" + "postcss-media-query-parser": "^0.2.3" } }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/cron-parser": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "luxon": "^3.2.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/critters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/critters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "node": ">=12.0.0" } }, "node_modules/cross-fetch": { @@ -22954,9 +27322,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", - "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" @@ -23176,13 +27544,13 @@ "dev": true }, "node_modules/cssnano": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz", - "integrity": "sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", "dev": true, "dependencies": { - "cssnano-preset-default": "^6.0.3", - "lilconfig": "^3.0.0" + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -23196,40 +27564,41 @@ } }, "node_modules/cssnano-preset-default": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz", - "integrity": "sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", "dev": true, "dependencies": { - "css-declaration-sorter": "^7.1.1", - "cssnano-utils": "^4.0.1", + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.0.2", - "postcss-convert-values": "^6.0.2", - "postcss-discard-comments": "^6.0.1", - "postcss-discard-duplicates": "^6.0.1", - "postcss-discard-empty": "^6.0.1", - "postcss-discard-overridden": "^6.0.1", - "postcss-merge-longhand": "^6.0.2", - "postcss-merge-rules": "^6.0.3", - "postcss-minify-font-values": "^6.0.1", - "postcss-minify-gradients": "^6.0.1", - "postcss-minify-params": "^6.0.2", - "postcss-minify-selectors": "^6.0.2", - "postcss-normalize-charset": "^6.0.1", - "postcss-normalize-display-values": "^6.0.1", - "postcss-normalize-positions": "^6.0.1", - "postcss-normalize-repeat-style": "^6.0.1", - "postcss-normalize-string": "^6.0.1", - "postcss-normalize-timing-functions": "^6.0.1", - "postcss-normalize-unicode": "^6.0.2", - "postcss-normalize-url": "^6.0.1", - "postcss-normalize-whitespace": "^6.0.1", - "postcss-ordered-values": "^6.0.1", - "postcss-reduce-initial": "^6.0.2", - "postcss-reduce-transforms": "^6.0.1", - "postcss-svgo": "^6.0.2", - "postcss-unique-selectors": "^6.0.2" + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -23239,9 +27608,9 @@ } }, "node_modules/cssnano-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", - "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -23313,12 +27682,6 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "dev": true }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", - "dev": true - }, "node_modules/cypress": { "version": "9.7.0", "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.7.0.tgz", @@ -23382,49 +27745,6 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", "dev": true }, - "node_modules/cypress/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cypress/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/cypress/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cypress/node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", @@ -23487,15 +27807,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cypress/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/cypress/node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -23567,19 +27878,6 @@ "node": ">=12" } }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/date-fns": { "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", @@ -23595,6 +27893,15 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/dayjs": { "version": "1.11.10", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", @@ -23607,11 +27914,11 @@ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -23700,13 +28007,10 @@ } }, "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, "engines": { "node": ">=6" } @@ -23764,6 +28068,22 @@ "node": ">=0.10.0" } }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-browser-id": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", @@ -23780,6 +28100,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/default-browser/node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -23898,12 +28230,12 @@ } }, "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", "dev": true, "engines": { - "node": ">= 0.6.0" + "node": ">=4" } }, "node_modules/dequal": { @@ -24167,15 +28499,15 @@ } }, "node_modules/dotenv": { - "version": "16.4.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.1.tgz", - "integrity": "sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://dotenvx.com" } }, "node_modules/dotenv-expand": { @@ -24315,9 +28647,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==" + "version": "1.5.60", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.60.tgz", + "integrity": "sha512-HcraRUkTKJ+8yA3b10i9qvhUlPBRDlKjn1XGek1zDGVfAKcvi8TsUnImGqLiEm9j6ZulxXIWWIo9BmbkbCTGgA==" }, "node_modules/emittery": { "version": "0.13.1", @@ -24474,6 +28806,18 @@ "node": ">=4" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -24592,9 +28936,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -24604,29 +28948,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/esbuild-plugin-alias": { @@ -24648,9 +28992,9 @@ } }, "node_modules/esbuild-wasm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.11.tgz", - "integrity": "sha512-MIhnpc1TxERUHomteO/ZZHp+kUawGEc03D/8vMHGzffLvbFLeDe6mwxqEZwlqBNY7SLWbyp6bBQAcCen8+wpjQ==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz", + "integrity": "sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -24660,9 +29004,9 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "engines": { "node": ">=6" } @@ -24684,6 +29028,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -24720,18 +29065,20 @@ } }, "node_modules/eslint": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", - "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.48.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -25027,9 +29374,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.0.tgz", - "integrity": "sha512-zj3Byw6jX4TcFCJmxOzLt6iol5FAr9xQyZZSQjEzW2UiCJXLwXdRIKCYVFftnpZckaC9Ps9xlC7jB8tSeWWOaw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -25070,21 +29417,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -25101,22 +29433,6 @@ "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -25172,15 +29488,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -25211,18 +29518,6 @@ "node": "*" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -25403,6 +29698,18 @@ "node": ">= 0.8.0" } }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/expect": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", @@ -25419,6 +29726,15 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/expect-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", + "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", @@ -25613,6 +29929,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -25852,6 +30174,30 @@ "node": ">=8" } }, + "node_modules/find-file-up": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-2.0.1.tgz", + "integrity": "sha512-qVdaUhYO39zmh28/JLQM5CoYN9byEOKEH4qfa8K1eNV17W0UUMJ9WgbR/hHFH+t5rcl+6RTb5UC7ck/I+uRkpQ==", + "dev": true, + "dependencies": { + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-2.0.0.tgz", + "integrity": "sha512-WgZ+nKbELDa6N3i/9nrHeNznm+lY3z4YfhDDWgW+5P0pdmMj26bxaxU11ookgY3NyP9GC7HvZ9etp0jRFqGEeQ==", + "dev": true, + "dependencies": { + "find-file-up": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -25905,9 +30251,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true, "funding": [ { @@ -25932,19 +30278,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -26013,21 +30346,6 @@ "ajv": "^6.9.1" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -26038,22 +30356,6 @@ "concat-map": "0.0.1" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -26084,15 +30386,6 @@ "node": ">=12" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -26129,18 +30422,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", @@ -26203,6 +30484,15 @@ "node": ">= 0.6" } }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -26235,9 +30525,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", "dev": true }, "node_modules/fs-readdir-recursive": { @@ -26314,13 +30604,16 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "dev": true, "engines": { - "node": "*" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-intrinsic": { @@ -26876,11 +31169,11 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { @@ -27063,29 +31356,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hdr-histogram-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", - "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", - "dev": true, - "dependencies": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "node_modules/hdr-histogram-js/node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", - "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", - "dev": true - }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -27113,6 +31383,18 @@ "node": ">=12.0.0" } }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hosted-git-info": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", @@ -27189,9 +31471,9 @@ } }, "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", "dev": true, "funding": [ { @@ -27313,6 +31595,59 @@ "entities": "^4.4.0" } }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "dev": true, + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-assert/node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true + }, + "node_modules/http-assert/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", @@ -27386,27 +31721,29 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", + "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", "dev": true, "dependencies": { - "@types/http-proxy": "^1.17.8", + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/http-server": { @@ -27436,58 +31773,6 @@ "node": ">=12" } }, - "node_modules/http-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/http-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/http-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/http-signature": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", @@ -27503,9 +31788,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -27538,6 +31823,15 @@ "url": "https://github.com/sponsors/typicode" } }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "engines": { + "node": ">=10.18" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -27602,9 +31896,9 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", - "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, "dependencies": { "minimatch": "^9.0.0" @@ -27794,9 +32088,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -27818,18 +32112,18 @@ "dev": true }, "node_modules/inquirer": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "version": "9.2.15", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", + "integrity": "sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==", "dev": true, "dependencies": { - "@ljharb/through": "^2.3.11", + "@ljharb/through": "^2.3.12", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", "cli-width": "^4.1.0", "external-editor": "^3.1.0", - "figures": "^5.0.0", + "figures": "^3.2.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", "ora": "^5.4.1", @@ -27840,7 +32134,7 @@ "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, "node_modules/inquirer/node_modules/chalk": { @@ -27855,46 +32149,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/inquirer/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/internal-ip": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", @@ -27940,6 +32194,31 @@ "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", "dev": true }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, "node_modules/ip-regex": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", @@ -28249,6 +32528,39 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -28320,6 +32632,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-npm": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", @@ -28566,6 +32890,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-word-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", @@ -28612,44 +32945,135 @@ "node": ">=0.10.0" } }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/isomorphic-rslog": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/isomorphic-rslog/-/isomorphic-rslog-0.0.5.tgz", + "integrity": "sha512-pkU3vvajRJ0LKLaMFy8Cj7ElbFUdkQKVhUk+DQsVCYsLW4uulU65C2s3l+Sm5OtiOwprzkYYcAIJa/COwCYHWA==", + "dev": true, + "engines": { + "node": ">=14.17.6" + } + }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "dev": true, + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "node_modules/istanbul-lib-instrument/node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "node_modules/istanbul-lib-instrument/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/istanbul-lib-instrument/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=10" + "node": ">=6" } }, "node_modules/istanbul-lib-report": { @@ -28666,15 +33090,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -28690,18 +33105,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -28726,9 +33129,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -28773,20 +33176,6 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jake/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -28796,29 +33185,6 @@ "concat-map": "0.0.1" } }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/jake/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -28830,27 +33196,16 @@ "node": "*" } }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.4.3.tgz", - "integrity": "sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/core": "^29.4.3", - "@jest/types": "^29.4.3", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.4.3" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -28922,46 +33277,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-circus/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -28994,18 +33309,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-cli": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", @@ -29039,58 +33342,6 @@ } } }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-config": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", @@ -29136,46 +33387,6 @@ } } }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-config/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -29208,18 +33419,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", @@ -29235,46 +33434,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-diff/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -29307,18 +33466,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-docblock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", @@ -29347,46 +33494,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-each/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -29419,284 +33526,45 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-environment-jsdom": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz", - "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/jsdom": "^16.2.4", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3", - "jsdom": "^19.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@types/jsdom": { - "version": "16.2.15", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz", - "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/parse5": "^6.0.3", - "@types/tough-cookie": "*" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-environment-jsdom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-environment-jsdom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "dependencies": { - "@jest/types": "^28.1.3", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/jest-environment-jsdom/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/jest-environment-jsdom/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-environment-jsdom/node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-node": { @@ -29834,46 +33702,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-matcher-utils/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -29906,18 +33734,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-message-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", @@ -29938,46 +33754,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-message-util/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -30010,18 +33786,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-mock": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", @@ -30060,58 +33824,6 @@ "@types/yargs-parser": "*" } }, - "node_modules/jest-mock/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-mock/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-mock/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", @@ -30130,13 +33842,13 @@ } }, "node_modules/jest-preset-angular": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-13.1.1.tgz", - "integrity": "sha512-X8i7icKt9U5uhj7YKqdEZm7ZZPvNFRxfBnU+9SALdIkHYJhwtlJ5/MUk9wo4f3lX2smOkIl9LPJUu1APO+11Jg==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-14.1.1.tgz", + "integrity": "sha512-mWW2WlndHetTp4PQov05v7JE6HZQB5uTzGd+oW2RPH1OOTCLUKI8mSIU4DXCBJ4LDg5gIMMfqHsxT/Qmpu2dQQ==", "dev": true, "dependencies": { "bs-logger": "^0.2.6", - "esbuild-wasm": ">=0.13.8", + "esbuild-wasm": ">=0.15.13", "jest-environment-jsdom": "^29.0.0", "jest-util": "^29.0.0", "pretty-format": "^29.0.0", @@ -30146,46 +33858,15 @@ "node": "^14.15.0 || >=16.10.0" }, "optionalDependencies": { - "esbuild": ">=0.13.8" + "esbuild": ">=0.15.13" }, "peerDependencies": { - "@angular-devkit/build-angular": ">=13.0.0 <17.0.0", - "@angular/compiler-cli": ">=13.0.0 <17.0.0", - "@angular/core": ">=13.0.0 <17.0.0", - "@angular/platform-browser-dynamic": ">=13.0.0 <17.0.0", + "@angular-devkit/build-angular": ">=15.0.0 <19.0.0", + "@angular/compiler-cli": ">=15.0.0 <19.0.0", + "@angular/core": ">=15.0.0 <19.0.0", + "@angular/platform-browser-dynamic": ">=15.0.0 <19.0.0", "jest": "^29.0.0", - "typescript": ">=4.4" - } - }, - "node_modules/jest-preset-angular/node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/jest-preset-angular/node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jest-preset-angular/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" + "typescript": ">=4.8" } }, "node_modules/jest-preset-angular/node_modules/ansi-styles": { @@ -30200,105 +33881,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-preset-angular/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jest-preset-angular/node_modules/jest-environment-jsdom": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jest-preset-angular/node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-preset-angular/node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, "node_modules/jest-preset-angular/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -30319,43 +33901,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-preset-angular/node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/jest-preset-angular/node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/jest-preset-angular/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-regex-util": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", @@ -30398,46 +33943,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-resolve/node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -30447,18 +33952,6 @@ "node": ">=10" } }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runner": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", @@ -30491,46 +33984,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runner/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -30550,18 +34003,6 @@ "source-map": "^0.6.0" } }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runtime": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", @@ -30595,46 +34036,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runtime/node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", @@ -30649,18 +34050,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-snapshot": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", @@ -30692,46 +34081,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-snapshot/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -30764,18 +34113,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -30793,46 +34130,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-util/node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -30845,18 +34142,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-validate": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", @@ -30874,21 +34159,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -30901,31 +34171,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-validate/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -30958,18 +34203,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-watcher": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", @@ -30989,58 +34222,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", @@ -31056,15 +34237,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -31157,58 +34329,6 @@ } } }, - "node_modules/jscodeshift/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jscodeshift/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jscodeshift/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jscodeshift/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jscodeshift/node_modules/write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", @@ -31221,41 +34341,40 @@ } }, "node_modules/jsdom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", - "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "dev": true, "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.5.0", - "acorn-globals": "^6.0.0", + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", "cssom": "^0.5.0", "cssstyle": "^2.3.0", - "data-urls": "^3.0.1", - "decimal.js": "^10.3.1", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", "html-encoding-sniffer": "^3.0.0", "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^3.0.0", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^10.0.0", - "ws": "^8.2.3", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" }, "peerDependencies": { "canvas": "^2.5.0" @@ -31291,12 +34410,6 @@ "node": ">= 6" } }, - "node_modules/jsdom/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -31315,9 +34428,9 @@ "dev": true }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -31495,6 +34608,18 @@ "source-map-support": "^0.5.5" } }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -31536,6 +34661,102 @@ "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", "dev": true }, + "node_modules/koa": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", + "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", + "dev": true, + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.9.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true + }, + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/koa/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/koa/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/kolorist": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", @@ -31554,9 +34775,9 @@ } }, "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "dev": true, "dependencies": { "picocolors": "^1.0.0", @@ -31613,23 +34834,29 @@ } }, "node_modules/less-loader": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", "dev": true, - "dependencies": { - "klona": "^2.0.4" - }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "less": "^3.5.0 || ^4.0.0", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/less/node_modules/make-dir": { @@ -31724,18 +34951,21 @@ } }, "node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "dev": true, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -31768,21 +34998,6 @@ } } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/listr2/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -31828,6 +35043,31 @@ "@types/trusted-types": "^2.0.2" } }, + "node_modules/lmdb": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.13.tgz", + "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "msgpackr": "^1.10.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.0.13", + "@lmdb/lmdb-darwin-x64": "3.0.13", + "@lmdb/lmdb-linux-arm": "3.0.13", + "@lmdb/lmdb-linux-arm64": "3.0.13", + "@lmdb/lmdb-linux-x64": "3.0.13", + "@lmdb/lmdb-win32-x64": "3.0.13" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -31837,26 +35077,14 @@ } }, "node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", "dev": true, "engines": { "node": ">= 12.13.0" } }, - "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/localforage": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", @@ -31890,6 +35118,12 @@ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, + "node_modules/lodash.clonedeepwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", + "integrity": "sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA==", + "dev": true + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -32009,58 +35243,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", @@ -32078,20 +35260,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -32108,6 +35276,28 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/long-timeout": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", + "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==", + "dev": true + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -32121,13 +35311,10 @@ } }, "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" - } + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true }, "node_modules/lower-case": { "version": "2.0.2", @@ -32162,6 +35349,15 @@ "es5-ext": "~0.10.2" } }, + "node_modules/luxon": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/lz-string": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", @@ -32172,15 +35368,23 @@ } }, "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" } }, "node_modules/make-dir": { @@ -32212,9 +35416,9 @@ "dev": true }, "node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", @@ -32226,6 +35430,7 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", + "proc-log": "^4.2.0", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, @@ -32233,6 +35438,15 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/make-fetch-happen/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -32535,6 +35749,18 @@ "node": ">=6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -32553,12 +35779,13 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", "dev": true, "dependencies": { - "schema-utils": "^4.0.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { "node": ">= 12.13.0" @@ -32624,9 +35851,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -32645,9 +35872,9 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, "dependencies": { "minipass": "^7.0.3", @@ -32691,34 +35918,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", @@ -32832,18 +36031,6 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "node_modules/mlly": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", - "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", - "dev": true, - "dependencies": { - "acorn": "^8.11.3", - "pathe": "^1.1.2", - "pkg-types": "^1.1.1", - "ufo": "^1.5.3" - } - }, "node_modules/monaco-editor": { "version": "0.34.1", "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.34.1.tgz", @@ -32862,215 +36049,634 @@ "webpack": "^4.5.0 || 5.x" } }, - "node_modules/monaco-editor-webpack-plugin/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "node_modules/monaco-editor-webpack-plugin/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/moo-color": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz", + "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==", + "dev": true, + "dependencies": { + "color-name": "^1.1.4" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/msgpackr": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "dev": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/ng-packagr": { + "version": "18.2.1", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-18.2.1.tgz", + "integrity": "sha512-dy9ZDpZb3QpAz+Y/m8VAu7ctr2VrnRU3gmQwJagnNybVJtCsKn3lZA3IW7Z7GTLoG5IALSPouiCgiB/C8ozv7w==", + "dev": true, + "dependencies": { + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/wasm-node": "^4.18.0", + "ajv": "^8.12.0", + "ansi-colors": "^4.1.3", + "browserslist": "^4.22.1", + "cacache": "^18.0.0", + "chokidar": "^3.5.3", + "commander": "^12.0.0", + "convert-source-map": "^2.0.0", + "dependency-graph": "^1.0.0", + "esbuild": "^0.23.0", + "fast-glob": "^3.3.1", + "find-cache-dir": "^3.3.2", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.2.0", + "less": "^4.2.0", + "ora": "^5.1.0", + "piscina": "^4.4.0", + "postcss": "^8.4.31", + "rxjs": "^7.8.1", + "sass": "^1.69.5" + }, + "bin": { + "ng-packagr": "cli/main.js" + }, + "engines": { + "node": "^18.19.1 || >=20.11.1" + }, + "optionalDependencies": { + "rollup": "^4.18.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0 || ^18.2.0-next.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8.9.0" + "node": ">=18" } }, - "node_modules/moo-color": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz", - "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==", + "node_modules/ng-packagr/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "color-name": "^1.1.4" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "node_modules/ng-packagr/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "node_modules/ng-packagr/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "node_modules/ng-packagr/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "node_modules/ng-packagr/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" + "node_modules/ng-packagr/node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "node_modules/ng-packagr/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=18" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "node_modules/ng-packagr/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], "dev": true, "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, + "os": [ + "sunos" + ], "engines": { - "node": ">= 4.4.x" + "node": ">=18" } }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/ng-packagr/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], "dev": true, "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, + "os": [ + "win32" + ], "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/ng-packagr/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/ng-packagr": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-17.0.3.tgz", - "integrity": "sha512-e4GWKOblzwtkkDwI0GRd2gUmuJgg6LgECHbnkB/JpyDlvz1Sd+nEzExztt3UbclLs9FkopSVE5TohKh58B8aeg==", + "node_modules/ng-packagr/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@rollup/plugin-json": "^6.0.1", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/wasm-node": "^4.5.0", - "ajv": "^8.12.0", - "ansi-colors": "^4.1.3", - "autoprefixer": "^10.4.16", - "browserslist": "^4.22.1", - "cacache": "^18.0.0", - "chokidar": "^3.5.3", - "commander": "^11.1.0", - "convert-source-map": "^2.0.0", - "dependency-graph": "^0.11.0", - "esbuild-wasm": "^0.19.5", - "fast-glob": "^3.3.1", - "find-cache-dir": "^3.3.2", - "injection-js": "^2.4.0", - "jsonc-parser": "^3.2.0", - "less": "^4.2.0", - "ora": "^5.1.0", - "piscina": "^4.1.0", - "postcss": "^8.4.31", - "postcss-url": "^10.1.3", - "rxjs": "^7.8.1", - "sass": "^1.69.5" - }, - "bin": { - "ng-packagr": "cli/main.js" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "optionalDependencies": { - "esbuild": "^0.19.0", - "rollup": "^4.5.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0 || ^17.0.0-next.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "tslib": "^2.3.0", - "typescript": ">=5.2 <5.3" - }, - "peerDependenciesMeta": { - "tailwindcss": { - "optional": true - } + "node": ">=18" } }, + "node_modules/ng-packagr/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "optional": true + }, "node_modules/ng-packagr/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/ng-packagr/node_modules/convert-source-map": { @@ -33079,14 +36685,53 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/ng-packagr/node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, "node_modules/ng-packagr/node_modules/rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.1.tgz", + "integrity": "sha512-TgWbfXdZsMNTNCLv6/YXzPTjyA0m1mFTe3/2/C5VxA8bSYwyam8OIJiHZZUhErmNzKNcPLWec3KUIdMdXZ6+FA==", "dev": true, "optional": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -33096,19 +36741,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", + "@rollup/rollup-android-arm-eabi": "4.27.1", + "@rollup/rollup-android-arm64": "4.27.1", + "@rollup/rollup-darwin-arm64": "4.27.1", + "@rollup/rollup-darwin-x64": "4.27.1", + "@rollup/rollup-freebsd-arm64": "4.27.1", + "@rollup/rollup-freebsd-x64": "4.27.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.1", + "@rollup/rollup-linux-arm-musleabihf": "4.27.1", + "@rollup/rollup-linux-arm64-gnu": "4.27.1", + "@rollup/rollup-linux-arm64-musl": "4.27.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.1", + "@rollup/rollup-linux-riscv64-gnu": "4.27.1", + "@rollup/rollup-linux-s390x-gnu": "4.27.1", + "@rollup/rollup-linux-x64-gnu": "4.27.1", + "@rollup/rollup-linux-x64-musl": "4.27.1", + "@rollup/rollup-win32-arm64-msvc": "4.27.1", + "@rollup/rollup-win32-ia32-msvc": "4.27.1", + "@rollup/rollup-win32-x64-msvc": "4.27.1", "fsevents": "~2.3.2" } }, @@ -33127,6 +36777,13 @@ "node-gyp-build": "^4.2.2" } }, + "node_modules/nice-napi/node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -33155,11 +36812,10 @@ "dev": true }, "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true }, "node_modules/node-dir": { "version": "0.1.17", @@ -33249,9 +36905,9 @@ } }, "node_modules/node-gyp": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", - "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dev": true, "dependencies": { "env-paths": "^2.2.0", @@ -33260,9 +36916,9 @@ "graceful-fs": "^4.2.6", "make-fetch-happen": "^13.0.0", "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", + "tar": "^6.2.1", "which": "^4.0.0" }, "bin": { @@ -33273,9 +36929,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.3.tgz", + "integrity": "sha512-EMS95CMJzdoSKoIiXo8pxKoL8DYxwIZXYlLmgPb8KUv794abpnLK6ynsCAWNliOjREKruYKdzbh76HHYUHX7nw==", "dev": true, "optional": true, "bin": { @@ -33284,10 +36940,24 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, "node_modules/node-gyp/node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", @@ -33301,23 +36971,21 @@ } }, "node_modules/node-gyp/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -33331,6 +36999,45 @@ "node": ">=16" } }, + "node_modules/node-gyp/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -33375,10 +37082,24 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, + "node_modules/node-schedule": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.1.tgz", + "integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==", + "dev": true, + "dependencies": { + "cron-parser": "^4.2.0", + "long-timeout": "0.1.1", + "sorted-array-functions": "^1.3.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "dependencies": { "abbrev": "^2.0.0" @@ -33391,13 +37112,12 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, @@ -33431,9 +37151,9 @@ } }, "node_modules/npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, "dependencies": { "npm-normalize-package-bin": "^3.0.0" @@ -33491,9 +37211,9 @@ } }, "node_modules/npm-pick-manifest": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", - "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", @@ -33506,23 +37226,33 @@ } }, "node_modules/npm-registry-fetch": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", - "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", "dev": true, "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" + "proc-log": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/npm-registry-fetch/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -33557,44 +37287,44 @@ } }, "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", + "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", "dev": true }, "node_modules/nx": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/nx/-/nx-17.3.1.tgz", - "integrity": "sha512-D7moIq+0D9WSjQmkVsce7GxKF603XASGBTApX6+fAdl2KN3aGG8zPlOEE55sVT0/OsdHeoHXPmydL/egTpG2WQ==", + "version": "19.8.9", + "resolved": "https://registry.npmjs.org/nx/-/nx-19.8.9.tgz", + "integrity": "sha512-BiyEF2ycnk1KAa0ajmI1gUpyOvEKQGDDh2mQm+lXOMVtN5G+7Hy5u0aL/oQRxwSE9BUee0ldBpKVG3723Zx8oA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/tao": "17.3.1", + "@napi-rs/wasm-runtime": "0.2.4", + "@nrwl/tao": "19.8.9", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.46", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.5.1", + "@zkochan/js-yaml": "0.0.7", + "axios": "^1.7.4", "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", - "dotenv": "~16.3.1", - "dotenv-expand": "~10.0.0", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", "enquirer": "~2.3.6", "figures": "3.2.0", "flat": "^5.0.2", - "fs-extra": "^11.1.0", + "front-matter": "^4.0.2", "ignore": "^5.0.4", "jest-diff": "^29.4.1", - "js-yaml": "4.1.0", "jsonc-parser": "3.2.0", - "lines-and-columns": "~2.0.3", + "lines-and-columns": "2.0.3", "minimatch": "9.0.3", "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", - "semver": "7.5.3", + "semver": "^7.5.3", "string-width": "^4.2.3", "strong-log-transformer": "^2.1.0", "tar-stream": "~2.2.0", @@ -33609,19 +37339,19 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "17.3.1", - "@nx/nx-darwin-x64": "17.3.1", - "@nx/nx-freebsd-x64": "17.3.1", - "@nx/nx-linux-arm-gnueabihf": "17.3.1", - "@nx/nx-linux-arm64-gnu": "17.3.1", - "@nx/nx-linux-arm64-musl": "17.3.1", - "@nx/nx-linux-x64-gnu": "17.3.1", - "@nx/nx-linux-x64-musl": "17.3.1", - "@nx/nx-win32-arm64-msvc": "17.3.1", - "@nx/nx-win32-x64-msvc": "17.3.1" - }, - "peerDependencies": { - "@swc-node/register": "^1.6.7", + "@nx/nx-darwin-arm64": "19.8.9", + "@nx/nx-darwin-x64": "19.8.9", + "@nx/nx-freebsd-x64": "19.8.9", + "@nx/nx-linux-arm-gnueabihf": "19.8.9", + "@nx/nx-linux-arm64-gnu": "19.8.9", + "@nx/nx-linux-arm64-musl": "19.8.9", + "@nx/nx-linux-x64-gnu": "19.8.9", + "@nx/nx-linux-x64-musl": "19.8.9", + "@nx/nx-win32-arm64-msvc": "19.8.9", + "@nx/nx-win32-x64-msvc": "19.8.9" + }, + "peerDependencies": { + "@swc-node/register": "^1.8.0", "@swc/core": "^1.3.85" }, "peerDependenciesMeta": { @@ -33633,86 +37363,19 @@ } } }, - "node_modules/nx/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/nx/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/nx/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/nx/node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "dotenv": "^16.4.5" }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/nx/node_modules/dotenv": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.2.tgz", - "integrity": "sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==", - "dev": true, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/nx/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nx/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/nx/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "url": "https://dotenvx.com" } }, "node_modules/nx/node_modules/ora": { @@ -33737,39 +37400,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nx/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nx/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nx/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/nypm": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.6.tgz", @@ -34040,6 +37670,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", + "dev": true + }, "node_modules/ono": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz", @@ -34114,57 +37750,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/ordered-binary": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "dev": true }, "node_modules/os-tmpdir": { "version": "1.0.2", @@ -34263,16 +37853,20 @@ } }, "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", "dev": true, "dependencies": { - "@types/retry": "0.12.0", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-retry/node_modules/retry": { @@ -34317,6 +37911,12 @@ "node": ">=8" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "node_modules/package-json/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -34326,37 +37926,45 @@ } }, "node_modules/pacote": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.5.tgz", - "integrity": "sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", + "@npmcli/run-script": "^8.0.0", "cacache": "^18.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", "npm-package-arg": "^11.0.0", "npm-packlist": "^8.0.0", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^2.0.0", + "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, "bin": { - "pacote": "lib/bin.js" + "pacote": "bin/index.js" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/pacote/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/pako": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", @@ -34442,6 +38050,15 @@ "node": ">= 0.10" } }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -34566,16 +38183,16 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -34610,12 +38227,12 @@ "dev": true }, "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, "engines": { - "node": "*" + "node": ">= 14.16" } }, "node_modules/peek-stream": { @@ -34682,9 +38299,9 @@ "dev": true }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "3.0.1", @@ -34717,14 +38334,10 @@ } }, "node_modules/piscina": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.2.1.tgz", - "integrity": "sha512-LShp0+lrO+WIzB9LXO+ZmO4zGHxtTJNZhEO56H9SSu+JPaUQb6oLcTCzWi5IL2DS8/vIkCE88ElahuSSw4TAkA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", + "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", "dev": true, - "dependencies": { - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0" - }, "optionalDependencies": { "nice-napi": "^1.0.2" } @@ -34741,17 +38354,6 @@ "node": ">=10" } }, - "node_modules/pkg-types": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.0.tgz", - "integrity": "sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==", - "dev": true, - "dependencies": { - "confbox": "^0.1.7", - "mlly": "^1.7.1", - "pathe": "^1.1.2" - } - }, "node_modules/polished": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", @@ -34950,14 +38552,14 @@ } }, "node_modules/postcss-colormin": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz", - "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -34968,12 +38570,12 @@ } }, "node_modules/postcss-convert-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz", - "integrity": "sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -35158,9 +38760,9 @@ } }, "node_modules/postcss-discard-comments": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", - "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -35170,9 +38772,9 @@ } }, "node_modules/postcss-discard-duplicates": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz", - "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -35182,9 +38784,9 @@ } }, "node_modules/postcss-discard-empty": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz", - "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -35194,9 +38796,9 @@ } }, "node_modules/postcss-discard-overridden": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", - "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -35437,25 +39039,78 @@ } }, "node_modules/postcss-loader": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", - "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", "dev": true, "dependencies": { - "cosmiconfig": "^8.3.5", + "cosmiconfig": "^9.0.0", "jiti": "^1.20.0", "semver": "^7.5.4" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/postcss-loader/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/postcss-loader/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/postcss-logical": { @@ -35490,13 +39145,13 @@ "dev": true }, "node_modules/postcss-merge-longhand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz", - "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.2" + "stylehacks": "^6.1.1" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -35506,15 +39161,15 @@ } }, "node_modules/postcss-merge-rules": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz", - "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.1", - "postcss-selector-parser": "^6.0.15" + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -35524,9 +39179,9 @@ } }, "node_modules/postcss-minify-font-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", - "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -35539,13 +39194,13 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", - "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dev": true, "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^4.0.1", + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -35556,13 +39211,13 @@ } }, "node_modules/postcss-minify-params": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz", - "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", - "cssnano-utils": "^4.0.1", + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -35573,12 +39228,12 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz", - "integrity": "sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.15" + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -35588,9 +39243,9 @@ } }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" @@ -35600,13 +39255,13 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", + "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -35616,13 +39271,26 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-scope": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", - "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -35631,6 +39299,19 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", @@ -35692,9 +39373,9 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", - "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -35704,9 +39385,9 @@ } }, "node_modules/postcss-normalize-display-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", - "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -35719,9 +39400,9 @@ } }, "node_modules/postcss-normalize-positions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", - "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -35734,9 +39415,9 @@ } }, "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", - "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -35749,9 +39430,9 @@ } }, "node_modules/postcss-normalize-string": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", - "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -35764,9 +39445,9 @@ } }, "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", - "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -35779,12 +39460,12 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz", - "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -35795,9 +39476,9 @@ } }, "node_modules/postcss-normalize-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", - "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -35810,9 +39491,9 @@ } }, "node_modules/postcss-normalize-whitespace": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", - "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -35847,12 +39528,12 @@ } }, "node_modules/postcss-ordered-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", - "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dev": true, "dependencies": { - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -36082,12 +39763,12 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz", - "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" }, "engines": { @@ -36098,9 +39779,9 @@ } }, "node_modules/postcss-reduce-transforms": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", - "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -36189,9 +39870,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -36202,9 +39883,9 @@ } }, "node_modules/postcss-svgo": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz", - "integrity": "sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", @@ -36218,12 +39899,12 @@ } }, "node_modules/postcss-unique-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz", - "integrity": "sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.15" + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -36232,58 +39913,6 @@ "postcss": "^8.4.31" } }, - "node_modules/postcss-url": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz", - "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==", - "dev": true, - "dependencies": { - "make-dir": "~3.1.0", - "mime": "~2.5.2", - "minimatch": "~3.0.4", - "xxhashjs": "~0.2.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-url/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/postcss-url/node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-url/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -36838,6 +40467,12 @@ "node": ">=8" } }, + "node_modules/rambda": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.4.0.tgz", + "integrity": "sha512-B7y7goUd+g0hNl5ODGUejNNERQL5gD8uANJ5Y5aHly8v0jKesFlwIe7prPfuJxttDpe3otQzHJ4NXMpTmL9ELA==", + "dev": true + }, "node_modules/ramda": { "version": "0.29.0", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", @@ -37116,84 +40751,6 @@ "pify": "^2.3.0" } }, - "node_modules/read-package-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", - "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", - "dev": true, - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -37397,9 +40954,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "dev": true }, "node_modules/regenerate": { @@ -37866,6 +41423,67 @@ "node": ">=8" } }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/resolve-dir/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -37992,9 +41610,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, "node_modules/rimraf": { "version": "3.0.2", @@ -38027,6 +41645,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-async": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", @@ -38084,58 +41714,6 @@ "rxjs-report-usage": "bin/rxjs-report-usage" } }, - "node_modules/rxjs-report-usage/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/rxjs-report-usage/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/rxjs-report-usage/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rxjs-report-usage/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -38152,9 +41730,9 @@ "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" }, "node_modules/sass": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", - "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -38169,29 +41747,29 @@ } }, "node_modules/sass-loader": { - "version": "13.3.3", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.3.tgz", - "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", + "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", "dev": true, "dependencies": { "neo-async": "^2.6.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "fibers": ">= 3.1.0", + "@rspack/core": "0.x || 1.x", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "fibers": { + "@rspack/core": { "optional": true }, "node-sass": { @@ -38202,6 +41780,9 @@ }, "sass-embedded": { "optional": true + }, + "webpack": { + "optional": true } } }, @@ -38213,15 +41794,15 @@ "optional": true }, "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "dependencies": { "xmlchars": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=v12.22.7" } }, "node_modules/scheduler": { @@ -38369,11 +41950,6 @@ "node": ">= 0.8" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/sentence-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", @@ -38633,17 +42209,17 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sigstore": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.0.tgz", - "integrity": "sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.1", - "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^0.1.0" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -38693,20 +42269,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/slugify": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", @@ -38761,33 +42323,39 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "node_modules/socks-proxy-agent": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" } }, + "node_modules/sorted-array-functions": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", + "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==", + "dev": true + }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -39029,9 +42597,9 @@ } }, "node_modules/std-env": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", + "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", "dev": true }, "node_modules/stdin": { @@ -39107,6 +42675,52 @@ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", "dev": true }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -39249,18 +42863,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", - "dev": true, - "dependencies": { - "acorn": "^8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/strong-log-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", @@ -39301,37 +42903,6 @@ "node": ">=12.0.0" } }, - "node_modules/style-dictionary/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/style-dictionary/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/style-dictionary/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -39393,15 +42964,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/style-dictionary/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/style-dictionary/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -39414,18 +42976,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/style-dictionary/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/style-loader": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", @@ -39458,13 +43008,13 @@ } }, "node_modules/stylehacks": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", - "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", - "postcss-selector-parser": "^6.0.15" + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -39873,14 +43423,14 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-hyperlinks": { @@ -39896,27 +43446,6 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -39935,9 +43464,9 @@ "dev": true }, "node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", @@ -40013,21 +43542,6 @@ "node": ">=10.0.0" } }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/table/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -40129,9 +43643,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -40304,9 +43818,9 @@ } }, "node_modules/terser": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", - "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "version": "5.29.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", + "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -40376,14 +43890,6 @@ "ajv": "^6.9.1" } }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -40511,6 +44017,18 @@ "node": ">=0.8" } }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, "node_modules/throttleit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", @@ -40556,9 +44074,9 @@ "dev": true }, "node_modules/tinybench": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", - "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true }, "node_modules/tinycolor2": { @@ -40567,19 +44085,34 @@ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", "dev": true }, - "node_modules/tinypool": { + "node_modules/tinyexec": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.1.tgz", - "integrity": "sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "dev": true + }, + "node_modules/tinypool": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", + "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", - "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, "engines": { "node": ">=14.0.0" @@ -40603,14 +44136,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -40680,6 +44205,22 @@ "node": ">=12" } }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -40726,9 +44267,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", - "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", "dev": true, "engines": { "node": ">=16" @@ -40820,58 +44361,6 @@ "webpack": "^5.0.0" } }, - "node_modules/ts-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/ts-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ts-morph": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-18.0.0.tgz", @@ -40925,15 +44414,6 @@ } } }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/ts-node/node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -40968,58 +44448,6 @@ "node": ">=10.13.0" } }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/tsconfig-paths-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -41034,6 +44462,15 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "engines": { + "node": ">=0.6.x" + } + }, "node_modules/tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", @@ -41074,14 +44511,14 @@ "dev": true }, "node_modules/tuf-js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", - "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, "dependencies": { - "@tufjs/models": "2.0.0", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" + "make-fetch-happen": "^13.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -41175,9 +44612,9 @@ } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -41211,13 +44648,10 @@ } }, "node_modules/undici": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.2.1.tgz", - "integrity": "sha512-7Wa9thEM6/LMnnKtxJHlc8SrTlDmxqJecgz1iy8KlsN0/iskQXOQCuPkrZLXbElPaSw5slFFyKIKXyJ3UtbApw==", + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", + "integrity": "sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==", "dev": true, - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, "engines": { "node": ">=18.0" } @@ -41277,6 +44711,18 @@ "node": ">=4" } }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unified": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", @@ -41496,10 +44942,20 @@ "node": ">=8" } }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -41515,8 +44971,8 @@ } ], "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -41552,48 +45008,11 @@ "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/update-notifier/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/update-notifier/node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, - "node_modules/update-notifier/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/update-notifier/node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -41613,17 +45032,6 @@ "is-ci": "bin.js" } }, - "node_modules/update-notifier/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/upper-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", @@ -41903,32 +45311,33 @@ } }, "node_modules/vite": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", - "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -41946,6 +45355,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -41958,45 +45370,33 @@ } }, "node_modules/vite-node": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.27.3.tgz", - "integrity": "sha512-eyJYOO64o5HIp8poc4bJX+ZNBwMZeI3f6/JdiUmJgW02Mt7LnoCtDMRVmLaY9S05SIsjGe339ZK4uo2wQ+bF9g==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.5.tgz", + "integrity": "sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==", "dev": true, "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.1.0", - "pathe": "^0.2.0", - "picocolors": "^1.0.0", - "source-map": "^0.6.1", - "source-map-support": "^0.5.21", - "vite": "^3.0.0 || ^4.0.0" + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" }, "engines": { - "node": ">=v14.16.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/antfu" + "url": "https://opencollective.com/vitest" } }, - "node_modules/vite-node/node_modules/pathe": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", - "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "node_modules/vite-node/node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "dev": true }, - "node_modules/vite-node/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/vite-plugin-dts": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-2.3.0.tgz", @@ -42047,10 +45447,10 @@ "node": ">=12" } }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "node_modules/vite/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.2.tgz", + "integrity": "sha512-Tj+j7Pyzd15wAdSJswvs5CJzJNV+qqSUcr/aCD+jpQSBtXvGnV0pnrjoc8zFTe9fcKCatkpFpOO7yAzpO998HA==", "cpu": [ "arm" ], @@ -42058,15 +45458,12 @@ "optional": true, "os": [ "android" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "node_modules/vite/node_modules/@rollup/rollup-android-arm64": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.2.tgz", + "integrity": "sha512-xsPeJgh2ThBpUqlLgRfiVYBEf/P1nWlWvReG+aBWfNv3XEBpa6ZCmxSVnxJgLgkNz4IbxpLy64h2gCmAAQLneQ==", "cpu": [ "arm64" ], @@ -42074,31 +45471,12 @@ "optional": true, "os": [ "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "node_modules/vite/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.2.tgz", + "integrity": "sha512-KnXU4m9MywuZFedL35Z3PuwiTSn/yqRIhrEA9j+7OSkji39NzVkgxuxTYg5F8ryGysq4iFADaU5osSizMXhU2A==", "cpu": [ "arm64" ], @@ -42106,15 +45484,12 @@ "optional": true, "os": [ "darwin" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "node_modules/vite/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.2.tgz", + "integrity": "sha512-Hj77A3yTvUeCIx/Vi+4d4IbYhyTwtHj07lVzUgpUq9YpJSEiGJj4vXMKwzJ3w5zp5v3PFvpJNgc/J31smZey6g==", "cpu": [ "x64" ], @@ -42122,15 +45497,12 @@ "optional": true, "os": [ "darwin" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "node_modules/vite/node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.2.tgz", + "integrity": "sha512-RjgKf5C3xbn8gxvCm5VgKZ4nn0pRAIe90J0/fdHUsgztd3+Zesb2lm2+r6uX4prV2eUByuxJNdt647/1KPRq5g==", "cpu": [ "arm64" ], @@ -42138,15 +45510,12 @@ "optional": true, "os": [ "freebsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "node_modules/vite/node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.2.tgz", + "integrity": "sha512-duq21FoXwQtuws+V9H6UZ+eCBc7fxSpMK1GQINKn3fAyd9DFYKPJNcUhdIKOrMFjLEJgQskoMoiuizMt+dl20g==", "cpu": [ "x64" ], @@ -42154,15 +45523,12 @@ "optional": true, "os": [ "freebsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.2.tgz", + "integrity": "sha512-6npqOKEPRZkLrMcvyC/32OzJ2srdPzCylJjiTJT2c0bwwSGm7nz2F9mNQ1WrAqCBZROcQn91Fno+khFhVijmFA==", "cpu": [ "arm" ], @@ -42170,79 +45536,51 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.2.tgz", + "integrity": "sha512-V9Xg6eXtgBtHq2jnuQwM/jr2mwe2EycnopO8cbOvpzFuySCGtKlPCI3Hj9xup/pJK5Q0388qfZZy2DqV2J8ftw==", "cpu": [ - "ia32" + "arm" ], "dev": true, "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.2.tgz", + "integrity": "sha512-uCFX9gtZJoQl2xDTpRdseYuNqyKkuMDtH6zSrBTA28yTfKyjN9hQ2B04N5ynR8ILCoSDOrG/Eg+J2TtJ1e/CSA==", "cpu": [ - "loong64" + "arm64" ], "dev": true, "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.2.tgz", + "integrity": "sha512-/PU9P+7Rkz8JFYDHIi+xzHabOu9qEWR07L5nWLIUsvserrxegZExKCi2jhMZRd0ATdboKylu/K5yAXbp7fYFvA==", "cpu": [ - "mips64el" + "arm64" ], "dev": true, "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "node_modules/vite/node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.2.tgz", + "integrity": "sha512-eCHmol/dT5odMYi/N0R0HC8V8QE40rEpkyje/ZAXJYNNoSfrObOvG/Mn+s1F/FJyB7co7UQZZf6FuWnN6a7f4g==", "cpu": [ "ppc64" ], @@ -42250,15 +45588,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "node_modules/vite/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.2.tgz", + "integrity": "sha512-DEP3Njr9/ADDln3kNi76PXonLMSSMiCir0VHXxmGSHxCxDfQ70oWjHcJGfiBugzaqmYdTC7Y+8Int6qbnxPBIQ==", "cpu": [ "riscv64" ], @@ -42266,15 +45601,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "node_modules/vite/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.2.tgz", + "integrity": "sha512-NHGo5i6IE/PtEPh5m0yw5OmPMpesFnzMIS/lzvN5vknnC1sXM5Z/id5VgcNPgpD+wHmIcuYYgW+Q53v+9s96lQ==", "cpu": [ "s390x" ], @@ -42282,15 +45614,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "node_modules/vite/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.2.tgz", + "integrity": "sha512-PaW2DY5Tan+IFvNJGHDmUrORadbe/Ceh8tQxi8cmdQVCCYsLoQo2cuaSj+AU+YRX8M4ivS2vJ9UGaxfuNN7gmg==", "cpu": [ "x64" ], @@ -42298,63 +45627,25 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "node_modules/vite/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.2.tgz", + "integrity": "sha512-dOlWEMg2gI91Qx5I/HYqOD6iqlJspxLcS4Zlg3vjk1srE67z5T2Uz91yg/qA8sY0XcwQrFzWWiZhMNERylLrpQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } + "linux" + ] }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "node_modules/vite/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.2.tgz", + "integrity": "sha512-euMIv/4x5Y2/ImlbGl88mwKNXDsvzbWUlT7DFky76z2keajCtcbAsN9LUdmk31hAoVmJJYSThgdA0EsPeTr1+w==", "cpu": [ "arm64" ], @@ -42362,15 +45653,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "node_modules/vite/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.2.tgz", + "integrity": "sha512-RsnE6LQkUHlkC10RKngtHNLxb7scFykEbEwOFDjr3CeCMG+Rr+cKqlkKc2/wJ1u4u990urRHCbjz31x84PBrSQ==", "cpu": [ "ia32" ], @@ -42378,15 +45666,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "node_modules/vite/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.2.tgz", + "integrity": "sha512-foJM5vv+z2KQmn7emYdDLyTbkoO5bkHZE1oth2tWbQNGW7mX32d46Hz6T0MqXdWS2vBZhaEtHqdy9WYwGfiliA==", "cpu": [ "x64" ], @@ -42394,87 +45679,92 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "node_modules/vite/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/vite/node_modules/rollup": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.2.tgz", + "integrity": "sha512-KreA+PzWmk2yaFmZVwe6GB2uBD86nXl86OsDkt1bJS9p3vqWuEQ6HnJJ+j/mZi/q0920P99/MVRlB4L3crpF5w==", "dev": true, - "hasInstallScript": true, + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { - "esbuild": "bin/esbuild" + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=12" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@rollup/rollup-android-arm-eabi": "4.27.2", + "@rollup/rollup-android-arm64": "4.27.2", + "@rollup/rollup-darwin-arm64": "4.27.2", + "@rollup/rollup-darwin-x64": "4.27.2", + "@rollup/rollup-freebsd-arm64": "4.27.2", + "@rollup/rollup-freebsd-x64": "4.27.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.2", + "@rollup/rollup-linux-arm-musleabihf": "4.27.2", + "@rollup/rollup-linux-arm64-gnu": "4.27.2", + "@rollup/rollup-linux-arm64-musl": "4.27.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.2", + "@rollup/rollup-linux-riscv64-gnu": "4.27.2", + "@rollup/rollup-linux-s390x-gnu": "4.27.2", + "@rollup/rollup-linux-x64-gnu": "4.27.2", + "@rollup/rollup-linux-x64-musl": "4.27.2", + "@rollup/rollup-win32-arm64-msvc": "4.27.2", + "@rollup/rollup-win32-ia32-msvc": "4.27.2", + "@rollup/rollup-win32-x64-msvc": "4.27.2", + "fsevents": "~2.3.2" } }, "node_modules/vitest": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.27.3.tgz", - "integrity": "sha512-Ld3UVgRVhJUtqvQ3dW89GxiApFAgBsWJZBCWzK+gA3w2yG68csXlGZZ4WDJURf+8ecNfgrScga6xY+8YSOpiMg==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.4", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "acorn": "^8.8.1", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.7", - "debug": "^4.3.4", - "local-pkg": "^0.4.2", - "picocolors": "^1.0.0", - "source-map": "^0.6.1", - "std-env": "^3.3.1", - "strip-literal": "^1.0.0", - "tinybench": "^2.3.1", - "tinypool": "^0.3.0", - "tinyspy": "^1.0.2", - "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.27.3", - "why-is-node-running": "^2.2.2" + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.5.tgz", + "integrity": "sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==", + "dev": true, + "dependencies": { + "@vitest/expect": "2.1.5", + "@vitest/mocker": "2.1.5", + "@vitest/pretty-format": "^2.1.5", + "@vitest/runner": "2.1.5", + "@vitest/snapshot": "2.1.5", + "@vitest/spy": "2.1.5", + "@vitest/utils": "2.1.5", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.5", + "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.16.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/antfu" + "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.5", + "@vitest/ui": "2.1.5", "happy-dom": "*", "jsdom": "*" }, @@ -42482,6 +45772,9 @@ "@edge-runtime/vm": { "optional": true }, + "@types/node": { + "optional": true + }, "@vitest/browser": { "optional": true }, @@ -42496,44 +45789,25 @@ } } }, - "node_modules/vitest/node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/vitest/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "node_modules/vitest/node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", "dev": true, "dependencies": { - "browser-process-hrtime": "^1.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, "dependencies": { "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/walker": { @@ -42576,6 +45850,12 @@ "defaults": "^1.0.3" } }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true + }, "node_modules/web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", @@ -42641,19 +45921,20 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", - "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", "dev": true, "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.12", + "memfs": "^4.6.0", "mime-types": "^2.1.31", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -42668,55 +45949,74 @@ } } }, + "node_modules/webpack-dev-middleware/node_modules/memfs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", + "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "dev": true, + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", + "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", "dev": true, "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", + "html-entities": "^2.4.0", "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "rimraf": "^5.0.5", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" + "webpack-dev-middleware": "^7.1.0", + "ws": "^8.16.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "webpack": { @@ -42727,36 +46027,175 @@ } } }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, "engines": { "node": ">= 10" } }, - "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "node_modules/webpack-dev-server/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">=16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/webpack-dev-server/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webpack-manifest-plugin": { @@ -43001,9 +46440,9 @@ } }, "node_modules/whatwg-url": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", - "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, "dependencies": { "tr46": "^3.0.0", @@ -43075,9 +46514,9 @@ } }, "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "dependencies": { "siginfo": "^2.0.0", @@ -43156,35 +46595,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -43255,15 +46665,6 @@ "node": ">=0.4" } }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dev": true, - "dependencies": { - "cuint": "^0.2.2" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -43323,6 +46724,15 @@ "fd-slicer": "~1.1.0" } }, + "node_modules/ylru": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -43343,6 +46753,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/z-schema": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", diff --git a/package.json b/package.json index 8a49d8bbf8..1664fc99d6 100644 --- a/package.json +++ b/package.json @@ -28,16 +28,16 @@ "knapsack:serve": "NODE_ENV=production knapsack --config apps/knapsack/knapsack.config.js serve" }, "dependencies": { - "@angular/animations": "17.x.x", - "@angular/cdk": "17.x.x", - "@angular/common": "17.x.x", - "@angular/compiler": "17.x.x", - "@angular/core": "17.x.x", - "@angular/forms": "17.x.x", - "@angular/material": "17.x.x", - "@angular/platform-browser": "17.x.x", - "@angular/platform-browser-dynamic": "17.x.x", - "@angular/router": "17.x.x", + "@angular/animations": "18.2.11", + "@angular/cdk": "18.2.11", + "@angular/common": "18.2.11", + "@angular/compiler": "18.2.11", + "@angular/core": "18.2.11", + "@angular/forms": "18.2.11", + "@angular/material": "18.2.11", + "@angular/platform-browser": "18.2.11", + "@angular/platform-browser-dynamic": "18.2.11", + "@angular/router": "18.2.11", "@knapsack/app": "^4.69.12", "@knapsack/renderer-angular": "^4.69.12", "@knapsack/renderer-web-components": "^4.69.12", @@ -46,6 +46,9 @@ "@material/card": "15.0.0-canary.7f224ddd4.0", "@material/chips": "15.0.0-canary.7f224ddd4.0", "@material/data-table": "15.0.0-canary.7f224ddd4.0", + "@material/dialog": "15.0.0-canary.7f224ddd4.0", + "@material/drawer": "15.0.0-canary.7f224ddd4.0", + "@material/form-field": "15.0.0-canary.7f224ddd4.0", "@material/icon-button": "15.0.0-canary.7f224ddd4.0", "@material/image-list": "15.0.0-canary.7f224ddd4.0", "@material/mwc-button": "^0.27.0", @@ -70,7 +73,15 @@ "@material/mwc-textfield": "^0.27.0", "@material/mwc-top-app-bar": "^0.27.0", "@material/mwc-top-app-bar-fixed": "^0.27.0", + "@material/radio": "15.0.0-canary.7f224ddd4.0", + "@material/slider": "15.0.0-canary.7f224ddd4.0", + "@material/snackbar": "15.0.0-canary.7f224ddd4.0", + "@material/switch": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", + "@material/textfield": "15.0.0-canary.7f224ddd4.0", "@material/tooltip": "15.0.0-canary.7f224ddd4.0", + "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", "@ngx-translate/core": "^14.0.0", "@ngx-translate/http-loader": "^7.0.0", "easymde": "^2.18.0", @@ -94,30 +105,30 @@ }, "devDependencies": { "@angular-builders/custom-webpack": "17.x.x", - "@angular-devkit/build-angular": "17.x.x", - "@angular-devkit/core": "17.x.x", - "@angular-devkit/schematics": "17.x.x", - "@angular-eslint/eslint-plugin": "17.x.x", - "@angular-eslint/eslint-plugin-template": "17.x.x", - "@angular-eslint/template-parser": "17.x.x", - "@angular/cli": "17.x.x", - "@angular/compiler-cli": "17.1.2", - "@angular/language-service": "17.1.2", + "@angular-devkit/build-angular": "18.2.11", + "@angular-devkit/core": "18.2.11", + "@angular-devkit/schematics": "18.2.11", + "@angular-eslint/eslint-plugin": "18.4.0", + "@angular-eslint/eslint-plugin-template": "18.4.0", + "@angular-eslint/template-parser": "18.4.0", + "@angular/cli": "~18.2.0", + "@angular/compiler-cli": "18.2.11", + "@angular/language-service": "18.2.11", "@commitlint/cli": "^18.4.3", "@commitlint/config-angular": "^16.2.1", "@commitlint/config-conventional": "^16.2.1", "@covalent/tokens": "latest", - "@nx/angular": "17.3.1", - "@nx/cypress": "17.3.1", - "@nx/eslint": "17.3.1", - "@nx/eslint-plugin": "17.3.1", - "@nx/jest": "17.3.1", - "@nx/js": "17.3.1", - "@nx/linter": "17.3.1", - "@nx/vite": "17.3.1", - "@nx/web": "17.3.1", - "@nx/workspace": "17.3.1", - "@schematics/angular": "17.1.2", + "@nx/angular": "19.8.9", + "@nx/cypress": "19.8.9", + "@nx/eslint": "19.8.9", + "@nx/eslint-plugin": "19.8.9", + "@nx/jest": "19.8.9", + "@nx/js": "19.8.9", + "@nx/linter": "19.8.9", + "@nx/vite": "19.8.9", + "@nx/web": "19.8.9", + "@nx/workspace": "19.8.9", + "@schematics/angular": "18.2.11", "@semantic-release/changelog": "^6.0.1", "@semantic-release/exec": "^6.0.3", "@semantic-release/git": "^10.0.1", @@ -133,19 +144,20 @@ "@storybook/testing-library": "^0.2.2", "@storybook/theming": "7.6.15", "@types/echarts": "^4.9.13", - "@types/jest": "29.5.11", + "@types/jest": "29.5.14", "@types/jsdom": "^20.0.0", "@types/mjml-browser": "^4.15.0", "@types/node": "^18.16.9", "@types/showdown": "^2.0.6", - "@typescript-eslint/eslint-plugin": "6.20.0", - "@typescript-eslint/parser": "6.20.0", - "@vitest/coverage-c8": "^0.27.2", + "@typescript-eslint/eslint-plugin": "7.18.0", + "@typescript-eslint/parser": "7.18.0", + "@typescript-eslint/utils": "^7.16.0", + "@vitest/coverage-v8": "^2.1.5", "autoprefixer": "^10.4.0", "chromatic": "^7.5.4", "css-loader": "^6.7.1", "cypress": "^9.1.0", - "eslint": "8.48.0", + "eslint": "8.57.1", "eslint-config-prettier": "9.1.0", "eslint-plugin-cypress": "^2.15.1", "eslint-plugin-rxjs": "^5.0.3", @@ -153,14 +165,14 @@ "eslint-plugin-storybook": "^0.6.15", "html-webpack-plugin": "^5.5.3", "husky": "^7.0.4", - "jest": "29.4.3", + "jest": "29.7.0", "jest-canvas-mock": "^2.5.2", - "jest-environment-jsdom": "28.1.3", + "jest-environment-jsdom": "29.7.0", "jest-esm-transformer": "^1.0.0", - "jest-preset-angular": "13.1.1", + "jest-preset-angular": "14.1.1", "monaco-editor-webpack-plugin": "^7.1.0", - "ng-packagr": "17.0.3", - "nx": "17.3.1", + "ng-packagr": "18.2.1", + "nx": "19.8.9", "postcss": "^8.4.41", "postcss-custom-properties": "^14.0.1", "postcss-preset-env": "^9.1.0", @@ -179,9 +191,9 @@ "stylelint-config-standard": "^25.0.0", "tailwindcss": "^3.0.2", "ts-jest": "29.1.1", - "typescript": "5.3.3", - "vite": "^4.5.5", + "typescript": "5.5.4", + "vite": "^5.4.11", "vite-plugin-dts": "~2.3.0", - "vitest": "^0.27.2" + "vitest": "^2.1.5" } } From 55aa09ff1831ce52926cc9dde4099ac8e9cd637e Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Mon, 18 Nov 2024 15:41:11 -0600 Subject: [PATCH 02/22] build(nx): remove nx cloud id --- nx.json | 1 - 1 file changed, 1 deletion(-) diff --git a/nx.json b/nx.json index c441b2fa15..039ddd4a52 100644 --- a/nx.json +++ b/nx.json @@ -63,7 +63,6 @@ "inputs": ["production", "^production"] } }, - "nxCloudId": "673778969f050256c167cdf7", "useInferencePlugins": false, "defaultBase": "main" } From 4b4f30befc7c35b4587e783eba75edcd6dacaadd Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 18 Nov 2024 21:46:49 +0000 Subject: [PATCH 03/22] ci(release): 9.0.0-beta.1 [skip ci] --- docs/CHANGELOG.md | 10 ++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index cda67611da..7586f27efd 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,13 @@ +# [9.0.0-beta.1](https://github.com/Teradata/covalent/compare/v8.23.2...v9.0.0-beta.1) (2024-11-18) + +### Features + +- **covalent:** upgrade to Angular 18 ([6587aba](https://github.com/Teradata/covalent/commit/6587abaea7892108be4b18ef81042b50d193df03)) + +### BREAKING CHANGES + +- **covalent:** Upgrade covalent to Angular 18 + ## [8.23.2](https://github.com/Teradata/covalent/compare/v8.23.1...v8.23.2) (2024-11-18) ### Bug Fixes diff --git a/package-lock.json b/package-lock.json index 4af67781b1..3b89c778dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "covalent", - "version": "8.23.2", + "version": "9.0.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "covalent", - "version": "8.23.2", + "version": "9.0.0-beta.1", "hasInstallScript": true, "dependencies": { "@angular/animations": "18.2.11", diff --git a/package.json b/package.json index 1664fc99d6..505d959a0f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "covalent", - "version": "8.23.2", + "version": "9.0.0-beta.1", "description": "Teradata UI Platform built on Angular Material", "keywords": [ "angular", From ea6330c7cddabbe7841cdfe88ff09fb9091cdbb8 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Mon, 18 Nov 2024 16:18:54 -0600 Subject: [PATCH 04/22] fix(package): fix angular versioning issues --- package-lock.json | 2138 ++++++--------------------------------------- package.json | 42 +- 2 files changed, 281 insertions(+), 1899 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b89c778dc..ec9e59e488 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,1842 +9,274 @@ "version": "9.0.0-beta.1", "hasInstallScript": true, "dependencies": { - "@angular/animations": "18.2.11", - "@angular/cdk": "18.2.11", - "@angular/common": "18.2.11", - "@angular/compiler": "18.2.11", - "@angular/core": "18.2.11", - "@angular/forms": "18.2.11", - "@angular/material": "18.2.11", - "@angular/platform-browser": "18.2.11", - "@angular/platform-browser-dynamic": "18.2.11", - "@angular/router": "18.2.11", - "@knapsack/app": "^4.69.12", - "@knapsack/renderer-angular": "^4.69.12", - "@knapsack/renderer-web-components": "^4.69.12", - "@material/banner": "15.0.0-canary.7f224ddd4.0", - "@material/button": "15.0.0-canary.7f224ddd4.0", - "@material/card": "15.0.0-canary.7f224ddd4.0", - "@material/chips": "15.0.0-canary.7f224ddd4.0", - "@material/data-table": "15.0.0-canary.7f224ddd4.0", - "@material/dialog": "15.0.0-canary.7f224ddd4.0", - "@material/drawer": "15.0.0-canary.7f224ddd4.0", - "@material/form-field": "15.0.0-canary.7f224ddd4.0", - "@material/icon-button": "15.0.0-canary.7f224ddd4.0", - "@material/image-list": "15.0.0-canary.7f224ddd4.0", - "@material/mwc-button": "^0.27.0", - "@material/mwc-checkbox": "^0.27.0", - "@material/mwc-circular-progress": "^0.27.0", - "@material/mwc-dialog": "^0.27.0", - "@material/mwc-drawer": "^0.27.0", - "@material/mwc-formfield": "^0.27.0", - "@material/mwc-icon": "^0.27.0", - "@material/mwc-icon-button": "^0.27.0", - "@material/mwc-icon-button-toggle": "^0.27.0", - "@material/mwc-linear-progress": "^0.27.0", - "@material/mwc-list": "^0.27.0", - "@material/mwc-radio": "^0.27.0", - "@material/mwc-select": "^0.27.0", - "@material/mwc-slider": "^0.27.0", - "@material/mwc-snackbar": "^0.27.0", - "@material/mwc-switch": "^0.27.0", - "@material/mwc-tab": "^0.27.0", - "@material/mwc-tab-bar": "^0.27.0", - "@material/mwc-textarea": "^0.27.0", - "@material/mwc-textfield": "^0.27.0", - "@material/mwc-top-app-bar": "^0.27.0", - "@material/mwc-top-app-bar-fixed": "^0.27.0", - "@material/radio": "15.0.0-canary.7f224ddd4.0", - "@material/slider": "15.0.0-canary.7f224ddd4.0", - "@material/snackbar": "15.0.0-canary.7f224ddd4.0", - "@material/switch": "15.0.0-canary.7f224ddd4.0", - "@material/tab": "15.0.0-canary.7f224ddd4.0", - "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", - "@material/textfield": "15.0.0-canary.7f224ddd4.0", - "@material/tooltip": "15.0.0-canary.7f224ddd4.0", - "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", - "@ngx-translate/core": "^14.0.0", - "@ngx-translate/http-loader": "^7.0.0", - "easymde": "^2.18.0", - "echarts": "^5.4.3", - "echarts-stat": "^1.2.0", - "echarts-wordcloud": "^2.1.0", - "highlight.js": "^11.9.0", - "lit": "^2.2.8", - "mjml-browser": "^4.15.3", - "monaco-editor": "^0.34.1", - "rxjs": "^7.4.0", - "shepherd.js": "^9.0.0", - "showdown": "^2.1.0", - "skeleton-elements": "^4.0.1", - "tslib": "^2.0.0", - "zone.js": "0.13.1" - }, - "devDependencies": { - "@angular-builders/custom-webpack": "17.x.x", - "@angular-devkit/build-angular": "18.2.11", - "@angular-devkit/core": "18.2.11", - "@angular-devkit/schematics": "18.2.11", - "@angular-eslint/eslint-plugin": "18.4.0", - "@angular-eslint/eslint-plugin-template": "18.4.0", - "@angular-eslint/template-parser": "18.4.0", - "@angular/cli": "~18.2.0", - "@angular/compiler-cli": "18.2.11", - "@angular/language-service": "18.2.11", - "@commitlint/cli": "^18.4.3", - "@commitlint/config-angular": "^16.2.1", - "@commitlint/config-conventional": "^16.2.1", - "@covalent/tokens": "latest", - "@nx/angular": "19.8.9", - "@nx/cypress": "19.8.9", - "@nx/eslint": "19.8.9", - "@nx/eslint-plugin": "19.8.9", - "@nx/jest": "19.8.9", - "@nx/js": "19.8.9", - "@nx/linter": "19.8.9", - "@nx/vite": "19.8.9", - "@nx/web": "19.8.9", - "@nx/workspace": "19.8.9", - "@schematics/angular": "18.2.11", - "@semantic-release/changelog": "^6.0.1", - "@semantic-release/exec": "^6.0.3", - "@semantic-release/git": "^10.0.1", - "@storybook/addon-a11y": "7.6.15", - "@storybook/addon-actions": "7.6.15", - "@storybook/addon-essentials": "7.6.15", - "@storybook/addon-interactions": "7.6.15", - "@storybook/addon-links": "7.6.15", - "@storybook/addons": "7.6.15", - "@storybook/cli": "7.6.15", - "@storybook/html-vite": "^7.6.15", - "@storybook/mdx1-csf": "^1.0.0", - "@storybook/testing-library": "^0.2.2", - "@storybook/theming": "7.6.15", - "@types/echarts": "^4.9.13", - "@types/jest": "29.5.14", - "@types/jsdom": "^20.0.0", - "@types/mjml-browser": "^4.15.0", - "@types/node": "^18.16.9", - "@types/showdown": "^2.0.6", - "@typescript-eslint/eslint-plugin": "7.18.0", - "@typescript-eslint/parser": "7.18.0", - "@typescript-eslint/utils": "^7.16.0", - "@vitest/coverage-v8": "^2.1.5", - "autoprefixer": "^10.4.0", - "chromatic": "^7.5.4", - "css-loader": "^6.7.1", - "cypress": "^9.1.0", - "eslint": "8.57.1", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-cypress": "^2.15.1", - "eslint-plugin-rxjs": "^5.0.3", - "eslint-plugin-rxjs-angular": "^2.0.1", - "eslint-plugin-storybook": "^0.6.15", - "html-webpack-plugin": "^5.5.3", - "husky": "^7.0.4", - "jest": "29.7.0", - "jest-canvas-mock": "^2.5.2", - "jest-environment-jsdom": "29.7.0", - "jest-esm-transformer": "^1.0.0", - "jest-preset-angular": "14.1.1", - "monaco-editor-webpack-plugin": "^7.1.0", - "ng-packagr": "18.2.1", - "nx": "19.8.9", - "postcss": "^8.4.41", - "postcss-custom-properties": "^14.0.1", - "postcss-preset-env": "^9.1.0", - "postcss-scss": "^4.0.6", - "prettier": "^2.6.2", - "pretty-quick": "^3.1.3", - "raw-loader": "^4.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sass": "^1.69.7", - "storybook": "^7.6.15", - "storybook-dark-mode": "3.0.1", - "style-dictionary": "^3.7.0", - "stylelint": "^14.5.3", - "stylelint-config-prettier": "^9.0.3", - "stylelint-config-standard": "^25.0.0", - "tailwindcss": "^3.0.2", - "ts-jest": "29.1.1", - "typescript": "5.5.4", - "vite": "^5.4.11", - "vite-plugin-dts": "~2.3.0", - "vitest": "^2.1.5" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@adobe/css-tools": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", - "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", - "dev": true - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@angular-builders/custom-webpack": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@angular-builders/custom-webpack/-/custom-webpack-17.0.0.tgz", - "integrity": "sha512-gKZKRzCE4cbDYyQLu1G/2CkAFbMd0oF07jMxX+jOTADzDeOy9mPOeBaFO60oWgeknrhXf31rynho55LGrHStkg==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": ">=0.1700.0 < 0.1800.0", - "@angular-devkit/build-angular": "^17.0.0", - "@angular-devkit/core": "^17.0.0", - "lodash": "^4.17.15", - "ts-node": "^10.0.0", - "tsconfig-paths": "^4.1.0", - "webpack-merge": "^5.7.3" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/build-angular": { - "version": "17.3.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.11.tgz", - "integrity": "sha512-lHX5V2dSts328yvo/9E2u9QMGcvJhbEKKDDp9dBecwvIG9s+4lTOJgi9DPUE7W+AtmPcmbbhwC2JRQ/SLQhAoA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.11", - "@angular-devkit/build-webpack": "0.1703.11", - "@angular-devkit/core": "17.3.11", - "@babel/core": "7.24.0", - "@babel/generator": "7.23.6", - "@babel/helper-annotate-as-pure": "7.22.5", - "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-transform-async-generator-functions": "7.23.9", - "@babel/plugin-transform-async-to-generator": "7.23.3", - "@babel/plugin-transform-runtime": "7.24.0", - "@babel/preset-env": "7.24.0", - "@babel/runtime": "7.24.0", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.11", - "@vitejs/plugin-basic-ssl": "1.1.0", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.18", - "babel-loader": "9.1.3", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "^4.21.5", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.22", - "css-loader": "6.10.0", - "esbuild-wasm": "0.20.1", - "fast-glob": "3.3.2", - "http-proxy-middleware": "2.0.7", - "https-proxy-agent": "7.0.4", - "inquirer": "9.2.15", - "jsonc-parser": "3.2.1", - "karma-source-map-support": "1.4.0", - "less": "4.2.0", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.8", - "mini-css-extract-plugin": "2.8.1", - "mrmime": "2.0.0", - "open": "8.4.2", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "4.0.1", - "piscina": "4.4.0", - "postcss": "8.4.35", - "postcss-loader": "8.1.1", - "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.71.1", - "sass-loader": "14.1.1", - "semver": "7.6.0", - "source-map-loader": "5.0.0", - "source-map-support": "0.5.21", - "terser": "5.29.1", - "tree-kill": "1.2.2", - "tslib": "2.6.2", - "undici": "6.11.1", - "vite": "5.1.8", - "watchpack": "2.4.0", - "webpack": "5.94.0", - "webpack-dev-middleware": "6.1.2", - "webpack-dev-server": "4.15.1", - "webpack-merge": "5.10.0", - "webpack-subresource-integrity": "5.1.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "esbuild": "0.20.1" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "@angular/localize": "^17.0.0", - "@angular/platform-server": "^17.0.0", - "@angular/service-worker": "^17.0.0", - "@web/test-runner": "^0.18.0", - "browser-sync": "^3.0.2", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", - "karma": "^6.3.0", - "ng-packagr": "^17.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.2 <5.5" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "@web/test-runner": { - "optional": true - }, - "browser-sync": { - "optional": true - }, - "jest": { - "optional": true - }, - "jest-environment-jsdom": { - "optional": true - }, - "karma": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "protractor": { - "optional": true - }, - "tailwindcss": { - "optional": true - } - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/build-webpack": { - "version": "0.1703.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.11.tgz", - "integrity": "sha512-qbCiiHuoVkD7CtLyWoRi/Vzz6nrEztpF5XIyWUcQu67An1VlxbMTE4yoSQiURjCQMnB/JvS1GPVed7wOq3SJ/w==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1703.11", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/core": { - "version": "17.3.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", - "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/aix-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", - "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/android-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", - "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/android-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", - "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/android-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", - "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/darwin-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", - "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/darwin-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", - "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", - "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/freebsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", - "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", - "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", - "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", - "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-loong64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", - "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-mips64el": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", - "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", - "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-riscv64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", - "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-s390x": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", - "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/linux-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", - "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/netbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", - "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/openbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", - "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/sunos-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", - "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/win32-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", - "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/win32-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", - "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@esbuild/win32-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", - "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@ngtools/webpack": { - "version": "17.3.11", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.11.tgz", - "integrity": "sha512-SfTCbplt4y6ak5cf2IfqdoVOsnoNdh/j6Vu+wb8WWABKwZ5yfr2S/Gk6ithSKcdIZhAF8DNBOoyk1EJuf8Xkfg==", - "dev": true, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "typescript": ">=5.2 <5.5", - "webpack": "^5.54.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@angular-builders/custom-webpack/node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/critters": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", - "integrity": "sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "css-select": "^5.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.2", - "htmlparser2": "^8.0.2", - "postcss": "^8.4.23", - "postcss-media-query-parser": "^0.2.3" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/esbuild": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", - "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.1", - "@esbuild/android-arm": "0.20.1", - "@esbuild/android-arm64": "0.20.1", - "@esbuild/android-x64": "0.20.1", - "@esbuild/darwin-arm64": "0.20.1", - "@esbuild/darwin-x64": "0.20.1", - "@esbuild/freebsd-arm64": "0.20.1", - "@esbuild/freebsd-x64": "0.20.1", - "@esbuild/linux-arm": "0.20.1", - "@esbuild/linux-arm64": "0.20.1", - "@esbuild/linux-ia32": "0.20.1", - "@esbuild/linux-loong64": "0.20.1", - "@esbuild/linux-mips64el": "0.20.1", - "@esbuild/linux-ppc64": "0.20.1", - "@esbuild/linux-riscv64": "0.20.1", - "@esbuild/linux-s390x": "0.20.1", - "@esbuild/linux-x64": "0.20.1", - "@esbuild/netbsd-x64": "0.20.1", - "@esbuild/openbsd-x64": "0.20.1", - "@esbuild/sunos-x64": "0.20.1", - "@esbuild/win32-arm64": "0.20.1", - "@esbuild/win32-ia32": "0.20.1", - "@esbuild/win32-x64": "0.20.1" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "node_modules/@angular-builders/custom-webpack/node_modules/less-loader": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", - "dev": true, - "dependencies": { - "klona": "^2.0.4" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/mini-css-extract-plugin": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", - "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/picomatch": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", - "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/piscina": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", - "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", - "dev": true, - "optionalDependencies": { - "nice-napi": "^1.0.2" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/rollup": { - "version": "4.27.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.1.tgz", - "integrity": "sha512-TgWbfXdZsMNTNCLv6/YXzPTjyA0m1mFTe3/2/C5VxA8bSYwyam8OIJiHZZUhErmNzKNcPLWec3KUIdMdXZ6+FA==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.27.1", - "@rollup/rollup-android-arm64": "4.27.1", - "@rollup/rollup-darwin-arm64": "4.27.1", - "@rollup/rollup-darwin-x64": "4.27.1", - "@rollup/rollup-freebsd-arm64": "4.27.1", - "@rollup/rollup-freebsd-x64": "4.27.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.27.1", - "@rollup/rollup-linux-arm-musleabihf": "4.27.1", - "@rollup/rollup-linux-arm64-gnu": "4.27.1", - "@rollup/rollup-linux-arm64-musl": "4.27.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.27.1", - "@rollup/rollup-linux-riscv64-gnu": "4.27.1", - "@rollup/rollup-linux-s390x-gnu": "4.27.1", - "@rollup/rollup-linux-x64-gnu": "4.27.1", - "@rollup/rollup-linux-x64-musl": "4.27.1", - "@rollup/rollup-win32-arm64-msvc": "4.27.1", - "@rollup/rollup-win32-ia32-msvc": "4.27.1", - "@rollup/rollup-win32-x64-msvc": "4.27.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/sass-loader": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", - "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", - "dev": true, - "dependencies": { - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.8.tgz", - "integrity": "sha512-mB8ToUuSmzODSpENgvpFk2fTiU/YQ1tmcVJJ4WZbq4fPdGJkFNVcmVL5k7iDug6xzWjjuGDKAuSievIsD6H7Xw==", - "dev": true, - "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.35", - "rollup": "^4.2.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" + "@angular/animations": "18.x.x", + "@angular/cdk": "18.x.x", + "@angular/common": "18.x.x", + "@angular/compiler": "18.x.x", + "@angular/core": "18.x.x", + "@angular/forms": "18.x.x", + "@angular/material": "18.x.x", + "@angular/platform-browser": "18.x.x", + "@angular/platform-browser-dynamic": "18.x.x", + "@angular/router": "18.x.x", + "@knapsack/app": "^4.69.12", + "@knapsack/renderer-angular": "^4.69.12", + "@knapsack/renderer-web-components": "^4.69.12", + "@material/banner": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/card": "15.0.0-canary.7f224ddd4.0", + "@material/chips": "15.0.0-canary.7f224ddd4.0", + "@material/data-table": "15.0.0-canary.7f224ddd4.0", + "@material/dialog": "15.0.0-canary.7f224ddd4.0", + "@material/drawer": "15.0.0-canary.7f224ddd4.0", + "@material/form-field": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/image-list": "15.0.0-canary.7f224ddd4.0", + "@material/mwc-button": "^0.27.0", + "@material/mwc-checkbox": "^0.27.0", + "@material/mwc-circular-progress": "^0.27.0", + "@material/mwc-dialog": "^0.27.0", + "@material/mwc-drawer": "^0.27.0", + "@material/mwc-formfield": "^0.27.0", + "@material/mwc-icon": "^0.27.0", + "@material/mwc-icon-button": "^0.27.0", + "@material/mwc-icon-button-toggle": "^0.27.0", + "@material/mwc-linear-progress": "^0.27.0", + "@material/mwc-list": "^0.27.0", + "@material/mwc-radio": "^0.27.0", + "@material/mwc-select": "^0.27.0", + "@material/mwc-slider": "^0.27.0", + "@material/mwc-snackbar": "^0.27.0", + "@material/mwc-switch": "^0.27.0", + "@material/mwc-tab": "^0.27.0", + "@material/mwc-tab-bar": "^0.27.0", + "@material/mwc-textarea": "^0.27.0", + "@material/mwc-textfield": "^0.27.0", + "@material/mwc-top-app-bar": "^0.27.0", + "@material/mwc-top-app-bar-fixed": "^0.27.0", + "@material/radio": "15.0.0-canary.7f224ddd4.0", + "@material/slider": "15.0.0-canary.7f224ddd4.0", + "@material/snackbar": "15.0.0-canary.7f224ddd4.0", + "@material/switch": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", + "@material/textfield": "15.0.0-canary.7f224ddd4.0", + "@material/tooltip": "15.0.0-canary.7f224ddd4.0", + "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", + "@ngx-translate/core": "^14.0.0", + "@ngx-translate/http-loader": "^7.0.0", + "easymde": "^2.18.0", + "echarts": "^5.4.3", + "echarts-stat": "^1.2.0", + "echarts-wordcloud": "^2.1.0", + "highlight.js": "^11.9.0", + "lit": "^2.2.8", + "mjml-browser": "^4.15.3", + "monaco-editor": "^0.34.1", + "rxjs": "^7.4.0", + "shepherd.js": "^9.0.0", + "showdown": "^2.1.0", + "skeleton-elements": "^4.0.1", + "tslib": "^2.0.0", + "zone.js": "0.13.1" + }, + "devDependencies": { + "@angular-builders/custom-webpack": "18.x.x", + "@angular-devkit/build-angular": "18.x.x", + "@angular-devkit/core": "18.x.x", + "@angular-devkit/schematics": "18.x.x", + "@angular-eslint/eslint-plugin": "18.x.x", + "@angular-eslint/eslint-plugin-template": "18.x.x", + "@angular-eslint/template-parser": "18.x.x", + "@angular/cli": "18.x.x", + "@angular/compiler-cli": "18.x.x", + "@angular/language-service": "18.x.x", + "@commitlint/cli": "^18.4.3", + "@commitlint/config-angular": "^16.2.1", + "@commitlint/config-conventional": "^16.2.1", + "@covalent/tokens": "latest", + "@nx/angular": "19.8.9", + "@nx/cypress": "19.8.9", + "@nx/eslint": "19.8.9", + "@nx/eslint-plugin": "19.8.9", + "@nx/jest": "19.8.9", + "@nx/js": "19.8.9", + "@nx/linter": "19.8.9", + "@nx/vite": "19.8.9", + "@nx/web": "19.8.9", + "@nx/workspace": "19.8.9", + "@schematics/angular": "18.x.x", + "@semantic-release/changelog": "^6.0.1", + "@semantic-release/exec": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@storybook/addon-a11y": "7.6.15", + "@storybook/addon-actions": "7.6.15", + "@storybook/addon-essentials": "7.6.15", + "@storybook/addon-interactions": "7.6.15", + "@storybook/addon-links": "7.6.15", + "@storybook/addons": "7.6.15", + "@storybook/cli": "7.6.15", + "@storybook/html-vite": "^7.6.15", + "@storybook/mdx1-csf": "^1.0.0", + "@storybook/testing-library": "^0.2.2", + "@storybook/theming": "7.6.15", + "@types/echarts": "^4.9.13", + "@types/jest": "29.5.14", + "@types/jsdom": "^20.0.0", + "@types/mjml-browser": "^4.15.0", + "@types/node": "^18.16.9", + "@types/showdown": "^2.0.6", + "@typescript-eslint/eslint-plugin": "7.18.0", + "@typescript-eslint/parser": "7.18.0", + "@typescript-eslint/utils": "^7.16.0", + "@vitest/coverage-v8": "^2.1.5", + "autoprefixer": "^10.4.0", + "chromatic": "^7.5.4", + "css-loader": "^6.7.1", + "cypress": "^9.1.0", + "eslint": "8.57.1", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-rxjs": "^5.0.3", + "eslint-plugin-rxjs-angular": "^2.0.1", + "eslint-plugin-storybook": "^0.6.15", + "html-webpack-plugin": "^5.5.3", + "husky": "^7.0.4", + "jest": "29.7.0", + "jest-canvas-mock": "^2.5.2", + "jest-environment-jsdom": "29.7.0", + "jest-esm-transformer": "^1.0.0", + "jest-preset-angular": "14.1.1", + "monaco-editor-webpack-plugin": "^7.1.0", + "ng-packagr": "18.2.1", + "nx": "19.8.9", + "postcss": "^8.4.41", + "postcss-custom-properties": "^14.0.1", + "postcss-preset-env": "^9.1.0", + "postcss-scss": "^4.0.6", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "raw-loader": "^4.0.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.69.7", + "storybook": "^7.6.15", + "storybook-dark-mode": "3.0.1", + "style-dictionary": "^3.7.0", + "stylelint": "^14.5.3", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard": "^25.0.0", + "tailwindcss": "^3.0.2", + "ts-jest": "29.1.1", + "typescript": "5.5.4", + "vite": "^5.4.11", + "vite-plugin-dts": "~2.3.0", + "vitest": "^2.1.5" } }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "cpu": [ - "arm64" - ], + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } + "node_modules/@adobe/css-tools": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", + "dev": true }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "cpu": [ - "x64" - ], + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-builders/custom-webpack/node_modules/vite/node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/webpack-dev-middleware": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz", - "integrity": "sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==", - "dev": true, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } + "node": ">=6.0.0" } }, - "node_modules/@angular-builders/custom-webpack/node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "node_modules/@angular-builders/common": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@angular-builders/common/-/common-2.0.0.tgz", + "integrity": "sha512-O5YJc++DtJVJhqA/OomRKN2jGYzvU/YXtfrPAqcA9Is3Ob5jvV0L0JHSAjSw/KaLvk/FjBIqoRVcYdLp5LKddA==", "dev": true, "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" + "@angular-devkit/core": "^18.0.0", + "ts-node": "^10.0.0", + "tsconfig-paths": "^4.1.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" } }, - "node_modules/@angular-builders/custom-webpack/node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "node_modules/@angular-builders/custom-webpack": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@angular-builders/custom-webpack/-/custom-webpack-18.0.0.tgz", + "integrity": "sha512-XSynPSXHq5+nrh7J2snfrcbvm6YGwUGQRzr7OuO3wURJ6CHOD9C+xEAmvEUWW8c1YjEslVNG7aLtCGz7LA4ymw==", "dev": true, "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" + "@angular-builders/common": "2.0.0", + "@angular-devkit/architect": ">=0.1800.0 < 0.1900.0", + "@angular-devkit/build-angular": "^18.0.0", + "@angular-devkit/core": "^18.0.0", + "lodash": "^4.17.15", + "webpack-merge": "^5.7.3" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "@angular/compiler-cli": "^18.0.0" } }, - "node_modules/@angular-builders/custom-webpack/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@angular-devkit/architect": { - "version": "0.1703.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.11.tgz", - "integrity": "sha512-YNasVZk4rYdcM6M+KRH8PUBhVyJfqzUYLpO98GgRokW+taIDgifckSlmfDZzQRbw45qiwei1IKCLqcpC8nM5Tw==", + "version": "0.1802.12", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.12.tgz", + "integrity": "sha512-bepVb2/GtJppYKaeW8yTGE6egmoWZ7zagFDsmBdbF+BYp+HmeoPsclARcdryBPVq68zedyTRdvhWSUTbw1AYuw==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.3.11", + "@angular-devkit/core": "18.2.12", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/architect/node_modules/@angular-devkit/core": { - "version": "17.3.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", - "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.12.tgz", + "integrity": "sha512-NtB6ypsaDyPE6/fqWOdfTmACs+yK5RqfH5tStEzWFeeDsIEDYKsJ06ypuRep7qTjYus5Rmttk0Ds+cFgz8JdUQ==", "dev": true, "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.1", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -1857,16 +289,49 @@ } } }, + "node_modules/@angular-devkit/architect/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/architect/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/@angular-devkit/architect/node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true }, "node_modules/@angular-devkit/architect/node_modules/picomatch": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", - "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "engines": { "node": ">=12" @@ -5375,21 +3840,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1802.12", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.12.tgz", - "integrity": "sha512-bepVb2/GtJppYKaeW8yTGE6egmoWZ7zagFDsmBdbF+BYp+HmeoPsclARcdryBPVq68zedyTRdvhWSUTbw1AYuw==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "18.2.12", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { "version": "18.2.12", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.12.tgz", @@ -12687,18 +11137,6 @@ "@lit-labs/ssr-dom-shim": "^1.0.0" } }, - "node_modules/@ljharb/through": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", - "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/@lmdb/lmdb-darwin-arm64": { "version": "3.0.13", "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", @@ -32111,44 +30549,6 @@ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", "dev": true }, - "node_modules/inquirer": { - "version": "9.2.15", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", - "integrity": "sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==", - "dev": true, - "dependencies": { - "@ljharb/through": "^2.3.12", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^3.2.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/internal-ip": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", @@ -41657,15 +40057,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -44647,15 +43038,6 @@ "node": ">=0.8.0" } }, - "node_modules/undici": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", - "integrity": "sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==", - "dev": true, - "engines": { - "node": ">=18.0" - } - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", diff --git a/package.json b/package.json index 505d959a0f..2fb764fe0f 100644 --- a/package.json +++ b/package.json @@ -28,16 +28,16 @@ "knapsack:serve": "NODE_ENV=production knapsack --config apps/knapsack/knapsack.config.js serve" }, "dependencies": { - "@angular/animations": "18.2.11", - "@angular/cdk": "18.2.11", - "@angular/common": "18.2.11", - "@angular/compiler": "18.2.11", - "@angular/core": "18.2.11", - "@angular/forms": "18.2.11", - "@angular/material": "18.2.11", - "@angular/platform-browser": "18.2.11", - "@angular/platform-browser-dynamic": "18.2.11", - "@angular/router": "18.2.11", + "@angular/animations": "18.x.x", + "@angular/cdk": "18.x.x", + "@angular/common": "18.x.x", + "@angular/compiler": "18.x.x", + "@angular/core": "18.x.x", + "@angular/forms": "18.x.x", + "@angular/material": "18.x.x", + "@angular/platform-browser": "18.x.x", + "@angular/platform-browser-dynamic": "18.x.x", + "@angular/router": "18.x.x", "@knapsack/app": "^4.69.12", "@knapsack/renderer-angular": "^4.69.12", "@knapsack/renderer-web-components": "^4.69.12", @@ -104,16 +104,16 @@ "html-webpack-plugin": "4.5.2" }, "devDependencies": { - "@angular-builders/custom-webpack": "17.x.x", - "@angular-devkit/build-angular": "18.2.11", - "@angular-devkit/core": "18.2.11", - "@angular-devkit/schematics": "18.2.11", - "@angular-eslint/eslint-plugin": "18.4.0", - "@angular-eslint/eslint-plugin-template": "18.4.0", - "@angular-eslint/template-parser": "18.4.0", - "@angular/cli": "~18.2.0", - "@angular/compiler-cli": "18.2.11", - "@angular/language-service": "18.2.11", + "@angular-builders/custom-webpack": "18.x.x", + "@angular-devkit/build-angular": "18.x.x", + "@angular-devkit/core": "18.x.x", + "@angular-devkit/schematics": "18.x.x", + "@angular-eslint/eslint-plugin": "18.x.x", + "@angular-eslint/eslint-plugin-template": "18.x.x", + "@angular-eslint/template-parser": "18.x.x", + "@angular/cli": "18.x.x", + "@angular/compiler-cli": "18.x.x", + "@angular/language-service": "18.x.x", "@commitlint/cli": "^18.4.3", "@commitlint/config-angular": "^16.2.1", "@commitlint/config-conventional": "^16.2.1", @@ -128,7 +128,7 @@ "@nx/vite": "19.8.9", "@nx/web": "19.8.9", "@nx/workspace": "19.8.9", - "@schematics/angular": "18.2.11", + "@schematics/angular": "18.x.x", "@semantic-release/changelog": "^6.0.1", "@semantic-release/exec": "^6.0.3", "@semantic-release/git": "^10.0.1", From 97218842401096f485ebfb03f85c2ac9ae111b70 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 18 Nov 2024 22:24:22 +0000 Subject: [PATCH 05/22] ci(release): 9.0.0-beta.2 [skip ci] --- docs/CHANGELOG.md | 6 ++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 7586f27efd..b111e0f454 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,9 @@ +# [9.0.0-beta.2](https://github.com/Teradata/covalent/compare/v9.0.0-beta.1...v9.0.0-beta.2) (2024-11-18) + +### Bug Fixes + +- **package:** fix angular versioning issues ([ea6330c](https://github.com/Teradata/covalent/commit/ea6330c7cddabbe7841cdfe88ff09fb9091cdbb8)) + # [9.0.0-beta.1](https://github.com/Teradata/covalent/compare/v8.23.2...v9.0.0-beta.1) (2024-11-18) ### Features diff --git a/package-lock.json b/package-lock.json index ec9e59e488..9c38888a93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "covalent", - "version": "9.0.0-beta.1", + "version": "9.0.0-beta.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "covalent", - "version": "9.0.0-beta.1", + "version": "9.0.0-beta.2", "hasInstallScript": true, "dependencies": { "@angular/animations": "18.x.x", diff --git a/package.json b/package.json index 2fb764fe0f..bad5f22124 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "covalent", - "version": "9.0.0-beta.1", + "version": "9.0.0-beta.2", "description": "Teradata UI Platform built on Angular Material", "keywords": [ "angular", From 666e10a3d43385d19db383e99a26c5a1bdecce3c Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Tue, 19 Nov 2024 16:33:33 -0600 Subject: [PATCH 06/22] revert(version): remove beta version number --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c2479c9a9..bc47d82198 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "covalent", - "version": "9.0.0-beta.2", + "version": "8.23.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "covalent", - "version": "9.0.0-beta.2", + "version": "8.23.2", "hasInstallScript": true, "dependencies": { "@angular/animations": "18.x.x", diff --git a/package.json b/package.json index bad5f22124..28536e07ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "covalent", - "version": "9.0.0-beta.2", + "version": "8.23.2", "description": "Teradata UI Platform built on Angular Material", "keywords": [ "angular", From ef015ff40bdce65dba0e3a9e6007e0f98885aa4b Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Tue, 19 Nov 2024 16:56:58 -0600 Subject: [PATCH 07/22] build(chromatic): use node 18 --- .github/workflows/chromatic.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index f1f2bb1a96..757c2205f8 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -25,10 +25,10 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 # 👈 Required to retrieve git history - - name: Use Node.js 16 + - name: Use Node.js 18 uses: actions/setup-node@v2 with: - node-version: 16 + node-version: 18 cache: npm - run: npm ci # 👇 Adds Chromatic as a step in the workflow From 195888821ab78aa07fea9a573805445d6ac3822e Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Tue, 19 Nov 2024 17:10:50 -0600 Subject: [PATCH 08/22] build(ci): fix failing component tests --- libs/components/vite.config.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/components/vite.config.js b/libs/components/vite.config.js index 3f8874a3a9..2add6b52a9 100644 --- a/libs/components/vite.config.js +++ b/libs/components/vite.config.js @@ -79,6 +79,11 @@ module.exports = defineConfig(({ mode }) => { }, }, test: { + server: { + deps: { + inline: [/safevalues/], + }, + }, coverage: { provider: 'v8', enabled: true, From 0cd24111a1adfb3ead439e83363871640dfc764c Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Thu, 21 Nov 2024 17:06:54 -0600 Subject: [PATCH 09/22] docs(covalent): update docs for angular 18 --- .../flavored-markdown-demo-basic.component.ts | 19 +++++------ .../angular-material.component.html | 6 ++-- .../content/docs/theme/theme.component.html | 2 +- .../app/content/docs/theme/theme.component.ts | 26 ++++++++------- docs/COMPONENTS_QUICKSTART.md | 16 ++++++++- docs/COMPONENTS_THEMING.md | 2 +- docs/GETTING_STARTED.md | 33 ++++++++++++------- docs/UTILITY_MIXINS.md | 4 +-- docs/WHAT_IS_COVALENT.md | 2 +- .../file-upload/file-upload.component.html | 2 +- .../src/file-upload/file-upload.component.ts | 12 ++++--- libs/angular/layout/README.md | 12 ++----- .../src/lib/flavored-markdown.component.scss | 10 ++++++ .../src/lib/flavored-markdown.component.ts | 33 ++++++++++++++++--- 14 files changed, 115 insertions(+), 64 deletions(-) diff --git a/apps/docs-app/src/app/content/components/component-demos/flavored-markdown/demos/flavored-markdown-demo-basic/flavored-markdown-demo-basic.component.ts b/apps/docs-app/src/app/content/components/component-demos/flavored-markdown/demos/flavored-markdown-demo-basic/flavored-markdown-demo-basic.component.ts index d33e3d6840..48bd39ed44 100644 --- a/apps/docs-app/src/app/content/components/component-demos/flavored-markdown/demos/flavored-markdown-demo-basic/flavored-markdown-demo-basic.component.ts +++ b/apps/docs-app/src/app/content/components/component-demos/flavored-markdown/demos/flavored-markdown-demo-basic/flavored-markdown-demo-basic.component.ts @@ -16,17 +16,16 @@ export class FlavoredMarkdownDemoBasicComponent { ## List + One - + subline + + subline + Two + Three - + subline - + second subline - - - | Tables | Are | Cool | - | ------------- |:-------------:| -----:| - | **col 3 is** | right-aligned | $1600 | - | col 2 is | *centered* | $12 | - | zebra stripes | are neat | $1 | + + subline + + second subline + + Table in a list: + | Tables | Are | Cool | + | ------------- |:-------------:| -----:| + | **col 3 is** | right-aligned | $1600 | + | col 2 is | *centered* | $12 | + | zebra stripes | are neat | $1 | `; } diff --git a/apps/docs-app/src/app/content/docs/angular-material/angular-material.component.html b/apps/docs-app/src/app/content/docs/angular-material/angular-material.component.html index 4107bb6a2f..4a39dc963a 100644 --- a/apps/docs-app/src/app/content/docs/angular-material/angular-material.component.html +++ b/apps/docs-app/src/app/content/docs/angular-material/angular-material.component.html @@ -31,14 +31,14 @@

New & Custom Components

mat-button color="accent" target="_blank" - href="https://v17.material.angular.io/components/categories" + href="https://v18.material.angular.io/components/categories" > Components Github repo @@ -55,7 +55,7 @@

New & Custom Components

Why Angular Material? - + launch Angular Material Docs Site diff --git a/apps/docs-app/src/app/content/docs/theme/theme.component.html b/apps/docs-app/src/app/content/docs/theme/theme.component.html index ca0a32d288..3cdbda8a91 100644 --- a/apps/docs-app/src/app/content/docs/theme/theme.component.html +++ b/apps/docs-app/src/app/content/docs/theme/theme.component.html @@ -28,7 +28,7 @@

SCSS Variables

mat-button color="accent" target="_blank" - href="https://v17.material.angular.io/guide/theming" + href="https://v18.material.angular.io/guide/theming" > Theming docs diff --git a/apps/docs-app/src/app/content/docs/theme/theme.component.ts b/apps/docs-app/src/app/content/docs/theme/theme.component.ts index 52306c3893..8f5d650955 100644 --- a/apps/docs-app/src/app/content/docs/theme/theme.component.ts +++ b/apps/docs-app/src/app/content/docs/theme/theme.component.ts @@ -15,13 +15,13 @@ export class ThemeComponent { @use '@angular/material' as mat; // (optional) Additional themes - @use '@covalent/markdown/markdown-theme' as markdown; - @use '@covalent/highlight/highlight-theme' as highlight; - @import '@covalent/flavored-markdown/flavored-markdown-theme'; + @use "@covalent/markdown/markdown-theme" as markdown; + @use "@covalent/highlight/highlight-theme" as highlight; + @import "@covalent/flavored-markdown/flavored-markdown-theme"; // Covalent core themes - @import '@covalent/core/theming/all-theme'; - @import '@covalent/core/theming/teradata-theme'; + @import "@covalent/core/theming/all-theme"; + @import "@covalent/core/theming/teradata-theme"; // Plus imports for other components in your app. @@ -29,22 +29,22 @@ export class ThemeComponent { // Define a custom typography config that overrides the font-family // or any typography level. - $typography: mat.define-typography-config( - $font-family: 'Inter, monospace', - $headline-1: mat.define-typography-level(32px, 48px, 700), + $typography: mat.m2-define-typography-config( + $font-family: "Inter, monospace", + $headline-1: mat.m2-define-typography-level(32px, 48px, 700), ); // Define the palettes for your theme using the Material Design palettes available in palette.scss // (imported above). For each palette, you can optionally specify a default, lighter, and darker // hue. - $primary: mat.define-palette($mat-blue, 700); - $accent: mat.define-palette($mat-orange, 800, A100, A400); + $primary: mat.m2-define-palette($mat-blue, 700); + $accent: mat.m2-define-palette($mat-orange, 800, A100, A400); // The warn palette is optional (defaults to red). - $warn: mat.define-palette($mat-red, 600); + $warn: mat.m2-define-palette($mat-red, 600); // Create the theme object (a Sass map containing all of the palettes). - $theme: mat.define-light-theme( + $theme: mat.m2-define-light-theme( ( color: ( primary: $primary, @@ -55,6 +55,8 @@ export class ThemeComponent { ) ); + @include mat.typography-hierarchy($theme, $back-compat: true); + // Include the Angular Material styles using the custom theme @include mat.all-component-themes($theme); diff --git a/docs/COMPONENTS_QUICKSTART.md b/docs/COMPONENTS_QUICKSTART.md index fa45c5fdf4..deeb7fbd90 100644 --- a/docs/COMPONENTS_QUICKSTART.md +++ b/docs/COMPONENTS_QUICKSTART.md @@ -40,6 +40,20 @@ This code snippet will render a Covalent button with the label "Hello world" on Covalent components are designed to be easily customizable. You can modify attributes such as `label`, `raised`, and others to change the appearance and behavior of the components. Since web components are built with on top of web standards they also have full support for listening to fired events natively in the browser using `addEventListener` +## Using ES imports + +### Installing + +Use your favorite package management tool to add covalent components to your project. + +```bash +# Using npm +npm install --save @covalent/components + +# Using yarn +yarn add @covalent/components +``` + ## Angular Integration Applications using angular can use covalent components in the same way they use HTML elements today adding [`CUSTOM_ELEMENTS_SCHEMA`](https://angular.io/api/core/CUSTOM_ELEMENTS_SCHEMA) schema to any Angular module or standalone component. @@ -62,7 +76,7 @@ export class AppComponent {} **Exploring Components**: Visit the Covalent components storybook [documentation](https://teradata.github.io/covalent/docs/components/?path=/docs/introduction--overview) to explore the full range of components available for use in your projects. -**Theming**: Beyond the prebuilt light theme, Covalent offers theming capabilities to tailor the components to your branding needs. Explore the [theming documentation](https://teradata.github.io/covalent/v8/#/docs/theming/web-components) to learn how to customize the look and feel of your components. +**Theming**: Beyond the prebuilt light theme, Covalent offers theming capabilities to tailor the components to your branding needs. Explore the [theming documentation](https://teradata.github.io/covalent/v9/#/docs/theming/web-components) to learn how to customize the look and feel of your components. **Responsive Design**: Covalent components are built with responsiveness in mind. Test your application on various devices to ensure a consistent user experience. diff --git a/docs/COMPONENTS_THEMING.md b/docs/COMPONENTS_THEMING.md index bc88f771a2..456a685a88 100644 --- a/docs/COMPONENTS_THEMING.md +++ b/docs/COMPONENTS_THEMING.md @@ -7,7 +7,7 @@ In this guide we will help you understand and apply theming to your projects usi Before we dive into theming, ensure you have the following setup in your project: 1. SCSS preprocessor installed. -2. Covalent packages (`@covalent/tokens` and `@covalent/components`) installed in your project. read our [quick start guide](https://teradata.github.io/covalent/v8/#/docs/get-started/web-components) if you havent yet. +2. Covalent packages (`@covalent/tokens` and `@covalent/components`) installed in your project. read our [quick start guide](https://teradata.github.io/covalent/v9/#/docs/get-started/web-components) if you havent yet. 3. Optionally install the `@covalent/icons` package to leverage the custom covalent icons font. ## Understanding Theming Tokens diff --git a/docs/GETTING_STARTED.md b/docs/GETTING_STARTED.md index 42086b07da..71a59c05c0 100644 --- a/docs/GETTING_STARTED.md +++ b/docs/GETTING_STARTED.md @@ -2,12 +2,12 @@ Get started with Covalent using the Angular CLI. -See the [material getting started](https://v17.material.angular.io/guide/getting-started) for instructions. +See the [material getting started](https://v18.material.angular.io/guide/getting-started) for instructions. ## Install the CLI ```bash -npm install -g @angular/cli@17.3.6 +npm install -g @angular/cli@18.2.12 ``` ## Create a new project @@ -94,7 +94,7 @@ export class AppComponent { This is **required** to apply all of the core, theme and typography styles to your application. -See the [material theming guide](https://v17.material.angular.io/guide/theming) and the [material typography guide](https://v17.material.angular.io/guide/typography) for instructions. +See the [material theming guide](https://v18.material.angular.io/guide/theming) and the [material typography guide](https://v18.material.angular.io/guide/typography) for instructions. A theme file is a simple Sass file that defines your palettes and passes them to mixins that output the corresponding styles. A typical theme file will look something like this: @@ -110,20 +110,28 @@ A theme file is a simple Sass file that defines your palettes and passes them to @import '@covalent/core/theming/all-theme'; @import '@covalent/core/theming/teradata-theme'; +// Plus imports for other components in your app. + @include mat.core(); // Define a custom typography config that overrides the font-family // or any typography level. -$typography: mat.define-typography-config( +$typography: mat.m2-define-typography-config( $font-family: 'Inter, monospace', - $headline-1: mat.define-typography-level(32px, 48px, 700), + $headline-1: mat.m2-define-typography-level(32px, 48px, 700), ); -$primary: mat.define-palette($mat-blue, 700); -$accent: mat.define-palette($mat-orange, 800, A100, A400); -$warn: mat.define-palette($mat-red, 600); +// Define the palettes for your theme using the Material Design palettes available in palette.scss +// (imported above). For each palette, you can optionally specify a default, lighter, and darker +// hue. +$primary: mat.m2-define-palette($mat-blue, 700); +$accent: mat.m2-define-palette($mat-orange, 800, A100, A400); + +// The warn palette is optional (defaults to red). +$warn: mat.m2-define-palette($mat-red, 600); -$theme: mat.define-light-theme( +// Create the theme object (a Sass map containing all of the palettes). +$theme: mat.m2-define-light-theme( ( color: ( primary: $primary, @@ -134,12 +142,13 @@ $theme: mat.define-light-theme( ) ); +@include mat.typography-hierarchy($theme, $back-compat: true); + // Include the Angular Material styles using the custom theme @include mat.all-component-themes($theme); +// Include theme styles for core and each component used in your app. @include covalent-theme($theme); - -// (optional) Additional themes @include markdown.covalent-markdown-theme($theme); @include covalent-flavored-markdown-theme($theme); @include highlight.covalent-highlight-theme($theme); @@ -169,6 +178,6 @@ This also includes the `material icons` by default. #### Not interested in using ALL the CSS? -Click [here](https://teradata.github.io/covalent/v8/#/docs/theming/sass-mixins) if you want to cherry pick the utility classes instead of loading the `platform.css` +Click [here](https://teradata.github.io/covalent/v9/#/docs/theming/sass-mixins) if you want to cherry pick the utility classes instead of loading the `platform.css` --- diff --git a/docs/UTILITY_MIXINS.md b/docs/UTILITY_MIXINS.md index 55ae9e9dea..4ca89088ef 100644 --- a/docs/UTILITY_MIXINS.md +++ b/docs/UTILITY_MIXINS.md @@ -28,7 +28,7 @@ We also bundle the material icons ### Covalent Utilities Mixin -To include [utility classes](https://teradata.github.io/covalent/#/utilities/styling), add the following: +To include [utility classes](https://teradata.github.io/covalent/v9/#/utilities/styling), add the following: ```scss // Include covalent utility classes @@ -55,7 +55,7 @@ To include the color classes, add the following: ### Example including every single mixin -If you want to include everything, include the following snippet (or just include the `platform.css` as described in the [getting started](https://teradata.github.io/covalent/v8/#/docs/get-started/overview) docs) +If you want to include everything, include the following snippet (or just include the `platform.css` as described in the [getting started](https://teradata.github.io/covalent/v9/#/docs/get-started/overview) docs) ```scss @import '@covalent/core/theming/all-theme'; diff --git a/docs/WHAT_IS_COVALENT.md b/docs/WHAT_IS_COVALENT.md index 7cdf85dd3a..1fdb9f733e 100644 --- a/docs/WHAT_IS_COVALENT.md +++ b/docs/WHAT_IS_COVALENT.md @@ -6,7 +6,7 @@ Covalent is a UI Platform focused on solving common enterprise needs. Covalent f ## Compatibility -The latest version of Covalent is now fully compatible with [**Angular 17**](https://v17.angular.io/start). +The latest version of Covalent is now fully compatible with [**Angular 18**](https://v18.angular.dev/overview).
diff --git a/libs/angular/file/src/file-upload/file-upload.component.html b/libs/angular/file/src/file-upload/file-upload.component.html index 60ca6fcb00..dfe5d3d514 100644 --- a/libs/angular/file/src/file-upload/file-upload.component.html +++ b/libs/angular/file/src/file-upload/file-upload.component.html @@ -5,7 +5,7 @@ [disabled]="disabled" [accept]="accept" [color]="defaultColor" - (selectFile)="(handleSelect)" + (selectFile)="handleSelect(value)" > diff --git a/libs/angular/file/src/file-upload/file-upload.component.ts b/libs/angular/file/src/file-upload/file-upload.component.ts index 8919c5ba92..946f16d047 100644 --- a/libs/angular/file/src/file-upload/file-upload.component.ts +++ b/libs/angular/file/src/file-upload/file-upload.component.ts @@ -102,7 +102,7 @@ export class TdFileUploadComponent implements ControlValueAccessor { return this._disabled; } - @Input() value?: unknown | undefined; + @Input() value?: File | FileList | undefined; /** * select?: function @@ -131,7 +131,7 @@ export class TdFileUploadComponent implements ControlValueAccessor { constructor(private _changeDetectorRef: ChangeDetectorRef) {} - writeValue(value: unknown): void { + writeValue(value: File | FileList): void { this.value = value; this._changeDetectorRef.markForCheck(); } @@ -156,9 +156,11 @@ export class TdFileUploadComponent implements ControlValueAccessor { /** * Method executed when a file is selected. */ - handleSelect(value: File | FileList): void { - this.value = value; - this.selectFile.emit(value); + handleSelect(value: File | FileList | undefined): void { + if (value) { + this.value = value; + this.selectFile.emit(value); + } } /** diff --git a/libs/angular/layout/README.md b/libs/angular/layout/README.md index 02c0bc4988..e53f1368d1 100644 --- a/libs/angular/layout/README.md +++ b/libs/angular/layout/README.md @@ -76,7 +76,7 @@ export class MyModule {} ### Theming -See [theming](https://teradata.github.io/covalent/#/docs/theme) in the covalent docs for more info. +See [theming](https://teradata.github.io/covalent/v8/#/docs/theming/custom-theme) in the covalent docs for more info. ## TdNavigationDrawerComponent - td-navigation-drawer @@ -120,15 +120,7 @@ Example for Main Layout / Navigation Drawer Combo: ```html - + .. main drawer content
.. menu drawer content
diff --git a/libs/markdown-flavored/src/lib/flavored-markdown.component.scss b/libs/markdown-flavored/src/lib/flavored-markdown.component.scss index ff3b7de665..47554f5d68 100644 --- a/libs/markdown-flavored/src/lib/flavored-markdown.component.scss +++ b/libs/markdown-flavored/src/lib/flavored-markdown.component.scss @@ -30,4 +30,14 @@ $code-font: 'Menlo', 'Monaco', 'Andale Mono', 'lucida console', 'Courier New', flex-direction: row; justify-content: space-between; } + + mat-table { + .align-right { + justify-content: flex-end; + } + + .align-center { + justify-content: center; + } + } } diff --git a/libs/markdown-flavored/src/lib/flavored-markdown.component.ts b/libs/markdown-flavored/src/lib/flavored-markdown.component.ts index a5c601c4c8..7c684fe39e 100644 --- a/libs/markdown-flavored/src/lib/flavored-markdown.component.ts +++ b/libs/markdown-flavored/src/lib/flavored-markdown.component.ts @@ -50,6 +50,7 @@ export interface ITdFlavoredMarkDownTableColumn { label: string; name: string; numeric: boolean; + centered: boolean; } @Component({ @@ -58,10 +59,21 @@ export interface ITdFlavoredMarkDownTableColumn { - {{ - column.label - }} - {{ column.label }} + {{ row[column.name] }} @@ -81,6 +93,17 @@ export class TdFlavoredMarkdownTableComponent implements OnInit, AfterViewInit { dataSource!: MatTableDataSource; ngOnInit(): void { + // Check if the first column is empty + const isFirstColumnEmpty = + this.columnDefs.length > 0 && + this.columnDefs[0].label.trim() === '' && // Check if the header cell is empty + this.data.every((row: any) => !row[this.columnDefs[0].name]); // Check if all cells in the first column are empty + + // If the first column is empty, remove it + if (isFirstColumnEmpty) { + this.columnDefs.shift(); // Remove the first column definition + } + this.displayedColumns = this.columnDefs.map( (c: ITdFlavoredMarkDownTableColumn) => c.name ); @@ -512,7 +535,6 @@ export class TdFlavoredMarkdownComponent } private _replaceTables(markdown: string): string { - markdown = markdown.replaceAll(' |', ''); const tableRgx = /^ {0,3}\|?.+\|.+\n[ \t]{0,3}\|?[ \t]*:?[ \t]*(?:-|=){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:-|=){2,}[\s\S]+?(?:\n\n|~0)/gm; return this._replaceComponent( @@ -573,6 +595,7 @@ export class TdFlavoredMarkdownComponent label: col, name: col ? col.toLowerCase().trim() : `column ${index}`, numeric: /^--*[ \t]*:[ \t]*$/.test(alignment[index]), + centered: /^:--*[ \t]*:[ \t]*$/.test(alignment[index]), }; } ); From 99b2c6a798e0b49db92807670b13939e6c2a5809 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Tue, 26 Nov 2024 14:25:32 -0600 Subject: [PATCH 10/22] feat(react-components): create react web components --- libs/components-react/.eslintrc.json | 25 + libs/components-react/README.md | 11 + libs/components-react/package.json | 10 + libs/components-react/project.json | 48 + .../ActionRibbon/CovalentActionRibbon.spec.ts | 7 + .../src/ActionRibbon/CovalentActionRibbon.tsx | 8 + .../src/Alert/CovalentAlert.spec.ts | 7 + .../src/Alert/CovalentAlert.tsx | 8 + .../src/AppShell/CovalentAppShell.spec.ts | 7 + .../src/AppShell/CovalentAppShell.tsx | 11 + .../src/Badge/CovalentBadge.spec.ts | 7 + .../src/Badge/CovalentBadge.tsx | 8 + .../src/Button/CovalentButton.spec.ts | 7 + .../src/Button/CovalentButton.tsx | 8 + .../src/Card/CovalentCard.spec.ts | 7 + .../src/Card/CovalentCard.tsx | 8 + .../src/Checkbox/CovalentCheckbox.spec.ts | 7 + .../src/Checkbox/CovalentCheckbox.tsx | 11 + .../src/Chips/CovalentChip.spec.ts | 7 + .../src/Chips/CovalentChip.tsx | 8 + .../src/Chips/CovalentChipSet.spec.ts | 7 + .../src/Chips/CovalentChipSet.tsx | 8 + .../CovalentCircularProgress.spec.ts | 7 + .../CovalentCircularProgress.tsx | 8 + .../src/CodeEditor/CovalentCodeEditor.spec.ts | 7 + .../src/CodeEditor/CovalentCodeEditor.tsx | 14 + .../CodeSnippet/CovalentCodeSnippet.spec.ts | 7 + .../src/CodeSnippet/CovalentCodeSnippet.tsx | 8 + .../src/Dialog/CovalentDialog.spec.ts | 7 + .../src/Dialog/CovalentDialog.tsx | 14 + .../src/Drawer/CovalentDrawer.spec.ts | 7 + .../src/Drawer/CovalentDrawer.tsx | 12 + .../src/EmptyState/CovalentEmptyState.spec.ts | 7 + .../src/EmptyState/CovalentEmptyState.tsx | 8 + .../CovalentExpansionPanel.spec.ts | 7 + .../ExpansionPanel/CovalentExpansionPanel.tsx | 8 + .../CovalentExpansionPanelItem.spec.ts | 7 + .../CovalentExpansionPanelItem.tsx | 11 + .../FocusedPage/CovalentFocusedPage.spec.ts | 7 + .../src/FocusedPage/CovalentFocusedPage.tsx | 8 + .../src/Formfield/CovalentFormfield.spec.ts | 7 + .../src/Formfield/CovalentFormfield.tsx | 8 + .../CovalentFullscreenDialog.spec.ts | 7 + .../CovalentFullscreenDialog.tsx | 14 + .../src/Icon/CovalentIcon.spec.ts | 7 + .../src/Icon/CovalentIcon.tsx | 8 + .../src/IconButton/CovalentIconButton.spec.ts | 7 + .../src/IconButton/CovalentIconButton.tsx | 8 + .../CovalentIconButtonToggle.spec.ts | 7 + .../CovalentIconButtonToggle.tsx | 11 + .../CovalentIconCheckToggle.spec.ts | 7 + .../IconCheckbox/CovalentIconCheckToggle.tsx | 11 + .../IconRadio/CovalentIconRadioToggle.spec.ts | 7 + .../src/IconRadio/CovalentIconRadioToggle.tsx | 11 + .../CovalentLinearProgress.spec.ts | 7 + .../LinearProgress/CovalentLinearProgress.tsx | 8 + .../src/List/CovalentCheckListItem.spec.ts | 7 + .../src/List/CovalentCheckListItem.tsx | 11 + .../src/List/CovalentList.spec.ts | 7 + .../src/List/CovalentList.tsx | 12 + .../src/List/CovalentListItem.spec.ts | 7 + .../src/List/CovalentListItem.tsx | 11 + .../src/List/CovalentNavRailListItem.spec.ts | 7 + .../src/List/CovalentNavRailListItem.tsx | 11 + .../src/List/CovalentRadioListItem.spec.ts | 7 + .../src/List/CovalentRadioListItem.tsx | 11 + .../src/Menu/CovalentMenu.spec.ts | 7 + .../src/Menu/CovalentMenu.tsx | 15 + .../NotebookCell/CovalentNotebookCell.spec.ts | 7 + .../src/NotebookCell/CovalentNotebookCell.tsx | 8 + .../src/Radio/CovalentRadio.spec.ts | 7 + .../src/Radio/CovalentRadio.tsx | 11 + .../src/Select/CovalentSelect.spec.ts | 7 + .../src/Select/CovalentSelect.tsx | 13 + .../src/SideSheet/CovalentSideSheet.spec.ts | 7 + .../src/SideSheet/CovalentSideSheet.tsx | 14 + .../src/Slider/CovalentSlider.spec.ts | 7 + .../src/Slider/CovalentSlider.tsx | 12 + .../src/Slider/CovalentSliderRange.spec.ts | 7 + .../src/Slider/CovalentSliderRange.tsx | 12 + .../src/Snackbar/CovalentSnackbar.spec.ts | 7 + .../src/Snackbar/CovalentSnackbar.tsx | 14 + .../StatusDialog/CovalentStatusDialog.spec.ts | 7 + .../src/StatusDialog/CovalentStatusDialog.tsx | 14 + .../StatusHeader/CovalentStatusHeader.spec.ts | 7 + .../src/StatusHeader/CovalentStatusHeader.tsx | 8 + .../CovalentStatusHeaderItem.spec.ts | 7 + .../StatusHeader/CovalentStatusHeaderItem.tsx | 8 + .../src/Switch/CovalentSwitch.spec.ts | 7 + .../src/Switch/CovalentSwitch.tsx | 8 + .../src/Tab/CovalentTab.spec.ts | 7 + libs/components-react/src/Tab/CovalentTab.tsx | 11 + .../src/Tab/CovalentTabBar.spec.ts | 7 + .../src/Tab/CovalentTabBar.tsx | 11 + .../src/TextLockup/CovalentTextLockup.spec.ts | 7 + .../src/TextLockup/CovalentTextLockup.tsx | 8 + .../src/Textarea/CovalentTextArea.spec.ts | 7 + .../src/Textarea/CovalentTextArea.tsx | 8 + .../src/Textfield/CovalentTextField.spec.ts | 7 + .../src/Textfield/CovalentTextField.tsx | 8 + .../src/Toolbar/CovalentToolbar.spec.ts | 7 + .../src/Toolbar/CovalentToolbar.tsx | 11 + .../src/Tooltip/CovalentTooltip.spec.ts | 7 + .../src/Tooltip/CovalentTooltip.tsx | 8 + .../src/TopAppBar/CovalentTopAppBar.spec.ts | 7 + .../src/TopAppBar/CovalentTopAppBar.tsx | 11 + .../TopAppBar/CovalentTopAppBarFixed.spec.ts | 7 + .../src/TopAppBar/CovalentTopAppBarFixed.tsx | 11 + .../src/TreeList/CovalentTreeList.spec.ts | 7 + .../src/TreeList/CovalentTreeList.tsx | 11 + .../src/TreeList/CovalentTreeListItem.spec.ts | 7 + .../src/TreeList/CovalentTreeListItem.tsx | 11 + .../src/Typography/CovalentTypography.spec.ts | 7 + .../src/Typography/CovalentTypography.tsx | 11 + libs/components-react/src/index.ts | 55 + libs/components-react/tsconfig.json | 23 + libs/components-react/tsconfig.lib.json | 10 + libs/components-react/tsconfig.spec.json | 21 + libs/components-react/types.d.ts | 14 + libs/components-react/vite.config.ts | 66 ++ libs/components/component-config.json | 308 ++++++ libs/components/package.json | 56 +- libs/components/project.json | 7 + libs/components/src/app-shell/app-shell.ts | 2 +- libs/components/src/badge/badge.spec.ts | 4 +- libs/components/src/chips/foundation.ts | 378 ------- libs/components/src/index.ts | 8 +- libs/components/vite.config.js | 77 +- package-lock.json | 986 +++++++++--------- package.json | 7 +- scripts/export-components.js | 67 ++ scripts/react-wrappers.js | 120 +++ tsconfig.base.json | 1 + 133 files changed, 2260 insertions(+), 990 deletions(-) create mode 100644 libs/components-react/.eslintrc.json create mode 100644 libs/components-react/README.md create mode 100644 libs/components-react/package.json create mode 100644 libs/components-react/project.json create mode 100644 libs/components-react/src/ActionRibbon/CovalentActionRibbon.spec.ts create mode 100644 libs/components-react/src/ActionRibbon/CovalentActionRibbon.tsx create mode 100644 libs/components-react/src/Alert/CovalentAlert.spec.ts create mode 100644 libs/components-react/src/Alert/CovalentAlert.tsx create mode 100644 libs/components-react/src/AppShell/CovalentAppShell.spec.ts create mode 100644 libs/components-react/src/AppShell/CovalentAppShell.tsx create mode 100644 libs/components-react/src/Badge/CovalentBadge.spec.ts create mode 100644 libs/components-react/src/Badge/CovalentBadge.tsx create mode 100644 libs/components-react/src/Button/CovalentButton.spec.ts create mode 100644 libs/components-react/src/Button/CovalentButton.tsx create mode 100644 libs/components-react/src/Card/CovalentCard.spec.ts create mode 100644 libs/components-react/src/Card/CovalentCard.tsx create mode 100644 libs/components-react/src/Checkbox/CovalentCheckbox.spec.ts create mode 100644 libs/components-react/src/Checkbox/CovalentCheckbox.tsx create mode 100644 libs/components-react/src/Chips/CovalentChip.spec.ts create mode 100644 libs/components-react/src/Chips/CovalentChip.tsx create mode 100644 libs/components-react/src/Chips/CovalentChipSet.spec.ts create mode 100644 libs/components-react/src/Chips/CovalentChipSet.tsx create mode 100644 libs/components-react/src/CircularProgress/CovalentCircularProgress.spec.ts create mode 100644 libs/components-react/src/CircularProgress/CovalentCircularProgress.tsx create mode 100644 libs/components-react/src/CodeEditor/CovalentCodeEditor.spec.ts create mode 100644 libs/components-react/src/CodeEditor/CovalentCodeEditor.tsx create mode 100644 libs/components-react/src/CodeSnippet/CovalentCodeSnippet.spec.ts create mode 100644 libs/components-react/src/CodeSnippet/CovalentCodeSnippet.tsx create mode 100644 libs/components-react/src/Dialog/CovalentDialog.spec.ts create mode 100644 libs/components-react/src/Dialog/CovalentDialog.tsx create mode 100644 libs/components-react/src/Drawer/CovalentDrawer.spec.ts create mode 100644 libs/components-react/src/Drawer/CovalentDrawer.tsx create mode 100644 libs/components-react/src/EmptyState/CovalentEmptyState.spec.ts create mode 100644 libs/components-react/src/EmptyState/CovalentEmptyState.tsx create mode 100644 libs/components-react/src/ExpansionPanel/CovalentExpansionPanel.spec.ts create mode 100644 libs/components-react/src/ExpansionPanel/CovalentExpansionPanel.tsx create mode 100644 libs/components-react/src/ExpansionPanel/CovalentExpansionPanelItem.spec.ts create mode 100644 libs/components-react/src/ExpansionPanel/CovalentExpansionPanelItem.tsx create mode 100644 libs/components-react/src/FocusedPage/CovalentFocusedPage.spec.ts create mode 100644 libs/components-react/src/FocusedPage/CovalentFocusedPage.tsx create mode 100644 libs/components-react/src/Formfield/CovalentFormfield.spec.ts create mode 100644 libs/components-react/src/Formfield/CovalentFormfield.tsx create mode 100644 libs/components-react/src/FullScreenDialog/CovalentFullscreenDialog.spec.ts create mode 100644 libs/components-react/src/FullScreenDialog/CovalentFullscreenDialog.tsx create mode 100644 libs/components-react/src/Icon/CovalentIcon.spec.ts create mode 100644 libs/components-react/src/Icon/CovalentIcon.tsx create mode 100644 libs/components-react/src/IconButton/CovalentIconButton.spec.ts create mode 100644 libs/components-react/src/IconButton/CovalentIconButton.tsx create mode 100644 libs/components-react/src/IconButtonToggle/CovalentIconButtonToggle.spec.ts create mode 100644 libs/components-react/src/IconButtonToggle/CovalentIconButtonToggle.tsx create mode 100644 libs/components-react/src/IconCheckbox/CovalentIconCheckToggle.spec.ts create mode 100644 libs/components-react/src/IconCheckbox/CovalentIconCheckToggle.tsx create mode 100644 libs/components-react/src/IconRadio/CovalentIconRadioToggle.spec.ts create mode 100644 libs/components-react/src/IconRadio/CovalentIconRadioToggle.tsx create mode 100644 libs/components-react/src/LinearProgress/CovalentLinearProgress.spec.ts create mode 100644 libs/components-react/src/LinearProgress/CovalentLinearProgress.tsx create mode 100644 libs/components-react/src/List/CovalentCheckListItem.spec.ts create mode 100644 libs/components-react/src/List/CovalentCheckListItem.tsx create mode 100644 libs/components-react/src/List/CovalentList.spec.ts create mode 100644 libs/components-react/src/List/CovalentList.tsx create mode 100644 libs/components-react/src/List/CovalentListItem.spec.ts create mode 100644 libs/components-react/src/List/CovalentListItem.tsx create mode 100644 libs/components-react/src/List/CovalentNavRailListItem.spec.ts create mode 100644 libs/components-react/src/List/CovalentNavRailListItem.tsx create mode 100644 libs/components-react/src/List/CovalentRadioListItem.spec.ts create mode 100644 libs/components-react/src/List/CovalentRadioListItem.tsx create mode 100644 libs/components-react/src/Menu/CovalentMenu.spec.ts create mode 100644 libs/components-react/src/Menu/CovalentMenu.tsx create mode 100644 libs/components-react/src/NotebookCell/CovalentNotebookCell.spec.ts create mode 100644 libs/components-react/src/NotebookCell/CovalentNotebookCell.tsx create mode 100644 libs/components-react/src/Radio/CovalentRadio.spec.ts create mode 100644 libs/components-react/src/Radio/CovalentRadio.tsx create mode 100644 libs/components-react/src/Select/CovalentSelect.spec.ts create mode 100644 libs/components-react/src/Select/CovalentSelect.tsx create mode 100644 libs/components-react/src/SideSheet/CovalentSideSheet.spec.ts create mode 100644 libs/components-react/src/SideSheet/CovalentSideSheet.tsx create mode 100644 libs/components-react/src/Slider/CovalentSlider.spec.ts create mode 100644 libs/components-react/src/Slider/CovalentSlider.tsx create mode 100644 libs/components-react/src/Slider/CovalentSliderRange.spec.ts create mode 100644 libs/components-react/src/Slider/CovalentSliderRange.tsx create mode 100644 libs/components-react/src/Snackbar/CovalentSnackbar.spec.ts create mode 100644 libs/components-react/src/Snackbar/CovalentSnackbar.tsx create mode 100644 libs/components-react/src/StatusDialog/CovalentStatusDialog.spec.ts create mode 100644 libs/components-react/src/StatusDialog/CovalentStatusDialog.tsx create mode 100644 libs/components-react/src/StatusHeader/CovalentStatusHeader.spec.ts create mode 100644 libs/components-react/src/StatusHeader/CovalentStatusHeader.tsx create mode 100644 libs/components-react/src/StatusHeader/CovalentStatusHeaderItem.spec.ts create mode 100644 libs/components-react/src/StatusHeader/CovalentStatusHeaderItem.tsx create mode 100644 libs/components-react/src/Switch/CovalentSwitch.spec.ts create mode 100644 libs/components-react/src/Switch/CovalentSwitch.tsx create mode 100644 libs/components-react/src/Tab/CovalentTab.spec.ts create mode 100644 libs/components-react/src/Tab/CovalentTab.tsx create mode 100644 libs/components-react/src/Tab/CovalentTabBar.spec.ts create mode 100644 libs/components-react/src/Tab/CovalentTabBar.tsx create mode 100644 libs/components-react/src/TextLockup/CovalentTextLockup.spec.ts create mode 100644 libs/components-react/src/TextLockup/CovalentTextLockup.tsx create mode 100644 libs/components-react/src/Textarea/CovalentTextArea.spec.ts create mode 100644 libs/components-react/src/Textarea/CovalentTextArea.tsx create mode 100644 libs/components-react/src/Textfield/CovalentTextField.spec.ts create mode 100644 libs/components-react/src/Textfield/CovalentTextField.tsx create mode 100644 libs/components-react/src/Toolbar/CovalentToolbar.spec.ts create mode 100644 libs/components-react/src/Toolbar/CovalentToolbar.tsx create mode 100644 libs/components-react/src/Tooltip/CovalentTooltip.spec.ts create mode 100644 libs/components-react/src/Tooltip/CovalentTooltip.tsx create mode 100644 libs/components-react/src/TopAppBar/CovalentTopAppBar.spec.ts create mode 100644 libs/components-react/src/TopAppBar/CovalentTopAppBar.tsx create mode 100644 libs/components-react/src/TopAppBar/CovalentTopAppBarFixed.spec.ts create mode 100644 libs/components-react/src/TopAppBar/CovalentTopAppBarFixed.tsx create mode 100644 libs/components-react/src/TreeList/CovalentTreeList.spec.ts create mode 100644 libs/components-react/src/TreeList/CovalentTreeList.tsx create mode 100644 libs/components-react/src/TreeList/CovalentTreeListItem.spec.ts create mode 100644 libs/components-react/src/TreeList/CovalentTreeListItem.tsx create mode 100644 libs/components-react/src/Typography/CovalentTypography.spec.ts create mode 100644 libs/components-react/src/Typography/CovalentTypography.tsx create mode 100644 libs/components-react/src/index.ts create mode 100644 libs/components-react/tsconfig.json create mode 100644 libs/components-react/tsconfig.lib.json create mode 100644 libs/components-react/tsconfig.spec.json create mode 100644 libs/components-react/types.d.ts create mode 100644 libs/components-react/vite.config.ts create mode 100644 libs/components/component-config.json delete mode 100644 libs/components/src/chips/foundation.ts create mode 100644 scripts/export-components.js create mode 100644 scripts/react-wrappers.js diff --git a/libs/components-react/.eslintrc.json b/libs/components-react/.eslintrc.json new file mode 100644 index 0000000000..498a74926e --- /dev/null +++ b/libs/components-react/.eslintrc.json @@ -0,0 +1,25 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": ["error"] + } + } + ] +} diff --git a/libs/components-react/README.md b/libs/components-react/README.md new file mode 100644 index 0000000000..5bea88fa8c --- /dev/null +++ b/libs/components-react/README.md @@ -0,0 +1,11 @@ +# components-react + +This library was generated with [Nx](https://nx.dev). + +## Building + +Run `nx build components-react` to build the library. + +## Running unit tests + +Run `nx test components-react` to execute the unit tests via [Vitest](https://vitest.dev/). diff --git a/libs/components-react/package.json b/libs/components-react/package.json new file mode 100644 index 0000000000..65ddb5f634 --- /dev/null +++ b/libs/components-react/package.json @@ -0,0 +1,10 @@ +{ + "name": "@covalent/components-react", + "version": "0.0.0-COVALENT", + "dependencies": { + "@covalent/components": "latest" + }, + "main": "./index.js", + "module": "./index.mjs", + "typings": "./index.d.ts" +} diff --git a/libs/components-react/project.json b/libs/components-react/project.json new file mode 100644 index 0000000000..37d755d310 --- /dev/null +++ b/libs/components-react/project.json @@ -0,0 +1,48 @@ +{ + "name": "components-react", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/components-react/src", + "projectType": "library", + "release": { + "version": { + "generatorOptions": { + "packageRoot": "dist/{projectRoot}", + "currentVersionResolver": "git-tag" + } + } + }, + "tags": [], + "targets": { + "build-files": { + "executor": "@nx/vite:build", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "dist/libs/components-react" + } + }, + "build": { + "dependsOn": ["build-files"], + "executor": "nx:run-commands", + "options": { + "command": "cp dist/libs/components/style.css dist/libs/components-react/" + } + }, + "test": { + "executor": "@nx/vite:test", + "outputs": ["{options.reportsDirectory}"], + "options": { + "reportsDirectory": "../../coverage/libs/components-react" + } + }, + "lint": { + "executor": "@nx/eslint:lint" + }, + "generate-react-wrappers": { + "executor": "nx:run-commands", + "options": { + "commands": ["node ./scripts/react-wrappers"] + } + } + }, + "implicitDependencies": ["components"] +} diff --git a/libs/components-react/src/ActionRibbon/CovalentActionRibbon.spec.ts b/libs/components-react/src/ActionRibbon/CovalentActionRibbon.spec.ts new file mode 100644 index 0000000000..059fc03e21 --- /dev/null +++ b/libs/components-react/src/ActionRibbon/CovalentActionRibbon.spec.ts @@ -0,0 +1,7 @@ +import { CovalentActionRibbon } from './CovalentActionRibbon'; + +describe('CovalentActionRibbon', () => { + it('should work', () => { + expect(CovalentActionRibbon).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/ActionRibbon/CovalentActionRibbon.tsx b/libs/components-react/src/ActionRibbon/CovalentActionRibbon.tsx new file mode 100644 index 0000000000..1329aea4dc --- /dev/null +++ b/libs/components-react/src/ActionRibbon/CovalentActionRibbon.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentActionRibbon as CovalentActionRibbonWeb } from '@covalent/components'; +export const CovalentActionRibbon = createComponent({ + tagName: 'cv-action-ribbon', + elementClass: CovalentActionRibbonWeb, + react: React, +}); diff --git a/libs/components-react/src/Alert/CovalentAlert.spec.ts b/libs/components-react/src/Alert/CovalentAlert.spec.ts new file mode 100644 index 0000000000..4c22d128b1 --- /dev/null +++ b/libs/components-react/src/Alert/CovalentAlert.spec.ts @@ -0,0 +1,7 @@ +import { CovalentAlert } from './CovalentAlert'; + +describe('CovalentAlert', () => { + it('should work', () => { + expect(CovalentAlert).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Alert/CovalentAlert.tsx b/libs/components-react/src/Alert/CovalentAlert.tsx new file mode 100644 index 0000000000..edf8a6da78 --- /dev/null +++ b/libs/components-react/src/Alert/CovalentAlert.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentAlert as CovalentAlertWeb } from '@covalent/components'; +export const CovalentAlert = createComponent({ + tagName: 'cv-alert', + elementClass: CovalentAlertWeb, + react: React, +}); diff --git a/libs/components-react/src/AppShell/CovalentAppShell.spec.ts b/libs/components-react/src/AppShell/CovalentAppShell.spec.ts new file mode 100644 index 0000000000..59141d92db --- /dev/null +++ b/libs/components-react/src/AppShell/CovalentAppShell.spec.ts @@ -0,0 +1,7 @@ +import { CovalentAppShell } from './CovalentAppShell'; + +describe('CovalentAppShell', () => { + it('should work', () => { + expect(CovalentAppShell).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/AppShell/CovalentAppShell.tsx b/libs/components-react/src/AppShell/CovalentAppShell.tsx new file mode 100644 index 0000000000..12a7e8035c --- /dev/null +++ b/libs/components-react/src/AppShell/CovalentAppShell.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentAppShell as CovalentAppShellWeb } from '@covalent/components'; +export const CovalentAppShell = createComponent({ + tagName: 'cv-app-shell', + elementClass: CovalentAppShellWeb, + react: React, + events: { + ontoggle: 'toggle', + }, +}); diff --git a/libs/components-react/src/Badge/CovalentBadge.spec.ts b/libs/components-react/src/Badge/CovalentBadge.spec.ts new file mode 100644 index 0000000000..c4197be3b6 --- /dev/null +++ b/libs/components-react/src/Badge/CovalentBadge.spec.ts @@ -0,0 +1,7 @@ +import { CovalentBadge } from './CovalentBadge'; + +describe('CovalentBadge', () => { + it('should work', () => { + expect(CovalentBadge).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Badge/CovalentBadge.tsx b/libs/components-react/src/Badge/CovalentBadge.tsx new file mode 100644 index 0000000000..cf6b8abada --- /dev/null +++ b/libs/components-react/src/Badge/CovalentBadge.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentBadge as CovalentBadgeWeb } from '@covalent/components'; +export const CovalentBadge = createComponent({ + tagName: 'cv-badge', + elementClass: CovalentBadgeWeb, + react: React, +}); diff --git a/libs/components-react/src/Button/CovalentButton.spec.ts b/libs/components-react/src/Button/CovalentButton.spec.ts new file mode 100644 index 0000000000..ac2cefd0fd --- /dev/null +++ b/libs/components-react/src/Button/CovalentButton.spec.ts @@ -0,0 +1,7 @@ +import { CovalentButton } from './CovalentButton'; + +describe('CovalentButton', () => { + it('should work', () => { + expect(CovalentButton).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Button/CovalentButton.tsx b/libs/components-react/src/Button/CovalentButton.tsx new file mode 100644 index 0000000000..4409326a22 --- /dev/null +++ b/libs/components-react/src/Button/CovalentButton.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentButton as CovalentButtonWeb } from '@covalent/components'; +export const CovalentButton = createComponent({ + tagName: 'cv-button', + elementClass: CovalentButtonWeb, + react: React, +}); diff --git a/libs/components-react/src/Card/CovalentCard.spec.ts b/libs/components-react/src/Card/CovalentCard.spec.ts new file mode 100644 index 0000000000..caaeec5e84 --- /dev/null +++ b/libs/components-react/src/Card/CovalentCard.spec.ts @@ -0,0 +1,7 @@ +import { CovalentCard } from './CovalentCard'; + +describe('CovalentCard', () => { + it('should work', () => { + expect(CovalentCard).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Card/CovalentCard.tsx b/libs/components-react/src/Card/CovalentCard.tsx new file mode 100644 index 0000000000..0aefb84a06 --- /dev/null +++ b/libs/components-react/src/Card/CovalentCard.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentCard as CovalentCardWeb } from '@covalent/components'; +export const CovalentCard = createComponent({ + tagName: 'cv-card', + elementClass: CovalentCardWeb, + react: React, +}); diff --git a/libs/components-react/src/Checkbox/CovalentCheckbox.spec.ts b/libs/components-react/src/Checkbox/CovalentCheckbox.spec.ts new file mode 100644 index 0000000000..0bcb06874e --- /dev/null +++ b/libs/components-react/src/Checkbox/CovalentCheckbox.spec.ts @@ -0,0 +1,7 @@ +import { CovalentCheckbox } from './CovalentCheckbox'; + +describe('CovalentCheckbox', () => { + it('should work', () => { + expect(CovalentCheckbox).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Checkbox/CovalentCheckbox.tsx b/libs/components-react/src/Checkbox/CovalentCheckbox.tsx new file mode 100644 index 0000000000..19aef5a1c9 --- /dev/null +++ b/libs/components-react/src/Checkbox/CovalentCheckbox.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentCheckbox as CovalentCheckboxWeb } from '@covalent/components'; +export const CovalentCheckbox = createComponent({ + tagName: 'cv-checkbox', + elementClass: CovalentCheckboxWeb, + react: React, + events: { + onchange: 'change', + }, +}); diff --git a/libs/components-react/src/Chips/CovalentChip.spec.ts b/libs/components-react/src/Chips/CovalentChip.spec.ts new file mode 100644 index 0000000000..ed73f0e854 --- /dev/null +++ b/libs/components-react/src/Chips/CovalentChip.spec.ts @@ -0,0 +1,7 @@ +import { CovalentChip } from './CovalentChip'; + +describe('CovalentChip', () => { + it('should work', () => { + expect(CovalentChip).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Chips/CovalentChip.tsx b/libs/components-react/src/Chips/CovalentChip.tsx new file mode 100644 index 0000000000..fd32ce4211 --- /dev/null +++ b/libs/components-react/src/Chips/CovalentChip.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentChip as CovalentChipWeb } from '@covalent/components'; +export const CovalentChip = createComponent({ + tagName: 'cv-chip', + elementClass: CovalentChipWeb, + react: React, +}); diff --git a/libs/components-react/src/Chips/CovalentChipSet.spec.ts b/libs/components-react/src/Chips/CovalentChipSet.spec.ts new file mode 100644 index 0000000000..aabc1bdaa0 --- /dev/null +++ b/libs/components-react/src/Chips/CovalentChipSet.spec.ts @@ -0,0 +1,7 @@ +import { CovalentChipSet } from './CovalentChipSet'; + +describe('CovalentChipSet', () => { + it('should work', () => { + expect(CovalentChipSet).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Chips/CovalentChipSet.tsx b/libs/components-react/src/Chips/CovalentChipSet.tsx new file mode 100644 index 0000000000..3172dfe761 --- /dev/null +++ b/libs/components-react/src/Chips/CovalentChipSet.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentChipSet as CovalentChipSetWeb } from '@covalent/components'; +export const CovalentChipSet = createComponent({ + tagName: 'cv-chip-set', + elementClass: CovalentChipSetWeb, + react: React, +}); diff --git a/libs/components-react/src/CircularProgress/CovalentCircularProgress.spec.ts b/libs/components-react/src/CircularProgress/CovalentCircularProgress.spec.ts new file mode 100644 index 0000000000..f1decdb95e --- /dev/null +++ b/libs/components-react/src/CircularProgress/CovalentCircularProgress.spec.ts @@ -0,0 +1,7 @@ +import { CovalentCircularProgress } from './CovalentCircularProgress'; + +describe('CovalentCircularProgress', () => { + it('should work', () => { + expect(CovalentCircularProgress).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/CircularProgress/CovalentCircularProgress.tsx b/libs/components-react/src/CircularProgress/CovalentCircularProgress.tsx new file mode 100644 index 0000000000..0ca3ce381c --- /dev/null +++ b/libs/components-react/src/CircularProgress/CovalentCircularProgress.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentCircularProgress as CovalentCircularProgressWeb } from '@covalent/components'; +export const CovalentCircularProgress = createComponent({ + tagName: 'cv-circular-progress', + elementClass: CovalentCircularProgressWeb, + react: React, +}); diff --git a/libs/components-react/src/CodeEditor/CovalentCodeEditor.spec.ts b/libs/components-react/src/CodeEditor/CovalentCodeEditor.spec.ts new file mode 100644 index 0000000000..883237868c --- /dev/null +++ b/libs/components-react/src/CodeEditor/CovalentCodeEditor.spec.ts @@ -0,0 +1,7 @@ +import { CovalentCodeEditor } from './CovalentCodeEditor'; + +describe('CovalentCodeEditor', () => { + it('should work', () => { + expect(CovalentCodeEditor).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/CodeEditor/CovalentCodeEditor.tsx b/libs/components-react/src/CodeEditor/CovalentCodeEditor.tsx new file mode 100644 index 0000000000..6565d30ad6 --- /dev/null +++ b/libs/components-react/src/CodeEditor/CovalentCodeEditor.tsx @@ -0,0 +1,14 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentCodeEditor as CovalentCodeEditorWeb } from '@covalent/components'; +export const CovalentCodeEditor = createComponent({ + tagName: 'cv-code-editor', + elementClass: CovalentCodeEditorWeb, + react: React, + events: { + oneditorReady: 'editor-ready', + oneditorFocus: 'editor-focus', + oneditorBlur: 'editor-blur', + oncodeChange: 'code-change', + }, +}); diff --git a/libs/components-react/src/CodeSnippet/CovalentCodeSnippet.spec.ts b/libs/components-react/src/CodeSnippet/CovalentCodeSnippet.spec.ts new file mode 100644 index 0000000000..5ed992316c --- /dev/null +++ b/libs/components-react/src/CodeSnippet/CovalentCodeSnippet.spec.ts @@ -0,0 +1,7 @@ +import { CovalentCodeSnippet } from './CovalentCodeSnippet'; + +describe('CovalentCodeSnippet', () => { + it('should work', () => { + expect(CovalentCodeSnippet).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/CodeSnippet/CovalentCodeSnippet.tsx b/libs/components-react/src/CodeSnippet/CovalentCodeSnippet.tsx new file mode 100644 index 0000000000..3c584a2fd1 --- /dev/null +++ b/libs/components-react/src/CodeSnippet/CovalentCodeSnippet.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentCodeSnippet as CovalentCodeSnippetWeb } from '@covalent/components'; +export const CovalentCodeSnippet = createComponent({ + tagName: 'cv-code-snippet', + elementClass: CovalentCodeSnippetWeb, + react: React, +}); diff --git a/libs/components-react/src/Dialog/CovalentDialog.spec.ts b/libs/components-react/src/Dialog/CovalentDialog.spec.ts new file mode 100644 index 0000000000..99d7ecfc9a --- /dev/null +++ b/libs/components-react/src/Dialog/CovalentDialog.spec.ts @@ -0,0 +1,7 @@ +import { CovalentDialog } from './CovalentDialog'; + +describe('CovalentDialog', () => { + it('should work', () => { + expect(CovalentDialog).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Dialog/CovalentDialog.tsx b/libs/components-react/src/Dialog/CovalentDialog.tsx new file mode 100644 index 0000000000..578e85e2ec --- /dev/null +++ b/libs/components-react/src/Dialog/CovalentDialog.tsx @@ -0,0 +1,14 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentDialog as CovalentDialogWeb } from '@covalent/components'; +export const CovalentDialog = createComponent({ + tagName: 'cv-dialog', + elementClass: CovalentDialogWeb, + react: React, + events: { + onopening: 'opening', + onopened: 'opened', + onclosing: 'closing', + onclosed: 'closed', + }, +}); diff --git a/libs/components-react/src/Drawer/CovalentDrawer.spec.ts b/libs/components-react/src/Drawer/CovalentDrawer.spec.ts new file mode 100644 index 0000000000..20c877572e --- /dev/null +++ b/libs/components-react/src/Drawer/CovalentDrawer.spec.ts @@ -0,0 +1,7 @@ +import { CovalentDrawer } from './CovalentDrawer'; + +describe('CovalentDrawer', () => { + it('should work', () => { + expect(CovalentDrawer).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Drawer/CovalentDrawer.tsx b/libs/components-react/src/Drawer/CovalentDrawer.tsx new file mode 100644 index 0000000000..9086009b54 --- /dev/null +++ b/libs/components-react/src/Drawer/CovalentDrawer.tsx @@ -0,0 +1,12 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentDrawer as CovalentDrawerWeb } from '@covalent/components'; +export const CovalentDrawer = createComponent({ + tagName: 'cv-drawer', + elementClass: CovalentDrawerWeb, + react: React, + events: { + onopened: 'opened', + onclosed: 'closed', + }, +}); diff --git a/libs/components-react/src/EmptyState/CovalentEmptyState.spec.ts b/libs/components-react/src/EmptyState/CovalentEmptyState.spec.ts new file mode 100644 index 0000000000..262a2ce1d9 --- /dev/null +++ b/libs/components-react/src/EmptyState/CovalentEmptyState.spec.ts @@ -0,0 +1,7 @@ +import { CovalentEmptyState } from './CovalentEmptyState'; + +describe('CovalentEmptyState', () => { + it('should work', () => { + expect(CovalentEmptyState).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/EmptyState/CovalentEmptyState.tsx b/libs/components-react/src/EmptyState/CovalentEmptyState.tsx new file mode 100644 index 0000000000..9585bdd5fc --- /dev/null +++ b/libs/components-react/src/EmptyState/CovalentEmptyState.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentEmptyState as CovalentEmptyStateWeb } from '@covalent/components'; +export const CovalentEmptyState = createComponent({ + tagName: 'cv-empty-state', + elementClass: CovalentEmptyStateWeb, + react: React, +}); diff --git a/libs/components-react/src/ExpansionPanel/CovalentExpansionPanel.spec.ts b/libs/components-react/src/ExpansionPanel/CovalentExpansionPanel.spec.ts new file mode 100644 index 0000000000..6f892dc6eb --- /dev/null +++ b/libs/components-react/src/ExpansionPanel/CovalentExpansionPanel.spec.ts @@ -0,0 +1,7 @@ +import { CovalentExpansionPanel } from './CovalentExpansionPanel'; + +describe('CovalentExpansionPanel', () => { + it('should work', () => { + expect(CovalentExpansionPanel).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/ExpansionPanel/CovalentExpansionPanel.tsx b/libs/components-react/src/ExpansionPanel/CovalentExpansionPanel.tsx new file mode 100644 index 0000000000..8f850bb808 --- /dev/null +++ b/libs/components-react/src/ExpansionPanel/CovalentExpansionPanel.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentExpansionPanel as CovalentExpansionPanelWeb } from '@covalent/components'; +export const CovalentExpansionPanel = createComponent({ + tagName: 'cv-expansion-panel', + elementClass: CovalentExpansionPanelWeb, + react: React, +}); diff --git a/libs/components-react/src/ExpansionPanel/CovalentExpansionPanelItem.spec.ts b/libs/components-react/src/ExpansionPanel/CovalentExpansionPanelItem.spec.ts new file mode 100644 index 0000000000..44e3c092e9 --- /dev/null +++ b/libs/components-react/src/ExpansionPanel/CovalentExpansionPanelItem.spec.ts @@ -0,0 +1,7 @@ +import { CovalentExpansionPanelItem } from './CovalentExpansionPanelItem'; + +describe('CovalentExpansionPanelItem', () => { + it('should work', () => { + expect(CovalentExpansionPanelItem).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/ExpansionPanel/CovalentExpansionPanelItem.tsx b/libs/components-react/src/ExpansionPanel/CovalentExpansionPanelItem.tsx new file mode 100644 index 0000000000..f2a75c17fb --- /dev/null +++ b/libs/components-react/src/ExpansionPanel/CovalentExpansionPanelItem.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentExpansionPanelItem as CovalentExpansionPanelItemWeb } from '@covalent/components'; +export const CovalentExpansionPanelItem = createComponent({ + tagName: 'cv-expansion-panel-item', + elementClass: CovalentExpansionPanelItemWeb, + react: React, + events: { + oncvExpansionPanelTogglePanel: 'cv-expansionPanel-togglePanel', + }, +}); diff --git a/libs/components-react/src/FocusedPage/CovalentFocusedPage.spec.ts b/libs/components-react/src/FocusedPage/CovalentFocusedPage.spec.ts new file mode 100644 index 0000000000..48ef593838 --- /dev/null +++ b/libs/components-react/src/FocusedPage/CovalentFocusedPage.spec.ts @@ -0,0 +1,7 @@ +import { CovalentFocusedPage } from './CovalentFocusedPage'; + +describe('CovalentFocusedPage', () => { + it('should work', () => { + expect(CovalentFocusedPage).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/FocusedPage/CovalentFocusedPage.tsx b/libs/components-react/src/FocusedPage/CovalentFocusedPage.tsx new file mode 100644 index 0000000000..53307f8ad1 --- /dev/null +++ b/libs/components-react/src/FocusedPage/CovalentFocusedPage.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentFocusedPage as CovalentFocusedPageWeb } from '@covalent/components'; +export const CovalentFocusedPage = createComponent({ + tagName: 'cv-focused-page', + elementClass: CovalentFocusedPageWeb, + react: React, +}); diff --git a/libs/components-react/src/Formfield/CovalentFormfield.spec.ts b/libs/components-react/src/Formfield/CovalentFormfield.spec.ts new file mode 100644 index 0000000000..1b5a984066 --- /dev/null +++ b/libs/components-react/src/Formfield/CovalentFormfield.spec.ts @@ -0,0 +1,7 @@ +import { CovalentFormfield } from './CovalentFormfield'; + +describe('CovalentFormfield', () => { + it('should work', () => { + expect(CovalentFormfield).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Formfield/CovalentFormfield.tsx b/libs/components-react/src/Formfield/CovalentFormfield.tsx new file mode 100644 index 0000000000..f526605979 --- /dev/null +++ b/libs/components-react/src/Formfield/CovalentFormfield.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentFormfield as CovalentFormfieldWeb } from '@covalent/components'; +export const CovalentFormfield = createComponent({ + tagName: 'cv-formfield', + elementClass: CovalentFormfieldWeb, + react: React, +}); diff --git a/libs/components-react/src/FullScreenDialog/CovalentFullscreenDialog.spec.ts b/libs/components-react/src/FullScreenDialog/CovalentFullscreenDialog.spec.ts new file mode 100644 index 0000000000..3cc45d74f8 --- /dev/null +++ b/libs/components-react/src/FullScreenDialog/CovalentFullscreenDialog.spec.ts @@ -0,0 +1,7 @@ +import { CovalentFullscreenDialog } from './CovalentFullscreenDialog'; + +describe('CovalentFullscreenDialog', () => { + it('should work', () => { + expect(CovalentFullscreenDialog).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/FullScreenDialog/CovalentFullscreenDialog.tsx b/libs/components-react/src/FullScreenDialog/CovalentFullscreenDialog.tsx new file mode 100644 index 0000000000..58f22c8e06 --- /dev/null +++ b/libs/components-react/src/FullScreenDialog/CovalentFullscreenDialog.tsx @@ -0,0 +1,14 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentFullscreenDialog as CovalentFullscreenDialogWeb } from '@covalent/components'; +export const CovalentFullscreenDialog = createComponent({ + tagName: 'cv-full-screen-dialog', + elementClass: CovalentFullscreenDialogWeb, + react: React, + events: { + onopening: 'opening', + onopened: 'opened', + onclosing: 'closing', + onclosed: 'closed', + }, +}); diff --git a/libs/components-react/src/Icon/CovalentIcon.spec.ts b/libs/components-react/src/Icon/CovalentIcon.spec.ts new file mode 100644 index 0000000000..77e1cd831a --- /dev/null +++ b/libs/components-react/src/Icon/CovalentIcon.spec.ts @@ -0,0 +1,7 @@ +import { CovalentIcon } from './CovalentIcon'; + +describe('CovalentIcon', () => { + it('should work', () => { + expect(CovalentIcon).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Icon/CovalentIcon.tsx b/libs/components-react/src/Icon/CovalentIcon.tsx new file mode 100644 index 0000000000..7c150d46e6 --- /dev/null +++ b/libs/components-react/src/Icon/CovalentIcon.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentIcon as CovalentIconWeb } from '@covalent/components'; +export const CovalentIcon = createComponent({ + tagName: 'cv-icon', + elementClass: CovalentIconWeb, + react: React, +}); diff --git a/libs/components-react/src/IconButton/CovalentIconButton.spec.ts b/libs/components-react/src/IconButton/CovalentIconButton.spec.ts new file mode 100644 index 0000000000..6eebe64a17 --- /dev/null +++ b/libs/components-react/src/IconButton/CovalentIconButton.spec.ts @@ -0,0 +1,7 @@ +import { CovalentIconButton } from './CovalentIconButton'; + +describe('CovalentIconButton', () => { + it('should work', () => { + expect(CovalentIconButton).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/IconButton/CovalentIconButton.tsx b/libs/components-react/src/IconButton/CovalentIconButton.tsx new file mode 100644 index 0000000000..32f2de9304 --- /dev/null +++ b/libs/components-react/src/IconButton/CovalentIconButton.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentIconButton as CovalentIconButtonWeb } from '@covalent/components'; +export const CovalentIconButton = createComponent({ + tagName: 'cv-icon-button', + elementClass: CovalentIconButtonWeb, + react: React, +}); diff --git a/libs/components-react/src/IconButtonToggle/CovalentIconButtonToggle.spec.ts b/libs/components-react/src/IconButtonToggle/CovalentIconButtonToggle.spec.ts new file mode 100644 index 0000000000..d19239e433 --- /dev/null +++ b/libs/components-react/src/IconButtonToggle/CovalentIconButtonToggle.spec.ts @@ -0,0 +1,7 @@ +import { CovalentIconButtonToggle } from './CovalentIconButtonToggle'; + +describe('CovalentIconButtonToggle', () => { + it('should work', () => { + expect(CovalentIconButtonToggle).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/IconButtonToggle/CovalentIconButtonToggle.tsx b/libs/components-react/src/IconButtonToggle/CovalentIconButtonToggle.tsx new file mode 100644 index 0000000000..3cae3f4635 --- /dev/null +++ b/libs/components-react/src/IconButtonToggle/CovalentIconButtonToggle.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentIconButtonToggle as CovalentIconButtonToggleWeb } from '@covalent/components'; +export const CovalentIconButtonToggle = createComponent({ + tagName: 'cv-icon-button-toggle', + elementClass: CovalentIconButtonToggleWeb, + react: React, + events: { + oniconButtonToggleChange: 'icon-button-toggle-change', + }, +}); diff --git a/libs/components-react/src/IconCheckbox/CovalentIconCheckToggle.spec.ts b/libs/components-react/src/IconCheckbox/CovalentIconCheckToggle.spec.ts new file mode 100644 index 0000000000..4fd7708bc8 --- /dev/null +++ b/libs/components-react/src/IconCheckbox/CovalentIconCheckToggle.spec.ts @@ -0,0 +1,7 @@ +import { CovalentIconCheckToggle } from './CovalentIconCheckToggle'; + +describe('CovalentIconCheckToggle', () => { + it('should work', () => { + expect(CovalentIconCheckToggle).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/IconCheckbox/CovalentIconCheckToggle.tsx b/libs/components-react/src/IconCheckbox/CovalentIconCheckToggle.tsx new file mode 100644 index 0000000000..506e07e657 --- /dev/null +++ b/libs/components-react/src/IconCheckbox/CovalentIconCheckToggle.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentIconCheckToggle as CovalentIconCheckToggleWeb } from '@covalent/components'; +export const CovalentIconCheckToggle = createComponent({ + tagName: 'cv-checkbox-icon', + elementClass: CovalentIconCheckToggleWeb, + react: React, + events: { + onchange: 'change', + }, +}); diff --git a/libs/components-react/src/IconRadio/CovalentIconRadioToggle.spec.ts b/libs/components-react/src/IconRadio/CovalentIconRadioToggle.spec.ts new file mode 100644 index 0000000000..b12fabba6f --- /dev/null +++ b/libs/components-react/src/IconRadio/CovalentIconRadioToggle.spec.ts @@ -0,0 +1,7 @@ +import { CovalentIconRadioToggle } from './CovalentIconRadioToggle'; + +describe('CovalentIconRadioToggle', () => { + it('should work', () => { + expect(CovalentIconRadioToggle).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/IconRadio/CovalentIconRadioToggle.tsx b/libs/components-react/src/IconRadio/CovalentIconRadioToggle.tsx new file mode 100644 index 0000000000..333dea4907 --- /dev/null +++ b/libs/components-react/src/IconRadio/CovalentIconRadioToggle.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentIconRadioToggle as CovalentIconRadioToggleWeb } from '@covalent/components'; +export const CovalentIconRadioToggle = createComponent({ + tagName: 'cv-radio-icon', + elementClass: CovalentIconRadioToggleWeb, + react: React, + events: { + onchange: 'change', + }, +}); diff --git a/libs/components-react/src/LinearProgress/CovalentLinearProgress.spec.ts b/libs/components-react/src/LinearProgress/CovalentLinearProgress.spec.ts new file mode 100644 index 0000000000..d8fba8268c --- /dev/null +++ b/libs/components-react/src/LinearProgress/CovalentLinearProgress.spec.ts @@ -0,0 +1,7 @@ +import { CovalentLinearProgress } from './CovalentLinearProgress'; + +describe('CovalentLinearProgress', () => { + it('should work', () => { + expect(CovalentLinearProgress).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/LinearProgress/CovalentLinearProgress.tsx b/libs/components-react/src/LinearProgress/CovalentLinearProgress.tsx new file mode 100644 index 0000000000..0d9c0bdd74 --- /dev/null +++ b/libs/components-react/src/LinearProgress/CovalentLinearProgress.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentLinearProgress as CovalentLinearProgressWeb } from '@covalent/components'; +export const CovalentLinearProgress = createComponent({ + tagName: 'cv-linear-progress', + elementClass: CovalentLinearProgressWeb, + react: React, +}); diff --git a/libs/components-react/src/List/CovalentCheckListItem.spec.ts b/libs/components-react/src/List/CovalentCheckListItem.spec.ts new file mode 100644 index 0000000000..089b0aa8dc --- /dev/null +++ b/libs/components-react/src/List/CovalentCheckListItem.spec.ts @@ -0,0 +1,7 @@ +import { CovalentCheckListItem } from './CovalentCheckListItem'; + +describe('CovalentCheckListItem', () => { + it('should work', () => { + expect(CovalentCheckListItem).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/List/CovalentCheckListItem.tsx b/libs/components-react/src/List/CovalentCheckListItem.tsx new file mode 100644 index 0000000000..47d59f0490 --- /dev/null +++ b/libs/components-react/src/List/CovalentCheckListItem.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentCheckListItem as CovalentCheckListItemWeb } from '@covalent/components'; +export const CovalentCheckListItem = createComponent({ + tagName: 'cv-check-list-item', + elementClass: CovalentCheckListItemWeb, + react: React, + events: { + onrequestSelected: 'request-selected', + }, +}); diff --git a/libs/components-react/src/List/CovalentList.spec.ts b/libs/components-react/src/List/CovalentList.spec.ts new file mode 100644 index 0000000000..40c94c8c76 --- /dev/null +++ b/libs/components-react/src/List/CovalentList.spec.ts @@ -0,0 +1,7 @@ +import { CovalentList } from './CovalentList'; + +describe('CovalentList', () => { + it('should work', () => { + expect(CovalentList).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/List/CovalentList.tsx b/libs/components-react/src/List/CovalentList.tsx new file mode 100644 index 0000000000..b11fe5dbd2 --- /dev/null +++ b/libs/components-react/src/List/CovalentList.tsx @@ -0,0 +1,12 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentList as CovalentListWeb } from '@covalent/components'; +export const CovalentList = createComponent({ + tagName: 'cv-list', + elementClass: CovalentListWeb, + react: React, + events: { + onaction: 'action', + onselected: 'selected', + }, +}); diff --git a/libs/components-react/src/List/CovalentListItem.spec.ts b/libs/components-react/src/List/CovalentListItem.spec.ts new file mode 100644 index 0000000000..09fd97d891 --- /dev/null +++ b/libs/components-react/src/List/CovalentListItem.spec.ts @@ -0,0 +1,7 @@ +import { CovalentListItem } from './CovalentListItem'; + +describe('CovalentListItem', () => { + it('should work', () => { + expect(CovalentListItem).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/List/CovalentListItem.tsx b/libs/components-react/src/List/CovalentListItem.tsx new file mode 100644 index 0000000000..b1fa43822e --- /dev/null +++ b/libs/components-react/src/List/CovalentListItem.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentListItem as CovalentListItemWeb } from '@covalent/components'; +export const CovalentListItem = createComponent({ + tagName: 'cv-list-item', + elementClass: CovalentListItemWeb, + react: React, + events: { + onrequestSelected: 'request-selected', + }, +}); diff --git a/libs/components-react/src/List/CovalentNavRailListItem.spec.ts b/libs/components-react/src/List/CovalentNavRailListItem.spec.ts new file mode 100644 index 0000000000..1dbbcdbbc7 --- /dev/null +++ b/libs/components-react/src/List/CovalentNavRailListItem.spec.ts @@ -0,0 +1,7 @@ +import { CovalentNavRailListItem } from './CovalentNavRailListItem'; + +describe('CovalentNavRailListItem', () => { + it('should work', () => { + expect(CovalentNavRailListItem).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/List/CovalentNavRailListItem.tsx b/libs/components-react/src/List/CovalentNavRailListItem.tsx new file mode 100644 index 0000000000..4bf1d707b1 --- /dev/null +++ b/libs/components-react/src/List/CovalentNavRailListItem.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentNavRailListItem as CovalentNavRailListItemWeb } from '@covalent/components'; +export const CovalentNavRailListItem = createComponent({ + tagName: 'cv-nav-list-item', + elementClass: CovalentNavRailListItemWeb, + react: React, + events: { + onrequestSelected: 'request-selected', + }, +}); diff --git a/libs/components-react/src/List/CovalentRadioListItem.spec.ts b/libs/components-react/src/List/CovalentRadioListItem.spec.ts new file mode 100644 index 0000000000..fbdbe0d99f --- /dev/null +++ b/libs/components-react/src/List/CovalentRadioListItem.spec.ts @@ -0,0 +1,7 @@ +import { CovalentRadioListItem } from './CovalentRadioListItem'; + +describe('CovalentRadioListItem', () => { + it('should work', () => { + expect(CovalentRadioListItem).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/List/CovalentRadioListItem.tsx b/libs/components-react/src/List/CovalentRadioListItem.tsx new file mode 100644 index 0000000000..26cfe6df12 --- /dev/null +++ b/libs/components-react/src/List/CovalentRadioListItem.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentRadioListItem as CovalentRadioListItemWeb } from '@covalent/components'; +export const CovalentRadioListItem = createComponent({ + tagName: 'cv-radio-list-item', + elementClass: CovalentRadioListItemWeb, + react: React, + events: { + onrequestSelected: 'request-selected', + }, +}); diff --git a/libs/components-react/src/Menu/CovalentMenu.spec.ts b/libs/components-react/src/Menu/CovalentMenu.spec.ts new file mode 100644 index 0000000000..738ec25015 --- /dev/null +++ b/libs/components-react/src/Menu/CovalentMenu.spec.ts @@ -0,0 +1,7 @@ +import { CovalentMenu } from './CovalentMenu'; + +describe('CovalentMenu', () => { + it('should work', () => { + expect(CovalentMenu).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Menu/CovalentMenu.tsx b/libs/components-react/src/Menu/CovalentMenu.tsx new file mode 100644 index 0000000000..cc24dbaeae --- /dev/null +++ b/libs/components-react/src/Menu/CovalentMenu.tsx @@ -0,0 +1,15 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentMenu as CovalentMenuWeb } from '@covalent/components'; +export const CovalentMenu = createComponent({ + tagName: 'cv-menu', + elementClass: CovalentMenuWeb, + react: React, + events: { + onopened: 'opened', + onclosing: 'closing', + onclosed: 'closed', + onaction: 'action', + onselected: 'selected', + }, +}); diff --git a/libs/components-react/src/NotebookCell/CovalentNotebookCell.spec.ts b/libs/components-react/src/NotebookCell/CovalentNotebookCell.spec.ts new file mode 100644 index 0000000000..c169760818 --- /dev/null +++ b/libs/components-react/src/NotebookCell/CovalentNotebookCell.spec.ts @@ -0,0 +1,7 @@ +import { CovalentNotebookCell } from './CovalentNotebookCell'; + +describe('CovalentNotebookCell', () => { + it('should work', () => { + expect(CovalentNotebookCell).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/NotebookCell/CovalentNotebookCell.tsx b/libs/components-react/src/NotebookCell/CovalentNotebookCell.tsx new file mode 100644 index 0000000000..110d32a6b7 --- /dev/null +++ b/libs/components-react/src/NotebookCell/CovalentNotebookCell.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentNotebookCell as CovalentNotebookCellWeb } from '@covalent/components'; +export const CovalentNotebookCell = createComponent({ + tagName: 'cv-notebook-cell', + elementClass: CovalentNotebookCellWeb, + react: React, +}); diff --git a/libs/components-react/src/Radio/CovalentRadio.spec.ts b/libs/components-react/src/Radio/CovalentRadio.spec.ts new file mode 100644 index 0000000000..5c0efcc7fe --- /dev/null +++ b/libs/components-react/src/Radio/CovalentRadio.spec.ts @@ -0,0 +1,7 @@ +import { CovalentRadio } from './CovalentRadio'; + +describe('CovalentRadio', () => { + it('should work', () => { + expect(CovalentRadio).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Radio/CovalentRadio.tsx b/libs/components-react/src/Radio/CovalentRadio.tsx new file mode 100644 index 0000000000..78d4cd070c --- /dev/null +++ b/libs/components-react/src/Radio/CovalentRadio.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentRadio as CovalentRadioWeb } from '@covalent/components'; +export const CovalentRadio = createComponent({ + tagName: 'cv-radio', + elementClass: CovalentRadioWeb, + react: React, + events: { + onchange: 'change', + }, +}); diff --git a/libs/components-react/src/Select/CovalentSelect.spec.ts b/libs/components-react/src/Select/CovalentSelect.spec.ts new file mode 100644 index 0000000000..7a31b22af2 --- /dev/null +++ b/libs/components-react/src/Select/CovalentSelect.spec.ts @@ -0,0 +1,7 @@ +import { CovalentSelect } from './CovalentSelect'; + +describe('CovalentSelect', () => { + it('should work', () => { + expect(CovalentSelect).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Select/CovalentSelect.tsx b/libs/components-react/src/Select/CovalentSelect.tsx new file mode 100644 index 0000000000..d524c1d6af --- /dev/null +++ b/libs/components-react/src/Select/CovalentSelect.tsx @@ -0,0 +1,13 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentSelect as CovalentSelectWeb } from '@covalent/components'; +export const CovalentSelect = createComponent({ + tagName: 'cv-select', + elementClass: CovalentSelectWeb, + react: React, + events: { + onopened: 'opened', + onclosed: 'closed', + onselected: 'selected', + }, +}); diff --git a/libs/components-react/src/SideSheet/CovalentSideSheet.spec.ts b/libs/components-react/src/SideSheet/CovalentSideSheet.spec.ts new file mode 100644 index 0000000000..69feaff3ab --- /dev/null +++ b/libs/components-react/src/SideSheet/CovalentSideSheet.spec.ts @@ -0,0 +1,7 @@ +import { CovalentSideSheet } from './CovalentSideSheet'; + +describe('CovalentSideSheet', () => { + it('should work', () => { + expect(CovalentSideSheet).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/SideSheet/CovalentSideSheet.tsx b/libs/components-react/src/SideSheet/CovalentSideSheet.tsx new file mode 100644 index 0000000000..1d26b48daf --- /dev/null +++ b/libs/components-react/src/SideSheet/CovalentSideSheet.tsx @@ -0,0 +1,14 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentSideSheet as CovalentSideSheetWeb } from '@covalent/components'; +export const CovalentSideSheet = createComponent({ + tagName: 'cv-side-sheet', + elementClass: CovalentSideSheetWeb, + react: React, + events: { + onopening: 'opening', + onopened: 'opened', + onclosing: 'closing', + onclosed: 'closed', + }, +}); diff --git a/libs/components-react/src/Slider/CovalentSlider.spec.ts b/libs/components-react/src/Slider/CovalentSlider.spec.ts new file mode 100644 index 0000000000..600c387b4f --- /dev/null +++ b/libs/components-react/src/Slider/CovalentSlider.spec.ts @@ -0,0 +1,7 @@ +import { CovalentSlider } from './CovalentSlider'; + +describe('CovalentSlider', () => { + it('should work', () => { + expect(CovalentSlider).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Slider/CovalentSlider.tsx b/libs/components-react/src/Slider/CovalentSlider.tsx new file mode 100644 index 0000000000..02ef73de35 --- /dev/null +++ b/libs/components-react/src/Slider/CovalentSlider.tsx @@ -0,0 +1,12 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentSlider as CovalentSliderWeb } from '@covalent/components'; +export const CovalentSlider = createComponent({ + tagName: 'cv-slider', + elementClass: CovalentSliderWeb, + react: React, + events: { + oninput: 'input', + onchange: 'change', + }, +}); diff --git a/libs/components-react/src/Slider/CovalentSliderRange.spec.ts b/libs/components-react/src/Slider/CovalentSliderRange.spec.ts new file mode 100644 index 0000000000..fa3c919f9d --- /dev/null +++ b/libs/components-react/src/Slider/CovalentSliderRange.spec.ts @@ -0,0 +1,7 @@ +import { CovalentSliderRange } from './CovalentSliderRange'; + +describe('CovalentSliderRange', () => { + it('should work', () => { + expect(CovalentSliderRange).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Slider/CovalentSliderRange.tsx b/libs/components-react/src/Slider/CovalentSliderRange.tsx new file mode 100644 index 0000000000..3c0d7a2184 --- /dev/null +++ b/libs/components-react/src/Slider/CovalentSliderRange.tsx @@ -0,0 +1,12 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentSliderRange as CovalentSliderRangeWeb } from '@covalent/components'; +export const CovalentSliderRange = createComponent({ + tagName: 'cv-slider-range', + elementClass: CovalentSliderRangeWeb, + react: React, + events: { + oninput: 'input', + onchange: 'change', + }, +}); diff --git a/libs/components-react/src/Snackbar/CovalentSnackbar.spec.ts b/libs/components-react/src/Snackbar/CovalentSnackbar.spec.ts new file mode 100644 index 0000000000..c1a0cf3066 --- /dev/null +++ b/libs/components-react/src/Snackbar/CovalentSnackbar.spec.ts @@ -0,0 +1,7 @@ +import { CovalentSnackbar } from './CovalentSnackbar'; + +describe('CovalentSnackbar', () => { + it('should work', () => { + expect(CovalentSnackbar).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Snackbar/CovalentSnackbar.tsx b/libs/components-react/src/Snackbar/CovalentSnackbar.tsx new file mode 100644 index 0000000000..5308f71b2e --- /dev/null +++ b/libs/components-react/src/Snackbar/CovalentSnackbar.tsx @@ -0,0 +1,14 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentSnackbar as CovalentSnackbarWeb } from '@covalent/components'; +export const CovalentSnackbar = createComponent({ + tagName: 'cv-snackbar', + elementClass: CovalentSnackbarWeb, + react: React, + events: { + onopening: 'opening', + onopened: 'opened', + onclosing: 'closing', + onclosed: 'closed', + }, +}); diff --git a/libs/components-react/src/StatusDialog/CovalentStatusDialog.spec.ts b/libs/components-react/src/StatusDialog/CovalentStatusDialog.spec.ts new file mode 100644 index 0000000000..05824d5e64 --- /dev/null +++ b/libs/components-react/src/StatusDialog/CovalentStatusDialog.spec.ts @@ -0,0 +1,7 @@ +import { CovalentStatusDialog } from './CovalentStatusDialog'; + +describe('CovalentStatusDialog', () => { + it('should work', () => { + expect(CovalentStatusDialog).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/StatusDialog/CovalentStatusDialog.tsx b/libs/components-react/src/StatusDialog/CovalentStatusDialog.tsx new file mode 100644 index 0000000000..253e106fed --- /dev/null +++ b/libs/components-react/src/StatusDialog/CovalentStatusDialog.tsx @@ -0,0 +1,14 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentStatusDialog as CovalentStatusDialogWeb } from '@covalent/components'; +export const CovalentStatusDialog = createComponent({ + tagName: 'cv-status-dialog', + elementClass: CovalentStatusDialogWeb, + react: React, + events: { + onopening: 'opening', + onopened: 'opened', + onclosing: 'closing', + onclosed: 'closed', + }, +}); diff --git a/libs/components-react/src/StatusHeader/CovalentStatusHeader.spec.ts b/libs/components-react/src/StatusHeader/CovalentStatusHeader.spec.ts new file mode 100644 index 0000000000..6e57866dc6 --- /dev/null +++ b/libs/components-react/src/StatusHeader/CovalentStatusHeader.spec.ts @@ -0,0 +1,7 @@ +import { CovalentStatusHeader } from './CovalentStatusHeader'; + +describe('CovalentStatusHeader', () => { + it('should work', () => { + expect(CovalentStatusHeader).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/StatusHeader/CovalentStatusHeader.tsx b/libs/components-react/src/StatusHeader/CovalentStatusHeader.tsx new file mode 100644 index 0000000000..cafde9c312 --- /dev/null +++ b/libs/components-react/src/StatusHeader/CovalentStatusHeader.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentStatusHeader as CovalentStatusHeaderWeb } from '@covalent/components'; +export const CovalentStatusHeader = createComponent({ + tagName: 'cv-status-header', + elementClass: CovalentStatusHeaderWeb, + react: React, +}); diff --git a/libs/components-react/src/StatusHeader/CovalentStatusHeaderItem.spec.ts b/libs/components-react/src/StatusHeader/CovalentStatusHeaderItem.spec.ts new file mode 100644 index 0000000000..e1528edcd7 --- /dev/null +++ b/libs/components-react/src/StatusHeader/CovalentStatusHeaderItem.spec.ts @@ -0,0 +1,7 @@ +import { CovalentStatusHeaderItem } from './CovalentStatusHeaderItem'; + +describe('CovalentStatusHeaderItem', () => { + it('should work', () => { + expect(CovalentStatusHeaderItem).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/StatusHeader/CovalentStatusHeaderItem.tsx b/libs/components-react/src/StatusHeader/CovalentStatusHeaderItem.tsx new file mode 100644 index 0000000000..448d7f8530 --- /dev/null +++ b/libs/components-react/src/StatusHeader/CovalentStatusHeaderItem.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentStatusHeaderItem as CovalentStatusHeaderItemWeb } from '@covalent/components'; +export const CovalentStatusHeaderItem = createComponent({ + tagName: 'cv-status-header-item', + elementClass: CovalentStatusHeaderItemWeb, + react: React, +}); diff --git a/libs/components-react/src/Switch/CovalentSwitch.spec.ts b/libs/components-react/src/Switch/CovalentSwitch.spec.ts new file mode 100644 index 0000000000..db5417c3cd --- /dev/null +++ b/libs/components-react/src/Switch/CovalentSwitch.spec.ts @@ -0,0 +1,7 @@ +import { CovalentSwitch } from './CovalentSwitch'; + +describe('CovalentSwitch', () => { + it('should work', () => { + expect(CovalentSwitch).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Switch/CovalentSwitch.tsx b/libs/components-react/src/Switch/CovalentSwitch.tsx new file mode 100644 index 0000000000..e79085fc89 --- /dev/null +++ b/libs/components-react/src/Switch/CovalentSwitch.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentSwitch as CovalentSwitchWeb } from '@covalent/components'; +export const CovalentSwitch = createComponent({ + tagName: 'cv-switch', + elementClass: CovalentSwitchWeb, + react: React, +}); diff --git a/libs/components-react/src/Tab/CovalentTab.spec.ts b/libs/components-react/src/Tab/CovalentTab.spec.ts new file mode 100644 index 0000000000..7f2479f817 --- /dev/null +++ b/libs/components-react/src/Tab/CovalentTab.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTab } from './CovalentTab'; + +describe('CovalentTab', () => { + it('should work', () => { + expect(CovalentTab).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Tab/CovalentTab.tsx b/libs/components-react/src/Tab/CovalentTab.tsx new file mode 100644 index 0000000000..7bbe6ea877 --- /dev/null +++ b/libs/components-react/src/Tab/CovalentTab.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTab as CovalentTabWeb } from '@covalent/components'; +export const CovalentTab = createComponent({ + tagName: 'cv-tab', + elementClass: CovalentTabWeb, + react: React, + events: { + oninteracted: 'interacted', + }, +}); diff --git a/libs/components-react/src/Tab/CovalentTabBar.spec.ts b/libs/components-react/src/Tab/CovalentTabBar.spec.ts new file mode 100644 index 0000000000..c955e74ccc --- /dev/null +++ b/libs/components-react/src/Tab/CovalentTabBar.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTabBar } from './CovalentTabBar'; + +describe('CovalentTabBar', () => { + it('should work', () => { + expect(CovalentTabBar).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Tab/CovalentTabBar.tsx b/libs/components-react/src/Tab/CovalentTabBar.tsx new file mode 100644 index 0000000000..6b5c92d28a --- /dev/null +++ b/libs/components-react/src/Tab/CovalentTabBar.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTabBar as CovalentTabBarWeb } from '@covalent/components'; +export const CovalentTabBar = createComponent({ + tagName: 'cv-tab-bar', + elementClass: CovalentTabBarWeb, + react: React, + events: { + onactivated: 'activated', + }, +}); diff --git a/libs/components-react/src/TextLockup/CovalentTextLockup.spec.ts b/libs/components-react/src/TextLockup/CovalentTextLockup.spec.ts new file mode 100644 index 0000000000..61952326d5 --- /dev/null +++ b/libs/components-react/src/TextLockup/CovalentTextLockup.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTextLockup } from './CovalentTextLockup'; + +describe('CovalentTextLockup', () => { + it('should work', () => { + expect(CovalentTextLockup).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/TextLockup/CovalentTextLockup.tsx b/libs/components-react/src/TextLockup/CovalentTextLockup.tsx new file mode 100644 index 0000000000..6fe589adf6 --- /dev/null +++ b/libs/components-react/src/TextLockup/CovalentTextLockup.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTextLockup as CovalentTextLockupWeb } from '@covalent/components'; +export const CovalentTextLockup = createComponent({ + tagName: 'cv-text-lockup', + elementClass: CovalentTextLockupWeb, + react: React, +}); diff --git a/libs/components-react/src/Textarea/CovalentTextArea.spec.ts b/libs/components-react/src/Textarea/CovalentTextArea.spec.ts new file mode 100644 index 0000000000..3960274deb --- /dev/null +++ b/libs/components-react/src/Textarea/CovalentTextArea.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTextArea } from './CovalentTextArea'; + +describe('CovalentTextArea', () => { + it('should work', () => { + expect(CovalentTextArea).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Textarea/CovalentTextArea.tsx b/libs/components-react/src/Textarea/CovalentTextArea.tsx new file mode 100644 index 0000000000..00afd5de78 --- /dev/null +++ b/libs/components-react/src/Textarea/CovalentTextArea.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTextArea as CovalentTextAreaWeb } from '@covalent/components'; +export const CovalentTextArea = createComponent({ + tagName: 'cv-textarea', + elementClass: CovalentTextAreaWeb, + react: React, +}); diff --git a/libs/components-react/src/Textfield/CovalentTextField.spec.ts b/libs/components-react/src/Textfield/CovalentTextField.spec.ts new file mode 100644 index 0000000000..ab3084db67 --- /dev/null +++ b/libs/components-react/src/Textfield/CovalentTextField.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTextField } from './CovalentTextField'; + +describe('CovalentTextField', () => { + it('should work', () => { + expect(CovalentTextField).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Textfield/CovalentTextField.tsx b/libs/components-react/src/Textfield/CovalentTextField.tsx new file mode 100644 index 0000000000..c343f74827 --- /dev/null +++ b/libs/components-react/src/Textfield/CovalentTextField.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTextField as CovalentTextFieldWeb } from '@covalent/components'; +export const CovalentTextField = createComponent({ + tagName: 'cv-textfield', + elementClass: CovalentTextFieldWeb, + react: React, +}); diff --git a/libs/components-react/src/Toolbar/CovalentToolbar.spec.ts b/libs/components-react/src/Toolbar/CovalentToolbar.spec.ts new file mode 100644 index 0000000000..be7294b01d --- /dev/null +++ b/libs/components-react/src/Toolbar/CovalentToolbar.spec.ts @@ -0,0 +1,7 @@ +import { CovalentToolbar } from './CovalentToolbar'; + +describe('CovalentToolbar', () => { + it('should work', () => { + expect(CovalentToolbar).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Toolbar/CovalentToolbar.tsx b/libs/components-react/src/Toolbar/CovalentToolbar.tsx new file mode 100644 index 0000000000..464903cbe1 --- /dev/null +++ b/libs/components-react/src/Toolbar/CovalentToolbar.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentToolbar as CovalentToolbarWeb } from '@covalent/components'; +export const CovalentToolbar = createComponent({ + tagName: 'cv-toolbar', + elementClass: CovalentToolbarWeb, + react: React, + events: { + onnav: 'nav', + }, +}); diff --git a/libs/components-react/src/Tooltip/CovalentTooltip.spec.ts b/libs/components-react/src/Tooltip/CovalentTooltip.spec.ts new file mode 100644 index 0000000000..421e206efe --- /dev/null +++ b/libs/components-react/src/Tooltip/CovalentTooltip.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTooltip } from './CovalentTooltip'; + +describe('CovalentTooltip', () => { + it('should work', () => { + expect(CovalentTooltip).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Tooltip/CovalentTooltip.tsx b/libs/components-react/src/Tooltip/CovalentTooltip.tsx new file mode 100644 index 0000000000..4bba80760f --- /dev/null +++ b/libs/components-react/src/Tooltip/CovalentTooltip.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTooltip as CovalentTooltipWeb } from '@covalent/components'; +export const CovalentTooltip = createComponent({ + tagName: 'cv-tooltip', + elementClass: CovalentTooltipWeb, + react: React, +}); diff --git a/libs/components-react/src/TopAppBar/CovalentTopAppBar.spec.ts b/libs/components-react/src/TopAppBar/CovalentTopAppBar.spec.ts new file mode 100644 index 0000000000..4830807186 --- /dev/null +++ b/libs/components-react/src/TopAppBar/CovalentTopAppBar.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTopAppBar } from './CovalentTopAppBar'; + +describe('CovalentTopAppBar', () => { + it('should work', () => { + expect(CovalentTopAppBar).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/TopAppBar/CovalentTopAppBar.tsx b/libs/components-react/src/TopAppBar/CovalentTopAppBar.tsx new file mode 100644 index 0000000000..821216ea0f --- /dev/null +++ b/libs/components-react/src/TopAppBar/CovalentTopAppBar.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTopAppBar as CovalentTopAppBarWeb } from '@covalent/components'; +export const CovalentTopAppBar = createComponent({ + tagName: 'cv-top-app-bar', + elementClass: CovalentTopAppBarWeb, + react: React, + events: { + onnav: 'nav', + }, +}); diff --git a/libs/components-react/src/TopAppBar/CovalentTopAppBarFixed.spec.ts b/libs/components-react/src/TopAppBar/CovalentTopAppBarFixed.spec.ts new file mode 100644 index 0000000000..0f65c4ca9b --- /dev/null +++ b/libs/components-react/src/TopAppBar/CovalentTopAppBarFixed.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTopAppBarFixed } from './CovalentTopAppBarFixed'; + +describe('CovalentTopAppBarFixed', () => { + it('should work', () => { + expect(CovalentTopAppBarFixed).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/TopAppBar/CovalentTopAppBarFixed.tsx b/libs/components-react/src/TopAppBar/CovalentTopAppBarFixed.tsx new file mode 100644 index 0000000000..77d1ba3ccb --- /dev/null +++ b/libs/components-react/src/TopAppBar/CovalentTopAppBarFixed.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTopAppBarFixed as CovalentTopAppBarFixedWeb } from '@covalent/components'; +export const CovalentTopAppBarFixed = createComponent({ + tagName: 'cv-top-app-bar-fixed', + elementClass: CovalentTopAppBarFixedWeb, + react: React, + events: { + onnav: 'nav', + }, +}); diff --git a/libs/components-react/src/TreeList/CovalentTreeList.spec.ts b/libs/components-react/src/TreeList/CovalentTreeList.spec.ts new file mode 100644 index 0000000000..bd897a25e2 --- /dev/null +++ b/libs/components-react/src/TreeList/CovalentTreeList.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTreeList } from './CovalentTreeList'; + +describe('CovalentTreeList', () => { + it('should work', () => { + expect(CovalentTreeList).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/TreeList/CovalentTreeList.tsx b/libs/components-react/src/TreeList/CovalentTreeList.tsx new file mode 100644 index 0000000000..2a94ecdd1a --- /dev/null +++ b/libs/components-react/src/TreeList/CovalentTreeList.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTreeList as CovalentTreeListWeb } from '@covalent/components'; +export const CovalentTreeList = createComponent({ + tagName: 'cv-tree-list', + elementClass: CovalentTreeListWeb, + react: React, + events: { + onnav: 'nav', + }, +}); diff --git a/libs/components-react/src/TreeList/CovalentTreeListItem.spec.ts b/libs/components-react/src/TreeList/CovalentTreeListItem.spec.ts new file mode 100644 index 0000000000..2d8673db03 --- /dev/null +++ b/libs/components-react/src/TreeList/CovalentTreeListItem.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTreeListItem } from './CovalentTreeListItem'; + +describe('CovalentTreeListItem', () => { + it('should work', () => { + expect(CovalentTreeListItem).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/TreeList/CovalentTreeListItem.tsx b/libs/components-react/src/TreeList/CovalentTreeListItem.tsx new file mode 100644 index 0000000000..5eb669f5a7 --- /dev/null +++ b/libs/components-react/src/TreeList/CovalentTreeListItem.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTreeListItem as CovalentTreeListItemWeb } from '@covalent/components'; +export const CovalentTreeListItem = createComponent({ + tagName: 'cv-tree-list-item', + elementClass: CovalentTreeListItemWeb, + react: React, + events: { + onselect: 'select', + }, +}); diff --git a/libs/components-react/src/Typography/CovalentTypography.spec.ts b/libs/components-react/src/Typography/CovalentTypography.spec.ts new file mode 100644 index 0000000000..b4eff98aad --- /dev/null +++ b/libs/components-react/src/Typography/CovalentTypography.spec.ts @@ -0,0 +1,7 @@ +import { CovalentTypography } from './CovalentTypography'; + +describe('CovalentTypography', () => { + it('should work', () => { + expect(CovalentTypography).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/Typography/CovalentTypography.tsx b/libs/components-react/src/Typography/CovalentTypography.tsx new file mode 100644 index 0000000000..09e52dfd44 --- /dev/null +++ b/libs/components-react/src/Typography/CovalentTypography.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentTypography as CovalentTypographyWeb } from '@covalent/components'; +export const CovalentTypography = createComponent({ + tagName: 'cv-typography', + elementClass: CovalentTypographyWeb, + react: React, + events: { + onselect: 'select', + }, +}); diff --git a/libs/components-react/src/index.ts b/libs/components-react/src/index.ts new file mode 100644 index 0000000000..ee8bf50b6a --- /dev/null +++ b/libs/components-react/src/index.ts @@ -0,0 +1,55 @@ +export * from './ActionRibbon/CovalentActionRibbon'; +export * from './Alert/CovalentAlert'; +export * from './AppShell/CovalentAppShell'; +export * from './Badge/CovalentBadge'; +export * from './Button/CovalentButton'; +export * from './Card/CovalentCard'; +export * from './Checkbox/CovalentCheckbox'; +export * from './List/CovalentCheckListItem'; +export * from './Chips/CovalentChip'; +export * from './Chips/CovalentChipSet'; +export * from './CircularProgress/CovalentCircularProgress'; +export * from './CodeEditor/CovalentCodeEditor'; +export * from './CodeSnippet/CovalentCodeSnippet'; +export * from './Dialog/CovalentDialog'; +export * from './Drawer/CovalentDrawer'; +export * from './EmptyState/CovalentEmptyState'; +export * from './ExpansionPanel/CovalentExpansionPanel'; +export * from './ExpansionPanel/CovalentExpansionPanelItem'; +export * from './FocusedPage/CovalentFocusedPage'; +export * from './Formfield/CovalentFormfield'; +export * from './FullScreenDialog/CovalentFullscreenDialog'; +export * from './Icon/CovalentIcon'; +export * from './IconButton/CovalentIconButton'; +export * from './IconButtonToggle/CovalentIconButtonToggle'; +export * from './IconCheckbox/CovalentIconCheckToggle'; +export * from './IconRadio/CovalentIconRadioToggle'; +export * from './LinearProgress/CovalentLinearProgress'; +export * from './List/CovalentList'; +export * from './List/CovalentListItem'; +export * from './Menu/CovalentMenu'; +export * from './List/CovalentNavRailListItem'; +export * from './NotebookCell/CovalentNotebookCell'; +export * from './Radio/CovalentRadio'; +export * from './List/CovalentRadioListItem'; +export * from './Select/CovalentSelect'; +export * from './SideSheet/CovalentSideSheet'; +export * from './Slider/CovalentSlider'; +export * from './Slider/CovalentSliderRange'; +export * from './Snackbar/CovalentSnackbar'; +export * from './StatusDialog/CovalentStatusDialog'; +export * from './StatusHeader/CovalentStatusHeader'; +export * from './StatusHeader/CovalentStatusHeaderItem'; +export * from './Switch/CovalentSwitch'; +export * from './Tab/CovalentTab'; +export * from './Tab/CovalentTabBar'; +export * from './Textarea/CovalentTextArea'; +export * from './Textfield/CovalentTextField'; +export * from './TextLockup/CovalentTextLockup'; +export * from './Toolbar/CovalentToolbar'; +export * from './Tooltip/CovalentTooltip'; +export * from './TopAppBar/CovalentTopAppBar'; +export * from './TopAppBar/CovalentTopAppBarFixed'; +export * from './TreeList/CovalentTreeList'; +export * from './TreeList/CovalentTreeListItem'; +export * from './Typography/CovalentTypography'; diff --git a/libs/components-react/tsconfig.json b/libs/components-react/tsconfig.json new file mode 100644 index 0000000000..25c77ed113 --- /dev/null +++ b/libs/components-react/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "jsx": "react", + "types": ["vitest", "./types.d.ts"] + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} diff --git a/libs/components-react/tsconfig.lib.json b/libs/components-react/tsconfig.lib.json new file mode 100644 index 0000000000..f22f9198b3 --- /dev/null +++ b/libs/components-react/tsconfig.lib.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "types": ["node"] + }, + "include": ["src/**/*.ts", "*.d.ts"], + "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"] +} diff --git a/libs/components-react/tsconfig.spec.json b/libs/components-react/tsconfig.spec.json new file mode 100644 index 0000000000..6ea078a534 --- /dev/null +++ b/libs/components-react/tsconfig.spec.json @@ -0,0 +1,21 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"], + "sourceMap": false + }, + "include": [ + "vite.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts", + "*.d.ts" + ] +} diff --git a/libs/components-react/types.d.ts b/libs/components-react/types.d.ts new file mode 100644 index 0000000000..a960004246 --- /dev/null +++ b/libs/components-react/types.d.ts @@ -0,0 +1,14 @@ +declare module '*.scss' { + import { CSSResult } from 'lit'; + const css: CSSResult; + export default css; +} +declare module '*.css' { + import { CSSResult } from 'lit'; + const css: CSSResult; + export default css; +} +declare module '*?inline' { + const contents: { default: string }; + export = contents; +} diff --git a/libs/components-react/vite.config.ts b/libs/components-react/vite.config.ts new file mode 100644 index 0000000000..e2f9ec4375 --- /dev/null +++ b/libs/components-react/vite.config.ts @@ -0,0 +1,66 @@ +/// +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; +import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; + +export default defineConfig({ + root: __dirname, + cacheDir: '../../node_modules/.vite/libs/components-react', + + plugins: [ + nxViteTsPaths(), + dts({ + entryRoot: 'src', + }), + nxCopyAssetsPlugin(['*.css']), + ], + + // Uncomment this if you are using workers. + // worker: { + // plugins: [ nxViteTsPaths() ], + // }, + + // Configuration for building your library. + // See: https://vitejs.dev/guide/build.html#library-mode + build: { + outDir: '../../dist/libs/components-react', + emptyOutDir: true, + reportCompressedSize: true, + commonjsOptions: { + transformMixedEsModules: true, + }, + lib: { + // Could also be a dictionary or array of multiple entry points. + entry: 'src/index.ts', + name: 'components-react', + fileName: 'index', + // Change this to the formats you want to support. + // Don't forget to update your package.json as well. + formats: ['es', 'cjs'], + }, + rollupOptions: { + // External packages that should not be bundled into your library. + external: ['react', '@covalent/components'], + }, + }, + + test: { + watch: false, + globals: true, + server: { + deps: { + inline: [/safevalues/], + }, + sourcemap: false, + }, + + environment: 'jsdom', + include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + reporters: ['default'], + coverage: { + reportsDirectory: '../../coverage/libs/components-react', + provider: 'v8', + }, + }, +}); diff --git a/libs/components/component-config.json b/libs/components/component-config.json new file mode 100644 index 0000000000..aed42dd602 --- /dev/null +++ b/libs/components/component-config.json @@ -0,0 +1,308 @@ +[ + { + "name": "CovalentActionRibbon", + "selector": "cv-action-ribbon", + "path": "./action-ribbon/action-ribbon" + }, + { + "name": "CovalentAlert", + "selector": "cv-alert", + "path": "./alert/alert" + }, + { + "name": "CovalentAppShell", + "selector": "cv-app-shell", + "path": "./app-shell/app-shell", + "events": ["toggle"] + }, + { + "name": "CovalentBadge", + "selector": "cv-badge", + "path": "./badge/badge" + }, + { + "name": "CovalentButton", + "selector": "cv-button", + "path": "./button/button" + }, + { + "name": "CovalentCard", + "selector": "cv-card", + "path": "./card/card" + }, + { + "name": "CovalentCheckbox", + "selector": "cv-checkbox", + "path": "./checkbox/checkbox", + "events": ["change"] + }, + { + "name": "CovalentChip", + "selector": "cv-chip", + "path": "./chips/chip" + }, + { + "name": "CovalentChipSet", + "selector": "cv-chip-set", + "path": "./chips/chip-set" + }, + { + "name": "CovalentCircularProgress", + "selector": "cv-circular-progress", + "path": "./circular-progress/circular-progress" + }, + { + "name": "CovalentCodeEditor", + "selector": "cv-code-editor", + "path": "./code-editor/code-editor", + "events": ["editor-ready", "editor-focus", "editor-blur", "code-change"] + }, + { + "name": "CovalentCodeSnippet", + "selector": "cv-code-snippet", + "path": "./code-snippet/code-snippet" + }, + { + "name": "CovalentDrawer", + "selector": "cv-drawer", + "path": "./drawer/drawer", + "events": ["opened", "closed"] + }, + { + "name": "CovalentDialog", + "selector": "cv-dialog", + "path": "./dialog/dialog", + "events": ["opening", "opened", "closing", "closed"] + }, + { + "name": "CovalentEmptyState", + "selector": "cv-empty-state", + "path": "./empty-state/empty-state" + }, + { + "name": "CovalentExpansionPanel", + "selector": "cv-expansion-panel", + "path": "./expansion-panel/expansion-panel" + }, + { + "name": "CovalentExpansionPanelItem", + "selector": "cv-expansion-panel-item", + "path": "./expansion-panel/expansion-panel-item", + "events": ["cv-expansionPanel-togglePanel"] + }, + { + "name": "CovalentFocusedPage", + "selector": "cv-focused-page", + "path": "./focused-page/focused-page" + }, + { + "name": "CovalentFormfield", + "selector": "cv-formfield", + "path": "./formfield/formfield" + }, + { + "name": "CovalentFullscreenDialog", + "selector": "cv-full-screen-dialog", + "path": "./full-screen-dialog/full-screen-dialog", + "events": ["opening", "opened", "closing", "closed"] + }, + { + "name": "CovalentIcon", + "selector": "cv-icon", + "path": "./icon/icon" + }, + { + "name": "CovalentIconButton", + "selector": "cv-icon-button", + "path": "./icon-button/icon-button" + }, + { + "name": "CovalentIconButtonToggle", + "selector": "cv-icon-button-toggle", + "path": "./icon-button-toggle/icon-button-toggle", + "events": ["icon-button-toggle-change"] + }, + { + "name": "CovalentIconCheckToggle", + "selector": "cv-checkbox-icon", + "path": "./icon-checkbox/icon-check-toggle", + "events": ["change"] + }, + { + "name": "CovalentIconRadioToggle", + "selector": "cv-radio-icon", + "path": "./icon-radio/icon-radio-toggle", + "events": ["change"] + }, + { + "name": "CovalentLinearProgress", + "selector": "cv-linear-progress", + "path": "./linear-progress/linear-progress" + }, + { + "name": "CovalentList", + "selector": "cv-list", + "path": "./list/list", + "events": ["action", "selected"] + }, + { + "name": "CovalentListItem", + "selector": "cv-list-item", + "path": "./list/list-item", + "events": ["request-selected"] + }, + { + "name": "CovalentCheckListItem", + "selector": "cv-check-list-item", + "path": "./list/check-list-item", + "events": ["request-selected"] + }, + { + "name": "CovalentRadioListItem", + "selector": "cv-radio-list-item", + "path": "./list/radio-list-item", + "events": ["request-selected"] + }, + { + "name": "CovalentNavRailListItem", + "selector": "cv-nav-list-item", + "path": "./list/nav-list-item", + "events": ["request-selected"] + }, + { + "name": "CovalentMenu", + "selector": "cv-menu", + "path": "./menu/menu", + "events": ["opened", "closing", "closed", "action", "selected"] + }, + { + "name": "CovalentNotebookCell", + "selector": "cv-notebook-cell", + "path": "./notebook-cell/notebook-cell" + }, + { + "name": "CovalentRadio", + "selector": "cv-radio", + "path": "./radio/radio", + "events": ["change"] + }, + { + "name": "CovalentSelect", + "selector": "cv-select", + "path": "./select/select", + "events": ["opened", "closed", "selected"] + }, + { + "name": "CovalentSideSheet", + "selector": "cv-side-sheet", + "path": "./side-sheet/side-sheet", + "events": ["opening", "opened", "closing", "closed"] + }, + { + "name": "CovalentSlider", + "selector": "cv-slider", + "path": "./slider/slider", + "events": ["input", "change"] + }, + { + "name": "CovalentSliderRange", + "selector": "cv-slider-range", + "path": "./slider/slider-range", + "events": ["input", "change"] + }, + { + "name": "CovalentSnackbar", + "selector": "cv-snackbar", + "path": "./snackbar/snackbar", + "events": ["opening", "opened", "closing", "closed"] + }, + { + "name": "CovalentStatusDialog", + "selector": "cv-status-dialog", + "path": "./status-dialog/status-dialog", + "events": ["opening", "opened", "closing", "closed"] + }, + { + "name": "CovalentStatusHeader", + "selector": "cv-status-header", + "path": "./status-header/status-header" + }, + { + "name": "CovalentStatusHeaderItem", + "selector": "cv-status-header-item", + "path": "./status-header/status-header-item" + }, + { + "name": "CovalentSwitch", + "selector": "cv-switch", + "path": "./switch/switch" + }, + { + "name": "CovalentTab", + "selector": "cv-tab", + "path": "./tab/tab", + "events": ["interacted"] + }, + { + "name": "CovalentTabBar", + "selector": "cv-tab-bar", + "path": "./tab/tab-bar", + "events": ["activated"] + }, + { + "name": "CovalentTextLockup", + "selector": "cv-text-lockup", + "path": "./text-lockup/text-lockup" + }, + { + "name": "CovalentTextArea", + "selector": "cv-textarea", + "path": "./textarea/textarea" + }, + { + "name": "CovalentTextField", + "selector": "cv-textfield", + "path": "./textfield/textfield" + }, + { + "name": "CovalentToolbar", + "selector": "cv-toolbar", + "path": "./toolbar/toolbar", + "events": ["nav"] + }, + { + "name": "CovalentTooltip", + "selector": "cv-tooltip", + "path": "./tooltip/tooltip" + }, + { + "name": "CovalentTopAppBar", + "selector": "cv-top-app-bar", + "path": "./top-app-bar/top-app-bar", + "events": ["nav"] + }, + { + "name": "CovalentTopAppBarFixed", + "selector": "cv-top-app-bar-fixed", + "path": "./top-app-bar/top-app-bar-fixed", + "events": ["nav"] + }, + { + "name": "CovalentTreeList", + "selector": "cv-tree-list", + "path": "./tree-list/tree-list", + "events": ["nav"] + }, + { + "name": "CovalentTreeListItem", + "selector": "cv-tree-list-item", + "path": "./tree-list/tree-list-item", + "events": ["select"] + }, + { + "name": "CovalentTypography", + "selector": "cv-typography", + "path": "./typography/typography", + "events": ["select"] + } +] diff --git a/libs/components/package.json b/libs/components/package.json index 20f05afa71..e96e5c3df5 100644 --- a/libs/components/package.json +++ b/libs/components/package.json @@ -41,15 +41,20 @@ "import": "./button.mjs", "require": "./button.js" }, + "./card": { + "types": "./card/card.d.ts", + "import": "./card.mjs", + "require": "./card.js" + }, "./checkbox": { "types": "./checkbox/checkbox.d.ts", "import": "./checkbox.mjs", "require": "./checkbox.js" }, - "./card": { - "types": "./card/card.d.ts", - "import": "./card.mjs", - "require": "./card.js" + "./check-list-item": { + "types": "./list/check-list-item.d.ts", + "import": "./check-list-item.mjs", + "require": "./check-list-item.js" }, "./chip": { "types": "./chips/chip.d.ts", @@ -57,7 +62,7 @@ "require": "./chip.js" }, "./chip-set": { - "types": "./chip/chip-set.d.ts", + "types": "./chips/chip-set.d.ts", "import": "./chip-set.mjs", "require": "./chip-set.js" }, @@ -132,12 +137,12 @@ "require": "./icon-button-toggle.js" }, "./icon-check-toggle": { - "types": "./icon-checkbox/icon-checkbox.d.ts", - "import": "./icon-checkbox.mjs", - "require": "./icon-checkbox.js" + "types": "./icon-checkbox/icon-check-toggle.d.ts", + "import": "./icon-check-toggle.mjs", + "require": "./icon-check-toggle.js" }, "./icon-radio-toggle": { - "types": "./icon-radio-toggle/icon-radio-toggle.d.ts", + "types": "./icon-radio/icon-radio-toggle.d.ts", "import": "./icon-radio-toggle.mjs", "require": "./icon-radio-toggle.js" }, @@ -146,36 +151,26 @@ "import": "./linear-progress.mjs", "require": "./linear-progress.js" }, - "./list/check-list-item": { - "types": "./list/check-list-item.d.ts", - "import": "./check-list-item.mjs", - "require": "./check-list-item.js" - }, - "./list/list": { + "./list": { "types": "./list/list.d.ts", "import": "./list.mjs", "require": "./list.js" }, - "./list/list-item": { + "./list-item": { "types": "./list/list-item.d.ts", "import": "./list-item.mjs", "require": "./list-item.js" }, - "./list/nav-list-item": { - "types": "./list/nav-list-item.d.ts", - "import": "./nav-list-item.mjs", - "require": "./nav-list-item.js" - }, - "./list/radio-list-item": { - "types": "./list/radio-list-item.d.ts", - "import": "./radio-list-item.mjs", - "require": "./radio-list-item.js" - }, "./menu": { "types": "./menu/menu.d.ts", "import": "./menu.mjs", "require": "./menu.js" }, + "./nav-list-item": { + "types": "./list/nav-list-item.d.ts", + "import": "./nav-list-item.mjs", + "require": "./nav-list-item.js" + }, "./notebook-cell": { "types": "./notebook-cell/notebook-cell.d.ts", "import": "./notebook-cell.mjs", @@ -186,6 +181,11 @@ "import": "./radio.mjs", "require": "./radio.js" }, + "./radio-list-item": { + "types": "./list/radio-list-item.d.ts", + "import": "./radio-list-item.mjs", + "require": "./radio-list-item.js" + }, "./select": { "types": "./select/select.d.ts", "import": "./select.mjs", @@ -212,12 +212,12 @@ "require": "./snackbar.js" }, "./status-dialog": { - "types": "./status-dialog.d.ts", + "types": "./status-dialog/status-dialog.d.ts", "import": "./status-dialog.mjs", "require": "./status-dialog.js" }, "./status-header": { - "types": "./status-header.d.ts", + "types": "./status-header/status-header.d.ts", "import": "./status-header.mjs", "require": "./status-header.js" }, diff --git a/libs/components/project.json b/libs/components/project.json index 233fd5877f..cc38d5ac5f 100644 --- a/libs/components/project.json +++ b/libs/components/project.json @@ -91,6 +91,13 @@ } ] } + }, + "build-exports": { + "executor": "nx:run-commands", + "options": { + "commands": ["node ./scripts/export-components"], + "parallel": false + } } }, "tags": [] diff --git a/libs/components/src/app-shell/app-shell.ts b/libs/components/src/app-shell/app-shell.ts index b25628fe83..ca65664575 100644 --- a/libs/components/src/app-shell/app-shell.ts +++ b/libs/components/src/app-shell/app-shell.ts @@ -86,7 +86,7 @@ export class CovalentAppShell extends DrawerBase { fullWidth = false; private hovered = false; - private hoverTimeout: number | undefined; + private hoverTimeout: any | undefined; private hoverEntryDuration = 250; private hoverExitDuration = 250; diff --git a/libs/components/src/badge/badge.spec.ts b/libs/components/src/badge/badge.spec.ts index d3bf8622b6..13b77c0783 100644 --- a/libs/components/src/badge/badge.spec.ts +++ b/libs/components/src/badge/badge.spec.ts @@ -10,7 +10,7 @@ describe('Covalent Badge', () => { beforeAll(() => { document.body.innerHTML = ` - + `; badgeElements = document.body.querySelectorAll('cv-badge'); @@ -30,7 +30,7 @@ describe('Covalent Badge', () => { it('should not show content when size is small', () => { if (badgeElements[2]?.shadowRoot?.innerHTML) { - expect(badgeElements[2]?.shadowRoot?.innerHTML).not.toContain('99'); + expect(badgeElements[2]?.shadowRoot?.innerHTML).not.toContain('hello'); } }); diff --git a/libs/components/src/chips/foundation.ts b/libs/components/src/chips/foundation.ts deleted file mode 100644 index a58dfb0e52..0000000000 --- a/libs/components/src/chips/foundation.ts +++ /dev/null @@ -1,378 +0,0 @@ -/** - * @license - * Copyright 2020 Google Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import { AnimationFrame } from '@material/animation/animationframe'; -import { MDCFoundation } from '@material/base/foundation'; -import { KEY } from '@material/dom/keyboard'; - -import { - MDCChipActionType, - MDCChipActionFocusBehavior, - MDCChipActionInteractionTrigger, -} from '@material/chips/action/constants'; -import { MDCChipActionInteractionEventDetail } from '@material/chips/action/types'; - -import { MDCChipAdapter } from '@material/chips/chip/adapter'; -import { - MDCChipAnimation, - MDCChipAttributes, - MDCChipCssClasses, - MDCChipEvents, -} from '@material/chips/chip/constants'; -import { - ActionInteractionEvent, - ActionNavigationEvent, - MDCChipAnimationEventDetail, - MDCChipInteractionEventDetail, - MDCChipNavigationEventDetail, -} from '@material/chips/chip/types'; - -interface Navigation { - from: MDCChipActionType; - to: MDCChipActionType; -} - -enum Direction { - UNSPECIFIED, // Default - LEFT, - RIGHT, -} - -enum AnimationKeys { - SELECTION = 'selection', - EXIT = 'exit', -} - -/** - * MDCChipFoundation provides a foundation for all chips. - */ -export class MDCChipFoundation extends MDCFoundation { - static override get defaultAdapter(): MDCChipAdapter { - return { - addClass: () => undefined, - emitEvent: () => undefined, - getActions: () => [], - getAttribute: () => null, - getElementID: () => '', - getOffsetWidth: () => 0, - hasClass: () => false, - isActionDisabled: () => false, - isActionFocusable: () => false, - isActionSelectable: () => false, - isActionSelected: () => false, - isRTL: () => false, - removeClass: () => undefined, - setActionDisabled: () => undefined, - setActionFocus: () => undefined, - setActionSelected: () => undefined, - setStyleProperty: () => undefined, - }; - } - - private readonly animFrame: AnimationFrame; - - constructor(adapter?: Partial) { - super({ ...MDCChipFoundation.defaultAdapter, ...adapter }); - this.animFrame = new AnimationFrame(); - } - - override destroy() { - this.animFrame.cancelAll(); - } - - getElementID() { - return this.adapter.getElementID(); - } - - setDisabled(isDisabled: boolean) { - const actions = this.getActions(); - for (const action of actions) { - this.adapter.setActionDisabled(action, isDisabled); - } - - if (isDisabled) { - this.adapter.addClass(MDCChipCssClasses.DISABLED); - } else { - this.adapter.removeClass(MDCChipCssClasses.DISABLED); - } - } - - isDisabled(): boolean { - const actions = this.getActions(); - for (const action of actions) { - if (this.adapter.isActionDisabled(action)) { - return true; - } - } - return false; - } - - getActions(): MDCChipActionType[] { - return this.adapter.getActions(); - } - - isActionFocusable(action: MDCChipActionType): boolean { - return this.adapter.isActionFocusable(action); - } - - isActionSelectable(action: MDCChipActionType): boolean { - return this.adapter.isActionSelectable(action); - } - - isActionSelected(action: MDCChipActionType): boolean { - return this.adapter.isActionSelected(action); - } - - setActionFocus(action: MDCChipActionType, focus: MDCChipActionFocusBehavior) { - this.adapter.setActionFocus(action, focus); - } - - setActionSelected(action: MDCChipActionType, isSelected: boolean) { - this.adapter.setActionSelected(action, isSelected); - this.animateSelection(isSelected); - } - - startAnimation(animation: MDCChipAnimation) { - if (animation === MDCChipAnimation.ENTER) { - this.adapter.addClass(MDCChipCssClasses.ENTER); - return; - } - - if (animation === MDCChipAnimation.EXIT) { - this.adapter.addClass(MDCChipCssClasses.EXIT); - return; - } - } - - handleAnimationEnd(event: AnimationEvent) { - const { animationName } = event; - if (animationName === MDCChipAnimation.ENTER) { - this.adapter.removeClass(MDCChipCssClasses.ENTER); - this.adapter.emitEvent( - MDCChipEvents.ANIMATION, - { - chipID: this.getElementID(), - animation: MDCChipAnimation.ENTER, - addedAnnouncement: this.getAddedAnnouncement(), - isComplete: true, - } - ); - return; - } - - if (animationName === MDCChipAnimation.EXIT) { - this.adapter.removeClass(MDCChipCssClasses.EXIT); - this.adapter.addClass(MDCChipCssClasses.HIDDEN); - const width = this.adapter.getOffsetWidth(); - this.adapter.setStyleProperty('width', `${width}px`); - // Wait two frames so the width gets applied correctly. - this.animFrame.request(AnimationKeys.EXIT, () => { - this.animFrame.request(AnimationKeys.EXIT, () => { - this.adapter.setStyleProperty('width', '0'); - }); - }); - } - } - - handleTransitionEnd() { - if (!this.adapter.hasClass(MDCChipCssClasses.HIDDEN)) return; - - this.adapter.emitEvent( - MDCChipEvents.ANIMATION, - { - chipID: this.getElementID(), - animation: MDCChipAnimation.EXIT, - removedAnnouncement: this.getRemovedAnnouncement(), - isComplete: true, - } - ); - } - - handleActionInteraction({ detail }: ActionInteractionEvent) { - const { source, actionID } = detail; - const isSelectable = this.adapter.isActionSelectable(source); - const isSelected = this.adapter.isActionSelected(source); - - this.adapter.emitEvent( - MDCChipEvents.INTERACTION, - { - chipID: this.getElementID(), - shouldRemove: this.shouldRemove(detail), - actionID, - isSelectable, - isSelected, - source, - } - ); - } - - handleActionNavigation({ detail }: ActionNavigationEvent) { - const { source, key } = detail; - const isRTL = this.adapter.isRTL(); - const isTrailingActionFocusable = this.adapter.isActionFocusable( - MDCChipActionType.TRAILING - ); - const isPrimaryActionFocusable = this.adapter.isActionFocusable( - MDCChipActionType.PRIMARY - ); - const dir = this.directionFromKey(key, isRTL); - - const shouldNavigateToTrailing = - source === MDCChipActionType.PRIMARY && - dir === Direction.RIGHT && - isTrailingActionFocusable; - - const shouldNavigateToPrimary = - source === MDCChipActionType.TRAILING && - dir === Direction.LEFT && - isPrimaryActionFocusable; - - if (shouldNavigateToTrailing) { - this.navigateActions({ from: source, to: MDCChipActionType.TRAILING }); - return; - } - - if (shouldNavigateToPrimary) { - this.navigateActions({ from: source, to: MDCChipActionType.PRIMARY }); - return; - } - - this.adapter.emitEvent( - MDCChipEvents.NAVIGATION, - { - chipID: this.getElementID(), - isRTL, - source, - key, - } - ); - } - - private directionFromKey(key: string, isRTL: boolean): Direction { - const isLeftKey = key === KEY.ARROW_LEFT; - const isRightKey = key === KEY.ARROW_RIGHT; - if ((!isRTL && isLeftKey) || (isRTL && isRightKey)) { - return Direction.LEFT; - } - - if ((!isRTL && isRightKey) || (isRTL && isLeftKey)) { - return Direction.RIGHT; - } - - return Direction.UNSPECIFIED; - } - - private navigateActions(nav: Navigation) { - this.adapter.setActionFocus( - nav.from, - MDCChipActionFocusBehavior.NOT_FOCUSABLE - ); - this.adapter.setActionFocus( - nav.to, - MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED - ); - } - - private shouldRemove({ - source, - trigger, - }: MDCChipActionInteractionEventDetail): boolean { - if ( - trigger === MDCChipActionInteractionTrigger.BACKSPACE_KEY || - trigger === MDCChipActionInteractionTrigger.DELETE_KEY - ) { - return true; - } - - return source === MDCChipActionType.TRAILING; - } - - private getRemovedAnnouncement(): string | undefined { - const msg = this.adapter.getAttribute( - MDCChipAttributes.DATA_REMOVED_ANNOUNCEMENT - ); - return msg || undefined; - } - - private getAddedAnnouncement(): string | undefined { - const msg = this.adapter.getAttribute( - MDCChipAttributes.DATA_ADDED_ANNOUNCEMENT - ); - return msg || undefined; - } - - private animateSelection(isSelected: boolean) { - this.resetAnimationStyles(); - // Wait two frames to ensure the animation classes are unset - this.animFrame.request(AnimationKeys.SELECTION, () => { - this.animFrame.request(AnimationKeys.SELECTION, () => { - this.updateSelectionStyles(isSelected); - }); - }); - } - - private resetAnimationStyles() { - this.adapter.removeClass(MDCChipCssClasses.SELECTING); - this.adapter.removeClass(MDCChipCssClasses.DESELECTING); - this.adapter.removeClass(MDCChipCssClasses.SELECTING_WITH_PRIMARY_ICON); - this.adapter.removeClass(MDCChipCssClasses.DESELECTING_WITH_PRIMARY_ICON); - } - - private updateSelectionStyles(isSelected: boolean) { - const hasIcon = this.adapter.hasClass(MDCChipCssClasses.WITH_PRIMARY_ICON); - if (hasIcon && isSelected) { - this.adapter.addClass(MDCChipCssClasses.SELECTING_WITH_PRIMARY_ICON); - this.animFrame.request(AnimationKeys.SELECTION, () => { - this.adapter.addClass(MDCChipCssClasses.SELECTED); - }); - return; - } - - if (hasIcon && !isSelected) { - this.adapter.addClass(MDCChipCssClasses.DESELECTING_WITH_PRIMARY_ICON); - this.animFrame.request(AnimationKeys.SELECTION, () => { - this.adapter.removeClass(MDCChipCssClasses.SELECTED); - }); - return; - } - - if (isSelected) { - this.adapter.addClass(MDCChipCssClasses.SELECTING); - this.animFrame.request(AnimationKeys.SELECTION, () => { - this.adapter.addClass(MDCChipCssClasses.SELECTED); - }); - return; - } - - if (!isSelected) { - this.adapter.addClass(MDCChipCssClasses.DESELECTING); - this.animFrame.request(AnimationKeys.SELECTION, () => { - this.adapter.removeClass(MDCChipCssClasses.SELECTED); - }); - return; - } - } -} - -// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. -export default MDCChipFoundation; diff --git a/libs/components/src/index.ts b/libs/components/src/index.ts index 6386709fbd..fdbbd2f084 100644 --- a/libs/components/src/index.ts +++ b/libs/components/src/index.ts @@ -3,8 +3,9 @@ export * from './alert/alert'; export * from './app-shell/app-shell'; export * from './badge/badge'; export * from './button/button'; -export * from './checkbox/checkbox'; export * from './card/card'; +export * from './checkbox/checkbox'; +export * from './list/check-list-item'; export * from './chips/chip'; export * from './chips/chip-set'; export * from './circular-progress/circular-progress'; @@ -24,14 +25,13 @@ export * from './icon-button-toggle/icon-button-toggle'; export * from './icon-checkbox/icon-check-toggle'; export * from './icon-radio/icon-radio-toggle'; export * from './linear-progress/linear-progress'; -export * from './list/check-list-item'; export * from './list/list'; export * from './list/list-item'; -export * from './list/nav-list-item'; -export * from './list/radio-list-item'; export * from './menu/menu'; +export * from './list/nav-list-item'; export * from './notebook-cell/notebook-cell'; export * from './radio/radio'; +export * from './list/radio-list-item'; export * from './select/select'; export * from './side-sheet/side-sheet'; export * from './slider/slider'; diff --git a/libs/components/vite.config.js b/libs/components/vite.config.js index 2add6b52a9..8514145408 100644 --- a/libs/components/vite.config.js +++ b/libs/components/vite.config.js @@ -1,4 +1,21 @@ const { defineConfig } = require('vite'); +import fs from 'fs'; +import path from 'path'; + +// Function to dynamically generate entry paths +const getComponentEntries = () => { + const componentsConfigPath = path.resolve( + __dirname, + './component-config.json' + ); + const componentsConfig = JSON.parse( + fs.readFileSync(componentsConfigPath, 'utf8') + ); + + return componentsConfig.map((component) => + path.join('libs/components/src', component.path) + ); +}; // https://vitejs.dev/config/ module.exports = defineConfig(({ mode }) => { @@ -6,66 +23,10 @@ module.exports = defineConfig(({ mode }) => { define: { 'process.env.NODE_ENV': JSON.stringify(mode), }, + build: { lib: { - entry: [ - 'libs/components/src/index.ts', - 'libs/components/src/action-ribbon/action-ribbon', - 'libs/components/src/alert/alert', - 'libs/components/src/app-shell/app-shell', - 'libs/components/src/badge/badge', - 'libs/components/src/button/button', - 'libs/components/src/checkbox/checkbox', - 'libs/components/src/card/card', - 'libs/components/src/chips/chip', - 'libs/components/src/chips/chip-set', - 'libs/components/src/circular-progress/circular-progress', - 'libs/components/src/code-editor/code-editor', - 'libs/components/src/code-snippet/code-snippet', - 'libs/components/src/dialog/dialog', - 'libs/components/src/drawer/drawer', - 'libs/components/src/empty-state/empty-state', - 'libs/components/src/expansion-panel/expansion-panel', - 'libs/components/src/expansion-panel/expansion-panel-item', - 'libs/components/src/focused-page/focused-page', - 'libs/components/src/formfield/formfield', - 'libs/components/src/full-screen-dialog/full-screen-dialog', - 'libs/components/src/icon/icon', - 'libs/components/src/icon-button/icon-button', - 'libs/components/src/icon-button-toggle/icon-button-toggle', - 'libs/components/src/icon-checkbox/icon-check-toggle', - 'libs/components/src/icon-radio/icon-radio-toggle', - 'libs/components/src/linear-progress/linear-progress', - 'libs/components/src/list/check-list-item', - 'libs/components/src/list/list', - 'libs/components/src/list/list-item', - 'libs/components/src/list/nav-list-item', - 'libs/components/src/list/radio-list-item', - 'libs/components/src/menu/menu', - 'libs/components/src/notebook-cell/notebook-cell', - 'libs/components/src/radio/radio', - 'libs/components/src/select/select', - 'libs/components/src/side-sheet/side-sheet', - 'libs/components/src/slider/slider', - 'libs/components/src/slider/slider-range', - 'libs/components/src/snackbar/snackbar', - 'libs/components/src/status-dialog/status-dialog', - 'libs/components/src/status-header/status-header', - 'libs/components/src/status-header/status-header-item', - 'libs/components/src/switch/switch', - 'libs/components/src/tab/tab', - 'libs/components/src/tab/tab-bar', - 'libs/components/src/textarea/textarea', - 'libs/components/src/textfield/textfield', - 'libs/components/src/text-lockup/text-lockup', - 'libs/components/src/toolbar/toolbar', - 'libs/components/src/tooltip/tooltip', - 'libs/components/src/top-app-bar/top-app-bar', - 'libs/components/src/top-app-bar/top-app-bar-fixed', - 'libs/components/src/tree-list/tree-list', - 'libs/components/src/tree-list/tree-list-item', - 'libs/components/src/typography/typography', - ], + entry: ['libs/components/src/index.ts', ...getComponentEntries()], name: 'Covalent', rollupOptions: { external: ['monaco-editor'], diff --git a/package-lock.json b/package-lock.json index bc47d82198..e782cc1f61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "@knapsack/app": "^4.69.12", "@knapsack/renderer-angular": "^4.69.12", "@knapsack/renderer-web-components": "^4.69.12", + "@lit/react": "^1.0.6", "@material/banner": "15.0.0-canary.7f224ddd4.0", "@material/button": "15.0.0-canary.7f224ddd4.0", "@material/card": "15.0.0-canary.7f224ddd4.0", @@ -77,7 +78,7 @@ "shepherd.js": "^9.0.0", "showdown": "^2.1.0", "skeleton-elements": "^4.0.1", - "tslib": "^2.0.0", + "tslib": "^2.3.0", "zone.js": "0.13.1" }, "devDependencies": { @@ -147,6 +148,7 @@ "jest-environment-jsdom": "29.7.0", "jest-esm-transformer": "^1.0.0", "jest-preset-angular": "14.1.1", + "jsdom": "~22.1.0", "monaco-editor-webpack-plugin": "^7.1.0", "ng-packagr": "18.2.1", "nx": "19.8.9", @@ -168,9 +170,10 @@ "stylelint-config-standard": "^25.0.0", "tailwindcss": "^3.0.2", "ts-jest": "29.1.1", + "ts-morph": "^24.0.0", "typescript": "5.5.4", "vite": "^5.4.11", - "vite-plugin-dts": "~2.3.0", + "vite-plugin-dts": "~3.8.1", "vitest": "^2.1.5" } }, @@ -289,22 +292,6 @@ } } }, - "node_modules/@angular-devkit/architect/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@angular-devkit/architect/node_modules/ajv-formats": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", @@ -2041,22 +2028,6 @@ } } }, - "node_modules/@angular-devkit/core/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@angular-devkit/core/node_modules/ajv-formats": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", @@ -3901,22 +3872,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@angular/cli/node_modules/ajv-formats": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", @@ -11023,11 +10978,6 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "node_modules/@knapsack/schema-utils/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, "node_modules/@knapsack/spec-utils": { "version": "4.69.14", "resolved": "https://registry.npmjs.org/@knapsack/spec-utils/-/spec-utils-4.69.14.tgz", @@ -11129,6 +11079,14 @@ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" }, + "node_modules/@lit/react": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.6.tgz", + "integrity": "sha512-QIss8MPh6qUoFJmuaF4dSHts3qCsA36S3HcOLiNPShxhgYPr4XJRnCBKPipk85sR9xr6TQrOcDMfexwbNdJHYA==", + "peerDependencies": { + "@types/react": "17 || 18" + } + }, "node_modules/@lit/reactive-element": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", @@ -15196,18 +15154,18 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.47.9", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.47.9.tgz", - "integrity": "sha512-TTq30M1rikVsO5wZVToQT/dGyJY7UXJmjiRtkHPLb74Prx3Etw8+bX7Bv7iLuby6ysb7fuu1NFWqma+csym8Jw==", - "dev": true, - "dependencies": { - "@microsoft/api-extractor-model": "7.29.8", - "@microsoft/tsdoc": "~0.15.0", - "@microsoft/tsdoc-config": "~0.17.0", - "@rushstack/node-core-library": "5.9.0", - "@rushstack/rig-package": "0.5.3", - "@rushstack/terminal": "0.14.2", - "@rushstack/ts-command-line": "4.22.8", + "version": "7.43.0", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.43.0.tgz", + "integrity": "sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor-model": "7.28.13", + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "4.0.2", + "@rushstack/rig-package": "0.5.2", + "@rushstack/terminal": "0.10.0", + "@rushstack/ts-command-line": "4.19.1", "lodash": "~4.17.15", "minimatch": "~3.0.3", "resolve": "~1.22.1", @@ -15220,160 +15178,14 @@ } }, "node_modules/@microsoft/api-extractor-model": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.29.8.tgz", - "integrity": "sha512-t3Z/xcO6TRbMcnKGVMs4uMzv/gd5j0NhMiJIGjD4cJMeFJ1Hf8wnLSx37vxlRlL0GWlGJhnFgxvnaL6JlS+73g==", - "dev": true, - "dependencies": { - "@microsoft/tsdoc": "~0.15.0", - "@microsoft/tsdoc-config": "~0.17.0", - "@rushstack/node-core-library": "5.9.0" - } - }, - "node_modules/@microsoft/api-extractor-model/node_modules/@rushstack/node-core-library": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.9.0.tgz", - "integrity": "sha512-MMsshEWkTbXqxqFxD4gcIUWQOCeBChlGczdZbHfqmNZQFLHB3yWxDFSMHFUdu2/OB9NUk7Awn5qRL+rws4HQNg==", + "version": "7.28.13", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.13.tgz", + "integrity": "sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==", "dev": true, "dependencies": { - "ajv": "~8.13.0", - "ajv-draft-04": "~1.0.0", - "ajv-formats": "~3.0.1", - "fs-extra": "~7.0.1", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.22.1", - "semver": "~7.5.4" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@microsoft/api-extractor-model/node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@microsoft/api-extractor-model/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@microsoft/api-extractor-model/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@microsoft/api-extractor-model/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@microsoft/api-extractor-model/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/@rushstack/node-core-library": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.9.0.tgz", - "integrity": "sha512-MMsshEWkTbXqxqFxD4gcIUWQOCeBChlGczdZbHfqmNZQFLHB3yWxDFSMHFUdu2/OB9NUk7Awn5qRL+rws4HQNg==", - "dev": true, - "dependencies": { - "ajv": "~8.13.0", - "ajv-draft-04": "~1.0.0", - "ajv-formats": "~3.0.1", - "fs-extra": "~7.0.1", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.22.1", - "semver": "~7.5.4" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@microsoft/api-extractor/node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "4.0.2" } }, "node_modules/@microsoft/api-extractor/node_modules/brace-expansion": { @@ -15386,29 +15198,6 @@ "concat-map": "0.0.1" } }, - "node_modules/@microsoft/api-extractor/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/@microsoft/api-extractor/node_modules/minimatch": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", @@ -15443,31 +15232,57 @@ "node": ">=14.17" } }, - "node_modules/@microsoft/api-extractor/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/@microsoft/tsdoc": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", - "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", "dev": true }, "node_modules/@microsoft/tsdoc-config": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", - "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", + "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", "dev": true, "dependencies": { - "@microsoft/tsdoc": "0.15.0", - "ajv": "~8.12.0", + "@microsoft/tsdoc": "0.14.2", + "ajv": "~6.12.6", "jju": "~1.4.0", - "resolve": "~1.22.2" + "resolve": "~1.19.0" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/@module-federation/bridge-react-webpack-plugin": { @@ -18431,12 +18246,11 @@ "dev": true }, "node_modules/@rushstack/node-core-library": { - "version": "3.66.1", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.66.1.tgz", - "integrity": "sha512-ker69cVKAoar7MMtDFZC4CzcDxjwqIhFzqEnYI5NRN/8M3om6saWCVx/A7vL2t/jFCJsnzQplRDqA7c78pytng==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-4.0.2.tgz", + "integrity": "sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==", "dev": true, "dependencies": { - "colors": "~1.2.1", "fs-extra": "~7.0.1", "import-lazy": "~4.0.0", "jju": "~1.4.0", @@ -18486,9 +18300,9 @@ } }, "node_modules/@rushstack/rig-package": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", - "integrity": "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.2.tgz", + "integrity": "sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==", "dev": true, "dependencies": { "resolve": "~1.22.1", @@ -18496,12 +18310,12 @@ } }, "node_modules/@rushstack/terminal": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.14.2.tgz", - "integrity": "sha512-2fC1wqu1VCExKC0/L+0noVcFQEXEnoBOtCIex1TOjBzEDWcw8KzJjjj7aTP6mLxepG0XIyn9OufeFb6SFsa+sg==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.10.0.tgz", + "integrity": "sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==", "dev": true, "dependencies": { - "@rushstack/node-core-library": "5.9.0", + "@rushstack/node-core-library": "4.0.2", "supports-color": "~8.1.1" }, "peerDependencies": { @@ -18513,86 +18327,6 @@ } } }, - "node_modules/@rushstack/terminal/node_modules/@rushstack/node-core-library": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.9.0.tgz", - "integrity": "sha512-MMsshEWkTbXqxqFxD4gcIUWQOCeBChlGczdZbHfqmNZQFLHB3yWxDFSMHFUdu2/OB9NUk7Awn5qRL+rws4HQNg==", - "dev": true, - "dependencies": { - "ajv": "~8.13.0", - "ajv-draft-04": "~1.0.0", - "ajv-formats": "~3.0.1", - "fs-extra": "~7.0.1", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.22.1", - "semver": "~7.5.4" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@rushstack/terminal/node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@rushstack/terminal/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@rushstack/terminal/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@rushstack/terminal/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/@rushstack/terminal/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -18608,22 +18342,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@rushstack/terminal/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/@rushstack/ts-command-line": { - "version": "4.22.8", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.22.8.tgz", - "integrity": "sha512-XbFjOoV7qZHJnSuFUHv0pKaFA4ixyCuki+xMjsMfDwfvQjs5MYG0IK5COal3tRnG7KCDe2l/G+9LrzYE/RJhgg==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.19.1.tgz", + "integrity": "sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==", "dev": true, "dependencies": { - "@rushstack/terminal": "0.14.2", + "@rushstack/terminal": "0.10.0", "@types/argparse": "1.0.38", "argparse": "~1.0.9", "string-argv": "~0.3.1" @@ -20970,42 +20695,26 @@ } }, "node_modules/@ts-morph/common": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.19.0.tgz", - "integrity": "sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.25.0.tgz", + "integrity": "sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg==", "dev": true, "dependencies": { - "fast-glob": "^3.2.12", - "minimatch": "^7.4.3", - "mkdirp": "^2.1.6", - "path-browserify": "^1.0.1" + "minimatch": "^9.0.4", + "path-browserify": "^1.0.1", + "tinyglobby": "^0.2.9" } }, "node_modules/@ts-morph/common/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@ts-morph/common/node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", - "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -22511,6 +22220,88 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -22889,34 +22680,20 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "dev": true, - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", @@ -25019,9 +24796,9 @@ } }, "node_modules/code-block-writer": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz", - "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", "dev": true }, "node_modules/codemirror": { @@ -25109,15 +24886,6 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, - "node_modules/colors": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", - "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/columnify": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", @@ -25231,6 +24999,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -26097,23 +25871,17 @@ "dev": true }, "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", "dev": true, "dependencies": { - "cssom": "~0.3.6" + "rrweb-cssom": "^0.6.0" }, "engines": { - "node": ">=8" + "node": ">=14" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -26303,17 +26071,17 @@ } }, "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", "dev": true, "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "whatwg-url": "^12.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/date-fns": { @@ -26341,9 +26109,15 @@ } }, "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "dev": true + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", "dev": true }, "node_modules/debounce": { @@ -27233,9 +27007,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", - "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -28370,8 +28144,7 @@ "node_modules/fast-uri": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "dev": true + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -28420,6 +28193,20 @@ "pend": "~1.2.0" } }, + "node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fetch-retry": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", @@ -31953,6 +31740,63 @@ } } }, + "node_modules/jest-environment-jsdom/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/jest-environment-jsdom/node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", @@ -31967,6 +31811,76 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-environment-jsdom/node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-jsdom/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", @@ -32741,27 +32655,24 @@ } }, "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", + "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", "dev": true, "dependencies": { "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", "domexception": "^4.0.0", - "escodegen": "^2.0.0", "form-data": "^4.0.0", "html-encoding-sniffer": "^3.0.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.1.2", @@ -32769,12 +32680,12 @@ "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" }, "peerDependencies": { "canvas": "^2.5.0" @@ -34526,6 +34437,12 @@ "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" } }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", @@ -40045,6 +39962,12 @@ "fsevents": "~2.3.2" } }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, "node_modules/run-applescript": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", @@ -42482,6 +42405,31 @@ "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", "dev": true }, + "node_modules/tinyglobby": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", + "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", + "dev": true, + "dependencies": { + "fdir": "^6.4.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tinypool": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", @@ -42585,15 +42533,15 @@ } }, "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dev": true, "dependencies": { - "punycode": "^2.1.1" + "punycode": "^2.3.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/tree-dump": { @@ -42753,13 +42701,13 @@ } }, "node_modules/ts-morph": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-18.0.0.tgz", - "integrity": "sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==", + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-24.0.0.tgz", + "integrity": "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==", "dev": true, "dependencies": { - "@ts-morph/common": "~0.19.0", - "code-block-writer": "^12.0.0" + "@ts-morph/common": "~0.25.0", + "code-block-writer": "^13.0.3" } }, "node_modules/ts-node": { @@ -42849,9 +42797,9 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/tsscmp": { "version": "1.0.6", @@ -43780,53 +43728,30 @@ "dev": true }, "node_modules/vite-plugin-dts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-2.3.0.tgz", - "integrity": "sha512-WbJgGtsStgQhdm3EosYmIdTGbag5YQpZ3HXWUAPCDyoXI5qN6EY0V7NXq0lAmnv9hVQsvh0htbYcg0Or5Db9JQ==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.8.3.tgz", + "integrity": "sha512-yRHiRosQw7MXdOhmcrVI+kRiB8YEShbSxnADNteK4eZGdEoyOkMHihvO5XOAVlOq8ng9sIqu8vVefDK1zcj3qw==", "dev": true, "dependencies": { - "@babel/parser": "^7.21.4", - "@microsoft/api-extractor": "^7.34.4", - "@rollup/pluginutils": "^5.0.2", - "@rushstack/node-core-library": "^3.55.2", + "@microsoft/api-extractor": "7.43.0", + "@rollup/pluginutils": "^5.1.0", + "@vue/language-core": "^1.8.27", "debug": "^4.3.4", - "fast-glob": "^3.2.12", - "fs-extra": "^10.1.0", - "kolorist": "^1.7.0", - "magic-string": "^0.29.0", - "ts-morph": "18.0.0" + "kolorist": "^1.8.0", + "magic-string": "^0.30.8", + "vue-tsc": "^1.8.27" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": ">=2.9.0" - } - }, - "node_modules/vite-plugin-dts/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-plugin-dts/node_modules/magic-string": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", - "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "typescript": "*", + "vite": "*" }, - "engines": { - "node": ">=12" + "peerDependenciesMeta": { + "vite": { + "optional": true + } } }, "node_modules/vite/node_modules/@rollup/rollup-android-arm-eabi": { @@ -44180,6 +44105,33 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", @@ -44822,16 +44774,16 @@ } }, "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", "dev": true, "dependencies": { - "tr46": "^3.0.0", + "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/which": { diff --git a/package.json b/package.json index 28536e07ee..a2549d80ed 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@knapsack/app": "^4.69.12", "@knapsack/renderer-angular": "^4.69.12", "@knapsack/renderer-web-components": "^4.69.12", + "@lit/react": "^1.0.6", "@material/banner": "15.0.0-canary.7f224ddd4.0", "@material/button": "15.0.0-canary.7f224ddd4.0", "@material/card": "15.0.0-canary.7f224ddd4.0", @@ -96,7 +97,7 @@ "shepherd.js": "^9.0.0", "showdown": "^2.1.0", "skeleton-elements": "^4.0.1", - "tslib": "^2.0.0", + "tslib": "^2.3.0", "zone.js": "0.13.1" }, "resolutions": { @@ -170,6 +171,7 @@ "jest-environment-jsdom": "29.7.0", "jest-esm-transformer": "^1.0.0", "jest-preset-angular": "14.1.1", + "jsdom": "~22.1.0", "monaco-editor-webpack-plugin": "^7.1.0", "ng-packagr": "18.2.1", "nx": "19.8.9", @@ -191,9 +193,10 @@ "stylelint-config-standard": "^25.0.0", "tailwindcss": "^3.0.2", "ts-jest": "29.1.1", + "ts-morph": "^24.0.0", "typescript": "5.5.4", "vite": "^5.4.11", - "vite-plugin-dts": "~2.3.0", + "vite-plugin-dts": "~3.8.1", "vitest": "^2.1.5" } } diff --git a/scripts/export-components.js b/scripts/export-components.js new file mode 100644 index 0000000000..91dae1b892 --- /dev/null +++ b/scripts/export-components.js @@ -0,0 +1,67 @@ +const fs = require('fs'); +const path = require('path'); + +// Paths +const componentsConfigPath = path.resolve( + __dirname, + '../libs/components/component-config.json' +); +const packageJsonPath = path.resolve( + __dirname, + '../libs/components/package.json' +); +const indexTsPath = path.resolve(__dirname, '../libs/components/src/index.ts'); + +// Read components-config.json +let componentsConfig = JSON.parse( + fs.readFileSync(componentsConfigPath, 'utf8') +); + +// Sort components alphabetically by `name` +componentsConfig = componentsConfig.sort((a, b) => + a.name.localeCompare(b.name) +); + +// Generate exports object for package.json +const exportsObject = componentsConfig.reduce((exportsObj, component) => { + const componentName = path.basename(component.path); // Get last directory from path + exportsObj[`./${componentName}`] = { + types: `${component.path}.d.ts`, + import: `./${componentName}.mjs`, + require: `./${componentName}.js`, + }; + return exportsObj; +}, {}); + +// Read package.json +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); + +// Update package.json with the new exports +packageJson.exports = { + '.': { + sass: './index.scss', + import: './index.mjs', + require: './index.js', + }, + './icon/icon.theme': './icon/_icon.theme.scss', + './data-table.theme': './data-table/_data-table.theme.scss', + './theme': { + sass: './theme/_index.scss', + }, // Other existing exports + ...exportsObject, +}; + +// Write back to package.json +fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8'); + +// Generate exports for index.ts +const indexExports = componentsConfig + .map((component) => `export * from '${component.path}';`) + .join('\n'); + +// Write to index.ts +fs.writeFileSync(indexTsPath, indexExports, 'utf8'); + +console.log( + 'Successfully updated package.json and index.ts with sorted dynamic exports!' +); diff --git a/scripts/react-wrappers.js b/scripts/react-wrappers.js new file mode 100644 index 0000000000..ec7c6851dd --- /dev/null +++ b/scripts/react-wrappers.js @@ -0,0 +1,120 @@ +const fs = require('fs'); +const path = require('path'); + +// Paths +const componentsJsonPath = path.resolve( + __dirname, + '../libs/components/component-config.json' +); +const reactWrappersDir = path.resolve( + __dirname, + '../libs/components-react/src' +); +const indexFilePath = path.join(reactWrappersDir, 'index.ts'); + +// Clear the contents of index.ts file if it exists +if (fs.existsSync(indexFilePath)) { + fs.writeFileSync(indexFilePath, '', 'utf8'); // Clear or initialize the file +} + +// Ensure the React components directory exists +if (!fs.existsSync(reactWrappersDir)) { + fs.mkdirSync(reactWrappersDir, { recursive: true }); +} + +// Function to convert a string to PascalCase +const toPascalCase = (str) => { + return str + .replace(/(?:^\w|[A-Z]|\b\w|\s+|-)/g, (match, index) => + index === 0 ? match.toUpperCase() : match.toUpperCase() + ) + .replace(/-+/g, '') // Remove hyphens + .replace(/\s+/g, ''); // Remove spaces +}; + +const getEventList = (events) => { + const content = events + .map((event) => { + const key = `on${event + .split('-') + .map((word, index) => + index === 0 ? word : word[0].toUpperCase() + word.slice(1) + ) + .join('')}`; + return `\t\t${key}: '${event}'`; // Indent each line + }) + .join(',\n'); // Add newlines between entries + + return `{\n${content},\n\t},`; // Wrap with braces and add newlines +}; + +// Function to generate React wrapper for each component +const generateWrapper = (componentName, tagName, componentPath, events) => { + const pascalCaseFolderName = toPascalCase(componentPath.split('/')[1]); + const reactFolderPath = path.join(reactWrappersDir, pascalCaseFolderName); + const reactFileName = `${componentName}.tsx`; + const specFilePath = path.join(reactFolderPath, `${componentName}.spec.ts`); + const reactFilePath = path.join(reactFolderPath, reactFileName); + + // Ensure the React folder for the component exists + if (!fs.existsSync(reactFolderPath)) { + fs.mkdirSync(reactFolderPath, { recursive: true }); + } + + // Wrapper content for the React component + const wrapperContent = `import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { ${componentName} as ${componentName}Web } from '@covalent/components'; +export const ${componentName} = createComponent({ + tagName: '${tagName}', + elementClass: ${componentName}Web, + react: React,${events.length ? `\n\tevents: ${getEventList(events)}` : ''} +}); + `; + + // Test file for the React component + const specContent = `import { ${componentName} } from './${componentName}'; + +describe('${componentName}', () => { + it('should work', () => { + expect(${componentName}).toBeTruthy(); + }); +});`; + + fs.writeFileSync(reactFilePath, wrapperContent, 'utf8'); + + fs.writeFileSync(specFilePath, specContent, 'utf8'); + + // Add export statement to the index.ts file + const exportStatement = `export * from './${pascalCaseFolderName}/${componentName}';\n`; + fs.appendFileSync(indexFilePath, exportStatement); +}; + +// Read the components JSON file +if (fs.existsSync(componentsJsonPath)) { + const componentsJson = JSON.parse( + fs.readFileSync(componentsJsonPath, 'utf8') + ).sort((a, b) => a.name.localeCompare(b.name)); + + componentsJson.forEach((component) => { + const { + name: componentName, + selector: tagName, + path: componentPath, + events: events, + } = component; + + if (componentName && tagName && componentPath) { + generateWrapper(componentName, tagName, componentPath, events || []); + console.log(`Generated wrapper for ${componentName}`); + } else { + console.log( + `Invalid component entry in JSON: ${JSON.stringify(component)}` + ); + } + }); +} else { + console.error(`Components JSON file not found at ${componentsJsonPath}`); +} + +console.log('React wrapper generation complete.'); diff --git a/tsconfig.base.json b/tsconfig.base.json index 932cf5a1f9..1ad996d6dd 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -17,6 +17,7 @@ "paths": { "@covalent/code-editor": ["libs/angular-code-editor/src/public_api.ts"], "@covalent/components": ["libs/components/src/index.ts"], + "@covalent/components-react": ["libs/components-react/src/index.ts"], "@covalent/core": ["libs/angular/public_api.ts"], "@covalent/core/breadcrumbs": [ "libs/angular/breadcrumbs/src/public_api.ts" From 2d156c39b660d1331d378e83cec0c4054edf658c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 26 Nov 2024 20:31:39 +0000 Subject: [PATCH 11/22] ci(release): 9.0.0-beta.3 [skip ci] --- docs/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index b111e0f454..76e81ae5b2 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,9 @@ +# [9.0.0-beta.3](https://github.com/Teradata/covalent/compare/v9.0.0-beta.2...v9.0.0-beta.3) (2024-11-26) + +### Features + +- **react-components:** create react web components ([34ae0ef](https://github.com/Teradata/covalent/commit/34ae0efdb73daf84935d8713b51cd7bd0ac86f36)) + # [9.0.0-beta.2](https://github.com/Teradata/covalent/compare/v9.0.0-beta.1...v9.0.0-beta.2) (2024-11-18) ### Bug Fixes From 010e2a2963861bc86bc59544d67cab9237d86fbd Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Tue, 26 Nov 2024 17:55:16 -0600 Subject: [PATCH 12/22] fix(styles): fix badge and card styling issues --- libs/components/src/badge/badge.scss | 16 ++++++++-------- libs/components/src/card/card.scss | 1 + scripts/react-wrappers.js | 11 ++++++----- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/libs/components/src/badge/badge.scss b/libs/components/src/badge/badge.scss index 5190848e1f..34e7faa529 100644 --- a/libs/components/src/badge/badge.scss +++ b/libs/components/src/badge/badge.scss @@ -21,23 +21,23 @@ } &.top-right { - top: -2px; - right: -2px; + top: var(--cv-badge-position-y, -2px); + right: var(--cv-badge-position-x, -2px); } &.top-left { - top: -2px; - left: -2px; + top: var(--cv-badge-position-y, -2px); + left: var(--cv-badge-position-x, -2px); } &.bottom-right { - bottom: -2px; - right: -2px; + bottom: var(--cv-badge-position-y, -2px); + right: var(--cv-badge-position-x, -2px); } &.bottom-left { - bottom: -2px; - left: -2px; + bottom: var(--cv-badge-position-y, -2px); + left: var(--cv-badge-position-x, -2px); } &.isolated { diff --git a/libs/components/src/card/card.scss b/libs/components/src/card/card.scss index 9db42e8bbf..521c1360c3 100644 --- a/libs/components/src/card/card.scss +++ b/libs/components/src/card/card.scss @@ -41,4 +41,5 @@ .mdc-card.mdc-card--outlined { background-color: var(--mdc-theme-surface); + border-color: var(--cv-theme-outline-variant); } diff --git a/scripts/react-wrappers.js b/scripts/react-wrappers.js index ec7c6851dd..0b33ddce8d 100644 --- a/scripts/react-wrappers.js +++ b/scripts/react-wrappers.js @@ -41,11 +41,11 @@ const getEventList = (events) => { index === 0 ? word : word[0].toUpperCase() + word.slice(1) ) .join('')}`; - return `\t\t${key}: '${event}'`; // Indent each line + return ` ${key}: '${event}'`; // Indent each line }) .join(',\n'); // Add newlines between entries - return `{\n${content},\n\t},`; // Wrap with braces and add newlines + return `{\n${content},\n },`; // Wrap with braces and add newlines }; // Function to generate React wrapper for each component @@ -68,9 +68,9 @@ import { ${componentName} as ${componentName}Web } from '@covalent/components'; export const ${componentName} = createComponent({ tagName: '${tagName}', elementClass: ${componentName}Web, - react: React,${events.length ? `\n\tevents: ${getEventList(events)}` : ''} + react: React,${events.length ? `\n events: ${getEventList(events)}` : ''} }); - `; +`; // Test file for the React component const specContent = `import { ${componentName} } from './${componentName}'; @@ -79,7 +79,8 @@ describe('${componentName}', () => { it('should work', () => { expect(${componentName}).toBeTruthy(); }); -});`; +}); +`; fs.writeFileSync(reactFilePath, wrapperContent, 'utf8'); From 1006acc0eb5c99a4b2ff9fd367e37472fb798995 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 27 Nov 2024 00:01:31 +0000 Subject: [PATCH 13/22] ci(release): 9.0.0-beta.4 [skip ci] --- docs/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 76e81ae5b2..6d1b30fd9f 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,9 @@ +# [9.0.0-beta.4](https://github.com/Teradata/covalent/compare/v9.0.0-beta.3...v9.0.0-beta.4) (2024-11-26) + +### Bug Fixes + +- **styles:** fix badge and card styling issues ([af3dc7b](https://github.com/Teradata/covalent/commit/af3dc7b10ae91bc8af9905be26c0555dc3371f25)) + # [9.0.0-beta.3](https://github.com/Teradata/covalent/compare/v9.0.0-beta.2...v9.0.0-beta.3) (2024-11-26) ### Features From 4389b4fdb15c1c9be423751004ca5a40452c11c6 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Tue, 26 Nov 2024 18:35:02 -0600 Subject: [PATCH 14/22] docs(components): update new component docs --- docs/COMPONENTS_DEVELOPER_GUIDE.md | 95 +++++++++++++++++++----------- 1 file changed, 62 insertions(+), 33 deletions(-) diff --git a/docs/COMPONENTS_DEVELOPER_GUIDE.md b/docs/COMPONENTS_DEVELOPER_GUIDE.md index 88e2a78d23..16f246ef0d 100644 --- a/docs/COMPONENTS_DEVELOPER_GUIDE.md +++ b/docs/COMPONENTS_DEVELOPER_GUIDE.md @@ -127,46 +127,75 @@ npx nx run components:test ## Step 7: Export the component for build inclusion -1. Open **libs/components/src/index.ts** and export the component as follows: +1. Open **libs/components/component-config.json** and add component details as follows: -```typescript -export * from './badge/badge'; -``` +- **`name`**: + The class name of the component, as defined in the component file. + +- **`selector`**: + The selector for the component. + +- **`path`**: + The relative path to the component file. -2. Open **libs/components/package.json** and add the component export: +- **`events`**: + A list of events dispatched by the component. + + **Important**: Always include events here! + React wrapper components will not listen to events unless they are explicitly listed in this property. ```json -"./badge": { - "types": "./badge/badge.d.ts", - "import": "./badge.mjs", - "require": "./badge.js" -}, +[ + ..., + { + "name": "CovalentBadge", + "selector": "cv-badge", + "path": "./badge/badge", + "events": ["change", "action"] + }, + ... +] ``` -3. Open **libs/components/vite.config.js** and include it in the build configuration: +## Step 8: Generate library exports and React component wrappers -```typescript -const { defineConfig } = require('vite'); - -// https://vitejs.dev/config/ -module.exports = defineConfig(({ mode }) => { - return { - define: { - 'process.env.NODE_ENV': JSON.stringify(mode), - }, - build: { - lib: { - entry: [ - // other entries... - 'libs/components/src/badge/badge', - // other entries... - ], - }, - }, - }; -}); +#### Update library exports + +Run the following command: + +```bash +nx run components:build-exports +``` + +**What it does:** + +- Updates the `libs/components/package.json` file with the correct exports. +- Updates the `libs/components/src/index.ts` file to include the necessary exports. + +**Important:** +After running this command, verify the changes in both files to ensure the exports are accurate. + +#### Generate React wrappers + +Run the following command: + +```bash +nx run components-react:generate-react-wrappers +``` + +**What it does:** + +- Creates a React wrapper component and its corresponding test file in the `libs/components-react/src` folder. +- Updates the `libs/components-react/src/index.ts` file to include the new React wrapper component. + +**Note:** +Review the generated React wrapper components and test files to ensure correctness. +Run the following command to test the react wrapper component: + +```bash +nx run components-react:test ``` -## Step 8: Create a pull request +## Step 9: Create a pull request -Once everything is complete, create a pull request using the [new web component template](https://github.com/Teradata/covalent/tree/main/.github/NEW_WEB_COMPONENT_TEMPLATE.md). +Once everything is complete, include all the files and create a pull request using the [new web component template](https://github.com/Teradata/covalent/tree/main/.github/NEW_WEB_COMPONENT_TEMPLATE.md). From 971b0fa45370d16dd5ecd5fc445973fc0f60a432 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Wed, 27 Nov 2024 10:57:03 -0600 Subject: [PATCH 15/22] build(components): upgrade monaco editor version --- libs/angular-code-editor/src/lib/code-editor.component.ts | 8 ++------ libs/components/vite.config.js | 4 +++- package-lock.json | 8 ++++---- package.json | 2 +- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/libs/angular-code-editor/src/lib/code-editor.component.ts b/libs/angular-code-editor/src/lib/code-editor.component.ts index 3d5a51981d..757ca6ed3a 100644 --- a/libs/angular-code-editor/src/lib/code-editor.component.ts +++ b/libs/angular-code-editor/src/lib/code-editor.component.ts @@ -20,11 +20,7 @@ import { fromEvent, merge, timer } from 'rxjs'; import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators'; // Use esm version to support shipping subset of languages and features -import { - editor, - languages, - IDisposable, -} from 'monaco-editor/esm/vs/editor/editor.api'; +import { editor, languages, IDisposable } from 'monaco-editor'; import { mixinControlValueAccessor, @@ -133,7 +129,7 @@ export class TdCodeEditorComponent applyValue(): void { if (!this._fromEditor) { - this._editor.setValue(this._value); + this._editor.setValue(this._value || ''); } this._fromEditor = false; this.propagateChange(this._value); diff --git a/libs/components/vite.config.js b/libs/components/vite.config.js index 8514145408..4497927f86 100644 --- a/libs/components/vite.config.js +++ b/libs/components/vite.config.js @@ -23,7 +23,9 @@ module.exports = defineConfig(({ mode }) => { define: { 'process.env.NODE_ENV': JSON.stringify(mode), }, - + optimizeDeps: { + include: ['monaco-editor'], // Ensure Monaco Editor is pre-bundled + }, build: { lib: { entry: ['libs/components/src/index.ts', ...getComponentEntries()], diff --git a/package-lock.json b/package-lock.json index e782cc1f61..18bcd12a99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,7 +73,7 @@ "highlight.js": "^11.9.0", "lit": "^2.2.8", "mjml-browser": "^4.15.3", - "monaco-editor": "^0.34.1", + "monaco-editor": "^0.52.0", "rxjs": "^7.4.0", "shepherd.js": "^9.0.0", "showdown": "^2.1.0", @@ -34343,9 +34343,9 @@ "dev": true }, "node_modules/monaco-editor": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.34.1.tgz", - "integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ==" + "version": "0.52.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.52.0.tgz", + "integrity": "sha512-OeWhNpABLCeTqubfqLMXGsqf6OmPU6pHM85kF3dhy6kq5hnhuVS1p3VrEW/XhWHc71P2tHyS5JFySD8mgs1crw==" }, "node_modules/monaco-editor-webpack-plugin": { "version": "7.1.0", diff --git a/package.json b/package.json index a2549d80ed..726336a4ab 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "highlight.js": "^11.9.0", "lit": "^2.2.8", "mjml-browser": "^4.15.3", - "monaco-editor": "^0.34.1", + "monaco-editor": "^0.52.0", "rxjs": "^7.4.0", "shepherd.js": "^9.0.0", "showdown": "^2.1.0", From 8bc50680da251bf0b831f82a51abc5defafae84c Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Wed, 27 Nov 2024 13:40:44 -0600 Subject: [PATCH 16/22] build(email-generator): fix build issues in libs --- apps/email-generator/project.json | 2 +- apps/email-generator/src/app/editor/editor.component.ts | 2 +- libs/angular-code-editor/src/lib/code-editor.component.ts | 6 +++++- libs/components-react/.eslintrc.json | 4 +--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/email-generator/project.json b/apps/email-generator/project.json index cc7c0f8051..5155ca82f1 100644 --- a/apps/email-generator/project.json +++ b/apps/email-generator/project.json @@ -39,7 +39,7 @@ { "type": "initial", "maximumWarning": "5mb", - "maximumError": "6mb" + "maximumError": "6.5mb" }, { "type": "anyComponentStyle", diff --git a/apps/email-generator/src/app/editor/editor.component.ts b/apps/email-generator/src/app/editor/editor.component.ts index d0e8e3aac2..48683fd6ec 100644 --- a/apps/email-generator/src/app/editor/editor.component.ts +++ b/apps/email-generator/src/app/editor/editor.component.ts @@ -2,7 +2,7 @@ import { Component, Input } from '@angular/core'; import { CommonModule } from '@angular/common'; import { CovalentCodeEditorModule } from '@covalent/code-editor'; import { PreviewComponent } from '../preview/preview.component'; -import { editor } from 'monaco-editor'; +import { editor } from 'monaco-editor/esm/vs/editor/editor.api'; import { getHtmlTemplate } from '@covalent/email-templates'; import * as prettier from 'prettier'; import parserHtml from 'prettier/parser-html'; // Use 'html' parser while working with MJML diff --git a/libs/angular-code-editor/src/lib/code-editor.component.ts b/libs/angular-code-editor/src/lib/code-editor.component.ts index 757ca6ed3a..b5369ed495 100644 --- a/libs/angular-code-editor/src/lib/code-editor.component.ts +++ b/libs/angular-code-editor/src/lib/code-editor.component.ts @@ -20,7 +20,11 @@ import { fromEvent, merge, timer } from 'rxjs'; import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators'; // Use esm version to support shipping subset of languages and features -import { editor, languages, IDisposable } from 'monaco-editor'; +import { + editor, + languages, + IDisposable, +} from 'monaco-editor/esm/vs/editor/editor.api'; import { mixinControlValueAccessor, diff --git a/libs/components-react/.eslintrc.json b/libs/components-react/.eslintrc.json index 498a74926e..2564a6e49b 100644 --- a/libs/components-react/.eslintrc.json +++ b/libs/components-react/.eslintrc.json @@ -17,9 +17,7 @@ { "files": ["*.json"], "parser": "jsonc-eslint-parser", - "rules": { - "@nx/dependency-checks": ["error"] - } + "rules": {} } ] } From 10bcd4dad032a9f5cb0e98a10da3ac0972c0d243 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju <148156994+bsahitya@users.noreply.github.com> Date: Mon, 2 Dec 2024 18:33:36 -0600 Subject: [PATCH 17/22] feat(icon-lockup): add icon lockup component (#2277) --- libs/components/package.json | 5 + .../src/icon-lockup/icon-lockup.scss | 47 +++++++ .../src/icon-lockup/icon-lockup.spec.ts | 11 ++ .../src/icon-lockup/icon-lockup.stories.js | 93 +++++++++++++ .../components/src/icon-lockup/icon-lockup.ts | 125 ++++++++++++++++++ libs/components/src/index.ts | 1 + 6 files changed, 282 insertions(+) create mode 100644 libs/components/src/icon-lockup/icon-lockup.scss create mode 100644 libs/components/src/icon-lockup/icon-lockup.spec.ts create mode 100644 libs/components/src/icon-lockup/icon-lockup.stories.js create mode 100644 libs/components/src/icon-lockup/icon-lockup.ts diff --git a/libs/components/package.json b/libs/components/package.json index e96e5c3df5..8da9d6ee31 100644 --- a/libs/components/package.json +++ b/libs/components/package.json @@ -141,6 +141,11 @@ "import": "./icon-check-toggle.mjs", "require": "./icon-check-toggle.js" }, + "./icon-lockup": { + "types": "./icon-lockup/icon-lockup.d.ts", + "import": "./icon-lockup.mjs", + "require": "./icon-lockup.js" + }, "./icon-radio-toggle": { "types": "./icon-radio/icon-radio-toggle.d.ts", "import": "./icon-radio-toggle.mjs", diff --git a/libs/components/src/icon-lockup/icon-lockup.scss b/libs/components/src/icon-lockup/icon-lockup.scss new file mode 100644 index 0000000000..fa783540ef --- /dev/null +++ b/libs/components/src/icon-lockup/icon-lockup.scss @@ -0,0 +1,47 @@ +.filled { + font-variation-settings: 'FILL' 1; +} + +.hidden { + display: none; +} + +.icon-lockup { + align-items: center; + display: flex; + gap: 4px; + max-width: 100%; + + cv-typography { + flex: 1 0 0; + } +} + +.icon-lockup--primary, +.icon-lockup--loading { + color: var(--cv-theme-primary); +} + +.icon-lockup--positive { + color: var(--cv-theme-positive); +} + +.icon-lockup--negative { + color: var(--cv-theme-negative); +} + +.icon-lockup--caution { + color: var(--cv-theme-caution); +} + +.text { + font-feature-settings: 'liga' off, 'clig' off; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.trailing-icon { + flex-direction: row-reverse; +} diff --git a/libs/components/src/icon-lockup/icon-lockup.spec.ts b/libs/components/src/icon-lockup/icon-lockup.spec.ts new file mode 100644 index 0000000000..40be58bb40 --- /dev/null +++ b/libs/components/src/icon-lockup/icon-lockup.spec.ts @@ -0,0 +1,11 @@ +/** + * @vitest-environment jsdom + */ +import { it, describe, expect } from 'vitest'; +import { CovalentIconLockup } from './icon-lockup'; + +describe('Icon lockup', () => { + it('should work', () => { + expect(new CovalentIconLockup()).toBeDefined(); + }); +}); diff --git a/libs/components/src/icon-lockup/icon-lockup.stories.js b/libs/components/src/icon-lockup/icon-lockup.stories.js new file mode 100644 index 0000000000..4ba6867530 --- /dev/null +++ b/libs/components/src/icon-lockup/icon-lockup.stories.js @@ -0,0 +1,93 @@ +import './icon-lockup'; +import '../circular-progress/circular-progress'; + +export default { + title: 'Components/Icon lockup', + argTypes: { + scale: { + options: [ + 'headline1', + 'headline2', + 'headline3', + 'headline4', + 'headline5', + 'headline6', + 'subtitle1', + 'subtitle2', + 'button', + 'caption', + 'overline', + 'body1', + 'body2', + ], + control: { type: 'select' }, + }, + state: { + options: ['primary', 'positive', 'negative', 'caution', null], + control: { type: 'select' }, + }, + }, + args: { + covalentIcon: false, + filledIcon: false, + icon: 'houseboat', + scale: 'body1', + state: 'null', + trailingIcon: false, + }, +}; + +const Template = ({ + icon, + scale, + trailingIcon, + state, + covalentIcon, + filledIcon, +}) => { + return `Lorem ipsum dolor sit amet`; +}; + +const LoadingTemplate = ({ scale, trailingIcon, state }) => { + return `Lorem ipsum dolor sit amet + + `; +}; + +export const Basic = Template.bind({}); + +export const Primary = Template.bind({}); +Primary.args = { + state: 'primary', +}; + +export const Positive = Template.bind({}); +Positive.args = { + state: 'positive', + icon: 'check', +}; + +export const Negative = Template.bind({}); +Negative.args = { + state: 'negative', + icon: 'error', + filledIcon: true, +}; + +export const Caution = Template.bind({}); +Caution.args = { + state: 'caution', + icon: 'warning', + filledIcon: true, +}; + +export const Loading = LoadingTemplate.bind({}); +Loading.args = { + state: 'primary', +}; diff --git a/libs/components/src/icon-lockup/icon-lockup.ts b/libs/components/src/icon-lockup/icon-lockup.ts new file mode 100644 index 0000000000..a4b9670ad3 --- /dev/null +++ b/libs/components/src/icon-lockup/icon-lockup.ts @@ -0,0 +1,125 @@ +import { LitElement, html, css, unsafeCSS, PropertyValues } from 'lit'; +import { customElement, property, state } from 'lit/decorators.js'; +import { classMap } from 'lit/directives/class-map.js'; +import styles from './icon-lockup.scss?inline'; +import '../typography/typography'; +import '../icon/icon'; + +/** + * Icon lockup + * + * @slot icon - Slot for a custom icon. If provided, this slot content replaces the `icon` property. + */ +@customElement('cv-icon-lockup') +export class CovalentIconLockup extends LitElement { + static override styles = [ + css` + ${unsafeCSS(styles)} + `, + ]; + + /** + * Whether the icon is a covalent icon. + */ + @property({ type: Boolean, reflect: true }) + covalentIcon = false; + + /** + * Whether the icon is filled. + */ + @property({ type: Boolean, reflect: true }) + filledIcon = false; + + /** + * The icon to display. + */ + @property({ type: String }) + icon = ''; + + /** + * Scale of the component, controlling font-size and icon size. + * Default is "1", but it can be set to other values to scale the component. + */ + @property({ type: String }) + scale = 'body1'; + + /** + * State of the component, used to apply different styles based on status. + * Example values might include "success", "error", etc. + */ + @property({ type: String }) + state = 'neutral'; + + /** + * If true, the icon is displayed after the text (trailing). + * If false, the icon is displayed before the text. + */ + @property({ type: Boolean }) + trailingIcon = false; + + /** + * Tracks if the icon slot has content. + */ + @state() private _hasIconSlot = false; + + /** + * Checks if there is content in the icon slot and updates `hasIconSlot`. + */ + private checkIconSlot() { + const slot = this.shadowRoot?.querySelector( + 'slot[name="icon"]' + ) as HTMLSlotElement; + this._hasIconSlot = slot && slot.assignedNodes().length > 0; + } + + /** + * Template method for rendering the icon. If content is provided in the + * `icon` slot, it is displayed instead of the `icon` property. + */ + private iconTemplate() { + const classes = { + 'covalent-icon': this.covalentIcon, + filled: this.filledIcon, + hidden: this._hasIconSlot, + }; + return html` + + ${this.icon} + `; + } + + /** + * Renders the component with icon and text. If `trailingIcon` is true, + * the icon is displayed after the text. Otherwise, it is displayed before. + */ + render() { + const classes = { + 'icon-lockup': true, + [`icon-lockup--${this.state}`]: this.state, + 'trailing-icon': this.trailingIcon, + }; + + return html` + + ${this.iconTemplate()} +
+
+ `; + } + + protected override updated(_changedProperties: PropertyValues): void { + super.updated(_changedProperties); + this.checkIconSlot(); + } +} + +declare global { + interface HTMLElementTagNameMap { + 'cv-icon-lockup': CovalentIconLockup; + } +} + +export default CovalentIconLockup; diff --git a/libs/components/src/index.ts b/libs/components/src/index.ts index fdbbd2f084..89313a67cc 100644 --- a/libs/components/src/index.ts +++ b/libs/components/src/index.ts @@ -23,6 +23,7 @@ export * from './icon/icon'; export * from './icon-button/icon-button'; export * from './icon-button-toggle/icon-button-toggle'; export * from './icon-checkbox/icon-check-toggle'; +export * from './icon-lockup/icon-lockup'; export * from './icon-radio/icon-radio-toggle'; export * from './linear-progress/linear-progress'; export * from './list/list'; From 1c396d806453257da2169bc899a1f19dd1a73ce7 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Dec 2024 00:39:12 +0000 Subject: [PATCH 18/22] ci(release): 8.24.0 [skip ci] --- docs/CHANGELOG.md | 6 ++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 6d1b30fd9f..203746ef27 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -26,6 +26,12 @@ - **covalent:** Upgrade covalent to Angular 18 +# [8.24.0](https://github.com/Teradata/covalent/compare/v8.23.2...v8.24.0) (2024-12-03) + +### Features + +- **icon-lockup:** add icon lockup component ([#2277](https://github.com/Teradata/covalent/issues/2277)) ([57abfde](https://github.com/Teradata/covalent/commit/57abfdee6e6309f30c6d70038a37868bd3888348)) + ## [8.23.2](https://github.com/Teradata/covalent/compare/v8.23.1...v8.23.2) (2024-11-18) ### Bug Fixes diff --git a/package-lock.json b/package-lock.json index 18bcd12a99..6d2a463c80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "covalent", - "version": "8.23.2", + "version": "8.24.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "covalent", - "version": "8.23.2", + "version": "8.24.0", "hasInstallScript": true, "dependencies": { "@angular/animations": "18.x.x", diff --git a/package.json b/package.json index 726336a4ab..0cd70c9091 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "covalent", - "version": "8.23.2", + "version": "8.24.0", "description": "Teradata UI Platform built on Angular Material", "keywords": [ "angular", From 50eecfb3f3cce5f3b8963659ef91165ab85021a5 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Tue, 3 Dec 2024 09:46:04 -0600 Subject: [PATCH 19/22] feat(components-react): add icon lockup component --- .../src/IconLockup/CovalentIconLockup.spec.ts | 7 +++++++ .../src/IconLockup/CovalentIconLockup.tsx | 8 ++++++++ libs/components-react/src/index.ts | 1 + libs/components/component-config.json | 5 +++++ 4 files changed, 21 insertions(+) create mode 100644 libs/components-react/src/IconLockup/CovalentIconLockup.spec.ts create mode 100644 libs/components-react/src/IconLockup/CovalentIconLockup.tsx diff --git a/libs/components-react/src/IconLockup/CovalentIconLockup.spec.ts b/libs/components-react/src/IconLockup/CovalentIconLockup.spec.ts new file mode 100644 index 0000000000..c097a69ae2 --- /dev/null +++ b/libs/components-react/src/IconLockup/CovalentIconLockup.spec.ts @@ -0,0 +1,7 @@ +import { CovalentIconLockup } from './CovalentIconLockup'; + +describe('CovalentIconLockup', () => { + it('should work', () => { + expect(CovalentIconLockup).toBeTruthy(); + }); +}); diff --git a/libs/components-react/src/IconLockup/CovalentIconLockup.tsx b/libs/components-react/src/IconLockup/CovalentIconLockup.tsx new file mode 100644 index 0000000000..ba8e587aa0 --- /dev/null +++ b/libs/components-react/src/IconLockup/CovalentIconLockup.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { createComponent } from '@lit/react'; +import { CovalentIconLockup as CovalentIconLockupWeb } from '@covalent/components'; +export const CovalentIconLockup = createComponent({ + tagName: 'cv-icon-lockup', + elementClass: CovalentIconLockupWeb, + react: React, +}); diff --git a/libs/components-react/src/index.ts b/libs/components-react/src/index.ts index ee8bf50b6a..4eb7dddb3f 100644 --- a/libs/components-react/src/index.ts +++ b/libs/components-react/src/index.ts @@ -23,6 +23,7 @@ export * from './Icon/CovalentIcon'; export * from './IconButton/CovalentIconButton'; export * from './IconButtonToggle/CovalentIconButtonToggle'; export * from './IconCheckbox/CovalentIconCheckToggle'; +export * from './IconLockup/CovalentIconLockup'; export * from './IconRadio/CovalentIconRadioToggle'; export * from './LinearProgress/CovalentLinearProgress'; export * from './List/CovalentList'; diff --git a/libs/components/component-config.json b/libs/components/component-config.json index aed42dd602..27b27c01bf 100644 --- a/libs/components/component-config.json +++ b/libs/components/component-config.json @@ -128,6 +128,11 @@ "path": "./icon-checkbox/icon-check-toggle", "events": ["change"] }, + { + "name": "CovalentIconLockup", + "selector": "cv-icon-lockup", + "path": "./icon-lockup/icon-lockup" + }, { "name": "CovalentIconRadioToggle", "selector": "cv-radio-icon", From 7750ad0b1d4816ab47497d4fff18b0f5fdce1091 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju <148156994+bsahitya@users.noreply.github.com> Date: Mon, 2 Dec 2024 18:33:36 -0600 Subject: [PATCH 20/22] feat(icon-lockup): add icon lockup component (#2277) --- libs/components/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/components/package.json b/libs/components/package.json index 8da9d6ee31..8aeb909afa 100644 --- a/libs/components/package.json +++ b/libs/components/package.json @@ -306,4 +306,4 @@ }, "license": "MIT", "author": "Teradata UX" -} +} \ No newline at end of file From 4ae2ac463eff6337dfeb5ee57498830778a26423 Mon Sep 17 00:00:00 2001 From: Sahitya Buddharaju Date: Tue, 3 Dec 2024 10:11:44 -0600 Subject: [PATCH 21/22] fix(package): remove duplicate icon lockup entry --- libs/components/package.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/libs/components/package.json b/libs/components/package.json index eee7a25dd2..8da9d6ee31 100644 --- a/libs/components/package.json +++ b/libs/components/package.json @@ -146,11 +146,6 @@ "import": "./icon-lockup.mjs", "require": "./icon-lockup.js" }, - "./icon-lockup": { - "types": "./icon-lockup/icon-lockup.d.ts", - "import": "./icon-lockup.mjs", - "require": "./icon-lockup.js" - }, "./icon-radio-toggle": { "types": "./icon-radio/icon-radio-toggle.d.ts", "import": "./icon-radio-toggle.mjs", @@ -311,4 +306,4 @@ }, "license": "MIT", "author": "Teradata UX" -} \ No newline at end of file +} From e38590a0a84d3a69e334bedb98d2fb241435d135 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 9 Jan 2025 16:49:12 -0500 Subject: [PATCH 22/22] docs(angular): updating angular.dev links --- apps/docs-app/.browserslistrc | 2 +- .../dynamic-menu-demo-basic.component.ts | 2 +- .../docs/angular/angular.component.html | 14 +++-------- .../animations/animations.component.html | 2 +- .../directives/directives.component.html | 2 +- .../pipes/pipes.component.html | 4 ++-- apps/docs-app/src/polyfills.ts | 2 +- docs/COMPONENTS_QUICKSTART.md | 2 +- libs/angular-code-editor/.browserslistrc | 2 +- libs/angular-dynamic-forms/.browserslistrc | 2 +- libs/angular-echarts/.browserslistrc | 2 +- libs/angular-guided-tour/.browserslistrc | 2 +- libs/angular-highlight/.browserslistrc | 2 +- libs/angular-text-editor/.browserslistrc | 2 +- libs/angular/.browserslistrc | 2 +- libs/angular/dynamic-menu/README.md | 2 +- .../src/dynamic-menu.component.spec.ts | 2 +- libs/angular/loading/README.md | 24 ++++--------------- libs/markdown-flavored/.browserslistrc | 2 +- libs/markdown-navigator/.browserslistrc | 2 +- libs/markdown/.browserslistrc | 2 +- .../src/lib/markdown.component.spec.ts | 4 ++-- 22 files changed, 29 insertions(+), 53 deletions(-) diff --git a/apps/docs-app/.browserslistrc b/apps/docs-app/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/apps/docs-app/.browserslistrc +++ b/apps/docs-app/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/apps/docs-app/src/app/content/components/component-demos/dynamic-menu/demos/dynamic-menu-demo-basic/dynamic-menu-demo-basic.component.ts b/apps/docs-app/src/app/content/components/component-demos/dynamic-menu/demos/dynamic-menu-demo-basic/dynamic-menu-demo-basic.component.ts index 764fb4f28f..dc12dedf3f 100644 --- a/apps/docs-app/src/app/content/components/component-demos/dynamic-menu/demos/dynamic-menu-demo-basic/dynamic-menu-demo-basic.component.ts +++ b/apps/docs-app/src/app/content/components/component-demos/dynamic-menu/demos/dynamic-menu-demo-basic/dynamic-menu-demo-basic.component.ts @@ -70,7 +70,7 @@ export class DynamicMenuDemoBasicComponent { { // URL link text: 'Angular Homepage', - link: 'https://angular.io/', + link: 'https://angular.dev/', newTab: true, }, ], diff --git a/apps/docs-app/src/app/content/docs/angular/angular.component.html b/apps/docs-app/src/app/content/docs/angular/angular.component.html index 047c396f4b..863e9d41b1 100644 --- a/apps/docs-app/src/app/content/docs/angular/angular.component.html +++ b/apps/docs-app/src/app/content/docs/angular/angular.component.html @@ -22,7 +22,7 @@

Modern Web Dev

- Angular docs @@ -47,20 +47,12 @@

Modern Web Dev

>Angular Resources - + launch Angular Example App Tutorial - + launch Angular Quickstart app diff --git a/apps/docs-app/src/app/content/utilities/utilities-demos/animations/animations.component.html b/apps/docs-app/src/app/content/utilities/utilities-demos/animations/animations.component.html index c05c8b13ea..4b8df7cc5e 100644 --- a/apps/docs-app/src/app/content/utilities/utilities-demos/animations/animations.component.html +++ b/apps/docs-app/src/app/content/utilities/utilities-demos/animations/animations.component.html @@ -24,7 +24,7 @@

Setup

diff --git a/apps/docs-app/src/app/content/utilities/utilities-demos/directives/directives.component.html b/apps/docs-app/src/app/content/utilities/utilities-demos/directives/directives.component.html index 22cbd46888..fe8e9b9429 100644 --- a/apps/docs-app/src/app/content/utilities/utilities-demos/directives/directives.component.html +++ b/apps/docs-app/src/app/content/utilities/utilities-demos/directives/directives.component.html @@ -14,7 +14,7 @@

Setup

diff --git a/apps/docs-app/src/app/content/utilities/utilities-demos/pipes/pipes.component.html b/apps/docs-app/src/app/content/utilities/utilities-demos/pipes/pipes.component.html index cc1673c449..c8f1fb1486 100644 --- a/apps/docs-app/src/app/content/utilities/utilities-demos/pipes/pipes.component.html +++ b/apps/docs-app/src/app/content/utilities/utilities-demos/pipes/pipes.component.html @@ -17,7 +17,7 @@

Setup

@@ -266,7 +266,7 @@

>Angular Pipes - + launch Angular comes with a stock of pipes such as DatePipe, UpperCasePipe, diff --git a/apps/docs-app/src/polyfills.ts b/apps/docs-app/src/polyfills.ts index e4555ed11f..a5f4cc12dd 100644 --- a/apps/docs-app/src/polyfills.ts +++ b/apps/docs-app/src/polyfills.ts @@ -11,7 +11,7 @@ * automatically update themselves. This includes recent versions of Safari, Chrome (including * Opera), Edge on the desktop, and iOS and Chrome on mobile. * - * Learn more in https://angular.io/guide/browser-support + * Learn more in https://angular.dev/reference/versions#browser-support */ /*************************************************************************************************** diff --git a/docs/COMPONENTS_QUICKSTART.md b/docs/COMPONENTS_QUICKSTART.md index deeb7fbd90..00b722fb2f 100644 --- a/docs/COMPONENTS_QUICKSTART.md +++ b/docs/COMPONENTS_QUICKSTART.md @@ -56,7 +56,7 @@ yarn add @covalent/components ## Angular Integration -Applications using angular can use covalent components in the same way they use HTML elements today adding [`CUSTOM_ELEMENTS_SCHEMA`](https://angular.io/api/core/CUSTOM_ELEMENTS_SCHEMA) schema to any Angular module or standalone component. +Applications using angular can use covalent components in the same way they use HTML elements today adding [`CUSTOM_ELEMENTS_SCHEMA`](https://angular.dev/api/core/CUSTOM_ELEMENTS_SCHEMA) schema to any Angular module or standalone component. ```javascript import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; diff --git a/libs/angular-code-editor/.browserslistrc b/libs/angular-code-editor/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/angular-code-editor/.browserslistrc +++ b/libs/angular-code-editor/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/angular-dynamic-forms/.browserslistrc b/libs/angular-dynamic-forms/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/angular-dynamic-forms/.browserslistrc +++ b/libs/angular-dynamic-forms/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/angular-echarts/.browserslistrc b/libs/angular-echarts/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/angular-echarts/.browserslistrc +++ b/libs/angular-echarts/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/angular-guided-tour/.browserslistrc b/libs/angular-guided-tour/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/angular-guided-tour/.browserslistrc +++ b/libs/angular-guided-tour/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/angular-highlight/.browserslistrc b/libs/angular-highlight/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/angular-highlight/.browserslistrc +++ b/libs/angular-highlight/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/angular-text-editor/.browserslistrc b/libs/angular-text-editor/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/angular-text-editor/.browserslistrc +++ b/libs/angular-text-editor/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/angular/.browserslistrc b/libs/angular/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/angular/.browserslistrc +++ b/libs/angular/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/angular/dynamic-menu/README.md b/libs/angular/dynamic-menu/README.md index ae67ef11ed..477d788488 100644 --- a/libs/angular/dynamic-menu/README.md +++ b/libs/angular/dynamic-menu/README.md @@ -129,7 +129,7 @@ items: IMenuItem[] = [ children: [ { // URL link text: 'Angular Homepage', - link: 'https://angular.io/', + link: 'https://angular.dev/', newTab: true, }, ], diff --git a/libs/angular/dynamic-menu/src/dynamic-menu.component.spec.ts b/libs/angular/dynamic-menu/src/dynamic-menu.component.spec.ts index 0803a3ed57..c96e941a60 100644 --- a/libs/angular/dynamic-menu/src/dynamic-menu.component.spec.ts +++ b/libs/angular/dynamic-menu/src/dynamic-menu.component.spec.ts @@ -75,7 +75,7 @@ describe('Component: DynamicMenu', () => { { text: 'Angular Homepage', icon: 'star_rate', - link: 'https://angular.io/', + link: 'https://angular.dev/', newTab: true, }, ], diff --git a/libs/angular/loading/README.md b/libs/angular/loading/README.md index ed09feee57..67c7afbbe2 100644 --- a/libs/angular/loading/README.md +++ b/libs/angular/loading/README.md @@ -2,7 +2,7 @@ Simply add the `tdLoading` attribute with a [name] value to the element you want to mask. -Dont forget to add the asterisk syntax before the `tdLoading` directive if its not used in a `` element. More ingo on the asterisk (\*) syntax [here](https://angular.io/guide/structural-directives#asterisk) +Dont forget to add the asterisk syntax before the `tdLoading` directive if its not used in a `` element. More ingo on the asterisk (\*) syntax [here](https://angular.dev/guide/directives/structural-directives) ## API Summary @@ -87,11 +87,7 @@ export class MyModule {} Example for (\*) syntax: ```html -
- ... -
+
...
``` ```typescript @@ -116,25 +112,13 @@ export class Demo { Exmaple for (\*) until async syntax: ```html -
- {{item}} -
+
{{item}}
``` Example for `` syntax: ```html - - ... - + ... ``` ```typescript diff --git a/libs/markdown-flavored/.browserslistrc b/libs/markdown-flavored/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/markdown-flavored/.browserslistrc +++ b/libs/markdown-flavored/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/markdown-navigator/.browserslistrc b/libs/markdown-navigator/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/markdown-navigator/.browserslistrc +++ b/libs/markdown-navigator/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/markdown/.browserslistrc b/libs/markdown/.browserslistrc index 4f9ac26980..dd8e7041c2 100644 --- a/libs/markdown/.browserslistrc +++ b/libs/markdown/.browserslistrc @@ -3,7 +3,7 @@ # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: -# https://angular.io/guide/browser-support +# https://angular.dev/reference/versions#browser-support # You can see what browsers were selected by your queries by running: # npx browserslist diff --git a/libs/markdown/src/lib/markdown.component.spec.ts b/libs/markdown/src/lib/markdown.component.spec.ts index 1ec5f21802..2fd445f1f6 100644 --- a/libs/markdown/src/lib/markdown.component.spec.ts +++ b/libs/markdown/src/lib/markdown.component.spec.ts @@ -452,7 +452,7 @@ describe('Component: Markdown', () => { const RAW_LINK = 'https://raw.githubusercontent.com/Teradata/covalent/main/'; const RELATIVE_LINK = 'assets/covalent/'; - const EXTERNAL_URL = 'https://angular.io/'; + const EXTERNAL_URL = 'https://angular.dev/'; const SUB_DIRECTORY = 'docs/'; const links: string[][] = [ [`${ANCHOR}`, `${ANCHOR}`], @@ -524,7 +524,7 @@ describe('Component: Markdown', () => { 'https://raw.githubusercontent.com/Teradata/covalent/main/'; const RELATIVE_LINK = 'assets/covalent/'; const EXTERNAL_IMG = - 'https://angular.io/assets/images/logos/angular/angular.svg'; + 'https://angular.dev/assets/images/logos/angular/angular.svg'; const SUB_DIRECTORY = 'dir/'; const SVG_IMG = 'src/assets/icons/covalent.svg'; // these are not valid image urls