diff --git a/apps/showcase/db/contacts.json b/apps/showcase/db/contacts.json new file mode 100644 index 0000000000..0e3755dbd3 --- /dev/null +++ b/apps/showcase/db/contacts.json @@ -0,0 +1,109 @@ +{ + "contacts": [ + { + "id": "1", + "firstName": "Winnie", + "lastName": "The Pooh" + }, + { + "id": "2", + "firstName": "Christopher", + "lastName": "Robin" + }, + { + "id": "3", + "firstName": "Eyeore", + "lastName": "The Donkey" + }, + { + "id": "5", + "firstName": "Scrooge", + "lastName": "McDuck" + }, + { + "id": "6", + "firstName": "Tinker", + "lastName": "Bell" + }, + { + "id": "7", + "firstName": "Peter", + "lastName": "Pan" + }, + { + "id": "8", + "firstName": "Capitan", + "lastName": "Hook" + }, + { + "id": "9", + "firstName": "Snow", + "lastName": "White" + }, + { + "id": "10", + "firstName": "Prince", + "lastName": "Charming" + }, + { + "id": "11", + "firstName": "Fairy", + "lastName": "Godmother" + }, + { + "id": "12", + "firstName": "Simba", + "lastName": "The Lion" + }, + { + "id": "13", + "firstName": "Mufasa", + "lastName": "The Lion King" + }, + { + "id": "14", + "firstName": "Mike", + "lastName": "Wazowski" + }, + { + "id": "15", + "firstName": "James", + "lastName": "P. Sullivan" + }, + { + "id": "16", + "firstName": "Randall", + "lastName": "Boggs" + }, + { + "id": "17", + "firstName": "Buzz", + "lastName": "Lightyear" + }, + { + "id": "18", + "firstName": "Launchpad", + "lastName": "McQuack" + }, + { + "id": "19", + "firstName": "Minnie", + "lastName": "Mouse" + }, + { + "id": "20", + "firstName": "Mickey", + "lastName": "Mouse" + }, + { + "id": "21", + "firstName": "Donald", + "lastName": "Duck" + }, + { + "id": "22", + "firstName": "Daisy", + "lastName": "Duck" + } + ] +} diff --git a/apps/showcase/package.json b/apps/showcase/package.json index 465a600d5f..2950171fbe 100644 --- a/apps/showcase/package.json +++ b/apps/showcase/package.json @@ -9,6 +9,7 @@ "nx": "nx", "start": "ng run showcase:run", "build": "yarn run generate:translations && ng build", + "db": "json-server --watch db/contacts.json", "watch": "ng compile --watch --configuration development", "test": "ng test", "start:no-translation": "ng serve", @@ -58,6 +59,8 @@ "@o3r/rules-engine": "workspace:^", "@o3r/testing": "workspace:^", "@popperjs/core": "^2.11.5", + "@tanstack/angular-query-devtools-experimental": "^5.28.8", + "@tanstack/angular-query-experimental": "^5.28.8", "ag-grid-angular": "~31.0.3", "ag-grid-community": "~31.0.3", "bootstrap": "5.3.2", @@ -109,6 +112,7 @@ "jest-environment-jsdom": "~29.7.0", "jest-junit": "~16.0.0", "jest-preset-angular": "~14.0.3", + "json-server": "^1.0.0-alpha.23", "jsonc-eslint-parser": "~2.4.0", "lighthouse": "9.6.8", "playwright-lighthouse": "2.2.2", diff --git a/apps/showcase/project.json b/apps/showcase/project.json index 9f80c0b61a..12be176789 100644 --- a/apps/showcase/project.json +++ b/apps/showcase/project.json @@ -135,8 +135,18 @@ "^build" ] }, + "serve-db": { + "executor": "nx:run-commands", + "options": { + "commands": ["yarn db", "yarn ng serve showcase"], + "parallel": true + } + }, "serve-app": { "executor": "@angular-devkit/build-angular:dev-server", + "options": { + "proxyConfig": "./proxy.config.js" + }, "configurations": { "production": { "buildTarget": "showcase:compile:production" diff --git a/apps/showcase/src/app/app-routing.module.ts b/apps/showcase/src/app/app-routing.module.ts index c9d903823f..6fb24210df 100644 --- a/apps/showcase/src/app/app-routing.module.ts +++ b/apps/showcase/src/app/app-routing.module.ts @@ -12,6 +12,7 @@ const appRoutes: Routes = [ {path: 'home', loadComponent: () => import('./home/index').then((m) => m.HomeComponent)}, {path: 'run-app-locally', loadComponent: () => import('./run-app-locally/index').then((m) => m.RunAppLocallyComponent)}, {path: 'sdk', loadComponent: () => import('./sdk/index').then((m) => m.SdkComponent)}, + {path: 'tanstack', loadComponent: () => import('./tanstack/index').then((m) => m.TanstackComponent)}, {path: '**', redirectTo: '/home', pathMatch: 'full'} ]; diff --git a/apps/showcase/src/app/app.component.ts b/apps/showcase/src/app/app.component.ts index de8c240f10..a7f23974bd 100644 --- a/apps/showcase/src/app/app.component.ts +++ b/apps/showcase/src/app/app.component.ts @@ -38,6 +38,12 @@ export class AppComponent implements OnDestroy { links: [ { url: '/sdk', label: 'Generator' } ] + }, + { + label: 'Server side storage', + links: [ + { url: '/tanstack', label: 'Tanstack' } + ] } ]; diff --git a/apps/showcase/src/app/app.module.ts b/apps/showcase/src/app/app.module.ts index 3e91de342a..6b37237e28 100644 --- a/apps/showcase/src/app/app.module.ts +++ b/apps/showcase/src/app/app.module.ts @@ -33,6 +33,13 @@ import { ApplicationDevtoolsModule } from '@o3r/application'; import { C11nModule, ComponentsDevtoolsModule, OTTER_COMPONENTS_DEVTOOLS_OPTIONS, registerCustomComponent } from '@o3r/components'; import { DatePickerHebrewInputPresComponent } from '../components/utilities/date-picker-input-hebrew'; +// Tanstack +import { + provideAngularQuery, + QueryClient +} from '@tanstack/angular-query-experimental'; +import { HttpClientModule } from '@angular/common/http'; + const runtimeChecks: Partial = { strictActionImmutability: false, strictActionSerializability: false, @@ -87,6 +94,7 @@ export function registerCustomComponents(): Map { ], imports: [ BrowserModule, + HttpClientModule, BrowserAnimationsModule.withConfig({disableAnimations: prefersReducedMotion()}), EffectsModule.forRoot([]), StoreModule.forRoot({}, { runtimeChecks }), @@ -131,7 +139,8 @@ export function registerCustomComponents(): Map { {provide: OTTER_LOCALIZATION_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}}, {provide: OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}}, {provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}}, - {provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}} + {provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}}, + provideAngularQuery(new QueryClient()) ], bootstrap: [AppComponent] }) diff --git a/apps/showcase/src/app/tanstack/README.md b/apps/showcase/src/app/tanstack/README.md new file mode 100644 index 0000000000..107ede2c1e --- /dev/null +++ b/apps/showcase/src/app/tanstack/README.md @@ -0,0 +1,3 @@ +# Tanstack usage + +the Tanstack query page diff --git a/apps/showcase/src/app/tanstack/index.ts b/apps/showcase/src/app/tanstack/index.ts new file mode 100644 index 0000000000..9376d9218e --- /dev/null +++ b/apps/showcase/src/app/tanstack/index.ts @@ -0,0 +1 @@ +export * from './tanstack.component'; diff --git a/apps/showcase/src/app/tanstack/tanstack.component.ts b/apps/showcase/src/app/tanstack/tanstack.component.ts new file mode 100644 index 0000000000..5ae31fe412 --- /dev/null +++ b/apps/showcase/src/app/tanstack/tanstack.component.ts @@ -0,0 +1,40 @@ +import { AsyncPipe } from '@angular/common'; +import { AfterViewInit, ChangeDetectionStrategy, Component, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core'; +import { RouterLink } from '@angular/router'; +import { O3rComponent } from '@o3r/core'; +import { + CopyTextPresComponent, + IN_PAGE_NAV_PRES_DIRECTIVES, + InPageNavLink, + InPageNavLinkDirective, + InPageNavPresService, + TanstackPresComponent +} from '../../components'; + +@O3rComponent({ componentType: 'Page' }) +@Component({ + selector: 'o3r-tanstack', + standalone: true, + imports: [ + CopyTextPresComponent, + RouterLink, + TanstackPresComponent, + IN_PAGE_NAV_PRES_DIRECTIVES, + AsyncPipe + ], + templateUrl: './tanstack.template.html', + styleUrls: ['./tanstack.style.scss'], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class TanstackComponent implements AfterViewInit { + @ViewChildren(InPageNavLinkDirective) + private readonly inPageNavLinkDirectives!: QueryList; + public links$ = this.inPageNavPresService.links$; + + constructor(private readonly inPageNavPresService: InPageNavPresService) {} + + public ngAfterViewInit() { + this.inPageNavPresService.initialize(this.inPageNavLinkDirectives); + } +} diff --git a/apps/showcase/src/app/tanstack/tanstack.spec.ts b/apps/showcase/src/app/tanstack/tanstack.spec.ts new file mode 100644 index 0000000000..4b6f325e56 --- /dev/null +++ b/apps/showcase/src/app/tanstack/tanstack.spec.ts @@ -0,0 +1,35 @@ +import { PetApi } from '@ama-sdk/showcase-sdk'; +import { PetApiFixture } from '@ama-sdk/showcase-sdk/fixtures'; +import { AsyncPipe } from '@angular/common'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { RouterModule } from '@angular/router'; + +import { TanstackComponent } from './tanstack.component'; +import '@angular/localize/init'; + +describe('TanstackComponent', () => { + let component: TanstackComponent; + let fixture: ComponentFixture; + const petApiFixture = new PetApiFixture(); + petApiFixture.findPetsByStatus = petApiFixture.findPetsByStatus.mockResolvedValue([]); + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ + TanstackComponent, + RouterModule.forRoot([]), + AsyncPipe + ], + providers: [ + {provide: PetApi, useValue: petApiFixture} + ] + }); + fixture = TestBed.createComponent(TanstackComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/showcase/src/app/tanstack/tanstack.style.scss b/apps/showcase/src/app/tanstack/tanstack.style.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/showcase/src/app/tanstack/tanstack.template.html b/apps/showcase/src/app/tanstack/tanstack.template.html new file mode 100644 index 0000000000..e8c4ea18f4 --- /dev/null +++ b/apps/showcase/src/app/tanstack/tanstack.template.html @@ -0,0 +1,46 @@ +

SDK Generator

+
+
+ + +
+
+

Description

+
+

This module provide generators to create an SDK that can be used to simplify the communication with an API.

+

It also generates the Typescript classes matching the models of the API.

+
+ +

Example

+
+

+ Let's try to use the API https://petstore3.swagger.io +
+ Fortunately, this API provides the specification as Yaml file + that we can use to generate an SDK. +
+ Here, you can check the generated SDK +

+ +

+ Do not hesitate to run the application locally, if not installed yet, follow the instructions. +

+ Source code +
+ +

How to use

+
+ +
+ +

References

+ +
+
diff --git a/apps/showcase/src/components/showcase/index.ts b/apps/showcase/src/components/showcase/index.ts index fa34404ecc..6f628d42a6 100644 --- a/apps/showcase/src/components/showcase/index.ts +++ b/apps/showcase/src/components/showcase/index.ts @@ -5,3 +5,4 @@ export * from './dynamic-content/index'; export * from './localization/index'; export * from './rules-engine/index'; export * from './sdk/index'; +export * from './tanstack/index'; diff --git a/apps/showcase/src/components/showcase/tanstack/README.md b/apps/showcase/src/components/showcase/tanstack/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/showcase/src/components/showcase/tanstack/backend.service.ts b/apps/showcase/src/components/showcase/tanstack/backend.service.ts new file mode 100644 index 0000000000..ee870b10f1 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/backend.service.ts @@ -0,0 +1,188 @@ +import { computed, effect, inject, Injectable, signal} from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Contact } from './contact'; +import { URL } from './config'; +import { injectInfiniteQuery, injectMutation, injectQuery, injectQueryClient } from '@tanstack/angular-query-experimental'; +import { lastValueFrom, tap } from 'rxjs'; + +interface ContactResponse { + data: Contact[]; + next: number | undefined; + prev: number | undefined; +} + + +@Injectable({ + providedIn: 'root' +}) +export class BackEndService { + /// Tanstack query usage + private readonly http = inject(HttpClient); + public queryClient = injectQueryClient(); + public currentId = signal('1'); + public filter = signal(''); + public currentStart = signal(0); + public currentLimit = signal(5); + public currentPage = signal(1); + + public contact = injectQuery(() => ({ + queryKey: ['contact', this.currentId()], + queryFn: () => { + // console.log('in getContact$ with id', id); + return lastValueFrom(this.http.get(`${URL}/${this.currentId()}`)); + }, + staleTime: 60 * 1000, // 1 minute + initialData: () => this.queryClient.getQueryData(['contacts', ''])?.find((contact) => contact.id === this.currentId()), + initialDataUpdatedAt: () => this.queryClient.getQueryState(['contacts', ''])?.dataUpdatedAt + })); + + public contacts = injectQuery(() => ({ + queryKey: ['contacts', this.filter()], + queryFn: () => { + // console.log('in getContact$ with id', id); + return lastValueFrom(this.http.get(`${URL}?q=${this.filter()}`)); + }, + staleTime: 60 * 1000 // 1 min + })); + + public mutationSave = injectMutation(() => ({ + mutationFn: (contact: Contact) => { + // console.log('Save mutate contact:', contact); + return lastValueFrom(this.saveFn(contact)); + }, + onMutate: async (contact) => { + // cancel potential queries + await this.queryClient.cancelQueries({ queryKey: ['contacts'] }); + + + const savedCache = this.queryClient.getQueryData(['contacts', '']); + // console.log('savedCache', savedCache); + this.queryClient.setQueryData(['contacts', ''], (contacts: Contact[]) => { + if (contact.id) { + return contacts.map((contactCache) => + contactCache.id === contact.id ? contact : contactCache + ); + } + // optimistic update + return contacts.concat({ ...contact, id: Math.random().toString() }); + }); + return () => { + this.queryClient.setQueryData(['contacts', ''], savedCache); + }; + }, + onSuccess: (data: Contact, contact: Contact, restoreCache: () => void) => { + // Should we update the cache of a "contact" here ? + restoreCache(); + this.queryClient.setQueryData(['contact', data.id], data); + this.queryClient.setQueryData(['contacts', ''], (contactsCache: Contact[]) => { + if (contact.id) { + return contactsCache.map((contactCache) => + contactCache.id === contact.id ? contact : contactCache + ); + } + return contactsCache.concat(data); + }); + }, + onError: async (_error, variables, context) => { + context?.(); + await this.settledFn(variables.id); + } + })); + + + public infiniteQuery = injectInfiniteQuery(() => ({ + queryKey: ['contacts'], + queryFn: ({ pageParam }) => { + return lastValueFrom(this.getInfiniteContacts(pageParam)); + }, + initialPageParam: this.currentPage(), + getPreviousPageParam: (firstPage) => firstPage.prev ?? undefined, + getNextPageParam: (lastPage) => lastPage.next ?? undefined + })); + + + public nextButtonDisabled = computed( + () => !this.#hasNextPage() || this.#isFetchingNextPage() + ); + public nextButtonText = computed(() => + this.#isFetchingNextPage() + ? 'Loading more...' + : this.#hasNextPage() + ? 'Load newer' + : 'Nothing more to load' + ); + public previousButtonDisabled = computed( + () => !this.#hasPreviousPage() || this.#isFetchingNextPage() + ); + public previousButtonText = computed(() => + this.#isFetchingPreviousPage() + ? 'Loading more...' + : this.#hasPreviousPage() + ? 'Load Older' + : 'Nothing more to load' + ); + + readonly #hasPreviousPage = this.infiniteQuery.hasPreviousPage; + readonly #hasNextPage = this.infiniteQuery.hasNextPage; + readonly #isFetchingPreviousPage = this.infiniteQuery.isFetchingPreviousPage; + readonly #isFetchingNextPage = this.infiniteQuery.isFetchingNextPage; + + + constructor() { + effect(async () => { if (!this.nextButtonDisabled()) { + await this.fetchNextPage(); + }}); + } + + public async settledFn(contactId: string | undefined) { + await this.queryClient.invalidateQueries({ queryKey: ['contacts']}); + if (contactId) { + await this.queryClient.invalidateQueries({ queryKey: ['contact', contactId]}); + } + } + + public saveFn(contact: Contact) { + if (contact.id) { + return this.http.put(`${URL}/${contact.id}`, contact); + } + return this.http.post(`${URL}`, contact); + } + + public removeFn(id: string) { + return this.http.delete(`${URL}/${id}`); + } + + public getInfiniteContacts(pageParam: number) { + return this.http.get(`${URL}?_page=${pageParam.toString()}&_per_page=${this.currentLimit().toString()}`).pipe(tap(() => this.currentPage.set(pageParam))); + } + + public async fetchNextPage() { + // Do nothing if already fetching + if (this.infiniteQuery.isFetching()) { + return; + } + await this.infiniteQuery.fetchNextPage(); + } + + + // createMutationRemoveContact() { + // return this.useMutation((contactId: string) => this.removeFn(contactId), { + // onMutate: (id: string) => { + // const savedCache = this.queryClient.getQueryData(['contacts', '']); + // console.log('savedCache', savedCache); + // this.queryClient.setQueryData(['contacts', ''], (contacts: Contact[]) => + // // optimistic update + // contacts.filter((contactCached) => contactCached.id !== id) + // ); + // return () => { + // this.queryClient.setQueryData(['contacts', ''], savedCache); + // }; + // }, + // onError: (error, variables, restoreCache: () => void) => { + // restoreCache(); + // this.settledFn(variables); + // }, + // onSettled: (data: Contact, error, variables) => this.settledFn(variables) + // }); + // } +} diff --git a/apps/showcase/src/components/showcase/tanstack/config.ts b/apps/showcase/src/components/showcase/tanstack/config.ts new file mode 100644 index 0000000000..b96310ad40 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/config.ts @@ -0,0 +1 @@ +export const URL = 'http://localhost:4200/contacts'; diff --git a/apps/showcase/src/components/showcase/tanstack/contact.service.ts b/apps/showcase/src/components/showcase/tanstack/contact.service.ts new file mode 100644 index 0000000000..92ea25b3f4 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/contact.service.ts @@ -0,0 +1,58 @@ +// import { inject, Injectable, OnDestroy } from '@angular/core'; +// import { BackEndService } from './backend.service'; +// import { BehaviorSubject, Subject, Subscription } from 'rxjs'; +// import { map, shareReplay, switchMap } from 'rxjs/operators'; +// import { filterSuccess } from '@ngneat/query'; + +// @Injectable({ +// providedIn: 'root' +// }) +// export class ContactService implements OnDestroy { +// // private state +// private _subscription = new Subscription(); +// private _filter$ = new BehaviorSubject(''); +// private backend = inject(BackEndService); +// private _contactId$ = new Subject(); + +// // public readable API +// filter$ = this._filter$.asObservable(); +// contactId$ = this._contactId$.asObservable(); +// filteredContacts$ = this._filter$.pipe( +// switchMap((filter) => { +// return this.backend.getContacts$(filter).result$.pipe( +// filterSuccess(), +// map((project) => project.data) +// ); +// }) +// ); +// contactsCount$ = this.filteredContacts$.pipe(map((data) => data.length)); +// saveMutation = this.backend.createMutationSaveContact(); +// saveMutationResult$ = this.saveMutation.result$.pipe(shareReplay(1)); +// removeMutation = this.backend.createMutationRemoveContact(); +// removeMutationResult$ = this.removeMutation.result$.pipe(shareReplay(1)); + +// getContact$(id: string) { +// return this.backend.getContact$(id); +// } + +// getFilter$Value() { +// return this._filter$.value; +// } + +// // public writable API +// // remove(id: string) { +// // // TODO We can display an error if it fail ? +// // this.removeMutation.mutate(id); +// // } +// // save(contact: Contact) { +// // this.saveMutation.mutate(contact); +// // } + +// filter(text: string) { +// this._filter$.next(text); +// } + +// ngOnDestroy(): void { +// this._subscription.unsubscribe(); +// } +// } diff --git a/apps/showcase/src/components/showcase/tanstack/contact.ts b/apps/showcase/src/components/showcase/tanstack/contact.ts new file mode 100644 index 0000000000..40fe2aab46 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/contact.ts @@ -0,0 +1,6 @@ +export interface Contact { + id?: string; + firstName: string; + lastName: string; +} + diff --git a/apps/showcase/src/components/showcase/tanstack/index.ts b/apps/showcase/src/components/showcase/tanstack/index.ts new file mode 100644 index 0000000000..4003638bf8 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/index.ts @@ -0,0 +1 @@ +export * from './tanstack-pres.component'; diff --git a/apps/showcase/src/components/showcase/tanstack/tanstack-pres.component.ts b/apps/showcase/src/components/showcase/tanstack/tanstack-pres.component.ts new file mode 100644 index 0000000000..4a8a60c7e2 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/tanstack-pres.component.ts @@ -0,0 +1,32 @@ +import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { NgbHighlight, NgbPagination, NgbPaginationPages } from '@ng-bootstrap/ng-bootstrap'; +import { O3rComponent } from '@o3r/core'; +import { OtterPickerPresComponent } from '../../utilities'; +import { TanstackService } from './tanstack.service'; +import { AngularQueryDevtools } from '@tanstack/angular-query-devtools-experimental'; +import { JsonPipe } from '@angular/common'; + + +@O3rComponent({ componentType: 'Component' }) +@Component({ + selector: 'o3r-tanstack-pres', + standalone: true, + imports: [ + NgbHighlight, + FormsModule, + NgbPagination, + OtterPickerPresComponent, + NgbPaginationPages, + AngularQueryDevtools, + JsonPipe + ], + providers: [TanstackService], + templateUrl: './tanstack-pres.template.html', + styleUrls: ['./tanstack-pres.style.scss'], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class TanstackPresComponent { + public service = inject(TanstackService); +} diff --git a/apps/showcase/src/components/showcase/tanstack/tanstack-pres.spec.ts b/apps/showcase/src/components/showcase/tanstack/tanstack-pres.spec.ts new file mode 100644 index 0000000000..db7cc1e1c0 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/tanstack-pres.spec.ts @@ -0,0 +1,29 @@ +import { PetApi } from '@ama-sdk/showcase-sdk'; +import { PetApiFixture } from '@ama-sdk/showcase-sdk/fixtures'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TanstackPresComponent } from './tanstack-pres.component'; +import '@angular/localize/init'; + +describe('SdkPresComponent', () => { + let component: TanstackPresComponent; + let fixture: ComponentFixture; + const petApiFixture = new PetApiFixture(); + petApiFixture.findPetsByStatus = petApiFixture.findPetsByStatus.mockResolvedValue([]); + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [TanstackPresComponent], + providers: [ + {provide: PetApi, useValue: petApiFixture} + ] + }); + fixture = TestBed.createComponent(TanstackPresComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/showcase/src/components/showcase/tanstack/tanstack-pres.style.scss b/apps/showcase/src/components/showcase/tanstack/tanstack-pres.style.scss new file mode 100644 index 0000000000..d90338c857 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/tanstack-pres.style.scss @@ -0,0 +1,18 @@ +o3r-sdk-pres { + .table-container { + min-height: 41rem; + } + + .table-column-photo, .table-column-actions { + width: 2em; + } + + .scroll-container { + width: 100%; + overflow-x: auto; + } + + td, th { + vertical-align: middle; + } +} diff --git a/apps/showcase/src/components/showcase/tanstack/tanstack-pres.template.html b/apps/showcase/src/components/showcase/tanstack/tanstack-pres.template.html new file mode 100644 index 0000000000..02fb6d5c8e --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/tanstack-pres.template.html @@ -0,0 +1,180 @@ +
+
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+ +
+ +
+
+ @if (service.mutationAdd.isPending()) { + Adding Pet... + } @else if (service.mutationAdd.isError()) { +
An error occurred: {{ service.mutationAdd.error()?.message }}
+ } + @if (service.mutationDelete.isPending()) { + Deleting Pet... + } @else if (service.mutationDelete.isError()) { +
An error occurred: {{ service.mutationDelete.error()?.message }}
+ } + @if (service.pets.isPending()) { +
+ Loading... +
+ } + @switch (service.pets.status()) { + @case ('error') { +
+ Failed to load the list + +
+ } + @default { + @if (service.pets.isFetching()) { + Refreshing... + } + } + } +
+
+
+
+ + + + + + + + + + + @for (pet of service.displayedPets(); track pet.id) { + + + + + + + } + +
IconNameTagsActions
+ @if (pet.photoUrls?.[0]; as icon) { + {{icon}} + } + + + + +
+
+
+
+ + + @if (pages.length > 0) { +
  • +
    + + + of {{pages.length}} +
    +
  • + } +
    +
    + + +
    +
    +
    +
    + +
    + @if (this.service.backend.infiniteQuery.isPending()) { +

    Loading...

    + } @else if (this.service.backend.infiniteQuery.isError()) { + Error: {{ this.service.backend.infiniteQuery?.error().message }} + } @else { + @for (page of this.service.backend.infiniteQuery?.data().pages; track $index) { + @for (contact of page.data; track contact.id) { +

    {{ contact.firstName }} {{ contact.id }}

    + } + } +
    + +
    + } +
    + {{ + this.service.backend.infiniteQuery.isFetching() && !this.service.backend.infiniteQuery.isFetchingNextPage() + ? 'Background Updating...' + : null + }} +
    +
    + + diff --git a/apps/showcase/src/components/showcase/tanstack/tanstack.service.ts b/apps/showcase/src/components/showcase/tanstack/tanstack.service.ts new file mode 100644 index 0000000000..2da77526a1 --- /dev/null +++ b/apps/showcase/src/components/showcase/tanstack/tanstack.service.ts @@ -0,0 +1,177 @@ +import { computed, inject, Injectable, signal } from '@angular/core'; +import { toSignal } from '@angular/core/rxjs-interop'; +import { DfMedia } from '@design-factory/design-factory'; +import { PetApi} from '@ama-sdk/showcase-sdk'; +import type { Pet, Tag } from '@ama-sdk/showcase-sdk'; + +const FILTER_PAG_REGEX = /[^0-9]/g; + +// Tanstack +import {injectMutation, injectQuery, injectQueryClient, type QueryClient } from '@tanstack/angular-query-experimental'; +import { BackEndService } from './backend.service'; + +@Injectable() +export class TanstackService { + private readonly petStoreApi = inject(PetApi); + private readonly mediaService = inject(DfMedia); + public readonly backend = inject(BackEndService); + + /** + * Name input used to create new pets + */ + public petName = signal(''); + + /** + * File input used to create new pets + */ + public petImage = signal(''); + + /** + * Search term used to filter the list of pets + */ + public searchTerm = signal(''); + + /** + * Number of items to display on a table page + */ + public pageSize = signal(10); + + /** + * Currently opened page on the table + */ + public currentPage = signal(1); + + + public queryClient = injectQueryClient(); + + /** + * Complete list of pets retrieved from the API + */ + public pets = injectQuery(() => ({ + queryKey: ['findPetsByStatus', {status: 'available'}], + // eslint-disable-next-line @typescript-eslint/no-shadow + queryFn: ({signal}) => + this.petStoreApi.findPetsByStatus({status: 'available'}, {signal}).then((pets: Pet[]) => + pets.filter((p: Pet) => p.category?.name === 'otter').sort((a: Pet, b: Pet) => a.id && b.id && a.id - b.id || 0)), + initialData: [] + })); + + + public mutationUploadFile = injectMutation((client: QueryClient) => ({ + mutationFn: (petFile: {petId: number; body: any}) => this.petStoreApi.uploadFile(petFile), + onSuccess: async () => { + // Invalidate and refetch by using the client directly + await client.invalidateQueries({ queryKey: ['findPetsByStatus'] }); + } + })); + + + public mutationAdd = injectMutation((client: QueryClient) => ({ + mutationFn: (pet: Pet) => this.petStoreApi.addPet({ + // eslint-disable-next-line @typescript-eslint/naming-convention + Pet: pet + }), + onSuccess: async (_data: any, pet: Pet, _context: any) => { + if (pet.photoUrls.length) { + const filePath = `${this.baseUrl}${pet.photoUrls[0]}`; + const blob = await (await fetch(filePath)).blob(); + this.mutationUploadFile.mutate({petId: pet.id!, body: new File([blob], filePath, {type: blob.type})}); + } else { + await client.invalidateQueries({ queryKey: ['findPetsByStatus'] }); + } + } + })); + + public mutationDelete = injectMutation((client: QueryClient) => ({ + mutationFn: async (petId: number) => { + try { + await this.petStoreApi.deletePet({petId}); + } catch (ex) { + // The backend respond with incorrect header application/json while the response is just a string + // console.log('ex', ex); + // We need to parse the string and return true only when the error is not an error. + } + return true; + }, + onSuccess: async () => { + await client.invalidateQueries({ queryKey: ['findPetsByStatus'] }); + } + })); + + /** + * List of pets filtered according to search term + */ + public filteredPets = computed(() => { + let pets = this.pets.data(); + if (this.searchTerm()) { + const matchString = new RegExp(this.searchTerm().replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), 'i'); + const matchTag = (tag: Tag) => tag.name && matchString.test(tag.name); + pets = pets.filter((pet: Pet) => + (pet.id && matchString.test(String(pet.id))) || + matchString.test(pet.name) || + (pet.category?.name && matchString.test(pet.category.name)) || + (pet.tags && pet.tags.some(matchTag))); + } + return pets; + }); + + /** + * Total amount of pet in the filtered list + */ + public totalPetsAmount = computed(() => this.filteredPets().length); + + /** + * List of pets displayed in the currently selected table page + */ + public displayedPets = computed(() => + this.filteredPets().slice((this.currentPage() - 1) * this.pageSize(), (this.currentPage()) * this.pageSize()) + ); + + /** + * True if screen size is 'xs' or 'sm' + */ + public isSmallScreen = toSignal(this.mediaService.getObservable(['xs', 'sm'])); + + /** Base URL where the images can be fetched */ + public baseUrl = location.href.split('/#', 1)[0]; + + private getNextId() { + return this.pets.data().reduce((maxId: number, pet: Pet) => pet.id && pet.id < Number.MAX_SAFE_INTEGER ? Math.max(maxId, pet.id) : maxId, 0) + 1; + } + + /** + * Trigger a full reload of the list of pets by calling the API + */ + public async reload() { + await this.queryClient.invalidateQueries({ queryKey: ['findPetsByStatus'] }); + } + + /** + * Call the API to create a new pet + */ + public create() { + const pet: Pet = { + id: this.getNextId(), + name: this.petName(), + category: {name: 'otter'}, + tags: [{name: 'otter'}], + status: 'available', + photoUrls: this.petName() ? [this.petImage()] : [] + }; + this.mutationAdd.mutate(pet); + } + + public delete(petToDelete: Pet) { + if (petToDelete.id) { + this.mutationDelete.mutate(petToDelete.id); + } + } + + public getTags(pet: Pet) { + return pet.tags?.map((tag: Tag) => tag.name).join(','); + } + + public formatPaginationInput(input: HTMLInputElement) { + input.value = input.value.replace(FILTER_PAG_REGEX, ''); + } +} diff --git a/apps/showcase/src/style/dark-theme/dark-theme.scss b/apps/showcase/src/style/dark-theme/dark-theme.scss index c26ebe206a..c3773cf080 100644 --- a/apps/showcase/src/style/dark-theme/dark-theme.scss +++ b/apps/showcase/src/style/dark-theme/dark-theme.scss @@ -1,4 +1,3 @@ -@import "highlight.js/styles/a11y-dark.css"; :root { /* --- BEGIN THEME Auto-generated --- */ @@ -97,15 +96,4 @@ .card { --bs-card-color: #ffffff; } .card { --bs-card-bg: #000000; } /* --- END THEME Auto-generated --- */ - - .nav.nav-pills .nav-link { - --bs-scrollspy-color: #ffffff; - --bs-nav-pills-link-active-bg: transparent; - } - .input-group-text { - background-color: var(--bs-tertiary-bg); - } - .form-select { - --bs-form-select-bg-img: url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' viewBox='0 0 1792 1792' style='fill%3a%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m1408 704q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45z'/%3E%3C/svg%3E"); - } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 24794900a0..dafab1cd4b 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "build:tools": "yarn nx run-many --target=build --projects=eslint-plugin,workspace --parallel $(yarn get:cpus-number)", "build:lint": "yarn nx run-many --target=build --projects=eslint-plugin --parallel $(yarn get:cpus-number)", "build:swagger-gen": "yarn nx run-many --target=build-swagger --parallel $(yarn get:cpus-number)", + "db": "json-server --watch apps/showcase/db/contacts.json", "prepare:publish": "yarn prepare-publish \"$(yarn workspaces:list)\" --append dist", "publish": "yarn run prepare:publish && yarn nx run-many --target=publish --parallel $(yarn get:cpus-number) --nx-bail", "publish:extensions": "yarn nx run-many --target=publish-extension --parallel $(yarn get:cpus-number)", @@ -139,6 +140,8 @@ "dependencies": { "@angular/core": "~17.3.0", "@angular/platform-browser": "~17.3.0", + "@tanstack/angular-query-devtools-experimental": "^5.28.8", + "@tanstack/angular-query-experimental": "^5.28.8", "pixelmatch": "^5.2.1", "pngjs": "^7.0.0", "rxjs": "^7.8.1", diff --git a/proxy.config.js b/proxy.config.js new file mode 100644 index 0000000000..4f1ac60c8f --- /dev/null +++ b/proxy.config.js @@ -0,0 +1,12 @@ +// Used to redirect the different call using angular to specific URLs +// This serve kind of the role of a nginx or apache in PROD +// Called after the kassette proxy in browser +const PROXY_CONFIG = [ + { + context: ['/contacts'], + target: 'http://localhost:3000', + secure: false + } +]; + +module.exports = PROXY_CONFIG; diff --git a/yarn.lock b/yarn.lock index d4207b1b7e..660032a551 100644 --- a/yarn.lock +++ b/yarn.lock @@ -570,24 +570,24 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1703.1, @angular-devkit/architect@npm:~0.1703.0": - version: 0.1703.1 - resolution: "@angular-devkit/architect@npm:0.1703.1" +"@angular-devkit/architect@npm:0.1703.2, @angular-devkit/architect@npm:~0.1703.0": + version: 0.1703.2 + resolution: "@angular-devkit/architect@npm:0.1703.2" dependencies: - "@angular-devkit/core": "npm:17.3.1" + "@angular-devkit/core": "npm:17.3.2" rxjs: "npm:7.8.1" - checksum: 10/b9581abb7db13a840e699198348e8365b829c7c200761e784b115e7a19e9624e020f5a3517bf0e6bd2b208d34a1fa1f3b60bb4d8fe0efc36ed5cb8bb4544f2e3 + checksum: 10/094e8f0b3563dff55d98941e1dfbb7dee820e2cab3eeb0791669fac374de24bec0ba0c838beeb982e21e1dae13ea192699ebbe154fb1567c56e0d6c4a205cd82 languageName: node linkType: hard "@angular-devkit/build-angular@npm:~17.3.0": - version: 17.3.1 - resolution: "@angular-devkit/build-angular@npm:17.3.1" + version: 17.3.2 + resolution: "@angular-devkit/build-angular@npm:17.3.2" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1703.1" - "@angular-devkit/build-webpack": "npm:0.1703.1" - "@angular-devkit/core": "npm:17.3.1" + "@angular-devkit/architect": "npm:0.1703.2" + "@angular-devkit/build-webpack": "npm:0.1703.2" + "@angular-devkit/core": "npm:17.3.2" "@babel/core": "npm:7.24.0" "@babel/generator": "npm:7.23.6" "@babel/helper-annotate-as-pure": "npm:7.22.5" @@ -598,7 +598,7 @@ __metadata: "@babel/preset-env": "npm:7.24.0" "@babel/runtime": "npm:7.24.0" "@discoveryjs/json-ext": "npm:0.5.7" - "@ngtools/webpack": "npm:17.3.1" + "@ngtools/webpack": "npm:17.3.2" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.18" @@ -644,7 +644,7 @@ __metadata: vite: "npm:5.1.5" watchpack: "npm:2.4.0" webpack: "npm:5.90.3" - webpack-dev-middleware: "npm:6.1.1" + webpack-dev-middleware: "npm:6.1.2" webpack-dev-server: "npm:4.15.1" webpack-merge: "npm:5.10.0" webpack-subresource-integrity: "npm:5.1.0" @@ -688,20 +688,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10/cd6123a13ae8e87be39f6ccda502175192f6d1be0045efa87cb97bbfbcc2d1b2ab0a8eb70b11eac31b613df6bad6e3b1c47cdecbcb9b310fb397473adc61e897 + checksum: 10/5d1ff7ff5fd0e648e5cf9f5a468b3d52845a397d7c3fa559a57cf4e3528a1562c2a97f32d3ab34164690730a4c8f5c18c70cfc71cf2eac3ac364e71dc17b8e97 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1703.1": - version: 0.1703.1 - resolution: "@angular-devkit/build-webpack@npm:0.1703.1" +"@angular-devkit/build-webpack@npm:0.1703.2": + version: 0.1703.2 + resolution: "@angular-devkit/build-webpack@npm:0.1703.2" dependencies: - "@angular-devkit/architect": "npm:0.1703.1" + "@angular-devkit/architect": "npm:0.1703.2" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^4.0.0 - checksum: 10/ad42bc54481713ccb4ec477ef6dfbd3fdc6e43cdd2add6ed56b20a2578b41e9fc2c5ca033a00a6a2a61e704df0a3f2f48ba6dab093df91baaaeebace20d5c925 + checksum: 10/97a4ea0dd4f14ed40da25391d21994e9574258060bbfa91f1235cce6e735f8a8fcb46723be03c323bcb89341cf99cf5074157eff3104437221084709b714b5a6 languageName: node linkType: hard @@ -723,9 +723,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:17.3.1, @angular-devkit/core@npm:~17.3.0": - version: 17.3.1 - resolution: "@angular-devkit/core@npm:17.3.1" +"@angular-devkit/core@npm:17.3.2, @angular-devkit/core@npm:~17.3.0": + version: 17.3.2 + resolution: "@angular-devkit/core@npm:17.3.2" dependencies: ajv: "npm:8.12.0" ajv-formats: "npm:2.1.1" @@ -738,23 +738,23 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10/f4f42806cacec5e47314b1056e7a52c9a63d6172a4a12d30223eb1ce2e234758c1596761d93ca3f0f906522c38d3c90968c68efbcf4816b499ab33a3c9817a5b + checksum: 10/0362e94df2993c790542b7b00c50034f1a4f80e78c5b845d5f1423d578c1b984b966ae6317f9c0b7c99166ef8362fd7b0be837b9af0f6feb19ff1127cbab4675 languageName: node linkType: hard "@angular-devkit/schematics-cli@npm:~17.3.0": - version: 17.3.1 - resolution: "@angular-devkit/schematics-cli@npm:17.3.1" + version: 17.3.2 + resolution: "@angular-devkit/schematics-cli@npm:17.3.2" dependencies: - "@angular-devkit/core": "npm:17.3.1" - "@angular-devkit/schematics": "npm:17.3.1" + "@angular-devkit/core": "npm:17.3.2" + "@angular-devkit/schematics": "npm:17.3.2" ansi-colors: "npm:4.1.3" inquirer: "npm:9.2.15" symbol-observable: "npm:4.0.0" yargs-parser: "npm:21.1.1" bin: schematics: bin/schematics.js - checksum: 10/05be7e8beffd7c85474d6e34949d068bdc033a89fdf6c786b96026d592976b6bd26f6da23e7fe7745f01ebe44fe9106bd92aa5e56e0170642d5bf67dbc0ac560 + checksum: 10/72569da333396e71cc83ddf9bca0b22da1abfaef94a38fd18fc25c3e231b1cccae67d87c8d9ba8b454d192fd9e7f62cf880554a048a0ca07a1de1362f568762b languageName: node linkType: hard @@ -771,16 +771,16 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:17.3.1, @angular-devkit/schematics@npm:~17.3.0": - version: 17.3.1 - resolution: "@angular-devkit/schematics@npm:17.3.1" +"@angular-devkit/schematics@npm:17.3.2, @angular-devkit/schematics@npm:~17.3.0": + version: 17.3.2 + resolution: "@angular-devkit/schematics@npm:17.3.2" dependencies: - "@angular-devkit/core": "npm:17.3.1" + "@angular-devkit/core": "npm:17.3.2" jsonc-parser: "npm:3.2.1" magic-string: "npm:0.30.8" ora: "npm:5.4.1" rxjs: "npm:7.8.1" - checksum: 10/1c1a7b1e1733b34e083fc8e22a5528e792c774e1bf11a514d51e6d5edd3a536aef296f905ebe754b17f1972a7ff5f7f002102386ac88dab63ff2332ee036fbb4 + checksum: 10/48c3828e545cb58a40ac0e8857b28e2744d27eb3496b6e4f27f1a04b2db56d99afc607af24aadf7d8c3d72e65824a074bcbb654f6bacfac5dd899f5c186d9ccf languageName: node linkType: hard @@ -889,13 +889,13 @@ __metadata: linkType: hard "@angular/cli@npm:~17.3.0": - version: 17.3.1 - resolution: "@angular/cli@npm:17.3.1" + version: 17.3.2 + resolution: "@angular/cli@npm:17.3.2" dependencies: - "@angular-devkit/architect": "npm:0.1703.1" - "@angular-devkit/core": "npm:17.3.1" - "@angular-devkit/schematics": "npm:17.3.1" - "@schematics/angular": "npm:17.3.1" + "@angular-devkit/architect": "npm:0.1703.2" + "@angular-devkit/core": "npm:17.3.2" + "@angular-devkit/schematics": "npm:17.3.2" + "@schematics/angular": "npm:17.3.2" "@yarnpkg/lockfile": "npm:1.1.0" ansi-colors: "npm:4.1.3" ini: "npm:4.1.2" @@ -912,7 +912,7 @@ __metadata: yargs: "npm:17.7.2" bin: ng: bin/ng.js - checksum: 10/dfaa7efb3bc896cef4298d428c63fb7b5d8d0d3badbad9bfab12671389f3507c5f04b9df02d99900be0126b63e16ad435650d3a33b36fbffe10f2bcf99d09a5d + checksum: 10/2acdd273250228c71f896ae0608497e8d4600b7360a9a15ae8bac8969adea745bf007e3526289a4a53d80c6bbc6690102043a9f9b5925b2874e0180dd3173d2d languageName: node linkType: hard @@ -3248,7 +3248,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.5.0": +"@csstools/css-parser-algorithms@npm:^2.6.1": version: 2.6.1 resolution: "@csstools/css-parser-algorithms@npm:2.6.1" peerDependencies: @@ -3257,14 +3257,14 @@ __metadata: languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.2.3": +"@csstools/css-tokenizer@npm:^2.2.4": version: 2.2.4 resolution: "@csstools/css-tokenizer@npm:2.2.4" checksum: 10/13cc71a8ebc3ff81c49a459e57e1a94031969b70ce0e582bc949fa4f2d97900c07319866b080c57020896e4f5bee0968cc14f7bf41e7f105eb1c04a6c7bc33c4 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.7": +"@csstools/media-query-list-parser@npm:^2.1.9": version: 2.1.9 resolution: "@csstools/media-query-list-parser@npm:2.1.9" peerDependencies: @@ -3274,7 +3274,7 @@ __metadata: languageName: node linkType: hard -"@csstools/selector-specificity@npm:^3.0.1": +"@csstools/selector-specificity@npm:^3.0.2": version: 3.0.2 resolution: "@csstools/selector-specificity@npm:3.0.2" peerDependencies: @@ -3332,6 +3332,13 @@ __metadata: languageName: node linkType: hard +"@dual-bundle/import-meta-resolve@npm:^4.0.0": + version: 4.0.0 + resolution: "@dual-bundle/import-meta-resolve@npm:4.0.0" + checksum: 10/d41a39dcc5659c3ad066f7c59dfd585ca0b3de9f5efe15d043c8170979d65c469870c7cab0d9c286a687616ba4c226a038c52637df1190e60a5e9fefa2bb3ed5 + languageName: node + linkType: hard + "@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0": version: 1.0.1 resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" @@ -4192,13 +4199,13 @@ __metadata: linkType: hard "@formatjs/intl-numberformat@npm:~8.10.0": - version: 8.10.0 - resolution: "@formatjs/intl-numberformat@npm:8.10.0" + version: 8.10.1 + resolution: "@formatjs/intl-numberformat@npm:8.10.1" dependencies: "@formatjs/ecma402-abstract": "npm:1.18.2" "@formatjs/intl-localematcher": "npm:0.5.4" tslib: "npm:^2.4.0" - checksum: 10/1866bca7a24474af619265ecefb755c32705efade420e89be768cba4c1cab670d6f21456834bf2056d4560b0bad31b341798933c4bc222228c7844ed6d03d143 + checksum: 10/ec81a298d1849b0a1881ea035dad99ff99193ef6c7a8eef55966cc6c84959e47df704f8f4ebee5f2b9442fc6205ceb2a00a53c502f1b5083380622532b4cbc8a languageName: node linkType: hard @@ -5630,14 +5637,14 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:17.3.1": - version: 17.3.1 - resolution: "@ngtools/webpack@npm:17.3.1" +"@ngtools/webpack@npm:17.3.2": + version: 17.3.2 + resolution: "@ngtools/webpack@npm:17.3.2" peerDependencies: "@angular/compiler-cli": ^17.0.0 typescript: ">=5.2 <5.5" webpack: ^5.54.0 - checksum: 10/560e5bfabd73b1d55657b39d015a80c4a0a7dec09b502f6d8097192ca87c7491f737cbc68d93e5ff0d8272bfe757975f3267bb0196dd079836d8dbe8c2095c70 + checksum: 10/862d115606d3ddfa2d05e5be537701f6b9ce82ab5048b92dedd78a5fab554937c4bc9848ce0fefe00a7697d998a1b527b0ee353753104ec80d185793f9969fc9 languageName: node linkType: hard @@ -5773,88 +5780,88 @@ __metadata: languageName: node linkType: hard -"@nrwl/angular@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/angular@npm:18.1.2" +"@nrwl/angular@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/angular@npm:18.1.3" dependencies: - "@nx/angular": "npm:18.1.2" + "@nx/angular": "npm:18.1.3" tslib: "npm:^2.3.0" - checksum: 10/e896b88cda154245593f1ae83168dccbe092db01722ee2d2c668556d7930b297c391091f427f69cfbe05a11b86bdcebd72a00aca25c2c6c883b53743fa507b77 + checksum: 10/f36a3fd8e5429ad9b06b58a709ce41c43af758c279441f53798545454253744a3e8315bd467c0abada80d0daf8e640714c944c84bbd2b3cb7e34fa121f3a101d languageName: node linkType: hard -"@nrwl/devkit@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/devkit@npm:18.1.2" +"@nrwl/devkit@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/devkit@npm:18.1.3" dependencies: - "@nx/devkit": "npm:18.1.2" - checksum: 10/fd6e643f213e239726fe5fe5039abf93d80e0b152618b375689553ed9058b96ba7ad3640929f663a6d878de5bca1e5ee6612a1ebc6734486e915f0516f7031d5 + "@nx/devkit": "npm:18.1.3" + checksum: 10/82f2dd6997c7ec9de78a73bdb2245cb5dd04c8e30e9b9bb05b07d2557ee88b232ce7b90bc08cecc30267b4e8ed4f0b64a1cc2f8aa6d6357c0c1f4dda5833e40a languageName: node linkType: hard -"@nrwl/eslint-plugin-nx@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/eslint-plugin-nx@npm:18.1.2" +"@nrwl/eslint-plugin-nx@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/eslint-plugin-nx@npm:18.1.3" dependencies: - "@nx/eslint-plugin": "npm:18.1.2" - checksum: 10/0d7b4dfd9f86172dacc8ccb7b98c7409ec7434e7834bc86d98114dd7b447e14f000e5c5f1c66a74535c018db50767bd2273834714e542bcfd2d71180b29a3e95 + "@nx/eslint-plugin": "npm:18.1.3" + checksum: 10/4ba4fc558a49f1f2ced62e6c6c8c580b7611a0c2714e1e49b8cb27a0f9313fd7df2db665ff4993865ae47ac1691768cd52fbae2f3dd0895290ffe09a8f445fc5 languageName: node linkType: hard -"@nrwl/jest@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/jest@npm:18.1.2" +"@nrwl/jest@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/jest@npm:18.1.3" dependencies: - "@nx/jest": "npm:18.1.2" - checksum: 10/6925fb4bb682a6b0d27ce79bbe13c7655bcadd13966fb2503e5d531f2189e68d63fae04d6266eb998c898052488e33a1326a75325ef48bafbaa28d4e9388b2e6 + "@nx/jest": "npm:18.1.3" + checksum: 10/afad42a8ffb99d8b80fe3a1dd968d625ce3cd03fb2bb11ab3c75f6c30b02da9468f1c52856b5ba3a8a3dbfc2fd24311cf463879253fddb80616ec879395b0b39 languageName: node linkType: hard -"@nrwl/js@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/js@npm:18.1.2" +"@nrwl/js@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/js@npm:18.1.3" dependencies: - "@nx/js": "npm:18.1.2" - checksum: 10/a059779dc78d8e424ea141d667953f0d5c300569e9cecc146677aee1a623ab69735bc3e013aa54058738727f32777cdd8c8122841b79a056818900f1956da528 + "@nx/js": "npm:18.1.3" + checksum: 10/f0a2e0bff17abd5ce6e37095bee2c147d9c6a44cf6d27b030563cc94354c44caf9b9d8ac0104097af07971686b007f8b74467927182effaa0983ff92867356d3 languageName: node linkType: hard -"@nrwl/tao@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/tao@npm:18.1.2" +"@nrwl/tao@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/tao@npm:18.1.3" dependencies: - nx: "npm:18.1.2" + nx: "npm:18.1.3" tslib: "npm:^2.3.0" bin: tao: index.js - checksum: 10/f0f8a565d7e521504b29352f97811b77362a5e0d8580657dd99dce49a1d2fc8fb2845d2c9bae3062c7fe1b678147c7225c379adc8d8e37e661a12e5beeb19b64 + checksum: 10/338bf2cf323dc1accf252ce6650f182b8550948cf647005178679ed36ef8e5ec49ef11f20f249b83e1be671fac9f1b6c186662a4412a0c086068209de0afdd58 languageName: node linkType: hard -"@nrwl/web@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/web@npm:18.1.2" +"@nrwl/web@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/web@npm:18.1.3" dependencies: - "@nx/web": "npm:18.1.2" - checksum: 10/15a508a83bf17d99881e83be0c9b6bf8d3d0a84c2a1c0469133637138d0b28f85ca61ec0faf2efd72410a9a68e8e7ba67f2d1bca451335bb20df481936d92ec3 + "@nx/web": "npm:18.1.3" + checksum: 10/60647b958b2c6be0720f7ede846b7f6deff4d83aba64b53403006330edc81c945cb1d7fef265b2a84355cef76ca653e53efebd8865b0cd4ee710e2eb10bb9213 languageName: node linkType: hard -"@nrwl/webpack@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/webpack@npm:18.1.2" +"@nrwl/webpack@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/webpack@npm:18.1.3" dependencies: - "@nx/webpack": "npm:18.1.2" - checksum: 10/6a5e7ad8df0d9c44f4a8c532612673b3969275538ceb2948a40066ea85662f98ba6df2e883827aeab849e7c7f9d85447ffa0476bf6fe978a243dcbec20bbfa27 + "@nx/webpack": "npm:18.1.3" + checksum: 10/4cfb8899bac23f085c69940b66782379537eb0a3be2508464b45584cbe8670a47f666a7e497416419ed482d28b0807ecac65b628188a8c68a0dac96144aec6bb languageName: node linkType: hard -"@nrwl/workspace@npm:18.1.2": - version: 18.1.2 - resolution: "@nrwl/workspace@npm:18.1.2" +"@nrwl/workspace@npm:18.1.3": + version: 18.1.3 + resolution: "@nrwl/workspace@npm:18.1.3" dependencies: - "@nx/workspace": "npm:18.1.2" - checksum: 10/733a94f6985329b421a147980826a63427660fba8386b8a7a269489d06a8a656a35e73072f0be0a5ce306c19e7e071994d1806da1b98fd0658506aa4227fa5a9 + "@nx/workspace": "npm:18.1.3" + checksum: 10/514d767fca84218bceb3761e98693251ccf3a0376ee5f7296927deb631f6a3020afc95cd53e4b947d1fefa20de4b79828477065fba32fd9ec0d5ce2722d577da languageName: node linkType: hard @@ -5871,17 +5878,17 @@ __metadata: languageName: node linkType: hard -"@nx/angular@npm:18.1.2, @nx/angular@npm:~18.1.0": - version: 18.1.2 - resolution: "@nx/angular@npm:18.1.2" - dependencies: - "@nrwl/angular": "npm:18.1.2" - "@nx/devkit": "npm:18.1.2" - "@nx/eslint": "npm:18.1.2" - "@nx/js": "npm:18.1.2" - "@nx/web": "npm:18.1.2" - "@nx/webpack": "npm:18.1.2" - "@nx/workspace": "npm:18.1.2" +"@nx/angular@npm:18.1.3, @nx/angular@npm:~18.1.0": + version: 18.1.3 + resolution: "@nx/angular@npm:18.1.3" + dependencies: + "@nrwl/angular": "npm:18.1.3" + "@nx/devkit": "npm:18.1.3" + "@nx/eslint": "npm:18.1.3" + "@nx/js": "npm:18.1.3" + "@nx/web": "npm:18.1.3" + "@nx/webpack": "npm:18.1.3" + "@nx/workspace": "npm:18.1.3" "@phenomnomnominal/tsquery": "npm:~5.0.1" "@typescript-eslint/type-utils": "npm:^6.9.1" chalk: "npm:^4.1.0" @@ -5904,15 +5911,15 @@ __metadata: peerDependenciesMeta: esbuild: optional: true - checksum: 10/9d03710fff12263ea72f70614f7a58106380a958155706d8cb64512cad22e8e3d4862553c4cdc6c5f5928978d982c33238966d7dab4933ac0bc5d314812f8215 + checksum: 10/5c8fdd0d7d19f55cea16d74a3289cbe30a311c29619f905b38d8a70f58d555d8d1ca080311df88fef2d99c89b6761aed3bbfd595211174193822baa39e12cd2c languageName: node linkType: hard -"@nx/devkit@npm:18.1.2, @nx/devkit@npm:~18.1.0": - version: 18.1.2 - resolution: "@nx/devkit@npm:18.1.2" +"@nx/devkit@npm:18.1.3, @nx/devkit@npm:~18.1.0": + version: 18.1.3 + resolution: "@nx/devkit@npm:18.1.3" dependencies: - "@nrwl/devkit": "npm:18.1.2" + "@nrwl/devkit": "npm:18.1.3" ejs: "npm:^3.1.7" enquirer: "npm:~2.3.6" ignore: "npm:^5.0.4" @@ -5922,17 +5929,17 @@ __metadata: yargs-parser: "npm:21.1.1" peerDependencies: nx: ">= 16 <= 18" - checksum: 10/3dd256aef46f8714be0c1aebb1a3658781d0abec33887d39f6bdb57a0059cbae704e1394c1d8509b83e7a2fe04f8f3ceb8857df91f0f49e8f90090bcbd3c0096 + checksum: 10/7e84be5b3126051a485e2cf14d689473df626dbee9792aa23c4ded6a6c8fec671b981f678a1228b6d00a5ad8a5023915be7bb44bb111f7c3a90664058d60591f languageName: node linkType: hard -"@nx/eslint-plugin@npm:18.1.2, @nx/eslint-plugin@npm:~18.1.0": - version: 18.1.2 - resolution: "@nx/eslint-plugin@npm:18.1.2" +"@nx/eslint-plugin@npm:18.1.3, @nx/eslint-plugin@npm:~18.1.0": + version: 18.1.3 + resolution: "@nx/eslint-plugin@npm:18.1.3" dependencies: - "@nrwl/eslint-plugin-nx": "npm:18.1.2" - "@nx/devkit": "npm:18.1.2" - "@nx/js": "npm:18.1.2" + "@nrwl/eslint-plugin-nx": "npm:18.1.3" + "@nx/devkit": "npm:18.1.3" + "@nx/js": "npm:18.1.3" "@typescript-eslint/type-utils": "npm:^6.13.2" "@typescript-eslint/utils": "npm:^6.13.2" chalk: "npm:^4.1.0" @@ -5946,17 +5953,17 @@ __metadata: peerDependenciesMeta: eslint-config-prettier: optional: true - checksum: 10/3dbcc14e6e74b78d295b4067e072e4a796a4070468e6ab18e94dbb67324cc0180b8ce17bbd8c4a78242286893db61214363aba027dbb96bfbdcb8e0d117c0d1b + checksum: 10/6f125550ec744d07d1f3519a5b40d01749eb95985e4da5c3f7a23d9622bf21ff2fe728316d74b758e8bf29b33c0b6235dd52b3ee6726e62b6579c133d697d5c8 languageName: node linkType: hard -"@nx/eslint@npm:18.1.2, @nx/eslint@npm:~18.1.0": - version: 18.1.2 - resolution: "@nx/eslint@npm:18.1.2" +"@nx/eslint@npm:18.1.3, @nx/eslint@npm:~18.1.0": + version: 18.1.3 + resolution: "@nx/eslint@npm:18.1.3" dependencies: - "@nx/devkit": "npm:18.1.2" - "@nx/js": "npm:18.1.2" - "@nx/linter": "npm:18.1.2" + "@nx/devkit": "npm:18.1.3" + "@nx/js": "npm:18.1.3" + "@nx/linter": "npm:18.1.3" eslint: "npm:^8.0.0" tslib: "npm:^2.3.0" typescript: "npm:~5.3.2" @@ -5965,19 +5972,19 @@ __metadata: peerDependenciesMeta: js-yaml: optional: true - checksum: 10/07d6bccd32a4dc8182796ba2bbdfa2cc612fe6587bc7427bb17db050e96c5bfa198e95dcc13854390ce52a8569727b2888c42b7ab20105501e5e839e7fcabc7a + checksum: 10/46eea087d91ce10cc9d50dbb0c7a49ebe636422aff34b8797e72a73bd005758f199a7a03f02fcf95c3612b493ff54dd15e0a2934507cb21aaae4cde7219ddb98 languageName: node linkType: hard -"@nx/jest@npm:18.1.2, @nx/jest@npm:~18.1.0": - version: 18.1.2 - resolution: "@nx/jest@npm:18.1.2" +"@nx/jest@npm:18.1.3, @nx/jest@npm:~18.1.0": + version: 18.1.3 + resolution: "@nx/jest@npm:18.1.3" dependencies: "@jest/reporters": "npm:^29.4.1" "@jest/test-result": "npm:^29.4.1" - "@nrwl/jest": "npm:18.1.2" - "@nx/devkit": "npm:18.1.2" - "@nx/js": "npm:18.1.2" + "@nrwl/jest": "npm:18.1.3" + "@nx/devkit": "npm:18.1.3" + "@nx/js": "npm:18.1.3" "@phenomnomnominal/tsquery": "npm:~5.0.1" chalk: "npm:^4.1.0" identity-obj-proxy: "npm:3.0.0" @@ -5988,13 +5995,13 @@ __metadata: resolve.exports: "npm:1.1.0" tslib: "npm:^2.3.0" yargs-parser: "npm:21.1.1" - checksum: 10/e2e4e5a065fe979ca007671a46913a6fb680e8f4928579a087d350fba90a565ea4fbd2cb83fe9e8fd0aa64ac261a1f98d9e4c36b03ace5a121c266b6669468a5 + checksum: 10/ef249eea9f389e8c98f5f9e84903f1f8fc8be035575e9f0d8c5f07325fa61db9dd870794dbdaa9c46df79d158ab2eedf8e4fade356df52ea682dfb9c3914f38d languageName: node linkType: hard -"@nx/js@npm:18.1.2, @nx/js@npm:~18.1.0": - version: 18.1.2 - resolution: "@nx/js@npm:18.1.2" +"@nx/js@npm:18.1.3, @nx/js@npm:~18.1.0": + version: 18.1.3 + resolution: "@nx/js@npm:18.1.3" dependencies: "@babel/core": "npm:^7.23.2" "@babel/plugin-proposal-decorators": "npm:^7.22.7" @@ -6003,9 +6010,9 @@ __metadata: "@babel/preset-env": "npm:^7.23.2" "@babel/preset-typescript": "npm:^7.22.5" "@babel/runtime": "npm:^7.22.6" - "@nrwl/js": "npm:18.1.2" - "@nx/devkit": "npm:18.1.2" - "@nx/workspace": "npm:18.1.2" + "@nrwl/js": "npm:18.1.3" + "@nx/devkit": "npm:18.1.3" + "@nx/workspace": "npm:18.1.3" "@phenomnomnominal/tsquery": "npm:~5.0.1" babel-plugin-const-enum: "npm:^1.0.1" babel-plugin-macros: "npm:^2.8.0" @@ -6031,112 +6038,112 @@ __metadata: peerDependenciesMeta: verdaccio: optional: true - checksum: 10/6c20b31e54ba9da8f77cc6ae6020b29116476fcfaa7d1071b6461fe3273ddcd8b7f5c856d5ade4075b85e6c09b4a89533735f00b3e8c06dd8dda60ba7a8b59fd + checksum: 10/fa80ac503676259df0dc640e0e2661fd51070cf1568b1848aa240a9406c981e07b55289da820ff5c490b4002499fe47b9f25ef341487b45c7d20dbc8ac9e97ba languageName: node linkType: hard -"@nx/linter@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/linter@npm:18.1.2" +"@nx/linter@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/linter@npm:18.1.3" dependencies: - "@nx/eslint": "npm:18.1.2" - checksum: 10/ed41c794ec8c10073fbee3a3fc0578b40f1dfadfca93bf4d8bdeea1962154907bbafda258e9582168de536394a366ffa5a83d101d225b7cd18103a8889c41d25 + "@nx/eslint": "npm:18.1.3" + checksum: 10/e807bfbdabfbac666e07815b8494e365414e7a1a04740413a8448dcbc30fe903de0b9fc8086a3cd594983c84eb6a5bf038188ed4f0d9d964e62d61ac09df8c90 languageName: node linkType: hard -"@nx/nx-darwin-arm64@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-darwin-arm64@npm:18.1.2" +"@nx/nx-darwin-arm64@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-darwin-arm64@npm:18.1.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@nx/nx-darwin-x64@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-darwin-x64@npm:18.1.2" +"@nx/nx-darwin-x64@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-darwin-x64@npm:18.1.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@nx/nx-freebsd-x64@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-freebsd-x64@npm:18.1.2" +"@nx/nx-freebsd-x64@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-freebsd-x64@npm:18.1.3" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@nx/nx-linux-arm-gnueabihf@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-linux-arm-gnueabihf@npm:18.1.2" +"@nx/nx-linux-arm-gnueabihf@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-linux-arm-gnueabihf@npm:18.1.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@nx/nx-linux-arm64-gnu@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-linux-arm64-gnu@npm:18.1.2" +"@nx/nx-linux-arm64-gnu@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-linux-arm64-gnu@npm:18.1.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@nx/nx-linux-arm64-musl@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-linux-arm64-musl@npm:18.1.2" +"@nx/nx-linux-arm64-musl@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-linux-arm64-musl@npm:18.1.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nx/nx-linux-x64-gnu@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-linux-x64-gnu@npm:18.1.2" +"@nx/nx-linux-x64-gnu@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-linux-x64-gnu@npm:18.1.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nx/nx-linux-x64-musl@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-linux-x64-musl@npm:18.1.2" +"@nx/nx-linux-x64-musl@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-linux-x64-musl@npm:18.1.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nx/nx-win32-arm64-msvc@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-win32-arm64-msvc@npm:18.1.2" +"@nx/nx-win32-arm64-msvc@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-win32-arm64-msvc@npm:18.1.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nx/nx-win32-x64-msvc@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/nx-win32-x64-msvc@npm:18.1.2" +"@nx/nx-win32-x64-msvc@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/nx-win32-x64-msvc@npm:18.1.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@nx/web@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/web@npm:18.1.2" +"@nx/web@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/web@npm:18.1.3" dependencies: - "@nrwl/web": "npm:18.1.2" - "@nx/devkit": "npm:18.1.2" - "@nx/js": "npm:18.1.2" + "@nrwl/web": "npm:18.1.3" + "@nx/devkit": "npm:18.1.3" + "@nx/js": "npm:18.1.3" chalk: "npm:^4.1.0" detect-port: "npm:^1.5.1" http-server: "npm:^14.1.0" tslib: "npm:^2.3.0" - checksum: 10/bc261b71e36b0120be67f758f124e25b5da9e09edd9848ecd20e8159037bca8b4d97e87b64dcdf4dcf3c3a2f0ce9d68385c8e36017b7798eb4a4b574b1cbe2c9 + checksum: 10/d5254855738c074469af2996476467435a2585d0aaa3b00066f7180e48bc03adb004cba5e0e9a6f3f7c06d3e48ce055836854457bc63a6308cbac160a790b9de languageName: node linkType: hard -"@nx/webpack@npm:18.1.2": - version: 18.1.2 - resolution: "@nx/webpack@npm:18.1.2" +"@nx/webpack@npm:18.1.3": + version: 18.1.3 + resolution: "@nx/webpack@npm:18.1.3" dependencies: "@babel/core": "npm:^7.23.2" - "@nrwl/webpack": "npm:18.1.2" - "@nx/devkit": "npm:18.1.2" - "@nx/js": "npm:18.1.2" + "@nrwl/webpack": "npm:18.1.3" + "@nx/devkit": "npm:18.1.3" + "@nx/js": "npm:18.1.3" ajv: "npm:^8.12.0" autoprefixer: "npm:^10.4.9" babel-loader: "npm:^9.1.2" @@ -6170,22 +6177,22 @@ __metadata: webpack-dev-server: "npm:^4.9.3" webpack-node-externals: "npm:^3.0.0" webpack-subresource-integrity: "npm:^5.1.0" - checksum: 10/ac34612981d0ce86e5e82c420b4c5d319fdfdfc83a3e709c803903e6097775b85b9c8c9b3ccf3daaa807db9581ec76eba1d0a2f6db72a3f9d35d65cac5e408db + checksum: 10/a597dbfb68de738b76014de3634bd9ee6ae2994afe6682ae4f2b41243263153d64233aeedadd9119379e30c66c3b96906afc839ee29f2ed43492497bf8c3c0ba languageName: node linkType: hard -"@nx/workspace@npm:18.1.2, @nx/workspace@npm:~18.1.0": - version: 18.1.2 - resolution: "@nx/workspace@npm:18.1.2" +"@nx/workspace@npm:18.1.3, @nx/workspace@npm:~18.1.0": + version: 18.1.3 + resolution: "@nx/workspace@npm:18.1.3" dependencies: - "@nrwl/workspace": "npm:18.1.2" - "@nx/devkit": "npm:18.1.2" + "@nrwl/workspace": "npm:18.1.3" + "@nx/devkit": "npm:18.1.3" chalk: "npm:^4.1.0" enquirer: "npm:~2.3.6" - nx: "npm:18.1.2" + nx: "npm:18.1.3" tslib: "npm:^2.3.0" yargs-parser: "npm:21.1.1" - checksum: 10/8461726dd8186e421faef1a7f20166c9decfacd6d60c3f807f7b9ac70d282d3ebb37e0a02c9e9c123be59bdca9fcc1f8faf225bac676c2cb3f6be2372bcec3af + checksum: 10/1b16f504ee977e29582326f6c2b2fd33df634557975d4c5d2446d6f6f3ea8e5583ccf08289b87c6c3934077d87fd85dcc55d0824e4cc9037b0cba75b3f60464b languageName: node linkType: hard @@ -7739,6 +7746,8 @@ __metadata: "@stylistic/eslint-plugin-ts": "npm:^1.5.4" "@swc-node/register": "npm:^1.6.7" "@swc/core": "npm:^1.3.85" + "@tanstack/angular-query-devtools-experimental": "npm:^5.28.8" + "@tanstack/angular-query-experimental": "npm:^5.28.8" "@types/estree": "npm:^1.0.5" "@types/jest": "npm:~29.5.2" "@types/node": "npm:^20.0.0" @@ -8492,6 +8501,8 @@ __metadata: "@popperjs/core": "npm:^2.11.5" "@schematics/angular": "npm:~17.3.0" "@stylistic/eslint-plugin-ts": "npm:^1.5.4" + "@tanstack/angular-query-devtools-experimental": "npm:^5.28.8" + "@tanstack/angular-query-experimental": "npm:^5.28.8" "@types/bootstrap": "npm:^5.2.10" "@types/jest": "npm:~29.5.2" "@types/node": "npm:^20.0.0" @@ -8515,6 +8526,7 @@ __metadata: jest-environment-jsdom: "npm:~29.7.0" jest-junit: "npm:~16.0.0" jest-preset-angular: "npm:~14.0.3" + json-server: "npm:^1.0.0-alpha.23" jsonc-eslint-parser: "npm:~2.4.0" lighthouse: "npm:9.6.8" ngx-highlightjs: "npm:^10.0.0" @@ -9461,22 +9473,22 @@ __metadata: languageName: node linkType: hard -"@octokit/webhooks-types@npm:7.3.2": - version: 7.3.2 - resolution: "@octokit/webhooks-types@npm:7.3.2" - checksum: 10/dc38669d1cd276302c92ac988c96d2c75a5ead1c2abb81e8ef297b9b9663a535f6d6fdec596fbeeb59ec1060a55a86ad042f3210dc267619a0c992598a859249 +"@octokit/webhooks-types@npm:7.4.0": + version: 7.4.0 + resolution: "@octokit/webhooks-types@npm:7.4.0" + checksum: 10/cce0117a52d2792c44577d04e8f90d868123663e7706857d180eb54742333551fb0b5ae93424f12fb112b18e5986260fe40b3cc312786f162716230634bec2b7 languageName: node linkType: hard "@octokit/webhooks@npm:^12.0.10": - version: 12.1.2 - resolution: "@octokit/webhooks@npm:12.1.2" + version: 12.2.0 + resolution: "@octokit/webhooks@npm:12.2.0" dependencies: "@octokit/request-error": "npm:^5.0.0" "@octokit/webhooks-methods": "npm:^4.1.0" - "@octokit/webhooks-types": "npm:7.3.2" + "@octokit/webhooks-types": "npm:7.4.0" aggregate-error: "npm:^3.1.0" - checksum: 10/206f511622660fcc5cfa5af84b229f8448307de7ddf1e8a53c65f2c6ee3e3c8ad88175aaf1a9db8de8e3c6c9a753bcb31a96358d88398c2506ea71e7e204ff1f + checksum: 10/40bbd801c1bdc925e49361da702485d5c7b0ee02ba30c081b5688bf72e0989947c37a712483b9173b654f342d222100d133656f67eff4b3da3c918e5969febc1 languageName: node linkType: hard @@ -9536,6 +9548,13 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.25 + resolution: "@polka/url@npm:1.0.0-next.25" + checksum: 10/4ab1d7a37163139c0e7bfc9d1e3f6a2a0db91a78b9f0a21f571d6aec2cdaeaacced744d47886c117aa7579aa5694b303fe3e0bd1922bb9cb3ce6bf7c2dc09801 + languageName: node + linkType: hard + "@popperjs/core@npm:^2.11.5, @popperjs/core@npm:^2.9.2": version: 2.11.8 resolution: "@popperjs/core@npm:2.11.8" @@ -10299,14 +10318,14 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:17.3.1, @schematics/angular@npm:~17.3.0": - version: 17.3.1 - resolution: "@schematics/angular@npm:17.3.1" +"@schematics/angular@npm:17.3.2, @schematics/angular@npm:~17.3.0": + version: 17.3.2 + resolution: "@schematics/angular@npm:17.3.2" dependencies: - "@angular-devkit/core": "npm:17.3.1" - "@angular-devkit/schematics": "npm:17.3.1" + "@angular-devkit/core": "npm:17.3.2" + "@angular-devkit/schematics": "npm:17.3.2" jsonc-parser: "npm:3.2.1" - checksum: 10/1fde6da25572f8c61566fe2b9103d90dee071b916ab888c4914b481509e2f2558c9dfe1de1f2cbd137897ca932e9f00166ea8b5e1d6987ac5918c148842a29fd + checksum: 10/fddc9f109649d40c428ab54833419943b0229c3202a87907f354447d19eb44e068262c9b1f59161b566ca26f42b957bc0359a9ecb52775956bbb4aacac515001 languageName: node linkType: hard @@ -10387,10 +10406,10 @@ __metadata: languageName: node linkType: hard -"@sigstore/core@npm:^1.0.0": - version: 1.0.0 - resolution: "@sigstore/core@npm:1.0.0" - checksum: 10/2e9dff65c6c00927e2e20c344d1437ace0398ce061f4aca458d63193a80cc884623b97d1eb0249ced4373ec83c0f1843937f47acec35c98b5b970956d866d6e9 +"@sigstore/core@npm:^1.0.0, @sigstore/core@npm:^1.1.0": + version: 1.1.0 + resolution: "@sigstore/core@npm:1.1.0" + checksum: 10/4149572091d61c246dd2ff636ff9a31441877db78cc3afe25fd0b28ece87f0094576f8b9077d1dc7c1c959ac4b000d407595becb6cd784c3664e9dd7cb6da36a languageName: node linkType: hard @@ -10414,23 +10433,23 @@ __metadata: linkType: hard "@sigstore/tuf@npm:^2.3.1": - version: 2.3.1 - resolution: "@sigstore/tuf@npm:2.3.1" + version: 2.3.2 + resolution: "@sigstore/tuf@npm:2.3.2" dependencies: "@sigstore/protobuf-specs": "npm:^0.3.0" tuf-js: "npm:^2.2.0" - checksum: 10/40597098d379c05615beee048f2c7dfd43b2bd6ef7fdb1be69d8a2a65715ba8b0c2e9107515fe2570a8c93b75e52e8336a4f0333f62942f0ec9801924496ab0c + checksum: 10/9179355071c5ec385bcea720904e636d7a2e4c846ae1b2e954d8ab3dea0f105031ab7f41b1f3122c897462996e15b5b0430f969d15ec68440b7b387f11bfe10d languageName: node linkType: hard "@sigstore/verify@npm:^1.1.0": - version: 1.1.0 - resolution: "@sigstore/verify@npm:1.1.0" + version: 1.1.1 + resolution: "@sigstore/verify@npm:1.1.1" dependencies: "@sigstore/bundle": "npm:^2.2.0" - "@sigstore/core": "npm:^1.0.0" + "@sigstore/core": "npm:^1.1.0" "@sigstore/protobuf-specs": "npm:^0.3.0" - checksum: 10/c9e100df8c4e918aadfeb133c228e5963fb9e0712cc2840760a1269dfdd27edcb51772321b36198f34f9b9a88f736b3ab5ad6c5bd40bba8d411392a97c888766 + checksum: 10/9086ddb2c050a14758f6633ddf09c69072fe1e4dca9a9da1e5983e788bd415b85d15315b6a1f001013eb0dcc404c3781a0698fff0fe290d1e5571450c4998e04 languageName: node linkType: hard @@ -11105,90 +11124,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-darwin-arm64@npm:1.4.8" +"@swc/core-darwin-arm64@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-darwin-arm64@npm:1.4.11" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-darwin-x64@npm:1.4.8" +"@swc/core-darwin-x64@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-darwin-x64@npm:1.4.11" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.8" +"@swc/core-linux-arm-gnueabihf@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.11" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-linux-arm64-gnu@npm:1.4.8" +"@swc/core-linux-arm64-gnu@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-arm64-gnu@npm:1.4.11" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-linux-arm64-musl@npm:1.4.8" +"@swc/core-linux-arm64-musl@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-arm64-musl@npm:1.4.11" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-linux-x64-gnu@npm:1.4.8" +"@swc/core-linux-x64-gnu@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-x64-gnu@npm:1.4.11" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-linux-x64-musl@npm:1.4.8" +"@swc/core-linux-x64-musl@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-linux-x64-musl@npm:1.4.11" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-win32-arm64-msvc@npm:1.4.8" +"@swc/core-win32-arm64-msvc@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-win32-arm64-msvc@npm:1.4.11" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-win32-ia32-msvc@npm:1.4.8" +"@swc/core-win32-ia32-msvc@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-win32-ia32-msvc@npm:1.4.11" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.4.8": - version: 1.4.8 - resolution: "@swc/core-win32-x64-msvc@npm:1.4.8" +"@swc/core-win32-x64-msvc@npm:1.4.11": + version: 1.4.11 + resolution: "@swc/core-win32-x64-msvc@npm:1.4.11" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.82, @swc/core@npm:^1.3.85": - version: 1.4.8 - resolution: "@swc/core@npm:1.4.8" - dependencies: - "@swc/core-darwin-arm64": "npm:1.4.8" - "@swc/core-darwin-x64": "npm:1.4.8" - "@swc/core-linux-arm-gnueabihf": "npm:1.4.8" - "@swc/core-linux-arm64-gnu": "npm:1.4.8" - "@swc/core-linux-arm64-musl": "npm:1.4.8" - "@swc/core-linux-x64-gnu": "npm:1.4.8" - "@swc/core-linux-x64-musl": "npm:1.4.8" - "@swc/core-win32-arm64-msvc": "npm:1.4.8" - "@swc/core-win32-ia32-msvc": "npm:1.4.8" - "@swc/core-win32-x64-msvc": "npm:1.4.8" + version: 1.4.11 + resolution: "@swc/core@npm:1.4.11" + dependencies: + "@swc/core-darwin-arm64": "npm:1.4.11" + "@swc/core-darwin-x64": "npm:1.4.11" + "@swc/core-linux-arm-gnueabihf": "npm:1.4.11" + "@swc/core-linux-arm64-gnu": "npm:1.4.11" + "@swc/core-linux-arm64-musl": "npm:1.4.11" + "@swc/core-linux-x64-gnu": "npm:1.4.11" + "@swc/core-linux-x64-musl": "npm:1.4.11" + "@swc/core-win32-arm64-msvc": "npm:1.4.11" + "@swc/core-win32-ia32-msvc": "npm:1.4.11" + "@swc/core-win32-x64-msvc": "npm:1.4.11" "@swc/counter": "npm:^0.1.2" "@swc/types": "npm:^0.1.5" peerDependencies: @@ -11217,7 +11236,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10/817b674130bc43345e7d8e7fbcf56658d4a655d9544c646475063c7849529c0a6c236a15f3217e7b0b2b99050bda189d3ff26e225b80b838a87b954b97abcb2a + checksum: 10/c2b6ccfd00b126b4d7a5d571c9acf81e926f25bba051d2cd618065720c3c27d16c141c698df8dc1676eb44f4f5af6cc293b3c1bc9eb0749897ea5b1826c340ea languageName: node linkType: hard @@ -11255,6 +11274,47 @@ __metadata: languageName: node linkType: hard +"@tanstack/angular-query-devtools-experimental@npm:^5.28.8": + version: 5.28.8 + resolution: "@tanstack/angular-query-devtools-experimental@npm:5.28.8" + dependencies: + "@tanstack/query-devtools": "npm:5.28.6" + tslib: "npm:^2.6.2" + peerDependencies: + "@angular/common": ">=16.0.0" + "@angular/core": ">=16.0.0" + "@tanstack/angular-query-experimental": ^5.28.8 + checksum: 10/42eed1bf9043f96a6831e755194b95f24e555479fa244c10f658bdf8093cac583b8ddd3123c783f789eb448bd2236b334c0d22262078f767719386f46542b6b0 + languageName: node + linkType: hard + +"@tanstack/angular-query-experimental@npm:^5.28.8": + version: 5.28.8 + resolution: "@tanstack/angular-query-experimental@npm:5.28.8" + dependencies: + "@tanstack/query-core": "npm:5.28.8" + tslib: "npm:^2.6.2" + peerDependencies: + "@angular/common": ">=16.0.0" + "@angular/core": ">=16.0.0" + checksum: 10/63651184c7a6d6eb6c9a494157a5301574fc3c0344c15b8d1342b38beee2d5e85eaa737f53fda495b762274548990a3828ca037c48525b205cd9c993a81cfa83 + languageName: node + linkType: hard + +"@tanstack/query-core@npm:5.28.8": + version: 5.28.8 + resolution: "@tanstack/query-core@npm:5.28.8" + checksum: 10/aeda2a4b88e3ae44d139ef9d99e09eb5bb78e39abb66cd32a21ca79e654379665ffa0c9ddd2560aeac9cbf287d648bc0ee16a4b2f45bd051d7a070d8f48912fd + languageName: node + linkType: hard + +"@tanstack/query-devtools@npm:5.28.6": + version: 5.28.6 + resolution: "@tanstack/query-devtools@npm:5.28.6" + checksum: 10/7a62925752e02f136fa7163e43395086585e06261095f3dd9faca71b3304e44a18e986420b69eb24a41c91b1a73e1c31ab8303ed30e8872feed7c6c0c2bb0d1a + languageName: node + linkType: hard + "@thednp/event-listener@npm:^2.0.4": version: 2.0.4 resolution: "@thednp/event-listener@npm:2.0.4" @@ -11269,6 +11329,170 @@ __metadata: languageName: node linkType: hard +"@tinyhttp/accepts@npm:2.2.1": + version: 2.2.1 + resolution: "@tinyhttp/accepts@npm:2.2.1" + dependencies: + mime: "npm:4.0.1" + negotiator: "npm:^0.6.3" + checksum: 10/f7202b93f7cda8f92736b6549e631237a321ef1a963a978bc015c7c73c413979088979ef318f01170ac2c07e7811783dcf9721ad9806224c0cfb3b691c41c99d + languageName: node + linkType: hard + +"@tinyhttp/app@npm:^2.2.3": + version: 2.2.3 + resolution: "@tinyhttp/app@npm:2.2.3" + dependencies: + "@tinyhttp/cookie": "npm:2.1.0" + "@tinyhttp/proxy-addr": "npm:2.1.3" + "@tinyhttp/req": "npm:2.2.2" + "@tinyhttp/res": "npm:2.2.2" + "@tinyhttp/router": "npm:2.2.2" + header-range-parser: "npm:1.1.3" + regexparam: "npm:^2.0.1" + checksum: 10/9c22dd885cb6545c4e18c0e983e5922ddba856a45aac91c7a3b7b4f9ac8cc2daef551d1db7b93b7d26d8f88b577e3b4f53ec573ec33566f1efc26b83669cddd6 + languageName: node + linkType: hard + +"@tinyhttp/content-disposition@npm:2.2.0": + version: 2.2.0 + resolution: "@tinyhttp/content-disposition@npm:2.2.0" + checksum: 10/a77fe93f985bb484c9fac2ef67c57139cdd9b1ecd61ee3350e79b84fb8929a64ef1bb016c871942534564c68c06785a22d8e354d3c5843d287e70397f4dc71a8 + languageName: node + linkType: hard + +"@tinyhttp/content-type@npm:^0.1.4": + version: 0.1.4 + resolution: "@tinyhttp/content-type@npm:0.1.4" + checksum: 10/1ce23ba34f5e30c03f87ffc0309697c9a4de67314ed6f5e183be1b0c2f5990ce0f8f06ca2d3624ad642d84ad56db0fa944760757960eca77b546947668d8258c + languageName: node + linkType: hard + +"@tinyhttp/cookie-signature@npm:2.1.0": + version: 2.1.0 + resolution: "@tinyhttp/cookie-signature@npm:2.1.0" + checksum: 10/c6f8cb03ffcbf26366267a5797cb642589390f14a2d9a86000220109ec8d74bbb6687693c670a3386ac4ac57de79444990151eee0d6b71fd945022480ddd0629 + languageName: node + linkType: hard + +"@tinyhttp/cookie@npm:2.1.0": + version: 2.1.0 + resolution: "@tinyhttp/cookie@npm:2.1.0" + checksum: 10/651df2197e333fe0199287ef0c9c658fc702bdf617ab16fb9d4553b0787207035715c7f3fc92902cac9cca8696fc8e86eb7a907e259f6140d3fff6a9f5265d15 + languageName: node + linkType: hard + +"@tinyhttp/cors@npm:^2.0.0": + version: 2.0.0 + resolution: "@tinyhttp/cors@npm:2.0.0" + dependencies: + es-vary: "npm:^0.1.1" + checksum: 10/5091928da3af7659f6078ec6498a21d0174421a15fc414cabe6672f347a4283e8747545fec09f668deff68fa55c99dcc81090b6a4cae773df6621a679f18723a + languageName: node + linkType: hard + +"@tinyhttp/encode-url@npm:2.1.1": + version: 2.1.1 + resolution: "@tinyhttp/encode-url@npm:2.1.1" + checksum: 10/fe0f10b774afa526c8390949f6ece7d06644e3a34cdcd7ab594569ee2dea28f28514ec802e86e0736bd240fa9406a88f2d5455990e1c9ddb2257e791b92b2c3e + languageName: node + linkType: hard + +"@tinyhttp/etag@npm:2.1.1": + version: 2.1.1 + resolution: "@tinyhttp/etag@npm:2.1.1" + checksum: 10/fb02e274d1ca5a4e4c550f3f6eeb7200b00a42b58856240b1ec8f3f358cd45500f8659f45be18de10f10de6a9ef722871fe46afec7f539fd04770dd7ca91208b + languageName: node + linkType: hard + +"@tinyhttp/forwarded@npm:2.1.2": + version: 2.1.2 + resolution: "@tinyhttp/forwarded@npm:2.1.2" + checksum: 10/e60cd17f5e082ab7178ef0e4cf1d76557eab6d4c3b15897e23a5bacc173c37da2641d87be6fda36ca7f77dbffefd2f64df080c71637db2b041c6340390942fc5 + languageName: node + linkType: hard + +"@tinyhttp/proxy-addr@npm:2.1.3": + version: 2.1.3 + resolution: "@tinyhttp/proxy-addr@npm:2.1.3" + dependencies: + "@tinyhttp/forwarded": "npm:2.1.2" + ipaddr.js: "npm:^2.1.0" + checksum: 10/3f5bc6d334b1717d5a6f908c89db9ba6113fd7f1b673ef0025aa2f695e8736d8c11788618d09e29b17d13957cf2ce35e4b86198543357d7539b49f9123f48c09 + languageName: node + linkType: hard + +"@tinyhttp/req@npm:2.2.2": + version: 2.2.2 + resolution: "@tinyhttp/req@npm:2.2.2" + dependencies: + "@tinyhttp/accepts": "npm:2.2.1" + "@tinyhttp/type-is": "npm:2.2.2" + "@tinyhttp/url": "npm:2.1.1" + header-range-parser: "npm:^1.1.3" + checksum: 10/d7d0dfa400978c788a904523d136b09bee2e1a73e87eae76bf8ee4068255d4a0ab04f5d525eb77ae65d7cf186fc3bdfde3e2b474f87fc69c00480ee73d2394ff + languageName: node + linkType: hard + +"@tinyhttp/res@npm:2.2.2": + version: 2.2.2 + resolution: "@tinyhttp/res@npm:2.2.2" + dependencies: + "@tinyhttp/content-disposition": "npm:2.2.0" + "@tinyhttp/cookie": "npm:2.1.0" + "@tinyhttp/cookie-signature": "npm:2.1.0" + "@tinyhttp/encode-url": "npm:2.1.1" + "@tinyhttp/req": "npm:2.2.2" + "@tinyhttp/send": "npm:2.2.1" + "@tinyhttp/vary": "npm:^0.1.3" + es-escape-html: "npm:^0.1.1" + mime: "npm:4.0.1" + checksum: 10/cddccec7819dca01388166672ed376b35dc483054acd28cd3d564790e7c2f7db60747933ef67b4cdd6c3399c4a10998517dd827547ac7002de7ded73e814ee13 + languageName: node + linkType: hard + +"@tinyhttp/router@npm:2.2.2": + version: 2.2.2 + resolution: "@tinyhttp/router@npm:2.2.2" + checksum: 10/8d48e82c2eeece7f04e4b0bb9ed82e96d3485eb8b1ce17d6ebd8f975e3b070fcd17a17d204938d567a805d8ff34dd9055893db26da7d051353f47dfd68795e6c + languageName: node + linkType: hard + +"@tinyhttp/send@npm:2.2.1": + version: 2.2.1 + resolution: "@tinyhttp/send@npm:2.2.1" + dependencies: + "@tinyhttp/content-type": "npm:^0.1.4" + "@tinyhttp/etag": "npm:2.1.1" + mime: "npm:4.0.1" + checksum: 10/e08d4a9e25469bb306ed767c74f2a72f948409719de374d53680d79f4b7dd55a5e03a64abf887ada45fc271b8648737f027a3d03ab484cd895188ba77b4152c7 + languageName: node + linkType: hard + +"@tinyhttp/type-is@npm:2.2.2": + version: 2.2.2 + resolution: "@tinyhttp/type-is@npm:2.2.2" + dependencies: + "@tinyhttp/content-type": "npm:^0.1.4" + mime: "npm:4.0.1" + checksum: 10/d652798e73154064186302e0a9d08ba1af343b37ef65ecdedade10c29ee8046a763f7da7946785409745bfb72a64ec159991a94d99420245fa4c72fe38711ed5 + languageName: node + linkType: hard + +"@tinyhttp/url@npm:2.1.1": + version: 2.1.1 + resolution: "@tinyhttp/url@npm:2.1.1" + checksum: 10/7663cbd035a0a141f58406fb553d13cb44301e8c7a152a65e432025d978a9f1eeb1bdce0b97366c15850f9617aff29b01bf40713b555a9b6875435b205a22921 + languageName: node + linkType: hard + +"@tinyhttp/vary@npm:^0.1.3": + version: 0.1.3 + resolution: "@tinyhttp/vary@npm:0.1.3" + checksum: 10/ef4887d171ff8730fe7a5a0816bb73cb5b738786363e99960ddb4dbb66c81a03d630816e0ab535d0f25b554354baf1115033991174ab9a2fbe28b5be280f248c + languageName: node + linkType: hard + "@tokenizer/token@npm:^0.3.0": version: 0.3.0 resolution: "@tokenizer/token@npm:0.3.0" @@ -11303,9 +11527,9 @@ __metadata: linkType: hard "@tsconfig/node10@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node10@npm:1.0.9" - checksum: 10/a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df + version: 1.0.10 + resolution: "@tsconfig/node10@npm:1.0.10" + checksum: 10/1204c05940c3669e897c1bcdf20668acc7fdbbeb41b4e8a3eb83ec486d6a442ba0f5d3b8122c93cb813fa498a232946ecb09e5a59a02828db3f1c27529563046 languageName: node linkType: hard @@ -11592,11 +11816,11 @@ __metadata: linkType: hard "@types/filesystem@npm:*": - version: 0.0.35 - resolution: "@types/filesystem@npm:0.0.35" + version: 0.0.36 + resolution: "@types/filesystem@npm:0.0.36" dependencies: "@types/filewriter": "npm:*" - checksum: 10/d8eb6c2b28601c5eacf8b48464bc48f060c2a7194e2c8e493e943f3a8543e35da9c706987665356ed67b11587cc94819fd8262037bf56945c6a38569a0e260f1 + checksum: 10/ec831040fe3aff066ffb7b7541e21a5dd59aa06e7175c61e592736e38b018b1d513551438254631e2a3fbc81ff671bf618401000f4c8ea79156934cbc7dcaeaa languageName: node linkType: hard @@ -11913,9 +12137,9 @@ __metadata: linkType: hard "@types/prop-types@npm:*": - version: 15.7.11 - resolution: "@types/prop-types@npm:15.7.11" - checksum: 10/7519ff11d06fbf6b275029fe03fff9ec377b4cb6e864cac34d87d7146c7f5a7560fd164bdc1d2dbe00b60c43713631251af1fd3d34d46c69cd354602bc0c7c54 + version: 15.7.12 + resolution: "@types/prop-types@npm:15.7.12" + checksum: 10/ac16cc3d0a84431ffa5cfdf89579ad1e2269549f32ce0c769321fdd078f84db4fbe1b461ed5a1a496caf09e637c0e367d600c541435716a55b1d9713f5035dfe languageName: node linkType: hard @@ -11950,24 +12174,24 @@ __metadata: linkType: hard "@types/react@npm:^16, @types/react@npm:^16.14.34": - version: 16.14.59 - resolution: "@types/react@npm:16.14.59" + version: 16.14.60 + resolution: "@types/react@npm:16.14.60" dependencies: "@types/prop-types": "npm:*" - "@types/scheduler": "npm:*" + "@types/scheduler": "npm:^0.16" csstype: "npm:^3.0.2" - checksum: 10/d4710c845b2bbf8142af4fb799b876952b4521dd64249ee2b44b183e2943b745649b01c21344289405a0544c116b42ef3771dc36be67d0c467834ffa7e1ca63b + checksum: 10/ddb352d64ca8811464aeb531ed37bd80225140fb3ec307e20d6d3374fc69c477d1ba2c193efb0fac8d9c92e68f07595723e16a2283f2c2c3749c64c8c1cfa217 languageName: node linkType: hard "@types/react@npm:^18.0.0": - version: 18.2.67 - resolution: "@types/react@npm:18.2.67" + version: 18.2.71 + resolution: "@types/react@npm:18.2.71" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 10/d7e248dbe8d9d3b05f0d8e128d615fc9c85aa2c5d15634271d20cb9b343dbeffb0875f31a44e7ac63b42afc25949bd4c3633b7ebee45ee4666591ca934a8dffb + checksum: 10/b9473a30b541de7ddd603fef65240c09459c04ede28959f9499d779c3dfb6bcb8fd969b377e097eb5b6bc3182ff094548bff47a2c8b8f57a7b601de22a225eb6 languageName: node linkType: hard @@ -12016,6 +12240,13 @@ __metadata: linkType: hard "@types/scheduler@npm:*": + version: 0.23.0 + resolution: "@types/scheduler@npm:0.23.0" + checksum: 10/874d753aa65c17760dfc460a91e6df24009bde37bfd427a031577b30262f7770c1b8f71a21366c7dbc76111967384cf4090a31d65315155180ef14bd7acccb32 + languageName: node + linkType: hard + +"@types/scheduler@npm:^0.16": version: 0.16.8 resolution: "@types/scheduler@npm:0.16.8" checksum: 10/6c091b096daa490093bf30dd7947cd28e5b2cd612ec93448432b33f724b162587fed9309a0acc104d97b69b1d49a0f3fc755a62282054d62975d53d7fd13472d @@ -12195,14 +12426,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.2.0": - version: 7.3.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.3.1" + version: 7.4.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.4.0" dependencies: "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:7.3.1" - "@typescript-eslint/type-utils": "npm:7.3.1" - "@typescript-eslint/utils": "npm:7.3.1" - "@typescript-eslint/visitor-keys": "npm:7.3.1" + "@typescript-eslint/scope-manager": "npm:7.4.0" + "@typescript-eslint/type-utils": "npm:7.4.0" + "@typescript-eslint/utils": "npm:7.4.0" + "@typescript-eslint/visitor-keys": "npm:7.4.0" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.4" @@ -12215,25 +12446,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/8ed276113a714d93ab3ababb1179e4785bd9378e6d97726519ea1d2ac502a94475e0be988c2ec427dcfc1e6950329d58da6e64131ee87028fce63493461cc51a + checksum: 10/9bd8852c7e4e9608c3fded94f7c60506cc7d2b6d8a8c1cad6d48969a7363751b20282874e55ccdf180635cf204cb10b3e1e5c3d1cff34d4fcd07762be3fc138e languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.2.0": - version: 7.3.1 - resolution: "@typescript-eslint/parser@npm:7.3.1" + version: 7.4.0 + resolution: "@typescript-eslint/parser@npm:7.4.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.3.1" - "@typescript-eslint/types": "npm:7.3.1" - "@typescript-eslint/typescript-estree": "npm:7.3.1" - "@typescript-eslint/visitor-keys": "npm:7.3.1" + "@typescript-eslint/scope-manager": "npm:7.4.0" + "@typescript-eslint/types": "npm:7.4.0" + "@typescript-eslint/typescript-estree": "npm:7.4.0" + "@typescript-eslint/visitor-keys": "npm:7.4.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/018326010fec1dcefd75809ccac5102a475bf1e052d824b898d707e7c0bf3e51e101164b410d1b2a513628985c96eb412538644d2005e26b99a22db6eb9402df + checksum: 10/142a9e1187d305ed43b4fef659c36fa4e28359467198c986f0955c70b4067c9799f4c85d9881fbf099c55dfb265e30666e28b3ef290520e242b45ca7cb8e4ca9 languageName: node linkType: hard @@ -12277,6 +12508,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/scope-manager@npm:7.4.0" + dependencies: + "@typescript-eslint/types": "npm:7.4.0" + "@typescript-eslint/visitor-keys": "npm:7.4.0" + checksum: 10/8cf9292444f9731017a707cac34bef5ae0eb33b5cd42ed07fcd046e981d97889d9201d48e02f470f2315123f53771435e10b1dc81642af28a11df5352a8e8be2 + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/type-utils@npm:7.2.0" @@ -12294,12 +12535,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.3.1": - version: 7.3.1 - resolution: "@typescript-eslint/type-utils@npm:7.3.1" +"@typescript-eslint/type-utils@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/type-utils@npm:7.4.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.3.1" - "@typescript-eslint/utils": "npm:7.3.1" + "@typescript-eslint/typescript-estree": "npm:7.4.0" + "@typescript-eslint/utils": "npm:7.4.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.0.1" peerDependencies: @@ -12307,7 +12548,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/fae9003a76a8f2a2a4bb88dc0f82c0a1ca0688633183fac391920e7124a12807aac84bb287a21f61e99523c15223d1c08e7680685ebf21d07429604cba6c420b + checksum: 10/a8bd0929d8237679b2b8a7817f070a4b9658ee976882fba8ff37e4a70dd33f87793e1b157771104111fe8054eaa8ad437a010b6aa465072fbdb932647125db2d languageName: node linkType: hard @@ -12349,13 +12590,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.3.1, @typescript-eslint/types@npm:^7.2.0": +"@typescript-eslint/types@npm:7.3.1": version: 7.3.1 resolution: "@typescript-eslint/types@npm:7.3.1" checksum: 10/c9c8eae1cf937cececd99a253bd65eb71b40206e79cf917ad9c3b3ab80cc7ce5fefb2804f9fd2a70e7438951f0d1e63df3031fc61e3a08dfef5fde208a12e0ed languageName: node linkType: hard +"@typescript-eslint/types@npm:7.4.0, @typescript-eslint/types@npm:^7.2.0": + version: 7.4.0 + resolution: "@typescript-eslint/types@npm:7.4.0" + checksum: 10/2782c5bf65cd3dfa9cd32bc3023676bbca22144987c3f6c6b67fd96c73d4a60b85a57458c49fd11b9971ac6531824bb3ae0664491e7a6de25d80c523c9be92b7 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" @@ -12431,6 +12679,25 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.4.0" + dependencies: + "@typescript-eslint/types": "npm:7.4.0" + "@typescript-eslint/visitor-keys": "npm:7.4.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" + minimatch: "npm:9.0.3" + semver: "npm:^7.5.4" + ts-api-utils: "npm:^1.0.1" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/162ec9d7582f45588342e1be36fdb60e41f50bbdfbc3035c91b517ff5d45244f776921c88d88e543e1c7d0f1e6ada5474a8316b78f1b0e6d2233b101bc45b166 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:6.21.0, @typescript-eslint/utils@npm:^6.13.2, @typescript-eslint/utils@npm:^6.21.0": version: 6.21.0 resolution: "@typescript-eslint/utils@npm:6.21.0" @@ -12465,20 +12732,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.3.1, @typescript-eslint/utils@npm:~7.3.0": - version: 7.3.1 - resolution: "@typescript-eslint/utils@npm:7.3.1" +"@typescript-eslint/utils@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/utils@npm:7.4.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" "@types/json-schema": "npm:^7.0.12" "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:7.3.1" - "@typescript-eslint/types": "npm:7.3.1" - "@typescript-eslint/typescript-estree": "npm:7.3.1" + "@typescript-eslint/scope-manager": "npm:7.4.0" + "@typescript-eslint/types": "npm:7.4.0" + "@typescript-eslint/typescript-estree": "npm:7.4.0" semver: "npm:^7.5.4" peerDependencies: eslint: ^8.56.0 - checksum: 10/234d9d65fe5d0f4a31345bd8f5a6f2879a578b3a531a14c2b3edaa7fb587c71d26249f86c41857382c0405384dc104955c02b588b3cee6fc2734f1ae40aef07b + checksum: 10/ffed27e770c486cd000ff892d9049b0afe8b9d6318452a5355b78a37436cbb414bceacae413a2ac813f3e584684825d5e0baa2e6376b7ad6013a108ac91bc19d languageName: node linkType: hard @@ -12500,6 +12767,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:~7.3.0": + version: 7.3.1 + resolution: "@typescript-eslint/utils@npm:7.3.1" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@types/json-schema": "npm:^7.0.12" + "@types/semver": "npm:^7.5.0" + "@typescript-eslint/scope-manager": "npm:7.3.1" + "@typescript-eslint/types": "npm:7.3.1" + "@typescript-eslint/typescript-estree": "npm:7.3.1" + semver: "npm:^7.5.4" + peerDependencies: + eslint: ^8.56.0 + checksum: 10/234d9d65fe5d0f4a31345bd8f5a6f2879a578b3a531a14c2b3edaa7fb587c71d26249f86c41857382c0405384dc104955c02b588b3cee6fc2734f1ae40aef07b + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" @@ -12540,6 +12824,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.4.0" + dependencies: + "@typescript-eslint/types": "npm:7.4.0" + eslint-visitor-keys: "npm:^3.4.1" + checksum: 10/70dc99f2ad116c6e2d9e55af249e4453e06bba2ceea515adef2d2e86e97e557865bb1b1d467667462443eb0d624baba36f7442fd1082f3874339bbc381c26e93 + languageName: node + linkType: hard + "@ungap/structured-clone@npm:^1.2.0": version: 1.2.0 resolution: "@ungap/structured-clone@npm:1.2.0" @@ -13253,11 +13547,9 @@ __metadata: linkType: hard "ansi-escapes@npm:^6.2.0": - version: 6.2.0 - resolution: "ansi-escapes@npm:6.2.0" - dependencies: - type-fest: "npm:^3.0.0" - checksum: 10/442f91b04650b35bc4815f47c20412d69ddbba5d4bf22f72ec03be352fca2de6819c7e3f4dfd17816ee4e0c6c965fe85e6f1b3f09683996a8d12fd366afd924e + version: 6.2.1 + resolution: "ansi-escapes@npm:6.2.1" + checksum: 10/3b064937dc8a0645ed8094bc8b09483ee718f3aa3139746280e6c2ea80e28c0a3ce66973d0f33e88e60021abbf67e5f877deabfc810e75edf8a19dfa128850be languageName: node linkType: hard @@ -14506,9 +14798,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001591, caniuse-lite@npm:^1.0.30001599": - version: 1.0.30001599 - resolution: "caniuse-lite@npm:1.0.30001599" - checksum: 10/c9a5ad806fc0d446e4f995d551b840d8fdcbe97958b7f83ff7a255a8ef5e40ca12ca1a508c66b3ab147e19eef932d28772d205c046500dd0740ea9dfb602e2e1 + version: 1.0.30001600 + resolution: "caniuse-lite@npm:1.0.30001600" + checksum: 10/4c52f83ed71bc5f6e443bd17923460f1c77915adc2c2aa79ddaedceccc690b5917054b0c41b79e9138cbbd9abcdc0db9e224e79e3e734e581dfec06505f3a2b4 languageName: node linkType: hard @@ -14726,7 +15018,7 @@ __metadata: languageName: node linkType: hard -"citty@npm:^0.1.5, citty@npm:^0.1.6": +"citty@npm:^0.1.6": version: 0.1.6 resolution: "citty@npm:0.1.6" dependencies: @@ -14809,15 +15101,15 @@ __metadata: linkType: hard "cli-table3@npm:^0.6.1": - version: 0.6.3 - resolution: "cli-table3@npm:0.6.3" + version: 0.6.4 + resolution: "cli-table3@npm:0.6.4" dependencies: "@colors/colors": "npm:1.5.0" string-width: "npm:^4.2.0" dependenciesMeta: "@colors/colors": optional: true - checksum: 10/8d82b75be7edc7febb1283dc49582a521536527cba80af62a2e4522a0ee39c252886a1a2f02d05ae9d753204dbcffeb3a40d1358ee10dccd7fe8d935cfad3f85 + checksum: 10/f610294fce327b1b36c40f7475f18d166f907627cab7991b35d233b8bf6e182a0d0753b5bab2d4c8571aea64ff880ff11334cef4e5eb0cee8a4b4b5fcd661486 languageName: node linkType: hard @@ -15995,12 +16287,12 @@ __metadata: languageName: node linkType: hard -"css-declaration-sorter@npm:^7.1.1": - version: 7.1.1 - resolution: "css-declaration-sorter@npm:7.1.1" +"css-declaration-sorter@npm:^7.2.0": + version: 7.2.0 + resolution: "css-declaration-sorter@npm:7.2.0" peerDependencies: postcss: ^8.0.9 - checksum: 10/291289eb5ba515affa88f33326d8c197cb00049ea3ea13947ca3c234bf392faca1a6be6f6d4b5bbe6f65cef6e7ad0003da631d60ae02dd9d6d3b22fd580b4748 + checksum: 10/2acb9c13f556fc8f05e601e66ecae4cfdec0ed50ca69f18177718ad5a86c3929f7d0a2cae433fd831b2594670c6e61d3a25c79aa7830be5828dcd9d29219d387 languageName: node linkType: hard @@ -16126,12 +16418,12 @@ __metadata: languageName: node linkType: hard -"cssnano-preset-default@npm:^6.1.1": - version: 6.1.1 - resolution: "cssnano-preset-default@npm:6.1.1" +"cssnano-preset-default@npm:^6.1.2": + version: 6.1.2 + resolution: "cssnano-preset-default@npm:6.1.2" dependencies: browserslist: "npm:^4.23.0" - css-declaration-sorter: "npm:^7.1.1" + css-declaration-sorter: "npm:^7.2.0" cssnano-utils: "npm:^4.0.2" postcss-calc: "npm:^9.0.1" postcss-colormin: "npm:^6.1.0" @@ -16162,7 +16454,7 @@ __metadata: postcss-unique-selectors: "npm:^6.0.4" peerDependencies: postcss: ^8.4.31 - checksum: 10/8d05c0f454087510bc5e3254d364e4d4a818b09d57be138f9e63e40e1665295db6f6abd2471a60675d8b2fb7774408a99d1b1fc5603f83e3b6d1ae8e6d64f1c2 + checksum: 10/ea7515a8ee82df8ffecdaa39d5a7778264d215e56bef675daec8d0eedbbe7fe70853a4a4538ff6731c2260ca47c192eaf194883265a5abfd6abd006494611bc7 languageName: node linkType: hard @@ -16176,14 +16468,14 @@ __metadata: linkType: hard "cssnano@npm:^6.0.1": - version: 6.1.1 - resolution: "cssnano@npm:6.1.1" + version: 6.1.2 + resolution: "cssnano@npm:6.1.2" dependencies: - cssnano-preset-default: "npm:^6.1.1" + cssnano-preset-default: "npm:^6.1.2" lilconfig: "npm:^3.1.1" peerDependencies: postcss: ^8.4.31 - checksum: 10/cfbf69986f8f3d25a6d9c4250383ebef70a9917dc48a6e381ff60e1394b3553e472315109e7201ee83334133c5084b2073e88ecc02082e75b908f5a9596ce256 + checksum: 10/65aad92c5ee0089ffd4cd933c18c65edbf7634f7c3cd833a499dc948aa7e4168be22130dfe83bde07fcdc87f7c45a02d09040b7f439498208bc90b8d5a9abcc8 languageName: node linkType: hard @@ -16484,7 +16776,7 @@ __metadata: languageName: node linkType: hard -"defu@npm:^6.1.3": +"defu@npm:^6.1.4": version: 6.1.4 resolution: "defu@npm:6.1.4" checksum: 10/aeffdb47300f45b4fdef1c5bd3880ac18ea7a1fd5b8a8faf8df29350ff03bf16dd34f9800205cab513d476e4c0a3783aa0cff0a433aff0ac84a67ddc4c8a2d64 @@ -16813,6 +17105,15 @@ __metadata: languageName: node linkType: hard +"dot-prop@npm:^8.0.2": + version: 8.0.2 + resolution: "dot-prop@npm:8.0.2" + dependencies: + type-fest: "npm:^3.8.0" + checksum: 10/b321e43393c6efba35875c493ebfc6115d8a56c251431e88f055b82224e104c8a6eeb567877339715fb81cdbb67009bfa9cffb57cc423a560756874989dabb45 + languageName: node + linkType: hard + "dot@npm:^2.0.0-beta.1": version: 2.0.0-beta.1 resolution: "dot@npm:2.0.0-beta.1" @@ -16937,9 +17238,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.668": - version: 1.4.713 - resolution: "electron-to-chromium@npm:1.4.713" - checksum: 10/e653b6f589188606923d5060abeb28f47e002c5f46240fac787b26a9b582cc484bc9922bb428349945889e85b60418e7737c14ce6eb96ed830fb8a1e9814d285 + version: 1.4.717 + resolution: "electron-to-chromium@npm:1.4.717" + checksum: 10/ec5df5f0731cd4b7e42d93ab9d17ac5c53bc6c6a0cd298af090c96717652cc8962a72094fd602aff3245eb839712ed7a2587f4e0d90a6bf7834f105a06fefa85 languageName: node linkType: hard @@ -17126,10 +17427,24 @@ __metadata: languageName: node linkType: hard +"es-escape-html@npm:^0.1.1": + version: 0.1.1 + resolution: "es-escape-html@npm:0.1.1" + checksum: 10/26f5174516e40cb7856cb7d60fba202084c4cebc0910970b66aa2453325af2bc0bcb8b4f95bc909fba7feb37ebde4a3fbd204e4d59cacd9fdd64a2ffd6d2da30 + languageName: node + linkType: hard + "es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.4.1": - version: 1.4.2 - resolution: "es-module-lexer@npm:1.4.2" - checksum: 10/54a02a36078b244e7d4c989c722227080742ed71fd977f53bf0d923ccafcbd2d93b9d9f1f98c65627d7fd65e8a62e37bcfdf1f0533364b0308f501344a54917a + version: 1.5.0 + resolution: "es-module-lexer@npm:1.5.0" + checksum: 10/d0e198d8642cb42aa82d86f2c6830cb6786916171a3e693046c11500c0cb62e77703940e58757db8aafa8a86fa2a9cc1c493dcd22c0b03c4a72dede3ce5c7dd1 + languageName: node + linkType: hard + +"es-vary@npm:^0.1.1": + version: 0.1.2 + resolution: "es-vary@npm:0.1.2" + checksum: 10/57135ad6f21c651d6f8e549e54878d44dd5d1bfb7be94edea7a51839c1a3cd59484d5b86e027e069c447c2bb322b83f6230ef74cd510e708ca2fc3dc12023eba languageName: node linkType: hard @@ -17897,12 +18212,12 @@ __metadata: linkType: hard "eslint-scope@npm:^8.0.0": - version: 8.0.0 - resolution: "eslint-scope@npm:8.0.0" + version: 8.0.1 + resolution: "eslint-scope@npm:8.0.1" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10/c02f2d675a98ba74a33c4824858a75951cad59a3ff323994b25bfa9cecad0a8d515656af6fb4ef25da1e6f01099abcfd99efe32f512e8fea4876b70a81787b7b + checksum: 10/458513863d3c79005b599f40250437bddba923f18549058ea45820a8d3d4bbc67fe292751d522a0cab69dd01fe211ffde5c1a5fc867e86f2d28727b1d61610da languageName: node linkType: hard @@ -18028,6 +18343,13 @@ __metadata: languageName: node linkType: hard +"eta@npm:^3.2.0": + version: 3.4.0 + resolution: "eta@npm:3.4.0" + checksum: 10/68040fb608086ce9148a3b2bb6f1b21ed9ed3cbede6690eba953cfb3bf40fca3f9690fa4b984a7446190878a6250bbe29de62ca8253ab2007753f53fc6491cb5 + languageName: node + linkType: hard + "etag@npm:~1.8.1": version: 1.8.1 resolution: "etag@npm:1.8.1" @@ -18225,8 +18547,8 @@ __metadata: linkType: hard "express@npm:^4.17.3, express@npm:^4.18.2": - version: 4.19.1 - resolution: "express@npm:4.19.1" + version: 4.19.2 + resolution: "express@npm:4.19.2" dependencies: accepts: "npm:~1.3.8" array-flatten: "npm:1.1.1" @@ -18259,7 +18581,7 @@ __metadata: type-is: "npm:~1.6.18" utils-merge: "npm:1.0.1" vary: "npm:~1.1.2" - checksum: 10/7b817f21afe96e478cd7fe77cd5f52cf7d2d6b70c3e98f0e1399ce48356cef3c5f5d34bf93bdbc7bc326403005c45e2f8522f51b4cc319da52220066c9094745 + checksum: 10/3fcd792536f802c059789ef48db3851b87e78fba103423e524144d79af37da7952a2b8d4e1a007f423329c7377d686d9476ac42e7d9ea413b80345d495e30a3a languageName: node linkType: hard @@ -19200,20 +19522,20 @@ __metadata: linkType: hard "giget@npm:^1.0.0": - version: 1.2.1 - resolution: "giget@npm:1.2.1" + version: 1.2.3 + resolution: "giget@npm:1.2.3" dependencies: - citty: "npm:^0.1.5" + citty: "npm:^0.1.6" consola: "npm:^3.2.3" - defu: "npm:^6.1.3" - node-fetch-native: "npm:^1.6.1" - nypm: "npm:^0.3.3" + defu: "npm:^6.1.4" + node-fetch-native: "npm:^1.6.3" + nypm: "npm:^0.3.8" ohash: "npm:^1.1.3" - pathe: "npm:^1.1.1" + pathe: "npm:^1.1.2" tar: "npm:^6.2.0" bin: giget: dist/cli.mjs - checksum: 10/5d50c70754fef1f199547fc58ad8ad18fed7f4ee3a2e624827d3f214476b731492ee96bd14934ae23b863524369801b23fd0785028576837be0c23bf2031c2b7 + checksum: 10/85bdcf380566fc9c4299f029acbe78a706f1825912c6cea39b675d08064399988f5de30d17238246f725183ac7504e7b9d3000c417f1df7ebb52ab26c7d3ab8c languageName: node linkType: hard @@ -19675,6 +19997,13 @@ __metadata: languageName: node linkType: hard +"header-range-parser@npm:1.1.3, header-range-parser@npm:^1.1.3": + version: 1.1.3 + resolution: "header-range-parser@npm:1.1.3" + checksum: 10/e8e4cc11dda4b101e270ad0b8c30a94d5cdf11ca96846136b05c3b18357780d682b8cf0956031729f573df9731fbf46a935234e9b2ce33f472748a5a447cfac5 + languageName: node + linkType: hard + "hexoid@npm:^1.0.0": version: 1.0.0 resolution: "hexoid@npm:1.0.0" @@ -20125,7 +20454,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.0.4, ignore@npm:^5.1.4, ignore@npm:^5.1.9, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.0": +"ignore@npm:^5.0.4, ignore@npm:^5.1.4, ignore@npm:^5.1.9, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065 @@ -20205,6 +20534,13 @@ __metadata: languageName: node linkType: hard +"inflection@npm:^3.0.0": + version: 3.0.0 + resolution: "inflection@npm:3.0.0" + checksum: 10/e8aae6abb872a8aa19184a1b84470fff7120806329c78011befcf50bce04a7b0d65012ac373f2cc5caeaaf241874c7ae20a26038ff7dbe0cdae0b863f25b5e02 + languageName: node + linkType: hard + "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -20383,7 +20719,7 @@ __metadata: languageName: node linkType: hard -"ipaddr.js@npm:^2.0.1": +"ipaddr.js@npm:^2.0.1, ipaddr.js@npm:^2.1.0": version: 2.1.0 resolution: "ipaddr.js@npm:2.1.0" checksum: 10/42c16d95cf451399707c2c46e605b88db1ea2b1477b25774b5a7ee96852b0bb1efdc01adbff01fedbe702ff246e1aca5c5e915a6f5a1f1485233a5f7c2eb73c2 @@ -21763,6 +22099,28 @@ __metadata: languageName: node linkType: hard +"json-server@npm:^1.0.0-alpha.23": + version: 1.0.0-alpha.23 + resolution: "json-server@npm:1.0.0-alpha.23" + dependencies: + "@tinyhttp/app": "npm:^2.2.3" + "@tinyhttp/cors": "npm:^2.0.0" + chalk: "npm:^5.3.0" + chokidar: "npm:^3.5.3" + dot-prop: "npm:^8.0.2" + eta: "npm:^3.2.0" + inflection: "npm:^3.0.0" + json5: "npm:^2.2.3" + lowdb: "npm:^7.0.1" + milliparsec: "npm:^2.3.0" + sirv: "npm:^2.0.4" + sort-on: "npm:^6.0.0" + bin: + json-server: lib/bin.js + checksum: 10/75e24171046f4ef68728615922b3f376a7b555e22d1c2cef13f7fecc2030e469ba05e253058a2142750e59e27a0dc63b4519033b651a110025f9984635d2559c + languageName: node + linkType: hard + "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" @@ -21997,6 +22355,13 @@ __metadata: languageName: node linkType: hard +"known-css-properties@npm:^0.30.0": + version: 0.30.0 + resolution: "known-css-properties@npm:0.30.0" + checksum: 10/baed51f1c6baf0a904d0c5a041ebdc3a33a22af65a8dcdf7c2ecc22f80360ee44d2992737b745ed2e16a74f37cbb668a27d1e469d776286688921d0b8f0d3c04 + languageName: node + linkType: hard + "kuler@npm:^2.0.0": version: 2.0.0 resolution: "kuler@npm:2.0.0" @@ -22665,6 +23030,15 @@ __metadata: languageName: node linkType: hard +"lowdb@npm:^7.0.1": + version: 7.0.1 + resolution: "lowdb@npm:7.0.1" + dependencies: + steno: "npm:^4.0.2" + checksum: 10/089cb878515b3b4634980c77b1697991571832a440f0fbc8cabe410ff9bb22b377387fc6cf6ebd9a6430707a835ebd69561f89d30aae7def43c93410b6f82b58 + languageName: node + linkType: hard + "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -22981,7 +23355,7 @@ __metadata: languageName: node linkType: hard -"meow@npm:^13.1.0": +"meow@npm:^13.2.0": version: 13.2.0 resolution: "meow@npm:13.2.0" checksum: 10/4eff5bc921fed0b8a471ad79069d741a0210036d717547d0c7f36fdaf84ef7a3036225f38b6a53830d84dc9cbf8b944b097fde62381b8b5b215119e735ce1063 @@ -23052,6 +23426,13 @@ __metadata: languageName: node linkType: hard +"milliparsec@npm:^2.3.0": + version: 2.3.0 + resolution: "milliparsec@npm:2.3.0" + checksum: 10/fa7df167714f39cf9c6e6479d4c83904a6f897a2e7f2a9114efbb63ca1c07bfce825c5c0e58c2aa19ca11b72c728e86a13e92bbd081123b87c756ead191f1a0e + languageName: node + linkType: hard + "mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.28.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -23086,6 +23467,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:4.0.1": + version: 4.0.1 + resolution: "mime@npm:4.0.1" + bin: + mime: bin/cli.js + checksum: 10/4598030457488c240a4ba30561a619cfb627f96271ecced5d715eb5c44d33105e3f28d28fe46d72eeadb78d7de5aeb1f8e62d448c14b0e518a7ace76d2af5f2d + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -23386,7 +23776,7 @@ __metadata: languageName: node linkType: hard -"mrmime@npm:2.0.0": +"mrmime@npm:2.0.0, mrmime@npm:^2.0.0": version: 2.0.0 resolution: "mrmime@npm:2.0.0" checksum: 10/8d95f714ea200c6cf3e3777cbc6168be04b05ac510090a9b41eef5ec081efeb1d1de3e535ffb9c9689fffcc42f59864fd52a500e84a677274f070adeea615c45 @@ -23686,10 +24076,10 @@ __metadata: languageName: node linkType: hard -"node-fetch-native@npm:^1.6.1": - version: 1.6.3 - resolution: "node-fetch-native@npm:1.6.3" - checksum: 10/50141f362c5cc92128c8af35a3b10ce7af3094fefcc2e9e2aaa62cc6fdb94382b982bfa624db85e8f3d87257d226749a3012a0fba49fe80b13ccacd9fdb56989 +"node-fetch-native@npm:^1.6.3": + version: 1.6.4 + resolution: "node-fetch-native@npm:1.6.4" + checksum: 10/39c4c6d0c2a4bed1444943e1647ad0d79eb6638cf159bc37dffeafd22cffcf6a998e006aa1f3dd1d9d2258db7d78dee96b44bee4ba0bbaf0440ed348794f2543 languageName: node linkType: hard @@ -23751,8 +24141,8 @@ __metadata: linkType: hard "node-gyp@npm:^10.0.0, node-gyp@npm:latest": - version: 10.0.1 - resolution: "node-gyp@npm:10.0.1" + version: 10.1.0 + resolution: "node-gyp@npm:10.1.0" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" @@ -23766,7 +24156,7 @@ __metadata: which: "npm:^4.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 10/578cf0c821f258ce4b6ebce4461eca4c991a4df2dee163c0624f2fe09c7d6d37240be4942285a0048d307230248ee0b18382d6623b9a0136ce9533486deddfa8 + checksum: 10/89e105e495e66cd4568af3cf79cdeb67d670eb069e33163c7781d3366470a30367c9bd8dea59e46db16370020139e5bf78b1fbc03284cb571754dfaa59744db5 languageName: node linkType: hard @@ -24005,21 +24395,21 @@ __metadata: languageName: node linkType: hard -"nx@npm:18.1.2, nx@npm:~18.1.0": - version: 18.1.2 - resolution: "nx@npm:18.1.2" - dependencies: - "@nrwl/tao": "npm:18.1.2" - "@nx/nx-darwin-arm64": "npm:18.1.2" - "@nx/nx-darwin-x64": "npm:18.1.2" - "@nx/nx-freebsd-x64": "npm:18.1.2" - "@nx/nx-linux-arm-gnueabihf": "npm:18.1.2" - "@nx/nx-linux-arm64-gnu": "npm:18.1.2" - "@nx/nx-linux-arm64-musl": "npm:18.1.2" - "@nx/nx-linux-x64-gnu": "npm:18.1.2" - "@nx/nx-linux-x64-musl": "npm:18.1.2" - "@nx/nx-win32-arm64-msvc": "npm:18.1.2" - "@nx/nx-win32-x64-msvc": "npm:18.1.2" +"nx@npm:18.1.3, nx@npm:~18.1.0": + version: 18.1.3 + resolution: "nx@npm:18.1.3" + dependencies: + "@nrwl/tao": "npm:18.1.3" + "@nx/nx-darwin-arm64": "npm:18.1.3" + "@nx/nx-darwin-x64": "npm:18.1.3" + "@nx/nx-freebsd-x64": "npm:18.1.3" + "@nx/nx-linux-arm-gnueabihf": "npm:18.1.3" + "@nx/nx-linux-arm64-gnu": "npm:18.1.3" + "@nx/nx-linux-arm64-musl": "npm:18.1.3" + "@nx/nx-linux-x64-gnu": "npm:18.1.3" + "@nx/nx-linux-x64-musl": "npm:18.1.3" + "@nx/nx-win32-arm64-msvc": "npm:18.1.3" + "@nx/nx-win32-x64-msvc": "npm:18.1.3" "@yarnpkg/lockfile": "npm:^1.1.0" "@yarnpkg/parsers": "npm:3.0.0-rc.46" "@zkochan/js-yaml": "npm:0.0.6" @@ -24085,11 +24475,11 @@ __metadata: bin: nx: bin/nx.js nx-cloud: bin/nx-cloud.js - checksum: 10/9abb4d5a2cb105e25dc52a477be1f61ba94abd8795a8faad4099dde50c3c79ef158a722242ceaed21294a69ab8ee98bf77b98593891e0455bd29ad8da45305f4 + checksum: 10/216b91cda546c949fb4cc64ee036d1510482ceb6668f6f157d5c25c47dae179e26792867b163a68ca735f90559dfb04f7c811c791ef4d26cdd8799c498fec880 languageName: node linkType: hard -"nypm@npm:^0.3.3": +"nypm@npm:^0.3.8": version: 0.3.8 resolution: "nypm@npm:0.3.8" dependencies: @@ -24943,7 +25333,7 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.1.1, pathe@npm:^1.1.2": +"pathe@npm:^1.1.2": version: 1.1.2 resolution: "pathe@npm:1.1.2" checksum: 10/f201d796351bf7433d147b92c20eb154a4e0ea83512017bf4ec4e492a5d6e738fb45798be4259a61aa81270179fce11026f6ff0d3fa04173041de044defe9d80 @@ -25774,7 +26164,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.23, postcss@npm:^8.4.24, postcss@npm:^8.4.31, postcss@npm:^8.4.33, postcss@npm:^8.4.35, postcss@npm:~8.4.31": +"postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.23, postcss@npm:^8.4.24, postcss@npm:^8.4.31, postcss@npm:^8.4.33, postcss@npm:^8.4.35, postcss@npm:^8.4.38, postcss@npm:~8.4.31": version: 8.4.38 resolution: "postcss@npm:8.4.38" dependencies: @@ -26653,6 +27043,13 @@ __metadata: languageName: node linkType: hard +"regexparam@npm:^2.0.1": + version: 2.0.2 + resolution: "regexparam@npm:2.0.2" + checksum: 10/e7d6ae57a528a291392fa8c56705aa42f9f20107811930e82153b73836a3793b6ca0cc9016f0cc5abb7b85f6edccba3735701fb336d50e3e322025fbfc87899b + languageName: node + linkType: hard + "regexpu-core@npm:^5.3.1": version: 5.3.2 resolution: "regexpu-core@npm:5.3.2" @@ -27620,6 +28017,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^2.0.4": + version: 2.0.4 + resolution: "sirv@npm:2.0.4" + dependencies: + "@polka/url": "npm:^1.0.0-next.24" + mrmime: "npm:^2.0.0" + totalist: "npm:^3.0.0" + checksum: 10/24f42cf06895017e589c9d16fc3f1c6c07fe8b0dbafce8a8b46322cfba67b7f2498610183954cb0e9d089c8cb60002a7ee7e8bca6a91a0d7042bfbc3473c95c3 + languageName: node + linkType: hard + "sisteransi@npm:^1.0.5": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -27765,6 +28173,15 @@ __metadata: languageName: node linkType: hard +"sort-on@npm:^6.0.0": + version: 6.0.0 + resolution: "sort-on@npm:6.0.0" + dependencies: + dot-prop: "npm:^8.0.2" + checksum: 10/4734aac689fae97cc03bf34a37ad7f6bd21fba24df7cadbbd76273c37f26f7944b4322b4baec1ab5d8d8f4aa033b50c08971b2fba6051cf4646dc68b286da4e1 + languageName: node + linkType: hard + "source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": version: 1.2.0 resolution: "source-map-js@npm:1.2.0" @@ -28106,6 +28523,13 @@ __metadata: languageName: node linkType: hard +"steno@npm:^4.0.2": + version: 4.0.2 + resolution: "steno@npm:4.0.2" + checksum: 10/cb8beb6b6da410f6a307261da813e57569ff3c85b11695437259f49f081fc6b0eeb26c059f0ec661c4098a09f361057fe834b04d3f94ece885e96a9e0eeba697 + languageName: node + linkType: hard + "store2@npm:^2.14.2": version: 2.14.3 resolution: "store2@npm:2.14.3" @@ -28406,13 +28830,14 @@ __metadata: linkType: hard "stylelint@npm:^16.0.2": - version: 16.2.1 - resolution: "stylelint@npm:16.2.1" - dependencies: - "@csstools/css-parser-algorithms": "npm:^2.5.0" - "@csstools/css-tokenizer": "npm:^2.2.3" - "@csstools/media-query-list-parser": "npm:^2.1.7" - "@csstools/selector-specificity": "npm:^3.0.1" + version: 16.3.0 + resolution: "stylelint@npm:16.3.0" + dependencies: + "@csstools/css-parser-algorithms": "npm:^2.6.1" + "@csstools/css-tokenizer": "npm:^2.2.4" + "@csstools/media-query-list-parser": "npm:^2.1.9" + "@csstools/selector-specificity": "npm:^3.0.2" + "@dual-bundle/import-meta-resolve": "npm:^4.0.0" balanced-match: "npm:^2.0.0" colord: "npm:^2.9.3" cosmiconfig: "npm:^9.0.0" @@ -28426,19 +28851,19 @@ __metadata: globby: "npm:^11.1.0" globjoin: "npm:^0.1.4" html-tags: "npm:^3.3.1" - ignore: "npm:^5.3.0" + ignore: "npm:^5.3.1" imurmurhash: "npm:^0.1.4" is-plain-object: "npm:^5.0.0" - known-css-properties: "npm:^0.29.0" + known-css-properties: "npm:^0.30.0" mathml-tag-names: "npm:^2.1.3" - meow: "npm:^13.1.0" + meow: "npm:^13.2.0" micromatch: "npm:^4.0.5" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.0" - postcss: "npm:^8.4.33" + postcss: "npm:^8.4.38" postcss-resolve-nested-selector: "npm:^0.1.1" postcss-safe-parser: "npm:^7.0.0" - postcss-selector-parser: "npm:^6.0.15" + postcss-selector-parser: "npm:^6.0.16" postcss-value-parser: "npm:^4.2.0" resolve-from: "npm:^5.0.0" string-width: "npm:^4.2.3" @@ -28449,7 +28874,7 @@ __metadata: write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 10/e2f8a5d273788239f4c5bd5c4d9a9737ec8062ebd6d247a51466bfce434e5da28e6346cfcf00a1b9f45738070a65d90675624288a9afe8346f7c1027821005a1 + checksum: 10/6d765ae2d7c13e9aed39e3b830e039ca4f3ac580abfdbde5dfa25b7659ecf4c4cb046010011319de18024c7d2081d9355125c6bfb7f763b255773005feca6444 languageName: node linkType: hard @@ -28657,15 +29082,15 @@ __metadata: linkType: hard "table@npm:^6.8.1": - version: 6.8.1 - resolution: "table@npm:6.8.1" + version: 6.8.2 + resolution: "table@npm:6.8.2" dependencies: ajv: "npm:^8.0.1" lodash.truncate: "npm:^4.4.2" slice-ansi: "npm:^4.0.0" string-width: "npm:^4.2.3" strip-ansi: "npm:^6.0.1" - checksum: 10/512c4f2bfb6f46f4d5ced19943ae5db1a5163eac1f23ce752625eb49715f84217c1c62bc2d017eb8985b37e0f85731108f654df809c0b34cca1678a672e7ea20 + checksum: 10/2946162eb87a91b9bf4283214d26830db96f09cf517eff18e7501d47a4770c529b432bb54c9394337c3dfd6c8dbf66581f76edb37e9838beb6ec394080af4ac2 languageName: node linkType: hard @@ -28720,8 +29145,8 @@ __metadata: linkType: hard "tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.12, tar@npm:^6.1.2, tar@npm:^6.2.0": - version: 6.2.0 - resolution: "tar@npm:6.2.0" + version: 6.2.1 + resolution: "tar@npm:6.2.1" dependencies: chownr: "npm:^2.0.0" fs-minipass: "npm:^2.0.0" @@ -28729,7 +29154,7 @@ __metadata: minizlib: "npm:^2.1.1" mkdirp: "npm:^1.0.3" yallist: "npm:^4.0.0" - checksum: 10/2042bbb14830b5cd0d584007db0eb0a7e933e66d1397e72a4293768d2332449bc3e312c266a0887ec20156dea388d8965e53b4fc5097f42d78593549016da089 + checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0 languageName: node linkType: hard @@ -29027,6 +29452,13 @@ __metadata: languageName: node linkType: hard +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 10/5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a + languageName: node + linkType: hard + "tough-cookie@npm:^2.3.3, tough-cookie@npm:~2.5.0": version: 2.5.0 resolution: "tough-cookie@npm:2.5.0" @@ -29449,7 +29881,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^3.0.0": +"type-fest@npm:^3.8.0": version: 3.13.1 resolution: "type-fest@npm:3.13.1" checksum: 10/9a8a2359ada34c9b3affcaf3a8f73ee14c52779e89950db337ce66fb74c3399776c697c99f2532e9b16e10e61cfdba3b1c19daffb93b338b742f0acd0117ce12 @@ -29457,9 +29889,9 @@ __metadata: linkType: hard "type-fest@npm:^4.10.2": - version: 4.13.1 - resolution: "type-fest@npm:4.13.1" - checksum: 10/3a5db31e45d79dae6d7810b3e6180fed117cfeec7b9f0d3ebbc3780dc53297f9f0dea1752cd8d1f42c2f8206f9a1091a18aa38eb3cb9923a4c79aea480404182 + version: 4.14.0 + resolution: "type-fest@npm:4.14.0" + checksum: 10/fcf3b62fed194a3fc3d22bf287af3b1e1e93d4b5cb9723c093b694998d1588f27cc78dc4942ff4d319bb94ec60cb4afe5d1cd3d50ef144e47e327acbc34a5234 languageName: node linkType: hard @@ -30279,9 +30711,9 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:6.1.1": - version: 6.1.1 - resolution: "webpack-dev-middleware@npm:6.1.1" +"webpack-dev-middleware@npm:6.1.2, webpack-dev-middleware@npm:^6.1.1": + version: 6.1.2 + resolution: "webpack-dev-middleware@npm:6.1.2" dependencies: colorette: "npm:^2.0.10" memfs: "npm:^3.4.12" @@ -30293,7 +30725,7 @@ __metadata: peerDependenciesMeta: webpack: optional: true - checksum: 10/b0637584f18b02174fd7fc2e6278efb8e2fb5308abe4ffe73658e59ff53a62c05686f161b06bd5c41d42611aa395b8c8f087d7ff8cf2304232c097a694a5b94e + checksum: 10/043d9b7b6b2ec433515da138d6527573828f79e164722410038ba96a5d65be0e28241161a90168471c13231e5e8a84c0f7cd215433828bc64087b0bdab8aa553 languageName: node linkType: hard @@ -30312,24 +30744,6 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:^6.1.1": - version: 6.1.2 - resolution: "webpack-dev-middleware@npm:6.1.2" - dependencies: - colorette: "npm:^2.0.10" - memfs: "npm:^3.4.12" - mime-types: "npm:^2.1.31" - range-parser: "npm:^1.2.1" - schema-utils: "npm:^4.0.0" - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - checksum: 10/043d9b7b6b2ec433515da138d6527573828f79e164722410038ba96a5d65be0e28241161a90168471c13231e5e8a84c0f7cd215433828bc64087b0bdab8aa553 - languageName: node - linkType: hard - "webpack-dev-server@npm:4.15.1": version: 4.15.1 resolution: "webpack-dev-server@npm:4.15.1" @@ -30698,8 +31112,8 @@ __metadata: linkType: hard "winston@npm:^3.8.2": - version: 3.12.0 - resolution: "winston@npm:3.12.0" + version: 3.13.0 + resolution: "winston@npm:3.13.0" dependencies: "@colors/colors": "npm:^1.6.0" "@dabh/diagnostics": "npm:^2.0.2" @@ -30712,7 +31126,7 @@ __metadata: stack-trace: "npm:0.0.x" triple-beam: "npm:^1.3.0" winston-transport: "npm:^4.7.0" - checksum: 10/df4ffb509a489e72d457749f0e03c588e492af3ae946c47b47d8ec9aef83c59ec70d0deaa7d366df38d936dd10374d4b0a87e1a871e8d02b4cd4d65a518b40f7 + checksum: 10/436675598359af27e4eabde2ce578cf77da893ffd57d0479f037fef939e8eb721031f0102b14399eee93b3412b545946c431d1fff23db3beeac2ffa395537f7b languageName: node linkType: hard