diff --git a/apps/client/src/app/client.module.ts b/apps/client/src/app/client.module.ts index e9c18031..189a3c13 100644 --- a/apps/client/src/app/client.module.ts +++ b/apps/client/src/app/client.module.ts @@ -7,7 +7,7 @@ import { AppGqlModule } from '@app/client-gql'; import { AppGrpcModule, AppGrpcService } from '@app/client-grpc'; import { AppMaterialModule } from '@app/client-material'; import { AppPwaOfflineModule } from '@app/client-pwa-offline'; -import { AppDiagnosticsStoreModule, diagnosticsActions, IDiagnosticsState } from '@app/client-store-diagnostics'; +import { AppDiagnosticsStoreModule, diagnosticsAction, IDiagnosticsState } from '@app/client-store-diagnostics'; import { AppRouterStoreModule } from '@app/client-store-router'; import { AppTranslateModule } from '@app/client-translate'; import { AppElizaModule } from '@app/client-util-eliza'; @@ -52,6 +52,6 @@ export class AppClientModule { private readonly store: Store, ) { void this.grpc.getEntityById().subscribe(); - this.store.dispatch(diagnosticsActions.connect()); + this.store.dispatch(diagnosticsAction.connect()); } } diff --git a/apps/client/src/app/components/root.component.spec.ts b/apps/client/src/app/components/root.component.spec.ts index 26953266..8d4d89c1 100644 --- a/apps/client/src/app/components/root.component.spec.ts +++ b/apps/client/src/app/components/root.component.spec.ts @@ -2,9 +2,9 @@ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed, TestModuleMetadata } from '@angular/core/testing'; import { Meta, Title } from '@angular/platform-browser'; import { AppServiceWorkerService } from '@app/client-service-worker'; -import { chatbotActions } from '@app/client-store-chatbot'; -import { routerActions } from '@app/client-store-router'; -import { sidebarActions } from '@app/client-store-sidebar'; +import { chatbotAction } from '@app/client-store-chatbot'; +import { routerAction } from '@app/client-store-router'; +import { sidebarAction } from '@app/client-store-sidebar'; import { testingEnvironment } from '@app/client-testing-unit'; import { WEB_CLIENT_APP_ENV } from '@app/client-util'; import { Store } from '@ngrx/store'; @@ -88,7 +88,7 @@ describe('AppRootComponent', () => { const storeSpy = jest.spyOn(store, 'dispatch'); component.toggleSidebar(); expect(storeSpy).toHaveBeenCalledTimes(1); - expect(storeSpy).toHaveBeenCalledWith(sidebarActions.toggle()); + expect(storeSpy).toHaveBeenCalledWith(sidebarAction.toggle()); }); it('toggleChatbot should call store dispatch events depending on the parameter', () => { @@ -99,31 +99,31 @@ describe('AppRootComponent', () => { second: 2, }; expect(storeSpy).toHaveBeenCalledTimes(calls.first); - expect(storeSpy).toHaveBeenNthCalledWith(calls.first, chatbotActions.open()); + expect(storeSpy).toHaveBeenNthCalledWith(calls.first, chatbotAction.open()); component.toggleChatbot(false); expect(storeSpy).toHaveBeenCalledTimes(calls.second); - expect(storeSpy).toHaveBeenNthCalledWith(calls.second, chatbotActions.close()); + expect(storeSpy).toHaveBeenNthCalledWith(calls.second, chatbotAction.close()); }); it('navButtonClick should call store dispatch', () => { const storeSpy = jest.spyOn(store, 'dispatch'); component.navButtonClick(); expect(storeSpy).toHaveBeenCalledTimes(1); - expect(storeSpy).toHaveBeenCalledWith(sidebarActions.close({ payload: { navigate: false } })); + expect(storeSpy).toHaveBeenCalledWith(sidebarAction.close({ payload: { navigate: false } })); }); it('navigateBack should call store dispatch', () => { const storeSpy = jest.spyOn(store, 'dispatch'); component.navigateBack(); expect(storeSpy).toHaveBeenCalledTimes(1); - expect(storeSpy).toHaveBeenCalledWith(routerActions.back()); + expect(storeSpy).toHaveBeenCalledWith(routerAction.back()); }); it('navigateForward should call store dispatch', () => { const storeSpy = jest.spyOn(store, 'dispatch'); component.navigateForward(); expect(storeSpy).toHaveBeenCalledTimes(1); - expect(storeSpy).toHaveBeenCalledWith(routerActions.forward()); + expect(storeSpy).toHaveBeenCalledWith(routerAction.forward()); }); }); diff --git a/apps/client/src/app/components/root.component.ts b/apps/client/src/app/components/root.component.ts index e693f2bc..b3deed8c 100644 --- a/apps/client/src/app/components/root.component.ts +++ b/apps/client/src/app/components/root.component.ts @@ -2,10 +2,10 @@ import { AfterContentInit, ChangeDetectionStrategy, Component, DestroyRef, HostB import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { Meta, Title } from '@angular/platform-browser'; import { AppServiceWorkerService } from '@app/client-service-worker'; -import { chatbotActions, chatbotSelectors, IChatbotState } from '@app/client-store-chatbot'; -import { routerActions } from '@app/client-store-router'; -import { ISidebarState, sidebarActions, sidebarSelectors } from '@app/client-store-sidebar'; -import { IThemeState, themeActions, themeSelectors } from '@app/client-store-theme'; +import { chatbotAction, chatbotSelector, IChatbotState } from '@app/client-store-chatbot'; +import { routerAction } from '@app/client-store-router'; +import { ISidebarState, sidebarAction, sidebarSelector } from '@app/client-store-sidebar'; +import { IThemeState, themeAction, themeSelector } from '@app/client-store-theme'; import { IWebClientAppEnvironment, WEB_CLIENT_APP_ENV } from '@app/client-util'; import { Store } from '@ngrx/store'; import { map } from 'rxjs'; @@ -47,11 +47,11 @@ export class AppRootComponent implements OnInit, AfterContentInit { */ public readonly version = this.env.meta.version; - public readonly sidebarOpen$ = this.store.select(sidebarSelectors.sidebarOpen); + public readonly sidebarOpen$ = this.store.select(sidebarSelector.sidebarOpen); - public readonly chatbotOpen$ = this.store.select(chatbotSelectors.chatbotOpen); + public readonly chatbotOpen$ = this.store.select(chatbotSelector.chatbotOpen); - public readonly darkThemeEnabled$ = this.store.select(themeSelectors.darkThemeEnabled); + public readonly darkThemeEnabled$ = this.store.select(themeSelector.darkThemeEnabled); public readonly logoSrc$ = this.darkThemeEnabled$.pipe( map(darkThemeEnabled => { @@ -68,32 +68,32 @@ export class AppRootComponent implements OnInit, AfterContentInit { ) {} public toggleSidebar(): void { - this.store.dispatch(sidebarActions.toggle()); + this.store.dispatch(sidebarAction.toggle()); } public toggleChatbot(event: boolean): void { if (event) { - this.store.dispatch(chatbotActions.open()); + this.store.dispatch(chatbotAction.open()); } else { - this.store.dispatch(chatbotActions.close()); + this.store.dispatch(chatbotAction.close()); } } public toggleTheme(darkThemeEnabled: boolean): void { this.darkTheme = darkThemeEnabled; - this.store.dispatch(themeActions.toggleDarkTheme()); + this.store.dispatch(themeAction.toggleDarkTheme()); } public navButtonClick(): void { - this.store.dispatch(sidebarActions.close({ payload: { navigate: false } })); + this.store.dispatch(sidebarAction.close({ payload: { navigate: false } })); } public navigateBack(): void { - this.store.dispatch(routerActions.back()); + this.store.dispatch(routerAction.back()); } public navigateForward(): void { - this.store.dispatch(routerActions.forward()); + this.store.dispatch(routerAction.forward()); } /** diff --git a/apps/documentation/src/app/componenets/md-reference-tree/md-reference-tree.component.spec.ts b/apps/documentation/src/app/componenets/md-reference-tree/md-reference-tree.component.spec.ts index 20144aa8..292458a5 100644 --- a/apps/documentation/src/app/componenets/md-reference-tree/md-reference-tree.component.spec.ts +++ b/apps/documentation/src/app/componenets/md-reference-tree/md-reference-tree.component.spec.ts @@ -7,7 +7,7 @@ import { Store, StoreModule } from '@ngrx/store'; import { MarkdownModule, MarkdownModuleConfig, MarkedOptions } from 'ngx-markdown'; import { testingProviders } from '../../../testing/testing-providers.mock'; -import { mdFilesActions } from '../../modules/md-files/md-files.actions'; +import { mdFilesAction } from '../../modules/md-files/md-files.actions'; import { IMdFilesState, mdFilesReducerConfig } from '../../modules/md-files/md-files.interface'; import { mdFilesReducerProvider } from '../../modules/md-files/md-files.reducer'; import { AppDocMarkdownReferenceTreeComponent } from './md-reference-tree.component'; @@ -62,6 +62,6 @@ describe('AppDocMarkdownReferenceTreeComponent', () => { it('showReadme should call store.dispatch', () => { const filePath = '/README.md'; component.showReadme(filePath); - expect(storeDispatchSpy).toHaveBeenCalledWith(mdFilesActions.showReadme({ filePath })); + expect(storeDispatchSpy).toHaveBeenCalledWith(mdFilesAction.showReadme({ filePath })); }); }); diff --git a/apps/documentation/src/app/componenets/md-reference-tree/md-reference-tree.component.ts b/apps/documentation/src/app/componenets/md-reference-tree/md-reference-tree.component.ts index a0ac86ce..a6774845 100644 --- a/apps/documentation/src/app/componenets/md-reference-tree/md-reference-tree.component.ts +++ b/apps/documentation/src/app/componenets/md-reference-tree/md-reference-tree.component.ts @@ -4,7 +4,7 @@ import { MatTreeNestedDataSource } from '@angular/material/tree'; import { Store } from '@ngrx/store'; import { DOCUMENTATION_ENVIRONMENT, IDocumentationEnvironment } from '../../interfaces/environment.interface'; -import { mdFilesActions } from '../../modules/md-files/md-files.actions'; +import { mdFilesAction } from '../../modules/md-files/md-files.actions'; import { IMdFilesState } from '../../modules/md-files/md-files.interface'; /** @@ -55,6 +55,6 @@ export class AppDocMarkdownReferenceTreeComponent { typeof node.children !== 'undefined' && node.children.length > 0; public showReadme(filePath: string): void { - this.store.dispatch(mdFilesActions.showReadme({ filePath })); + this.store.dispatch(mdFilesAction.showReadme({ filePath })); } } diff --git a/apps/documentation/src/app/componenets/md-reference/md-reference.component.ts b/apps/documentation/src/app/componenets/md-reference/md-reference.component.ts index d93d23cd..2825e2c5 100644 --- a/apps/documentation/src/app/componenets/md-reference/md-reference.component.ts +++ b/apps/documentation/src/app/componenets/md-reference/md-reference.component.ts @@ -5,7 +5,7 @@ import { map } from 'rxjs'; import { DOCUMENTATION_ENVIRONMENT, IDocumentationEnvironment } from '../../interfaces/environment.interface'; import { IMdFilesState } from '../../modules/md-files/md-files.interface'; -import { mdFilesSelectors } from '../../modules/md-files/md-files.selectors'; +import { mdFilesSelector } from '../../modules/md-files/md-files.selectors'; @Component({ selector: 'app-documentation-md-reference', @@ -18,7 +18,7 @@ export class AppDocMarkdownReferenceComponent { * Selected markdown file path. */ public readonly filePath$ = this.store - .select(mdFilesSelectors.filePath) + .select(mdFilesSelector.filePath) .pipe(map(filePath => this.sanitizer.sanitize(SecurityContext.HTML, filePath))); public readonly useEmoji = !this.env.testing; diff --git a/apps/documentation/src/app/modules/md-files/md-files.actions.ts b/apps/documentation/src/app/modules/md-files/md-files.actions.ts index 6960c767..74e22b36 100644 --- a/apps/documentation/src/app/modules/md-files/md-files.actions.ts +++ b/apps/documentation/src/app/modules/md-files/md-files.actions.ts @@ -3,11 +3,9 @@ import { createAction, props } from '@ngrx/store'; import { IMdFilesStateModel, mdFilesReducerConfig } from './md-files.interface'; -const showReadme = createAction( - actionType(mdFilesReducerConfig.featureName, 'show readme'), - props<{ filePath: IMdFilesStateModel['filePath'] }>(), -); - -export const mdFilesActions = { - showReadme, +export const mdFilesAction = { + showReadme: createAction( + actionType(mdFilesReducerConfig.featureName, 'show readme'), + props<{ filePath: IMdFilesStateModel['filePath'] }>(), + ), }; diff --git a/apps/documentation/src/app/modules/md-files/md-files.reducer.ts b/apps/documentation/src/app/modules/md-files/md-files.reducer.ts index 62ed9823..8cc69f33 100644 --- a/apps/documentation/src/app/modules/md-files/md-files.reducer.ts +++ b/apps/documentation/src/app/modules/md-files/md-files.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { mdFilesActions } from './md-files.actions'; +import { mdFilesAction } from './md-files.actions'; import { mdFilesReducerConfig } from './md-files.interface'; @Injectable({ @@ -11,7 +11,7 @@ export class AppMdFilesReducer { public createReducer() { return createReducer( mdFilesReducerConfig.initialState, - on(mdFilesActions.showReadme, (state, { filePath }) => ({ ...state, filePath })), + on(mdFilesAction.showReadme, (state, { filePath }) => ({ ...state, filePath })), ); } } diff --git a/apps/documentation/src/app/modules/md-files/md-files.selectors.ts b/apps/documentation/src/app/modules/md-files/md-files.selectors.ts index d769b4c2..741f723c 100644 --- a/apps/documentation/src/app/modules/md-files/md-files.selectors.ts +++ b/apps/documentation/src/app/modules/md-files/md-files.selectors.ts @@ -4,8 +4,6 @@ import { IMdFilesState, IMdFilesStateModel } from './md-files.interface'; const selectMdFilesFeature = (state: IMdFilesState) => state.mdFiles; -const filePath = createSelector(selectMdFilesFeature, (state: IMdFilesStateModel) => state.filePath); - -export const mdFilesSelectors = { - filePath, +export const mdFilesSelector = { + filePath: createSelector(selectMdFilesFeature, (state: IMdFilesStateModel) => state.filePath), }; diff --git a/functions/package-lock.json b/functions/package-lock.json index 25432014..2b4324bc 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -27,7 +27,7 @@ "@types/compression": "1.7.2", "@types/express": "4.17.17", "@types/graphql-upload": "16.0.0", - "@types/node": "20.5.0", + "@types/node": "20.5.1", "@types/websocket": "1.0.5", "@types/ws": "8.5.5", "cache-manager": "5.2.3", @@ -47,7 +47,7 @@ "grpc-web": "1.4.2", "reflect-metadata": "0.1.13", "rxjs": "7.8.1", - "tslib": "2.6.1" + "tslib": "2.6.2" }, "engines": { "node": "10", @@ -694,6 +694,11 @@ } } }, + "node_modules/@nestjs/common/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + }, "node_modules/@nestjs/config": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-3.0.0.tgz", @@ -765,6 +770,11 @@ } } }, + "node_modules/@nestjs/core/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + }, "node_modules/@nestjs/graphql": { "version": "12.0.8", "resolved": "https://registry.npmjs.org/@nestjs/graphql/-/graphql-12.0.8.tgz", @@ -978,6 +988,11 @@ } } }, + "node_modules/@nestjs/microservices/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + }, "node_modules/@nestjs/passport": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/@nestjs/passport/-/passport-10.0.0.tgz", @@ -1052,6 +1067,11 @@ "node": ">= 0.8" } }, + "node_modules/@nestjs/platform-express/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + }, "node_modules/@nestjs/platform-ws": { "version": "10.1.3", "resolved": "https://registry.npmjs.org/@nestjs/platform-ws/-/platform-ws-10.1.3.tgz", @@ -1070,6 +1090,11 @@ "rxjs": "^7.1.0" } }, + "node_modules/@nestjs/platform-ws/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + }, "node_modules/@nestjs/platform-ws/node_modules/ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", @@ -1156,6 +1181,11 @@ } } }, + "node_modules/@nestjs/websockets/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1467,9 +1497,9 @@ "optional": true }, "node_modules/@types/node": { - "version": "20.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.0.tgz", - "integrity": "sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==" + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==" }, "node_modules/@types/node-fetch": { "version": "2.6.2", @@ -4699,9 +4729,9 @@ } }, "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/type-check": { "version": "0.3.2", @@ -5473,6 +5503,13 @@ "iterare": "1.2.1", "tslib": "2.6.1", "uid": "2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + } } }, "@nestjs/config": { @@ -5509,6 +5546,13 @@ "path-to-regexp": "3.2.0", "tslib": "2.6.1", "uid": "2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + } } }, "@nestjs/graphql": { @@ -5601,6 +5645,13 @@ "requires": { "iterare": "1.2.1", "tslib": "2.6.1" + }, + "dependencies": { + "tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + } } }, "@nestjs/passport": { @@ -5658,6 +5709,11 @@ "iconv-lite": "0.4.24", "unpipe": "1.0.0" } + }, + "tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" } } }, @@ -5670,6 +5726,11 @@ "ws": "8.13.0" }, "dependencies": { + "tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + }, "ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", @@ -5706,6 +5767,13 @@ "iterare": "1.2.1", "object-hash": "3.0.0", "tslib": "2.6.1" + }, + "dependencies": { + "tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + } } }, "@nodelib/fs.scandir": { @@ -6002,9 +6070,9 @@ "optional": true }, "@types/node": { - "version": "20.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.0.tgz", - "integrity": "sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==" + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==" }, "@types/node-fetch": { "version": "2.6.2", @@ -8487,9 +8555,9 @@ } }, "tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "type-check": { "version": "0.3.2", diff --git a/functions/package.json b/functions/package.json index 0eaca5af..3c90d2c0 100644 --- a/functions/package.json +++ b/functions/package.json @@ -35,7 +35,7 @@ "@types/compression": "1.7.2", "@types/express": "4.17.17", "@types/graphql-upload": "16.0.0", - "@types/node": "20.5.0", + "@types/node": "20.5.1", "@types/websocket": "1.0.5", "@types/ws": "8.5.5", "@apollo/server": "4.9.1", @@ -55,7 +55,7 @@ "grpc-web": "1.4.2", "reflect-metadata": "0.1.13", "rxjs": "7.8.1", - "tslib": "2.6.1" + "tslib": "2.6.2" }, "engines": { "node": "10", diff --git a/libs/backend-diagnostics/package.json b/libs/backend-diagnostics/package.json index 5e34862a..653b3801 100644 --- a/libs/backend-diagnostics/package.json +++ b/libs/backend-diagnostics/package.json @@ -1,6 +1,6 @@ { "name": "@rfprodz/backend-diagnostics", - "version": "1.0.21", + "version": "1.0.22", "description": "NestJS API diagnostics module.", "keywords": [ "nestjs-controller", @@ -19,7 +19,7 @@ "license": "MIT", "author": "rfprod ", "dependencies": { - "tslib": "2.6.1" + "tslib": "2.6.2" }, "peerDependencies": { "@nestjs/common": "10.1.3", diff --git a/libs/client-core-components/src/lib/components/content/content.component.spec.ts b/libs/client-core-components/src/lib/components/content/content.component.spec.ts index 96d00be1..d5ae9e0e 100644 --- a/libs/client-core-components/src/lib/components/content/content.component.spec.ts +++ b/libs/client-core-components/src/lib/components/content/content.component.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed, TestModuleMetadata } from '@angular/core/testing'; import { Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; -import { AppSidebarStoreModule, sidebarActions } from '@app/client-store-sidebar'; +import { AppSidebarStoreModule, sidebarAction } from '@app/client-store-sidebar'; import { AppTestingComponent, getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store } from '@ngrx/store'; import { of } from 'rxjs'; @@ -49,12 +49,12 @@ describe('AppContentComponent', () => { it('sidebarCloseHandler should call store dispatch', () => { component.sidebarCloseHandler(); - expect(storeSpy.dispatch).toHaveBeenCalledWith(sidebarActions.close({ payload: { navigate: true } })); + expect(storeSpy.dispatch).toHaveBeenCalledWith(sidebarAction.close({ payload: { navigate: true } })); }); it('sidebarOpenHandler should call store dispatch', () => { component.sidebarOpenHandler(); - expect(storeSpy.dispatch).toHaveBeenCalledWith(sidebarActions.open({ payload: { navigate: true } })); + expect(storeSpy.dispatch).toHaveBeenCalledWith(sidebarAction.open({ payload: { navigate: true } })); }); it('should scroll content on router events', async () => { diff --git a/libs/client-core-components/src/lib/components/content/content.component.ts b/libs/client-core-components/src/lib/components/content/content.component.ts index 09e5b62b..768c8ee1 100644 --- a/libs/client-core-components/src/lib/components/content/content.component.ts +++ b/libs/client-core-components/src/lib/components/content/content.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, DestroyRef, inject, ViewChild } fro import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { MatSidenavContent } from '@angular/material/sidenav'; import { NavigationEnd, Router } from '@angular/router'; -import { ISidebarState, sidebarActions, sidebarSelectors } from '@app/client-store-sidebar'; +import { ISidebarState, sidebarAction, sidebarSelector } from '@app/client-store-sidebar'; import { Store } from '@ngrx/store'; import { tap } from 'rxjs/operators'; @@ -17,7 +17,7 @@ export class AppContentComponent { @ViewChild('content') public readonly content?: MatSidenavContent; - public readonly sidebarOpen$ = this.store.select(sidebarSelectors.sidebarOpen); + public readonly sidebarOpen$ = this.store.select(sidebarSelector.sidebarOpen); public readonly routerEvents$ = this.router.events.pipe( takeUntilDestroyed(this.destroyRef), @@ -36,10 +36,10 @@ export class AppContentComponent { } public sidebarCloseHandler(): void { - this.store.dispatch(sidebarActions.close({ payload: { navigate: true } })); + this.store.dispatch(sidebarAction.close({ payload: { navigate: true } })); } public sidebarOpenHandler(): void { - this.store.dispatch(sidebarActions.open({ payload: { navigate: true } })); + this.store.dispatch(sidebarAction.open({ payload: { navigate: true } })); } } diff --git a/libs/client-d3-charts/package.json b/libs/client-d3-charts/package.json index 2dd3c64e..21f81bdc 100644 --- a/libs/client-d3-charts/package.json +++ b/libs/client-d3-charts/package.json @@ -1,6 +1,6 @@ { "name": "@rfprodz/client-d3-charts", - "version": "1.3.15", + "version": "1.3.16", "description": "Angular chart components based on D3JS (https://d3js.org).", "keywords": [ "angular-charts", @@ -21,11 +21,11 @@ "license": "MIT", "author": "rfprod ", "dependencies": { - "tslib": "2.6.1" + "tslib": "2.6.2" }, "peerDependencies": { - "@angular/common": "16.2.0", - "@angular/core": "16.2.0", + "@angular/common": "16.2.1", + "@angular/core": "16.2.1", "@types/d3": "7.4.0", "d3": "7.8.5" } diff --git a/libs/client-diagnostics/src/lib/components/home/diagnostics-home.component.ts b/libs/client-diagnostics/src/lib/components/home/diagnostics-home.component.ts index 5e9c9197..9de2e094 100644 --- a/libs/client-diagnostics/src/lib/components/home/diagnostics-home.component.ts +++ b/libs/client-diagnostics/src/lib/components/home/diagnostics-home.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { diagnosticsSelectors, IDiagnosticsState } from '@app/client-store-diagnostics'; +import { diagnosticsSelector, IDiagnosticsState } from '@app/client-store-diagnostics'; import { Store } from '@ngrx/store'; @Component({ @@ -9,11 +9,11 @@ import { Store } from '@ngrx/store'; changeDetection: ChangeDetectionStrategy.OnPush, }) export class AppDiagnosticsHomeComponent { - public readonly staticData$ = this.store.select(diagnosticsSelectors.staticData); + public readonly staticData$ = this.store.select(diagnosticsSelector.staticData); - public readonly dynamicData$ = this.store.select(diagnosticsSelectors.dynamicData); + public readonly dynamicData$ = this.store.select(diagnosticsSelector.dynamicData); - public readonly users$ = this.store.select(diagnosticsSelectors.users); + public readonly users$ = this.store.select(diagnosticsSelector.users); constructor(private readonly store: Store) {} } diff --git a/libs/client-diagnostics/src/lib/components/index/diagnostics-index.component.spec.ts b/libs/client-diagnostics/src/lib/components/index/diagnostics-index.component.spec.ts index d4286593..15b7e881 100644 --- a/libs/client-diagnostics/src/lib/components/index/diagnostics-index.component.spec.ts +++ b/libs/client-diagnostics/src/lib/components/index/diagnostics-index.component.spec.ts @@ -1,6 +1,6 @@ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed, TestModuleMetadata } from '@angular/core/testing'; -import { diagnosticsActions } from '@app/client-store-diagnostics'; +import { diagnosticsAction } from '@app/client-store-diagnostics'; import { newTestBedMetadata } from '@app/client-testing-unit'; import { Store } from '@ngrx/store'; @@ -44,8 +44,8 @@ describe('AppDiagnosticsIndexComponent', () => { second: 2, third: 3, }; - expect(storeDispatchSpy).toHaveBeenNthCalledWith(calls.first, diagnosticsActions.staticData()); - expect(storeDispatchSpy).toHaveBeenNthCalledWith(calls.second, diagnosticsActions.startEvents()); - expect(storeDispatchSpy).toHaveBeenNthCalledWith(calls.third, diagnosticsActions.stopEvents()); + expect(storeDispatchSpy).toHaveBeenNthCalledWith(calls.first, diagnosticsAction.staticData()); + expect(storeDispatchSpy).toHaveBeenNthCalledWith(calls.second, diagnosticsAction.startEvents()); + expect(storeDispatchSpy).toHaveBeenNthCalledWith(calls.third, diagnosticsAction.stopEvents()); }); }); diff --git a/libs/client-diagnostics/src/lib/components/index/diagnostics-index.component.ts b/libs/client-diagnostics/src/lib/components/index/diagnostics-index.component.ts index f1323d52..09c11fc1 100644 --- a/libs/client-diagnostics/src/lib/components/index/diagnostics-index.component.ts +++ b/libs/client-diagnostics/src/lib/components/index/diagnostics-index.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core'; -import { diagnosticsActions, IDiagnosticsState } from '@app/client-store-diagnostics'; +import { diagnosticsAction, IDiagnosticsState } from '@app/client-store-diagnostics'; import { Store } from '@ngrx/store'; @Component({ @@ -12,11 +12,11 @@ export class AppDiagnosticsIndexComponent implements OnInit, OnDestroy { constructor(private readonly store: Store) {} public ngOnInit(): void { - this.store.dispatch(diagnosticsActions.staticData()); - this.store.dispatch(diagnosticsActions.startEvents()); + this.store.dispatch(diagnosticsAction.staticData()); + this.store.dispatch(diagnosticsAction.startEvents()); } public ngOnDestroy(): void { - this.store.dispatch(diagnosticsActions.stopEvents()); + this.store.dispatch(diagnosticsAction.stopEvents()); } } diff --git a/libs/client-diagnostics/src/lib/components/info/diagnostics-info.component.spec.ts b/libs/client-diagnostics/src/lib/components/info/diagnostics-info.component.spec.ts index c26786cd..afa05aaa 100644 --- a/libs/client-diagnostics/src/lib/components/info/diagnostics-info.component.spec.ts +++ b/libs/client-diagnostics/src/lib/components/info/diagnostics-info.component.spec.ts @@ -2,7 +2,7 @@ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed, TestModuleMetadata } from '@angular/core/testing'; import { MatIconModule } from '@angular/material/icon'; import { MatListModule } from '@angular/material/list'; -import { httpApiSelectors, IHttpApiState } from '@app/client-store-http-api'; +import { httpApiSelector, IHttpApiState } from '@app/client-store-http-api'; import { newTestBedMetadata } from '@app/client-testing-unit'; import { Store } from '@ngrx/store'; import { first, lastValueFrom, of } from 'rxjs'; @@ -42,7 +42,7 @@ describe('AppDiagnosticsInfoComponent', () => { it('state should return the whole ping state', async () => { const ping = await lastValueFrom(component.ping$.pipe(first())); - const pingState = await lastValueFrom(store.select(httpApiSelectors.ping).pipe(first())); + const pingState = await lastValueFrom(store.select(httpApiSelector.ping).pipe(first())); expect(ping).toEqual(pingState); }); diff --git a/libs/client-diagnostics/src/lib/components/info/diagnostics-info.component.ts b/libs/client-diagnostics/src/lib/components/info/diagnostics-info.component.ts index d7e6137c..94995d1a 100644 --- a/libs/client-diagnostics/src/lib/components/info/diagnostics-info.component.ts +++ b/libs/client-diagnostics/src/lib/components/info/diagnostics-info.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { httpApiActions, httpApiSelectors, IHttpApiState } from '@app/client-store-http-api'; +import { httpApiAction, httpApiSelector, IHttpApiState } from '@app/client-store-http-api'; import { Store } from '@ngrx/store'; @Component({ @@ -12,11 +12,11 @@ export class AppDiagnosticsInfoComponent implements OnInit { /** * Ping result. */ - public readonly ping$ = this.store.select(httpApiSelectors.ping); + public readonly ping$ = this.store.select(httpApiSelector.ping); constructor(private readonly store: Store) {} public ngOnInit(): void { - this.store.dispatch(httpApiActions.ping()); + this.store.dispatch(httpApiAction.ping()); } } diff --git a/libs/client-gql/src/lib/services/gql/gql.service.ts b/libs/client-gql/src/lib/services/gql/gql.service.ts index 1e61acea..0ad543ad 100644 --- a/libs/client-gql/src/lib/services/gql/gql.service.ts +++ b/libs/client-gql/src/lib/services/gql/gql.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { ApolloClient, ApolloClientOptions, InMemoryCache, NormalizedCacheObject } from '@apollo/client/core'; import { AppHttpHandlersService, TGqlClient } from '@app/client-store-http-progress'; -import { IUserState, userSelectors } from '@app/client-store-user'; +import { IUserState, userSelector } from '@app/client-store-user'; import { Store } from '@ngrx/store'; import { Apollo } from 'apollo-angular'; import { DocumentNode } from 'graphql'; @@ -15,7 +15,7 @@ import { first, map, switchMap, tap } from 'rxjs/operators'; providedIn: 'root', }) export class AppGqlService { - private readonly userToken$ = this.store.select(userSelectors.token).pipe(first()); + private readonly userToken$ = this.store.select(userSelector.token).pipe(first()); constructor( private readonly apollo: Apollo, diff --git a/libs/client-pwa-offline/package.json b/libs/client-pwa-offline/package.json index 601fe55d..c79baa0d 100644 --- a/libs/client-pwa-offline/package.json +++ b/libs/client-pwa-offline/package.json @@ -1,6 +1,6 @@ { "name": "@rfprodz/client-pwa-offline", - "version": "1.0.10", + "version": "1.0.11", "description": "PWA offline feature for Angular clients.", "keywords": [ "angular-module", @@ -18,12 +18,12 @@ "license": "MIT", "author": "rfprod ", "dependencies": { - "tslib": "2.6.1" + "tslib": "2.6.2" }, "peerDependencies": { - "@angular/common": "16.2.0", - "@angular/core": "16.2.0", - "@angular/material": "16.2.0", - "@angular/router": "16.2.0" + "@angular/common": "16.2.1", + "@angular/core": "16.2.1", + "@angular/material": "16.2.1", + "@angular/router": "16.2.1" } } diff --git a/libs/client-sidebar/src/lib/components/sidebar-root/sidebar-root.component.spec.ts b/libs/client-sidebar/src/lib/components/sidebar-root/sidebar-root.component.spec.ts index e2423e1b..2d9c30e7 100644 --- a/libs/client-sidebar/src/lib/components/sidebar-root/sidebar-root.component.spec.ts +++ b/libs/client-sidebar/src/lib/components/sidebar-root/sidebar-root.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed, TestModuleMetadata } from '@angular/core/tes import { Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { AppHttpProgressStoreModule } from '@app/client-store-http-progress'; -import { sidebarActions } from '@app/client-store-sidebar'; +import { sidebarAction } from '@app/client-store-sidebar'; import { AppTestingComponent, getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store } from '@ngrx/store'; @@ -55,7 +55,7 @@ describe('AppSidebarRootComponent', () => { it('sidebarCloseHandler should call store dispatch', () => { component.sidebarCloseHandler(); - expect(storeDispatchSpy).toHaveBeenCalledWith(sidebarActions.close({ payload: { navigate: true } })); + expect(storeDispatchSpy).toHaveBeenCalledWith(sidebarAction.close({ payload: { navigate: true } })); }); it('navigateToInfoPage should call store dispatch', () => { diff --git a/libs/client-sidebar/src/lib/components/sidebar-root/sidebar-root.component.ts b/libs/client-sidebar/src/lib/components/sidebar-root/sidebar-root.component.ts index e0f43660..0d9f339e 100644 --- a/libs/client-sidebar/src/lib/components/sidebar-root/sidebar-root.component.ts +++ b/libs/client-sidebar/src/lib/components/sidebar-root/sidebar-root.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; import { Router } from '@angular/router'; -import { httpProgressSelectors, IHttpProgressState } from '@app/client-store-http-progress'; -import { sidebarActions } from '@app/client-store-sidebar'; +import { httpProgressSelector, IHttpProgressState } from '@app/client-store-http-progress'; +import { sidebarAction } from '@app/client-store-sidebar'; import { Store } from '@ngrx/store'; import { map } from 'rxjs'; @@ -12,7 +12,7 @@ import { map } from 'rxjs'; changeDetection: ChangeDetectionStrategy.OnPush, }) export class AppSidebarRootComponent { - public readonly loading$ = this.store.select(httpProgressSelectors.sidebar).pipe(map(state => state.loading)); + public readonly loading$ = this.store.select(httpProgressSelector.sidebar).pipe(map(state => state.loading)); constructor( private readonly store: Store, @@ -24,7 +24,7 @@ export class AppSidebarRootComponent { * Propagates sidebar close event from UI to state store. */ public sidebarCloseHandler(): void { - this.store.dispatch(sidebarActions.close({ payload: { navigate: true } })); + this.store.dispatch(sidebarAction.close({ payload: { navigate: true } })); } /** diff --git a/libs/client-store-chatbot/src/lib/chatbot.actions.ts b/libs/client-store-chatbot/src/lib/chatbot.actions.ts index ee199fe0..bb4f748c 100644 --- a/libs/client-store-chatbot/src/lib/chatbot.actions.ts +++ b/libs/client-store-chatbot/src/lib/chatbot.actions.ts @@ -3,11 +3,7 @@ import { createAction } from '@ngrx/store'; import { chatbotReducerConfig } from './chatbot.interface'; -const open = createAction(actionType(chatbotReducerConfig.featureName, 'open')); - -const close = createAction(actionType(chatbotReducerConfig.featureName, 'close')); - -export const chatbotActions = { - open, - close, +export const chatbotAction = { + open: createAction(actionType(chatbotReducerConfig.featureName, 'open')), + close: createAction(actionType(chatbotReducerConfig.featureName, 'close')), }; diff --git a/libs/client-store-chatbot/src/lib/chatbot.effects.spec.ts b/libs/client-store-chatbot/src/lib/chatbot.effects.spec.ts index e8650842..56a6fc52 100644 --- a/libs/client-store-chatbot/src/lib/chatbot.effects.spec.ts +++ b/libs/client-store-chatbot/src/lib/chatbot.effects.spec.ts @@ -4,7 +4,7 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; -import { chatbotActions } from './chatbot.actions'; +import { chatbotAction } from './chatbot.actions'; import { AppChatbotEffects } from './chatbot.effects'; import { chatbotReducerConfig, IChatbotState } from './chatbot.interface'; import { chatbotReducerProvider } from './chatbot.reducer'; @@ -31,12 +31,12 @@ describe('AppChatbotEffects', () => { }); it('should call router.navigate when the open action is dispatched', waitForAsync(() => { - store.dispatch(chatbotActions.open()); + store.dispatch(chatbotAction.open()); expect(routerNavigateSpy).toHaveBeenCalledWith([{ outlets: { chatbot: ['root'] } }]); })); it('should call router.navigate when the close action is dispatched', waitForAsync(() => { - store.dispatch(chatbotActions.close()); + store.dispatch(chatbotAction.close()); expect(routerNavigateSpy).toHaveBeenCalledWith([{ outlets: { chatbot: [] } }]); })); }); diff --git a/libs/client-store-chatbot/src/lib/chatbot.effects.ts b/libs/client-store-chatbot/src/lib/chatbot.effects.ts index 13308be9..0e391820 100644 --- a/libs/client-store-chatbot/src/lib/chatbot.effects.ts +++ b/libs/client-store-chatbot/src/lib/chatbot.effects.ts @@ -4,7 +4,7 @@ import { Actions, createEffect, ofType } from '@ngrx/effects'; import { from } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; -import { chatbotActions } from './chatbot.actions'; +import { chatbotAction } from './chatbot.actions'; @Injectable({ providedIn: 'root', @@ -13,7 +13,7 @@ export class AppChatbotEffects { public readonly open$ = createEffect( () => this.actions$.pipe( - ofType(chatbotActions.open.type), + ofType(chatbotAction.open.type), mergeMap(() => from(this.router.navigate([{ outlets: { chatbot: ['root'] } }]))), ), { dispatch: false }, @@ -22,7 +22,7 @@ export class AppChatbotEffects { public readonly close$ = createEffect( () => this.actions$.pipe( - ofType(chatbotActions.close.type), + ofType(chatbotAction.close.type), mergeMap(() => from(this.router.navigate([{ outlets: { chatbot: [] } }]))), ), { dispatch: false }, diff --git a/libs/client-store-chatbot/src/lib/chatbot.reducer.spec.ts b/libs/client-store-chatbot/src/lib/chatbot.reducer.spec.ts index b1901f69..175bdfda 100644 --- a/libs/client-store-chatbot/src/lib/chatbot.reducer.spec.ts +++ b/libs/client-store-chatbot/src/lib/chatbot.reducer.spec.ts @@ -3,10 +3,10 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store, StoreModule } from '@ngrx/store'; import { first, lastValueFrom } from 'rxjs'; -import { chatbotActions } from './chatbot.actions'; +import { chatbotAction } from './chatbot.actions'; import { chatbotReducerConfig, IChatbotState, IChatbotStateModel } from './chatbot.interface'; import { AppChatbotReducer, chatbotReducerProvider } from './chatbot.reducer'; -import { chatbotSelectors } from './chatbot.selectors'; +import { chatbotSelector } from './chatbot.selectors'; describe('AppChatbotReducer', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -35,12 +35,12 @@ describe('AppChatbotReducer', () => { }); it('should process the open/close action correctly', async () => { - store.dispatch(chatbotActions.open()); - let chatbotOpen = await lastValueFrom(store.select(chatbotSelectors.chatbotOpen).pipe(first())); + store.dispatch(chatbotAction.open()); + let chatbotOpen = await lastValueFrom(store.select(chatbotSelector.chatbotOpen).pipe(first())); expect(chatbotOpen).toBeTruthy(); - store.dispatch(chatbotActions.close()); - chatbotOpen = await lastValueFrom(store.select(chatbotSelectors.chatbotOpen).pipe(first())); + store.dispatch(chatbotAction.close()); + chatbotOpen = await lastValueFrom(store.select(chatbotSelector.chatbotOpen).pipe(first())); expect(chatbotOpen).toBeFalsy(); }); }); diff --git a/libs/client-store-chatbot/src/lib/chatbot.reducer.ts b/libs/client-store-chatbot/src/lib/chatbot.reducer.ts index 1405091e..37ef8d7d 100644 --- a/libs/client-store-chatbot/src/lib/chatbot.reducer.ts +++ b/libs/client-store-chatbot/src/lib/chatbot.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { chatbotActions } from './chatbot.actions'; +import { chatbotAction } from './chatbot.actions'; import { chatbotReducerConfig } from './chatbot.interface'; @Injectable({ @@ -11,8 +11,8 @@ export class AppChatbotReducer { public createReducer() { return createReducer( chatbotReducerConfig.initialState, - on(chatbotActions.open, () => ({ chatbotOpen: true })), - on(chatbotActions.close, () => ({ chatbotOpen: false })), + on(chatbotAction.open, () => ({ chatbotOpen: true })), + on(chatbotAction.close, () => ({ chatbotOpen: false })), ); } } diff --git a/libs/client-store-chatbot/src/lib/chatbot.selectors.ts b/libs/client-store-chatbot/src/lib/chatbot.selectors.ts index b659dfc4..bcc2cc13 100644 --- a/libs/client-store-chatbot/src/lib/chatbot.selectors.ts +++ b/libs/client-store-chatbot/src/lib/chatbot.selectors.ts @@ -4,8 +4,6 @@ import { IChatbotState, IChatbotStateModel } from './chatbot.interface'; const selectFeature = (state: IChatbotState) => state.chatbot; -const chatbotOpen = createSelector(selectFeature, (state: IChatbotStateModel) => state.chatbotOpen); - -export const chatbotSelectors = { - chatbotOpen, +export const chatbotSelector = { + chatbotOpen: createSelector(selectFeature, (state: IChatbotStateModel) => state.chatbotOpen), }; diff --git a/libs/client-store-diagnostics/jest.config.ts b/libs/client-store-diagnostics/jest.config.ts index 42e28e5c..3603abae 100644 --- a/libs/client-store-diagnostics/jest.config.ts +++ b/libs/client-store-diagnostics/jest.config.ts @@ -8,8 +8,8 @@ const config: Config.InitialOptions = { global: { branches: 75, functions: 78, - lines: 95, - statements: 92, + lines: 91, + statements: 91, }, }, displayName: 'client-store-diagnostics', diff --git a/libs/client-store-diagnostics/src/lib/diagnostics.actions.ts b/libs/client-store-diagnostics/src/lib/diagnostics.actions.ts index a65e8253..e19bc7b2 100644 --- a/libs/client-store-diagnostics/src/lib/diagnostics.actions.ts +++ b/libs/client-store-diagnostics/src/lib/diagnostics.actions.ts @@ -3,38 +3,22 @@ import { createAction, props } from '@ngrx/store'; import { diagnosticsReducerConfig, IDiagnosticsStateModel, TDiagnosticData } from './diagnostics.interface'; -const connect = createAction(actionType(diagnosticsReducerConfig.featureName, 'connect')); - -const connected = createAction( - actionType(diagnosticsReducerConfig.featureName, 'connected'), - props<{ payload: Pick }>(), -); - -const startEvents = createAction(actionType(diagnosticsReducerConfig.featureName, 'start events')); - -const stopEvents = createAction(actionType(diagnosticsReducerConfig.featureName, 'stop events')); - -const staticData = createAction(actionType(diagnosticsReducerConfig.featureName, 'static data')); - -const staticDataSuccess = createAction( - actionType(diagnosticsReducerConfig.featureName, 'static data success'), - props<{ payload: TDiagnosticData[] }>(), -); - -const dynamicDataSuccess = createAction( - actionType(diagnosticsReducerConfig.featureName, 'dynamic data success'), - props<{ payload: TDiagnosticData[] }>(), -); - -const userDataSuccess = createAction(actionType(diagnosticsReducerConfig.featureName, 'user data success'), props<{ payload: number }>()); - -export const diagnosticsActions = { - connect, - connected, - startEvents, - stopEvents, - staticData, - staticDataSuccess, - dynamicDataSuccess, - userDataSuccess, +export const diagnosticsAction = { + connect: createAction(actionType(diagnosticsReducerConfig.featureName, 'connect')), + connected: createAction( + actionType(diagnosticsReducerConfig.featureName, 'connected'), + props<{ payload: Pick }>(), + ), + startEvents: createAction(actionType(diagnosticsReducerConfig.featureName, 'start events')), + stopEvents: createAction(actionType(diagnosticsReducerConfig.featureName, 'stop events')), + staticData: createAction(actionType(diagnosticsReducerConfig.featureName, 'static data')), + staticDataSuccess: createAction( + actionType(diagnosticsReducerConfig.featureName, 'static data success'), + props<{ payload: TDiagnosticData[] }>(), + ), + dynamicDataSuccess: createAction( + actionType(diagnosticsReducerConfig.featureName, 'dynamic data success'), + props<{ payload: TDiagnosticData[] }>(), + ), + userDataSuccess: createAction(actionType(diagnosticsReducerConfig.featureName, 'user data success'), props<{ payload: number }>()), }; diff --git a/libs/client-store-diagnostics/src/lib/diagnostics.effects.spec.ts b/libs/client-store-diagnostics/src/lib/diagnostics.effects.spec.ts index 6b00c53b..52827516 100644 --- a/libs/client-store-diagnostics/src/lib/diagnostics.effects.spec.ts +++ b/libs/client-store-diagnostics/src/lib/diagnostics.effects.spec.ts @@ -4,7 +4,7 @@ import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; import { of } from 'rxjs'; -import { diagnosticsActions } from './diagnostics.actions'; +import { diagnosticsAction } from './diagnostics.actions'; import { AppDiagnosticsEffects } from './diagnostics.effects'; import { diagnosticsReducerConfig, IDiagnosticsState } from './diagnostics.interface'; import { diagnosticsReducerProvider } from './diagnostics.reducer'; @@ -42,25 +42,25 @@ describe('AppDiagnosticsEffects', () => { it('should call api service connect method when the connect action is dispatched, payload #1', waitForAsync(() => { const connectSpy = jest.spyOn(api, 'connect'); - store.dispatch(diagnosticsActions.connect()); + store.dispatch(diagnosticsAction.connect()); expect(connectSpy).toHaveBeenCalledWith(); })); it('should call api service connect method when the connect action is dispatched, payload #2', waitForAsync(() => { const connectSpy = jest.spyOn(api, 'connect').mockImplementation(() => of({ data: [], event: 'users' })); - store.dispatch(diagnosticsActions.connect()); + store.dispatch(diagnosticsAction.connect()); expect(connectSpy).toHaveBeenCalledWith(); })); it('should start events on action dispatch', waitForAsync(() => { const sendEventSpy = jest.spyOn(api, 'startDiagEvents'); - store.dispatch(diagnosticsActions.startEvents()); + store.dispatch(diagnosticsAction.startEvents()); expect(sendEventSpy).toHaveBeenCalled(); })); it('should stop events on action dispatch', waitForAsync(() => { const sendEventSpy = jest.spyOn(api, 'stopDiagEvents'); - store.dispatch(diagnosticsActions.stopEvents()); + store.dispatch(diagnosticsAction.stopEvents()); expect(sendEventSpy).toHaveBeenCalled(); })); }); diff --git a/libs/client-store-diagnostics/src/lib/diagnostics.effects.ts b/libs/client-store-diagnostics/src/lib/diagnostics.effects.ts index 63cd6402..48c7a140 100644 --- a/libs/client-store-diagnostics/src/lib/diagnostics.effects.ts +++ b/libs/client-store-diagnostics/src/lib/diagnostics.effects.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { Actions, createEffect, ofType } from '@ngrx/effects'; import { map, mergeMap, tap } from 'rxjs/operators'; -import { diagnosticsActions } from './diagnostics.actions'; +import { diagnosticsAction } from './diagnostics.actions'; import { IDiagnosticsStateModel, TDiagnosticData } from './diagnostics.interface'; import { AppStaticDataService } from './services/static-data/static-data-api.service'; import { AppWebsocketApiService } from './services/websocket/websocket-api.service'; @@ -13,23 +13,23 @@ import { AppWebsocketApiService } from './services/websocket/websocket-api.servi export class AppDiagnosticsEffects { public readonly connect$ = createEffect(() => this.actions$.pipe( - ofType(diagnosticsActions.connect.type), + ofType(diagnosticsAction.connect.type), mergeMap(() => this.wsApi.connect()), map(event => { const payload: Pick = { events: [event] }; - return diagnosticsActions.connected({ payload }); + return diagnosticsAction.connected({ payload }); }), ), ); public readonly connected$ = createEffect(() => this.actions$.pipe( - ofType(diagnosticsActions.connected), + ofType(diagnosticsAction.connected), map(({ payload }) => { const event = payload.events[0]; return event.event === 'users' - ? diagnosticsActions.userDataSuccess({ payload: event.data.reduce((acc: number, item) => acc + item.value, 0) }) - : diagnosticsActions.dynamicDataSuccess({ payload: event.data }); + ? diagnosticsAction.userDataSuccess({ payload: event.data.reduce((acc: number, item) => acc + item.value, 0) }) + : diagnosticsAction.dynamicDataSuccess({ payload: event.data }); }), ), ); @@ -37,7 +37,7 @@ export class AppDiagnosticsEffects { public readonly startEvents$ = createEffect( () => this.actions$.pipe( - ofType(diagnosticsActions.startEvents.type), + ofType(diagnosticsAction.startEvents.type), tap(() => { this.wsApi.startDiagEvents(); }), @@ -48,7 +48,7 @@ export class AppDiagnosticsEffects { public readonly stopEvents$ = createEffect( () => this.actions$.pipe( - ofType(diagnosticsActions.stopEvents.type), + ofType(diagnosticsAction.stopEvents.type), tap(() => { this.wsApi.stopDiagEvents(); }), @@ -58,9 +58,9 @@ export class AppDiagnosticsEffects { public readonly staticData$ = createEffect(() => this.actions$.pipe( - ofType(diagnosticsActions.staticData.type), + ofType(diagnosticsAction.staticData.type), mergeMap(() => this.staticApi.staticData()), - map(payload => diagnosticsActions.staticDataSuccess({ payload })), + map(payload => diagnosticsAction.staticDataSuccess({ payload })), ), ); diff --git a/libs/client-store-diagnostics/src/lib/diagnostics.reducer.spec.ts b/libs/client-store-diagnostics/src/lib/diagnostics.reducer.spec.ts index 09491735..38c43377 100644 --- a/libs/client-store-diagnostics/src/lib/diagnostics.reducer.spec.ts +++ b/libs/client-store-diagnostics/src/lib/diagnostics.reducer.spec.ts @@ -3,10 +3,10 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store, StoreModule } from '@ngrx/store'; import { first, tap } from 'rxjs'; -import { diagnosticsActions } from './diagnostics.actions'; +import { diagnosticsAction } from './diagnostics.actions'; import { diagnosticsReducerConfig, IDiagnosticsState, IDiagnosticsStateModel } from './diagnostics.interface'; import { AppDiagnosticsReducer, diagnosticsReducerProvider } from './diagnostics.reducer'; -import { diagnosticsSelectors } from './diagnostics.selectors'; +import { diagnosticsSelector } from './diagnostics.selectors'; describe('AppDiagnosticsReducer', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -36,9 +36,9 @@ describe('AppDiagnosticsReducer', () => { it('should process the connected action correctly (push events, "users")', waitForAsync(() => { const payload: IDiagnosticsStateModel = { events: [{ data: [], event: 'users' }], users: 0, dynamicData: [], staticData: [] }; - store.dispatch(diagnosticsActions.connected({ payload })); + store.dispatch(diagnosticsAction.connected({ payload })); void store - .select(diagnosticsSelectors.events) + .select(diagnosticsSelector.events) .pipe( first(), tap(events => { diff --git a/libs/client-store-diagnostics/src/lib/diagnostics.reducer.ts b/libs/client-store-diagnostics/src/lib/diagnostics.reducer.ts index 81881ff3..a69b80f2 100644 --- a/libs/client-store-diagnostics/src/lib/diagnostics.reducer.ts +++ b/libs/client-store-diagnostics/src/lib/diagnostics.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { diagnosticsActions } from './diagnostics.actions'; +import { diagnosticsAction } from './diagnostics.actions'; import { diagnosticsReducerConfig } from './diagnostics.interface'; @Injectable({ @@ -11,13 +11,13 @@ export class AppDiagnosticsReducer { public createReducer() { return createReducer( diagnosticsReducerConfig.initialState, - on(diagnosticsActions.connected, (state, { payload }) => ({ + on(diagnosticsAction.connected, (state, { payload }) => ({ ...state, events: [...state.events, ...(payload.events ?? [])], })), - on(diagnosticsActions.staticDataSuccess, (state, { payload }) => ({ ...state, staticData: payload })), - on(diagnosticsActions.dynamicDataSuccess, (state, { payload }) => ({ ...state, dynamicData: payload })), - on(diagnosticsActions.userDataSuccess, (state, { payload }) => ({ ...state, users: payload })), + on(diagnosticsAction.staticDataSuccess, (state, { payload }) => ({ ...state, staticData: payload })), + on(diagnosticsAction.dynamicDataSuccess, (state, { payload }) => ({ ...state, dynamicData: payload })), + on(diagnosticsAction.userDataSuccess, (state, { payload }) => ({ ...state, users: payload })), ); } } diff --git a/libs/client-store-diagnostics/src/lib/diagnostics.selectors.ts b/libs/client-store-diagnostics/src/lib/diagnostics.selectors.ts index 879a8e73..aa4974a1 100644 --- a/libs/client-store-diagnostics/src/lib/diagnostics.selectors.ts +++ b/libs/client-store-diagnostics/src/lib/diagnostics.selectors.ts @@ -4,14 +4,9 @@ import { IDiagnosticsState, IDiagnosticsStateModel } from './diagnostics.interfa const selectFeature = (state: IDiagnosticsState) => state.diagnostics; -const events = createSelector(selectFeature, (state: IDiagnosticsStateModel) => state.events); -const users = createSelector(selectFeature, (state: IDiagnosticsStateModel) => state.users); -const dynamicData = createSelector(selectFeature, (state: IDiagnosticsStateModel) => state.dynamicData); -const staticData = createSelector(selectFeature, (state: IDiagnosticsStateModel) => state.staticData); - -export const diagnosticsSelectors = { - events, - users, - dynamicData, - staticData, +export const diagnosticsSelector = { + events: createSelector(selectFeature, (state: IDiagnosticsStateModel) => state.events), + users: createSelector(selectFeature, (state: IDiagnosticsStateModel) => state.users), + dynamicData: createSelector(selectFeature, (state: IDiagnosticsStateModel) => state.dynamicData), + staticData: createSelector(selectFeature, (state: IDiagnosticsStateModel) => state.staticData), }; diff --git a/libs/client-store-feature-access/src/lib/directives/feature-flag/feature-flag.directive.spec.ts b/libs/client-store-feature-access/src/lib/directives/feature-flag/feature-flag.directive.spec.ts index 731f7ac3..9bfde853 100644 --- a/libs/client-store-feature-access/src/lib/directives/feature-flag/feature-flag.directive.spec.ts +++ b/libs/client-store-feature-access/src/lib/directives/feature-flag/feature-flag.directive.spec.ts @@ -4,7 +4,7 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; -import { featureAccessActions } from '../../feature-access.actions'; +import { featureAccessAction } from '../../feature-access.actions'; import { AppFeatureAccessEffects } from '../../feature-access.effects'; import { featureAccessReducerConfig, IFeatureAccessState } from '../../feature-access.interface'; import { featureAccessReducerProvider } from '../../feature-access.reducer'; @@ -50,7 +50,7 @@ describe('AppFeatureFlagDirective', () => { }); it('should display span in a production environment if the flag value is null', waitForAsync(() => { - store.dispatch(featureAccessActions.setEnvironment({ payload: { production: true } })); + store.dispatch(featureAccessAction.setEnvironment({ payload: { production: true } })); expect(component.flag).toBeNull(); fixture.detectChanges(); const spans = (fixture.debugElement.nativeElement).getElementsByTagName('span'); @@ -58,7 +58,7 @@ describe('AppFeatureFlagDirective', () => { })); it('should not display span in a production environment if the flag value is undefined', waitForAsync(() => { - store.dispatch(featureAccessActions.setEnvironment({ payload: { production: true } })); + store.dispatch(featureAccessAction.setEnvironment({ payload: { production: true } })); component.flag = void 0; expect(component.flag).toBeUndefined(); fixture.detectChanges(); @@ -67,7 +67,7 @@ describe('AppFeatureFlagDirective', () => { })); it('should not display span in a production environment if the flag value is en empty string', waitForAsync(() => { - store.dispatch(featureAccessActions.setEnvironment({ payload: { production: true } })); + store.dispatch(featureAccessAction.setEnvironment({ payload: { production: true } })); component.flag = ''; expect(component.flag).toEqual(''); fixture.detectChanges(); @@ -76,7 +76,7 @@ describe('AppFeatureFlagDirective', () => { })); it('should not display span in a production environment if the flag value is a feature name and the feature flag is not defined', waitForAsync(() => { - store.dispatch(featureAccessActions.setEnvironment({ payload: { production: true } })); + store.dispatch(featureAccessAction.setEnvironment({ payload: { production: true } })); component.flag = 'test'; expect(component.flag).toEqual('test'); fixture.detectChanges(); @@ -85,7 +85,7 @@ describe('AppFeatureFlagDirective', () => { })); it('should display span in a production environment if the flag value is a feature name and the feature is disabled', waitForAsync(() => { - store.dispatch(featureAccessActions.setFeatureFlags({ payload: { test: false } })); + store.dispatch(featureAccessAction.setFeatureFlags({ payload: { test: false } })); component.flag = 'test'; expect(component.flag).toEqual('test'); fixture.detectChanges(); @@ -94,8 +94,8 @@ describe('AppFeatureFlagDirective', () => { })); it('should not display span in a production environment if the flag value is a feature name and the feature is disabled', waitForAsync(() => { - store.dispatch(featureAccessActions.setEnvironment({ payload: { production: true } })); - store.dispatch(featureAccessActions.setFeatureFlags({ payload: { test: false } })); + store.dispatch(featureAccessAction.setEnvironment({ payload: { production: true } })); + store.dispatch(featureAccessAction.setFeatureFlags({ payload: { test: false } })); component.flag = 'test'; expect(component.flag).toEqual('test'); fixture.detectChanges(); @@ -104,7 +104,7 @@ describe('AppFeatureFlagDirective', () => { })); it('should display span in a production environment if the flag value is a feature name and the feature is enabled', waitForAsync(() => { - store.dispatch(featureAccessActions.setFeatureFlags({ payload: { test: true } })); + store.dispatch(featureAccessAction.setFeatureFlags({ payload: { test: true } })); component.flag = 'test'; expect(component.flag).toEqual('test'); fixture.detectChanges(); @@ -113,8 +113,8 @@ describe('AppFeatureFlagDirective', () => { })); it('should display span in a production environment if the flag value is a feature name and the feature is enabled', waitForAsync(() => { - store.dispatch(featureAccessActions.setEnvironment({ payload: { production: true } })); - store.dispatch(featureAccessActions.setFeatureFlags({ payload: { test: true } })); + store.dispatch(featureAccessAction.setEnvironment({ payload: { production: true } })); + store.dispatch(featureAccessAction.setFeatureFlags({ payload: { test: true } })); component.flag = 'test'; expect(component.flag).toEqual('test'); fixture.detectChanges(); diff --git a/libs/client-store-feature-access/src/lib/directives/feature-flag/feature-flag.directive.ts b/libs/client-store-feature-access/src/lib/directives/feature-flag/feature-flag.directive.ts index 57d382c3..b1790e15 100644 --- a/libs/client-store-feature-access/src/lib/directives/feature-flag/feature-flag.directive.ts +++ b/libs/client-store-feature-access/src/lib/directives/feature-flag/feature-flag.directive.ts @@ -3,7 +3,7 @@ import { Store } from '@ngrx/store'; import { tap } from 'rxjs/operators'; import { IFeatureAccessState } from '../../feature-access.interface'; -import { featureAccessSelectors } from '../../feature-access.selectors'; +import { featureAccessSelector } from '../../feature-access.selectors'; interface IInputChanges extends SimpleChanges { appFeatureFlag: SimpleChange; @@ -28,7 +28,7 @@ export class AppFeatureFlagDirective implements OnChanges { return; } const featureSelector = - typeof value === 'undefined' || value === '' ? featureAccessSelectors.enable : featureAccessSelectors.enableFeature(value); + typeof value === 'undefined' || value === '' ? featureAccessSelector.enable : featureAccessSelector.enableFeature(value); void this.store .select(featureSelector) .pipe( diff --git a/libs/client-store-feature-access/src/lib/feature-access.actions.ts b/libs/client-store-feature-access/src/lib/feature-access.actions.ts index d17f8d6f..4ca0c4d5 100644 --- a/libs/client-store-feature-access/src/lib/feature-access.actions.ts +++ b/libs/client-store-feature-access/src/lib/feature-access.actions.ts @@ -3,20 +3,14 @@ import { createAction, props } from '@ngrx/store'; import { featureAccessReducerConfig, IFeatureAccessStateModel } from './feature-access.interface'; -const initialize = createAction(actionType(featureAccessReducerConfig.featureName, 'init')); - -const setEnvironment = createAction( - actionType(featureAccessReducerConfig.featureName, 'set environment'), - props<{ payload: IFeatureAccessStateModel['environment'] }>(), -); - -const setFeatureFlags = createAction( - actionType(featureAccessReducerConfig.featureName, 'setFlags'), - props<{ payload: IFeatureAccessStateModel['featureFlags'] }>(), -); - -export const featureAccessActions = { - initialize, - setEnvironment, - setFeatureFlags, +export const featureAccessAction = { + initialize: createAction(actionType(featureAccessReducerConfig.featureName, 'init')), + setEnvironment: createAction( + actionType(featureAccessReducerConfig.featureName, 'set environment'), + props<{ payload: IFeatureAccessStateModel['environment'] }>(), + ), + setFeatureFlags: createAction( + actionType(featureAccessReducerConfig.featureName, 'setFlags'), + props<{ payload: IFeatureAccessStateModel['featureFlags'] }>(), + ), }; diff --git a/libs/client-store-feature-access/src/lib/feature-access.effects.spec.ts b/libs/client-store-feature-access/src/lib/feature-access.effects.spec.ts index ab38da8b..bb7b6e02 100644 --- a/libs/client-store-feature-access/src/lib/feature-access.effects.spec.ts +++ b/libs/client-store-feature-access/src/lib/feature-access.effects.spec.ts @@ -4,11 +4,11 @@ import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; import { first, switchMap, tap } from 'rxjs'; -import { featureAccessActions } from './feature-access.actions'; +import { featureAccessAction } from './feature-access.actions'; import { AppFeatureAccessEffects } from './feature-access.effects'; import { featureAccessReducerConfig, IFeatureAccessState } from './feature-access.interface'; import { featureAccessReducerProvider } from './feature-access.reducer'; -import { featureAccessSelectors } from './feature-access.selectors'; +import { featureAccessSelector } from './feature-access.selectors'; describe('AppFeatureAccessEffects', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -32,17 +32,17 @@ describe('AppFeatureAccessEffects', () => { it('should dispatch the setEnvironment action when the initialize action is dispatched', waitForAsync(() => { const payload = { production: true }; - store.dispatch(featureAccessActions.setEnvironment({ payload })); - const setEnvironmentSpy = jest.spyOn(featureAccessActions, 'setEnvironment'); + store.dispatch(featureAccessAction.setEnvironment({ payload })); + const setEnvironmentSpy = jest.spyOn(featureAccessAction, 'setEnvironment'); void store - .select(featureAccessSelectors.enable) + .select(featureAccessSelector.enable) .pipe( first(), tap(enable => { expect(enable).toBeFalsy(); - store.dispatch(featureAccessActions.initialize()); + store.dispatch(featureAccessAction.initialize()); }), - switchMap(() => store.select(featureAccessSelectors.enable)), + switchMap(() => store.select(featureAccessSelector.enable)), first(), tap(enable => { expect(setEnvironmentSpy).toHaveBeenCalledTimes(1); diff --git a/libs/client-store-feature-access/src/lib/feature-access.effects.ts b/libs/client-store-feature-access/src/lib/feature-access.effects.ts index c38a9d96..3d468267 100644 --- a/libs/client-store-feature-access/src/lib/feature-access.effects.ts +++ b/libs/client-store-feature-access/src/lib/feature-access.effects.ts @@ -3,7 +3,7 @@ import { IWebClientAppEnvironment, WEB_CLIENT_APP_ENV } from '@app/client-util'; import { Actions, createEffect, ofType } from '@ngrx/effects'; import { map } from 'rxjs/operators'; -import { featureAccessActions } from './feature-access.actions'; +import { featureAccessAction } from './feature-access.actions'; @Injectable({ providedIn: 'root', @@ -11,8 +11,8 @@ import { featureAccessActions } from './feature-access.actions'; export class AppFeatureAccessEffects { public readonly action$ = createEffect(() => this.actions$.pipe( - ofType(featureAccessActions.initialize.type), - map(() => featureAccessActions.setEnvironment({ payload: { production: this.env.production } })), + ofType(featureAccessAction.initialize.type), + map(() => featureAccessAction.setEnvironment({ payload: { production: this.env.production } })), ), ); diff --git a/libs/client-store-feature-access/src/lib/feature-access.reducer.spec.ts b/libs/client-store-feature-access/src/lib/feature-access.reducer.spec.ts index 7f505fbe..53e06456 100644 --- a/libs/client-store-feature-access/src/lib/feature-access.reducer.spec.ts +++ b/libs/client-store-feature-access/src/lib/feature-access.reducer.spec.ts @@ -3,10 +3,10 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store, StoreModule } from '@ngrx/store'; import { first, tap } from 'rxjs'; -import { featureAccessActions } from './feature-access.actions'; +import { featureAccessAction } from './feature-access.actions'; import { featureAccessReducerConfig, IFeatureAccessState, IFeatureAccessStateModel } from './feature-access.interface'; import { AppFeatureAccessReducer, featureAccessReducerProvider } from './feature-access.reducer'; -import { featureAccessSelectors } from './feature-access.selectors'; +import { featureAccessSelector } from './feature-access.selectors'; describe('AppFeatureAccessReducer', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -39,9 +39,9 @@ describe('AppFeatureAccessReducer', () => { it('should process the setEnvironment action correctly', waitForAsync(() => { const payload = { production: true }; - store.dispatch(featureAccessActions.setEnvironment({ payload })); + store.dispatch(featureAccessAction.setEnvironment({ payload })); void store - .select(featureAccessSelectors.enable) + .select(featureAccessSelector.enable) .pipe( first(), tap(enable => { diff --git a/libs/client-store-feature-access/src/lib/feature-access.reducer.ts b/libs/client-store-feature-access/src/lib/feature-access.reducer.ts index 5217ee88..25522e0a 100644 --- a/libs/client-store-feature-access/src/lib/feature-access.reducer.ts +++ b/libs/client-store-feature-access/src/lib/feature-access.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { featureAccessActions } from './feature-access.actions'; +import { featureAccessAction } from './feature-access.actions'; import { featureAccessReducerConfig } from './feature-access.interface'; @Injectable({ @@ -11,8 +11,8 @@ export class AppFeatureAccessReducer { public createReducer() { return createReducer( featureAccessReducerConfig.initialState, - on(featureAccessActions.setEnvironment, (state, { payload }) => ({ ...state, environment: payload })), - on(featureAccessActions.setFeatureFlags, (state, { payload }) => ({ ...state, featureFlags: payload })), + on(featureAccessAction.setEnvironment, (state, { payload }) => ({ ...state, environment: payload })), + on(featureAccessAction.setFeatureFlags, (state, { payload }) => ({ ...state, featureFlags: payload })), ); } } diff --git a/libs/client-store-feature-access/src/lib/feature-access.selectors.ts b/libs/client-store-feature-access/src/lib/feature-access.selectors.ts index 63121d60..daff5672 100644 --- a/libs/client-store-feature-access/src/lib/feature-access.selectors.ts +++ b/libs/client-store-feature-access/src/lib/feature-access.selectors.ts @@ -4,14 +4,10 @@ import { IFeatureAccessState, IFeatureAccessStateModel } from './feature-access. const selectFeature = (state: IFeatureAccessState) => state.featureAccess; -const enable = createSelector(selectFeature, (state: IFeatureAccessStateModel) => !state.environment.production); - -const enableFeature = (flag: string) => - createSelector(selectFeature, (state: IFeatureAccessStateModel) => - state.environment.production ? state.featureFlags[flag] ?? false : true, - ); - -export const featureAccessSelectors = { - enable, - enableFeature, +export const featureAccessSelector = { + enable: createSelector(selectFeature, (state: IFeatureAccessStateModel) => !state.environment.production), + enableFeature: (flag: string) => + createSelector(selectFeature, (state: IFeatureAccessStateModel) => + state.environment.production ? state.featureFlags[flag] ?? false : true, + ), }; diff --git a/libs/client-store-feature-access/src/lib/guards/feature-access-init/feature-access-init.guard.spec.ts b/libs/client-store-feature-access/src/lib/guards/feature-access-init/feature-access-init.guard.spec.ts index 21b093d4..a9395942 100644 --- a/libs/client-store-feature-access/src/lib/guards/feature-access-init/feature-access-init.guard.spec.ts +++ b/libs/client-store-feature-access/src/lib/guards/feature-access-init/feature-access-init.guard.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; import { Store, StoreModule } from '@ngrx/store'; -import { featureAccessActions } from '../../feature-access.actions'; +import { featureAccessAction } from '../../feature-access.actions'; import { AppFeatureAccessInitGuard } from './feature-access-init.guard'; describe('AppFeatureAccessInitGuard', () => { @@ -24,6 +24,6 @@ describe('AppFeatureAccessInitGuard', () => { it('canActivate should dispatch a store event', () => { guard.canActivate(); - expect(storeDispatchSpy).toHaveBeenCalledWith(featureAccessActions.initialize()); + expect(storeDispatchSpy).toHaveBeenCalledWith(featureAccessAction.initialize()); }); }); diff --git a/libs/client-store-feature-access/src/lib/guards/feature-access-init/feature-access-init.guard.ts b/libs/client-store-feature-access/src/lib/guards/feature-access-init/feature-access-init.guard.ts index 149c6a8b..5005c20c 100644 --- a/libs/client-store-feature-access/src/lib/guards/feature-access-init/feature-access-init.guard.ts +++ b/libs/client-store-feature-access/src/lib/guards/feature-access-init/feature-access-init.guard.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { Store } from '@ngrx/store'; -import { featureAccessActions } from '../../feature-access.actions'; +import { featureAccessAction } from '../../feature-access.actions'; import { IFeatureAccessState } from '../../feature-access.interface'; @Injectable({ @@ -11,7 +11,7 @@ export class AppFeatureAccessInitGuard { constructor(private readonly store: Store) {} public canActivate(): boolean { - this.store.dispatch(featureAccessActions.initialize()); + this.store.dispatch(featureAccessAction.initialize()); return true; } } diff --git a/libs/client-store-feature-access/src/lib/guards/feature-access/feature-access.guard.spec.ts b/libs/client-store-feature-access/src/lib/guards/feature-access/feature-access.guard.spec.ts index 367f6a97..21bbf3f3 100644 --- a/libs/client-store-feature-access/src/lib/guards/feature-access/feature-access.guard.spec.ts +++ b/libs/client-store-feature-access/src/lib/guards/feature-access/feature-access.guard.spec.ts @@ -4,7 +4,7 @@ import { RouterTestingModule } from '@angular/router/testing'; import { Store, StoreModule } from '@ngrx/store'; import { firstValueFrom, of } from 'rxjs'; -import { featureAccessSelectors } from '../../feature-access.selectors'; +import { featureAccessSelector } from '../../feature-access.selectors'; import { AppFeatureAccessGuard } from '../feature-access/feature-access.guard'; describe('AppFeatureAccessGuard', () => { @@ -28,7 +28,7 @@ describe('AppFeatureAccessGuard', () => { const route = {}; const state = { root: { data: { feature: void 0 } } } as unknown as RouterStateSnapshot; const result = await firstValueFrom(guard.canActivate(route, state)); - expect(storeSelectSpy).toHaveBeenCalledWith(featureAccessSelectors.enable); + expect(storeSelectSpy).toHaveBeenCalledWith(featureAccessSelector.enable); expect(result instanceof UrlTree).toBeTruthy(); }); @@ -37,7 +37,7 @@ describe('AppFeatureAccessGuard', () => { const route = {}; const state = { root: { data: { feature: void 0 } } } as unknown as RouterStateSnapshot; const result = await firstValueFrom(guard.canActivate(route, state)); - expect(storeSelectSpy).toHaveBeenCalledWith(featureAccessSelectors.enable); + expect(storeSelectSpy).toHaveBeenCalledWith(featureAccessSelector.enable); expect(typeof result === 'boolean').toBeTruthy(); }); @@ -46,7 +46,7 @@ describe('AppFeatureAccessGuard', () => { const route = {}; const state = { root: { data: { feature: 'test' } } } as unknown as RouterStateSnapshot; const result = await firstValueFrom(guard.canActivate(route, state)); - expect(storeSelectSpy).not.toHaveBeenCalledWith(featureAccessSelectors.enable); + expect(storeSelectSpy).not.toHaveBeenCalledWith(featureAccessSelector.enable); expect(storeSelectSpy).toHaveBeenCalledTimes(1); expect(result instanceof UrlTree).toBeTruthy(); }); @@ -56,7 +56,7 @@ describe('AppFeatureAccessGuard', () => { const route = {}; const state = { root: { data: { feature: 'test' } } } as unknown as RouterStateSnapshot; const result = await firstValueFrom(guard.canActivate(route, state)); - expect(storeSelectSpy).not.toHaveBeenCalledWith(featureAccessSelectors.enable); + expect(storeSelectSpy).not.toHaveBeenCalledWith(featureAccessSelector.enable); expect(storeSelectSpy).toHaveBeenCalledTimes(1); expect(typeof result === 'boolean').toBeTruthy(); }); diff --git a/libs/client-store-feature-access/src/lib/guards/feature-access/feature-access.guard.ts b/libs/client-store-feature-access/src/lib/guards/feature-access/feature-access.guard.ts index 6331f731..21842a33 100644 --- a/libs/client-store-feature-access/src/lib/guards/feature-access/feature-access.guard.ts +++ b/libs/client-store-feature-access/src/lib/guards/feature-access/feature-access.guard.ts @@ -4,7 +4,7 @@ import { Store } from '@ngrx/store'; import { first, map, Observable } from 'rxjs'; import { IFeatureAccessState } from '../../feature-access.interface'; -import { featureAccessSelectors } from '../../feature-access.selectors'; +import { featureAccessSelector } from '../../feature-access.selectors'; @Injectable({ providedIn: 'root', @@ -18,7 +18,7 @@ export class AppFeatureAccessGuard { public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { const value: string | undefined = (<{ feature?: string }>state.root.data).feature; const featureSelector = - typeof value === 'undefined' || value === '' ? featureAccessSelectors.enable : featureAccessSelectors.enableFeature(value); + typeof value === 'undefined' || value === '' ? featureAccessSelector.enable : featureAccessSelector.enableFeature(value); return this.store.select(featureSelector).pipe( first(), map(enable => (enable ? enable : this.router.createUrlTree(['']))), diff --git a/libs/client-store-http-api/src/lib/http-api.actions.ts b/libs/client-store-http-api/src/lib/http-api.actions.ts index 8a7a6e4e..0210ea1c 100644 --- a/libs/client-store-http-api/src/lib/http-api.actions.ts +++ b/libs/client-store-http-api/src/lib/http-api.actions.ts @@ -3,11 +3,7 @@ import { createAction, props } from '@ngrx/store'; import { httpApiReducerConfig, IPingResponse } from './http-api.interface'; -const ping = createAction(actionType(httpApiReducerConfig.featureName, 'ping')); - -const pingSuccess = createAction(actionType(httpApiReducerConfig.featureName, 'ping success'), props<{ payload: IPingResponse }>()); - -export const httpApiActions = { - ping, - pingSuccess, +export const httpApiAction = { + ping: createAction(actionType(httpApiReducerConfig.featureName, 'ping')), + pingSuccess: createAction(actionType(httpApiReducerConfig.featureName, 'ping success'), props<{ payload: IPingResponse }>()), }; diff --git a/libs/client-store-http-api/src/lib/http-api.effects.spec.ts b/libs/client-store-http-api/src/lib/http-api.effects.spec.ts index 91fbfd98..c34b8356 100644 --- a/libs/client-store-http-api/src/lib/http-api.effects.spec.ts +++ b/libs/client-store-http-api/src/lib/http-api.effects.spec.ts @@ -4,11 +4,11 @@ import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; import { first, of, tap } from 'rxjs'; -import { httpApiActions } from './http-api.actions'; +import { httpApiAction } from './http-api.actions'; import { AppHttpApiEffects } from './http-api.effects'; import { httpApiReducerConfig, IHttpApiState, IPingResponse } from './http-api.interface'; import { httpApiReducerProvider } from './http-api.reducer'; -import { httpApiSelectors } from './http-api.selectors'; +import { httpApiSelector } from './http-api.selectors'; import { AppHttpApiService } from './services/http-api/http-api.service'; describe('AppHttpApiEffects', () => { @@ -41,9 +41,9 @@ describe('AppHttpApiEffects', () => { it('should call http api service when the ping action is dispatched', waitForAsync(() => { const response: IPingResponse = { message: 'test' }; const pingSpy = jest.spyOn(service, 'ping').mockReturnValue(of(response)); - store.dispatch(httpApiActions.ping()); + store.dispatch(httpApiAction.ping()); void store - .select(httpApiSelectors.ping) + .select(httpApiSelector.ping) .pipe( first(), tap(ping => { diff --git a/libs/client-store-http-api/src/lib/http-api.effects.ts b/libs/client-store-http-api/src/lib/http-api.effects.ts index a16e82e4..d34c1098 100644 --- a/libs/client-store-http-api/src/lib/http-api.effects.ts +++ b/libs/client-store-http-api/src/lib/http-api.effects.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { Actions, createEffect, ofType } from '@ngrx/effects'; import { map, mergeMap } from 'rxjs/operators'; -import { httpApiActions } from './http-api.actions'; +import { httpApiAction } from './http-api.actions'; import { AppHttpApiService } from './services/http-api/http-api.service'; @Injectable({ @@ -11,9 +11,9 @@ import { AppHttpApiService } from './services/http-api/http-api.service'; export class AppHttpApiEffects { public readonly ping$ = createEffect(() => this.actions$.pipe( - ofType(httpApiActions.ping.type), + ofType(httpApiAction.ping.type), mergeMap(() => this.api.ping()), - map(payload => httpApiActions.pingSuccess({ payload })), + map(payload => httpApiAction.pingSuccess({ payload })), ), ); diff --git a/libs/client-store-http-api/src/lib/http-api.reducer.spec.ts b/libs/client-store-http-api/src/lib/http-api.reducer.spec.ts index a4db3df4..c3785683 100644 --- a/libs/client-store-http-api/src/lib/http-api.reducer.spec.ts +++ b/libs/client-store-http-api/src/lib/http-api.reducer.spec.ts @@ -3,10 +3,10 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store, StoreModule } from '@ngrx/store'; import { first, tap } from 'rxjs'; -import { httpApiActions } from './http-api.actions'; +import { httpApiAction } from './http-api.actions'; import { httpApiReducerConfig, IHttpApiState, IHttpApiStateModel } from './http-api.interface'; import { AppHttpApiReducer, httpApiReducerProvider } from './http-api.reducer'; -import { httpApiSelectors } from './http-api.selectors'; +import { httpApiSelector } from './http-api.selectors'; describe('AppHttpApiReducer', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -36,9 +36,9 @@ describe('AppHttpApiReducer', () => { it('should process the pingSuccess action correctly', waitForAsync(() => { const payload = { message: 'test' }; - store.dispatch(httpApiActions.pingSuccess({ payload })); + store.dispatch(httpApiAction.pingSuccess({ payload })); void store - .select(httpApiSelectors.ping) + .select(httpApiSelector.ping) .pipe( first(), tap(ping => { diff --git a/libs/client-store-http-api/src/lib/http-api.reducer.ts b/libs/client-store-http-api/src/lib/http-api.reducer.ts index f810587d..c5666547 100644 --- a/libs/client-store-http-api/src/lib/http-api.reducer.ts +++ b/libs/client-store-http-api/src/lib/http-api.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { httpApiActions } from './http-api.actions'; +import { httpApiAction } from './http-api.actions'; import { httpApiReducerConfig } from './http-api.interface'; @Injectable({ @@ -11,7 +11,7 @@ export class AppHttpApiReducer { public createReducer() { return createReducer( httpApiReducerConfig.initialState, - on(httpApiActions.pingSuccess, (state, { payload }) => ({ ping: payload.message })), + on(httpApiAction.pingSuccess, (state, { payload }) => ({ ping: payload.message })), ); } } diff --git a/libs/client-store-http-api/src/lib/http-api.selectors.ts b/libs/client-store-http-api/src/lib/http-api.selectors.ts index 6d0f0eaf..efdc04a0 100644 --- a/libs/client-store-http-api/src/lib/http-api.selectors.ts +++ b/libs/client-store-http-api/src/lib/http-api.selectors.ts @@ -4,8 +4,6 @@ import { IHttpApiState, IHttpApiStateModel } from './http-api.interface'; const selectFeature = (state: IHttpApiState) => state.httpApi; -const ping = createSelector(selectFeature, (state: IHttpApiStateModel) => state.ping); - -export const httpApiSelectors = { - ping, +export const httpApiSelector = { + ping: createSelector(selectFeature, (state: IHttpApiStateModel) => state.ping), }; diff --git a/libs/client-store-http-progress/src/lib/http-progress.actions.ts b/libs/client-store-http-progress/src/lib/http-progress.actions.ts index 1825c662..48da5540 100644 --- a/libs/client-store-http-progress/src/lib/http-progress.actions.ts +++ b/libs/client-store-http-progress/src/lib/http-progress.actions.ts @@ -3,17 +3,8 @@ import { createAction, props } from '@ngrx/store'; import { httpProgressReducerConfig, IHttpProgressPayload, IShowToastPayload } from './http-progress.interface'; -const start = createAction(actionType(httpProgressReducerConfig.featureName, 'start'), props<{ payload: IHttpProgressPayload }>()); - -const stop = createAction(actionType(httpProgressReducerConfig.featureName, 'stop'), props<{ payload: IHttpProgressPayload }>()); - -const displayToast = createAction( - actionType(httpProgressReducerConfig.featureName, 'display toast'), - props<{ payload: IShowToastPayload }>(), -); - -export const httpProgressActions = { - start, - stop, - displayToast, +export const httpProgressAction = { + start: createAction(actionType(httpProgressReducerConfig.featureName, 'start'), props<{ payload: IHttpProgressPayload }>()), + stop: createAction(actionType(httpProgressReducerConfig.featureName, 'stop'), props<{ payload: IHttpProgressPayload }>()), + displayToast: createAction(actionType(httpProgressReducerConfig.featureName, 'display toast'), props<{ payload: IShowToastPayload }>()), }; diff --git a/libs/client-store-http-progress/src/lib/http-progress.effects.spec.ts b/libs/client-store-http-progress/src/lib/http-progress.effects.spec.ts index 992e07f3..37b17511 100644 --- a/libs/client-store-http-progress/src/lib/http-progress.effects.spec.ts +++ b/libs/client-store-http-progress/src/lib/http-progress.effects.spec.ts @@ -3,7 +3,7 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; -import { httpProgressActions } from './http-progress.actions'; +import { httpProgressAction } from './http-progress.actions'; import { AppHttpProgressEffects } from './http-progress.effects'; import { httpProgressReducerConfig, IHttpProgressState, IShowToastPayload } from './http-progress.interface'; import { httpProgressReducerProvider } from './http-progress.reducer'; @@ -49,19 +49,19 @@ describe('AppHttpProgressEffects', () => { }); it('should call global progress hander start when the start action is dispatched with payload { mainView: true }', waitForAsync(() => { - store.dispatch(httpProgressActions.start({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.start({ payload: { mainView: true } })); expect(progressService.globalProgressHandler.start).toHaveBeenCalled(); })); it('should call global progress hander stop when the start action is dispatched with payload { mainView: false }', waitForAsync(() => { - store.dispatch(httpProgressActions.start({ payload: { mainView: true } })); - store.dispatch(httpProgressActions.stop({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.start({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.stop({ payload: { mainView: true } })); expect(progressService.globalProgressHandler.stop).toHaveBeenCalled(); })); it('should call displayToast start when the displayToast action is dispatched', waitForAsync(() => { const payload: IShowToastPayload = { message: 'test', type: 'accent', duration: 1000 }; - store.dispatch(httpProgressActions.displayToast({ payload })); + store.dispatch(httpProgressAction.displayToast({ payload })); expect(toasterService.showToaster).toHaveBeenCalledWith(payload.message, payload.type, payload.duration); })); }); diff --git a/libs/client-store-http-progress/src/lib/http-progress.effects.ts b/libs/client-store-http-progress/src/lib/http-progress.effects.ts index c7bca36a..f5c170f3 100644 --- a/libs/client-store-http-progress/src/lib/http-progress.effects.ts +++ b/libs/client-store-http-progress/src/lib/http-progress.effects.ts @@ -3,9 +3,9 @@ import { Actions, createEffect, ofType } from '@ngrx/effects'; import { Store } from '@ngrx/store'; import { tap, withLatestFrom } from 'rxjs/operators'; -import { httpProgressActions } from './http-progress.actions'; +import { httpProgressAction } from './http-progress.actions'; import { IHttpProgressState } from './http-progress.interface'; -import { httpProgressSelectors } from './http-progress.selectors'; +import { httpProgressSelector } from './http-progress.selectors'; import { AppHttpProgressService } from './services/http-progress/http-progress.service'; import { AppToasterService } from './services/toaster/toaster.service'; @@ -16,8 +16,8 @@ export class AppHttpProgressEffects { public readonly start$ = createEffect( () => this.actions$.pipe( - ofType(httpProgressActions.start.type), - withLatestFrom(this.store.select(httpProgressSelectors.mainView)), + ofType(httpProgressAction.start.type), + withLatestFrom(this.store.select(httpProgressSelector.mainView)), tap(([action, mainView]) => { if (mainView.loading) { this.service.globalProgressHandler.start(); @@ -30,8 +30,8 @@ export class AppHttpProgressEffects { public readonly stop$ = createEffect( () => this.actions$.pipe( - ofType(httpProgressActions.stop.type), - withLatestFrom(this.store.select(httpProgressSelectors.mainView)), + ofType(httpProgressAction.stop.type), + withLatestFrom(this.store.select(httpProgressSelector.mainView)), tap(([action, mainView]) => { if (!mainView.loading) { this.service.globalProgressHandler.stop(); @@ -44,8 +44,8 @@ export class AppHttpProgressEffects { public readonly displayToast$ = createEffect( () => this.actions$.pipe( - ofType(httpProgressActions.displayToast.type), - withLatestFrom(this.store.select(httpProgressSelectors.toaster)), + ofType(httpProgressAction.displayToast.type), + withLatestFrom(this.store.select(httpProgressSelector.toaster)), tap(([action, toaster]) => { this.toaster.showToaster(toaster.message, toaster.type, toaster.duration); }), diff --git a/libs/client-store-http-progress/src/lib/http-progress.reducer.spec.ts b/libs/client-store-http-progress/src/lib/http-progress.reducer.spec.ts index 7dd1b937..e6b011ed 100644 --- a/libs/client-store-http-progress/src/lib/http-progress.reducer.spec.ts +++ b/libs/client-store-http-progress/src/lib/http-progress.reducer.spec.ts @@ -3,10 +3,10 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store, StoreModule } from '@ngrx/store'; import { first, switchMap, tap } from 'rxjs'; -import { httpProgressActions } from './http-progress.actions'; +import { httpProgressAction } from './http-progress.actions'; import { httpProgressReducerConfig, IHttpProgressState, IHttpProgressStateModel, IShowToastPayload } from './http-progress.interface'; import { AppHttpProgressReducer, httpProgressReducerProvider } from './http-progress.reducer'; -import { httpProgressSelectors } from './http-progress.selectors'; +import { httpProgressSelector } from './http-progress.selectors'; describe('AppHttpProgressReducer', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -49,17 +49,17 @@ describe('AppHttpProgressReducer', () => { }); it('should process the start action correctly (mainView)', waitForAsync(() => { - store.dispatch(httpProgressActions.start({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.start({ payload: { mainView: true } })); void store - .select(httpProgressSelectors.mainView) + .select(httpProgressSelector.mainView) .pipe( first(), tap(mainView => { expect(mainView.counter).toEqual(1); expect(mainView.loading).toBeTruthy(); - store.dispatch(httpProgressActions.start({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.start({ payload: { mainView: true } })); }), - switchMap(() => store.select(httpProgressSelectors.mainView).pipe(first())), + switchMap(() => store.select(httpProgressSelector.mainView).pipe(first())), tap(mainView => { const expectedCount = 2; expect(mainView.counter).toEqual(expectedCount); @@ -70,17 +70,17 @@ describe('AppHttpProgressReducer', () => { })); it('should process the start action correctly (sidebar)', waitForAsync(() => { - store.dispatch(httpProgressActions.start({ payload: { sidebar: true } })); + store.dispatch(httpProgressAction.start({ payload: { sidebar: true } })); void store - .select(httpProgressSelectors.sidebar) + .select(httpProgressSelector.sidebar) .pipe( first(), tap(sidebar => { expect(sidebar.counter).toEqual(1); expect(sidebar.loading).toBeTruthy(); - store.dispatch(httpProgressActions.start({ payload: { sidebar: true } })); + store.dispatch(httpProgressAction.start({ payload: { sidebar: true } })); }), - switchMap(() => store.select(httpProgressSelectors.sidebar).pipe(first())), + switchMap(() => store.select(httpProgressSelector.sidebar).pipe(first())), tap(sidebar => { const expectedCount = 2; expect(sidebar.counter).toEqual(expectedCount); @@ -91,30 +91,30 @@ describe('AppHttpProgressReducer', () => { })); it('should process the stop action correctly (mainView)', waitForAsync(() => { - store.dispatch(httpProgressActions.start({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.start({ payload: { mainView: true } })); void store - .select(httpProgressSelectors.mainView) + .select(httpProgressSelector.mainView) .pipe( first(), tap(mainView => { expect(mainView.counter).toEqual(1); expect(mainView.loading).toBeTruthy(); - store.dispatch(httpProgressActions.start({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.start({ payload: { mainView: true } })); }), - switchMap(() => store.select(httpProgressSelectors.mainView).pipe(first())), + switchMap(() => store.select(httpProgressSelector.mainView).pipe(first())), tap(mainView => { const expectedCount = 2; expect(mainView.counter).toEqual(expectedCount); expect(mainView.loading).toBeTruthy(); - store.dispatch(httpProgressActions.stop({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.stop({ payload: { mainView: true } })); }), - switchMap(() => store.select(httpProgressSelectors.mainView).pipe(first())), + switchMap(() => store.select(httpProgressSelector.mainView).pipe(first())), tap(mainView => { expect(mainView.counter).toEqual(1); expect(mainView.loading).toBeTruthy(); - store.dispatch(httpProgressActions.stop({ payload: { mainView: true } })); + store.dispatch(httpProgressAction.stop({ payload: { mainView: true } })); }), - switchMap(() => store.select(httpProgressSelectors.mainView).pipe(first())), + switchMap(() => store.select(httpProgressSelector.mainView).pipe(first())), tap(mainView => { expect(mainView.counter).toEqual(0); expect(mainView.loading).toBeFalsy(); @@ -124,30 +124,30 @@ describe('AppHttpProgressReducer', () => { })); it('should process the stop action correctly (sidebar)', waitForAsync(() => { - store.dispatch(httpProgressActions.start({ payload: { sidebar: true } })); + store.dispatch(httpProgressAction.start({ payload: { sidebar: true } })); void store - .select(httpProgressSelectors.sidebar) + .select(httpProgressSelector.sidebar) .pipe( first(), tap(sidebar => { expect(sidebar.counter).toEqual(1); expect(sidebar.loading).toBeTruthy(); - store.dispatch(httpProgressActions.start({ payload: { sidebar: true } })); + store.dispatch(httpProgressAction.start({ payload: { sidebar: true } })); }), - switchMap(() => store.select(httpProgressSelectors.sidebar).pipe(first())), + switchMap(() => store.select(httpProgressSelector.sidebar).pipe(first())), tap(sidebar => { const expectedCount = 2; expect(sidebar.counter).toEqual(expectedCount); expect(sidebar.loading).toBeTruthy(); - store.dispatch(httpProgressActions.stop({ payload: { sidebar: true } })); + store.dispatch(httpProgressAction.stop({ payload: { sidebar: true } })); }), - switchMap(() => store.select(httpProgressSelectors.sidebar).pipe(first())), + switchMap(() => store.select(httpProgressSelector.sidebar).pipe(first())), tap(sidebar => { expect(sidebar.counter).toEqual(1); expect(sidebar.loading).toBeTruthy(); - store.dispatch(httpProgressActions.stop({ payload: { sidebar: true } })); + store.dispatch(httpProgressAction.stop({ payload: { sidebar: true } })); }), - switchMap(() => store.select(httpProgressSelectors.sidebar).pipe(first())), + switchMap(() => store.select(httpProgressSelector.sidebar).pipe(first())), tap(sidebar => { expect(sidebar.counter).toEqual(0); expect(sidebar.loading).toBeFalsy(); @@ -158,9 +158,9 @@ describe('AppHttpProgressReducer', () => { it('should process the displayToast action correctly', waitForAsync(() => { const payload: IShowToastPayload = { message: 'test', type: 'accent', duration: 1000 }; - store.dispatch(httpProgressActions.displayToast({ payload })); + store.dispatch(httpProgressAction.displayToast({ payload })); void store - .select(httpProgressSelectors.toaster) + .select(httpProgressSelector.toaster) .pipe( first(), tap(toaster => { diff --git a/libs/client-store-http-progress/src/lib/http-progress.reducer.ts b/libs/client-store-http-progress/src/lib/http-progress.reducer.ts index 4a564e0e..fd8a0500 100644 --- a/libs/client-store-http-progress/src/lib/http-progress.reducer.ts +++ b/libs/client-store-http-progress/src/lib/http-progress.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { httpProgressActions } from './http-progress.actions'; +import { httpProgressAction } from './http-progress.actions'; import { httpProgressReducerConfig, IHttpProgressStateModel } from './http-progress.interface'; @Injectable({ @@ -11,7 +11,7 @@ export class AppHttpProgressReducer { public createReducer() { return createReducer( httpProgressReducerConfig.initialState, - on(httpProgressActions.start, (state, { payload }) => { + on(httpProgressAction.start, (state, { payload }) => { const nextState = { mainView: { ...state.mainView }, sidebar: { ...state.sidebar }, toaster: { ...state.toaster } }; const keys = Object.keys(payload).length === 0 ? ['mainView'] : Object.keys(payload); for (const key of keys) { @@ -25,7 +25,7 @@ export class AppHttpProgressReducer { } return nextState; }), - on(httpProgressActions.stop, (state, { payload }) => { + on(httpProgressAction.stop, (state, { payload }) => { const nextState = { mainView: { ...state.mainView }, sidebar: { ...state.sidebar }, toaster: { ...state.toaster } }; const keys = Object.keys(payload).length === 0 ? ['mainView'] : Object.keys(payload); for (const key of keys) { @@ -39,7 +39,7 @@ export class AppHttpProgressReducer { } return nextState; }), - on(httpProgressActions.displayToast, (state, { payload }) => ({ ...state, toaster: { ...payload } })), + on(httpProgressAction.displayToast, (state, { payload }) => ({ ...state, toaster: { ...payload } })), ); } } diff --git a/libs/client-store-http-progress/src/lib/http-progress.selectors.ts b/libs/client-store-http-progress/src/lib/http-progress.selectors.ts index 6d293c7b..6c8f0126 100644 --- a/libs/client-store-http-progress/src/lib/http-progress.selectors.ts +++ b/libs/client-store-http-progress/src/lib/http-progress.selectors.ts @@ -4,12 +4,8 @@ import { IHttpProgressState, IHttpProgressStateModel } from './http-progress.int const selectFeature = (state: IHttpProgressState) => state.httpProgress; -const mainView = createSelector(selectFeature, (state: IHttpProgressStateModel) => state.mainView); -const sidebar = createSelector(selectFeature, (state: IHttpProgressStateModel) => state.sidebar); -const toaster = createSelector(selectFeature, (state: IHttpProgressStateModel) => state.toaster); - -export const httpProgressSelectors = { - mainView, - sidebar, - toaster, +export const httpProgressSelector = { + mainView: createSelector(selectFeature, (state: IHttpProgressStateModel) => state.mainView), + sidebar: createSelector(selectFeature, (state: IHttpProgressStateModel) => state.sidebar), + toaster: createSelector(selectFeature, (state: IHttpProgressStateModel) => state.toaster), }; diff --git a/libs/client-store-http-progress/src/lib/services/http-handlers/http-handlers.service.spec.ts b/libs/client-store-http-progress/src/lib/services/http-handlers/http-handlers.service.spec.ts index 4bbe16b2..c58512c3 100644 --- a/libs/client-store-http-progress/src/lib/services/http-handlers/http-handlers.service.spec.ts +++ b/libs/client-store-http-progress/src/lib/services/http-handlers/http-handlers.service.spec.ts @@ -14,7 +14,7 @@ import { GraphQLError } from 'graphql'; import { Observable, of, throwError } from 'rxjs'; import { catchError, finalize, tap } from 'rxjs/operators'; -import { httpProgressActions } from '../../http-progress.actions'; +import { httpProgressAction } from '../../http-progress.actions'; import { AppHttpProgressStoreModule } from '../../http-progress.module'; import { AppToasterService, toasterServiceProvider } from '../toaster/toaster.service'; import { AppHttpHandlersService } from './http-handlers.service'; @@ -335,10 +335,10 @@ describe('AppHttpHandlersService', () => { .pipe( tap(() => { expect(serviceSpies.handleError).not.toHaveBeenCalled(); - expect(storeDispatchSpy).toHaveBeenCalledWith(httpProgressActions.start({ payload: { mainView: true } })); + expect(storeDispatchSpy).toHaveBeenCalledWith(httpProgressAction.start({ payload: { mainView: true } })); }), finalize(() => { - expect(storeDispatchSpy).toHaveBeenCalledWith(httpProgressActions.stop({ payload: { mainView: true } })); + expect(storeDispatchSpy).toHaveBeenCalledWith(httpProgressAction.stop({ payload: { mainView: true } })); }), ) .subscribe(); @@ -352,7 +352,7 @@ describe('AppHttpHandlersService', () => { .pipe( tap(() => { expect(serviceSpies.handleError).toHaveBeenCalledWith(error, true); - expect(storeDispatchSpy).toHaveBeenCalledWith(httpProgressActions.start({ payload: { mainView: true } })); + expect(storeDispatchSpy).toHaveBeenCalledWith(httpProgressAction.start({ payload: { mainView: true } })); }), ) .subscribe(); diff --git a/libs/client-store-http-progress/src/lib/services/http-handlers/http-handlers.service.ts b/libs/client-store-http-progress/src/lib/services/http-handlers/http-handlers.service.ts index b7beb9e3..53fe859a 100644 --- a/libs/client-store-http-progress/src/lib/services/http-handlers/http-handlers.service.ts +++ b/libs/client-store-http-progress/src/lib/services/http-handlers/http-handlers.service.ts @@ -22,7 +22,7 @@ import memo from 'memo-decorator'; import { MonoTypeOperatorFunction, Observable, of } from 'rxjs'; import { catchError, finalize, map, tap, timeout } from 'rxjs/operators'; -import { httpProgressActions } from '../../http-progress.actions'; +import { httpProgressAction } from '../../http-progress.actions'; import { IHttpProgressState } from '../../http-progress.interface'; import { AppToasterService } from '../toaster/toaster.service'; @@ -78,13 +78,13 @@ export class AppHttpHandlersService { * @returns a piped observable */ public pipeHttpResponse(observable: Observable) { - this.store.dispatch(httpProgressActions.start({ payload: { mainView: true } })); + this.store.dispatch(httpProgressAction.start({ payload: { mainView: true } })); return observable.pipe( timeout(this.defaultHttpTimeout), this.tapError(), catchError(err => this.handleError(err)), finalize(() => { - this.store.dispatch(httpProgressActions.stop({ payload: { mainView: true } })); + this.store.dispatch(httpProgressAction.stop({ payload: { mainView: true } })); }), ); } @@ -99,14 +99,14 @@ export class AppHttpHandlersService { * @returns a piped observable */ public pipeGqlResponse(observable: Observable | FetchResult | MutationResult>) { - this.store.dispatch(httpProgressActions.start({ payload: { mainView: true } })); + this.store.dispatch(httpProgressAction.start({ payload: { mainView: true } })); return observable.pipe( timeout(this.defaultHttpTimeout), this.tapError(), map(result => ('data' in result ? result.data : result)), catchError(err => this.handleGqlError(err)), finalize(() => { - this.store.dispatch(httpProgressActions.stop({ payload: { mainView: true } })); + this.store.dispatch(httpProgressAction.stop({ payload: { mainView: true } })); }), ); } diff --git a/libs/client-store-router/src/lib/router.actions.ts b/libs/client-store-router/src/lib/router.actions.ts index 3faa28b5..caab60d9 100644 --- a/libs/client-store-router/src/lib/router.actions.ts +++ b/libs/client-store-router/src/lib/router.actions.ts @@ -5,23 +5,17 @@ import { createAction, props } from '@ngrx/store'; import { featureName } from './router.interface'; -const navigate = createAction( - actionType(featureName, 'navigate'), - props<{ - payload: { - path: TRouterCommands; - query?: Record; - extras?: NavigationExtras; - }; - }>(), -); - -const back = createAction(actionType(featureName, 'back')); - -const forward = createAction(actionType(featureName, 'forward')); - -export const routerActions = { - navigate, - back, - forward, +export const routerAction = { + navigate: createAction( + actionType(featureName, 'navigate'), + props<{ + payload: { + path: TRouterCommands; + query?: Record; + extras?: NavigationExtras; + }; + }>(), + ), + back: createAction(actionType(featureName, 'back')), + forward: createAction(actionType(featureName, 'forward')), }; diff --git a/libs/client-store-router/src/lib/router.effects.spec.ts b/libs/client-store-router/src/lib/router.effects.spec.ts index cf603cc0..a6796134 100644 --- a/libs/client-store-router/src/lib/router.effects.spec.ts +++ b/libs/client-store-router/src/lib/router.effects.spec.ts @@ -6,7 +6,7 @@ import { EffectsModule } from '@ngrx/effects'; import { routerReducer } from '@ngrx/router-store'; import { Store, StoreModule } from '@ngrx/store'; -import { routerActions } from './router.actions'; +import { routerAction } from './router.actions'; import { AppRouterEffects } from './router.effects'; import { featureName, IRouterState } from './router.interface'; @@ -40,17 +40,17 @@ describe('AppRouterEffects', () => { it('should call router.navigate when the navigate action is dispatched', waitForAsync(() => { const payload = { path: [{ outlets: { primary: ['test'] } }] }; - store.dispatch(routerActions.navigate({ payload })); + store.dispatch(routerAction.navigate({ payload })); expect(routerNavigateSpy).toHaveBeenCalledWith(payload.path, { queryParams: void 0 }); })); it('should call location.back when the back action is dispatched', waitForAsync(() => { - store.dispatch(routerActions.back()); + store.dispatch(routerAction.back()); expect(location.historyGo).toHaveBeenCalledTimes(1); })); it('should call location.forward when the forward action is dispatched', waitForAsync(() => { - store.dispatch(routerActions.forward()); + store.dispatch(routerAction.forward()); expect(location.historyGo).toHaveBeenCalledTimes(1); })); }); diff --git a/libs/client-store-router/src/lib/router.effects.ts b/libs/client-store-router/src/lib/router.effects.ts index 45c09563..bb6e262c 100644 --- a/libs/client-store-router/src/lib/router.effects.ts +++ b/libs/client-store-router/src/lib/router.effects.ts @@ -4,7 +4,7 @@ import { Router } from '@angular/router'; import { Actions, createEffect, ofType } from '@ngrx/effects'; import { tap } from 'rxjs/operators'; -import { routerActions } from './router.actions'; +import { routerAction } from './router.actions'; @Injectable({ providedIn: 'root', @@ -13,7 +13,7 @@ export class AppRouterEffects { public readonly navigate$ = createEffect( () => this.action$.pipe( - ofType(routerActions.navigate), + ofType(routerAction.navigate), tap(({ payload: { path, query: queryParams, extras } }) => { void this.router.navigate(path, { queryParams, ...extras }); }), @@ -24,7 +24,7 @@ export class AppRouterEffects { public readonly back$ = createEffect( () => this.action$.pipe( - ofType(routerActions.back), + ofType(routerAction.back), tap(() => { this.location.historyGo(-1); }), @@ -35,7 +35,7 @@ export class AppRouterEffects { public readonly forward$ = createEffect( () => this.action$.pipe( - ofType(routerActions.forward), + ofType(routerAction.forward), tap(() => { this.location.historyGo(1); }), diff --git a/libs/client-store-router/src/lib/router.selectors.spec.ts b/libs/client-store-router/src/lib/router.selectors.spec.ts index 1257a8bf..6c5e02ad 100644 --- a/libs/client-store-router/src/lib/router.selectors.spec.ts +++ b/libs/client-store-router/src/lib/router.selectors.spec.ts @@ -8,9 +8,9 @@ import { first, firstValueFrom } from 'rxjs'; import { AppRouteSerializer } from './route.serializer'; import { IRouterState } from './router.interface'; -import { routerSelectors } from './router.selectors'; +import { routerSelector } from './router.selectors'; -describe('routerSelectors', () => { +describe('routerSelector', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ imports: [ RouterTestingModule.withRoutes([ @@ -41,22 +41,22 @@ describe('routerSelectors', () => { }); it('data', async () => { - const data = await firstValueFrom(store.select(routerSelectors.data).pipe(first())); + const data = await firstValueFrom(store.select(routerSelector.data).pipe(first())); expect(data).not.toBeUndefined(); }); it('queryParams', async () => { - const data = await firstValueFrom(store.select(routerSelectors.queryParams).pipe(first())); + const data = await firstValueFrom(store.select(routerSelector.queryParams).pipe(first())); expect(data).not.toBeUndefined(); }); it('params', async () => { - const data = await firstValueFrom(store.select(routerSelectors.params).pipe(first())); + const data = await firstValueFrom(store.select(routerSelector.params).pipe(first())); expect(data).not.toBeUndefined(); }); it('url', async () => { - const data = await firstValueFrom(store.select(routerSelectors.url).pipe(first())); + const data = await firstValueFrom(store.select(routerSelector.url).pipe(first())); expect(data).not.toBeUndefined(); }); }); diff --git a/libs/client-store-router/src/lib/router.selectors.ts b/libs/client-store-router/src/lib/router.selectors.ts index 054abb7e..7f86c60a 100644 --- a/libs/client-store-router/src/lib/router.selectors.ts +++ b/libs/client-store-router/src/lib/router.selectors.ts @@ -4,14 +4,9 @@ import { IRouterState } from './router.interface'; const selectFeature = (state: IRouterState) => state.router; -const data = createSelector(selectFeature, state => state.state.data); -const queryParams = createSelector(selectFeature, state => state.state.queryParams); -const params = createSelector(selectFeature, state => state.state.params); -const url = createSelector(selectFeature, state => state.state.url); - -export const routerSelectors = { - data, - queryParams, - params, - url, +export const routerSelector = { + data: createSelector(selectFeature, state => state.state.data), + queryParams: createSelector(selectFeature, state => state.state.queryParams), + params: createSelector(selectFeature, state => state.state.params), + url: createSelector(selectFeature, state => state.state.url), }; diff --git a/libs/client-store-sidebar/src/lib/sidebar.actions.ts b/libs/client-store-sidebar/src/lib/sidebar.actions.ts index 62f5c859..1ca24ac0 100644 --- a/libs/client-store-sidebar/src/lib/sidebar.actions.ts +++ b/libs/client-store-sidebar/src/lib/sidebar.actions.ts @@ -3,14 +3,8 @@ import { createAction, props } from '@ngrx/store'; import { sidebarReducerConfig } from './sidebar.interface'; -const open = createAction(actionType(sidebarReducerConfig.featureName, 'open'), props<{ payload: { navigate: boolean } }>()); - -const close = createAction(actionType(sidebarReducerConfig.featureName, 'close'), props<{ payload: { navigate: boolean } }>()); - -const toggle = createAction(actionType(sidebarReducerConfig.featureName, 'toggle')); - -export const sidebarActions = { - open, - close, - toggle, +export const sidebarAction = { + open: createAction(actionType(sidebarReducerConfig.featureName, 'open'), props<{ payload: { navigate: boolean } }>()), + close: createAction(actionType(sidebarReducerConfig.featureName, 'close'), props<{ payload: { navigate: boolean } }>()), + toggle: createAction(actionType(sidebarReducerConfig.featureName, 'toggle')), }; diff --git a/libs/client-store-sidebar/src/lib/sidebar.effects.spec.ts b/libs/client-store-sidebar/src/lib/sidebar.effects.spec.ts index 65a0b68b..632fd4a4 100644 --- a/libs/client-store-sidebar/src/lib/sidebar.effects.spec.ts +++ b/libs/client-store-sidebar/src/lib/sidebar.effects.spec.ts @@ -4,7 +4,7 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; -import { sidebarActions } from './sidebar.actions'; +import { sidebarAction } from './sidebar.actions'; import { AppSidebarEffects } from './sidebar.effects'; import { ISidebarState, sidebarReducerConfig } from './sidebar.interface'; import { sidebarReducerProvider } from './sidebar.reducer'; @@ -31,29 +31,29 @@ describe('AppSidebarEffects', () => { }); it('should call router.navigate when the open action is dispatched with payload { navigate: true }', waitForAsync(() => { - store.dispatch(sidebarActions.open({ payload: { navigate: true } })); + store.dispatch(sidebarAction.open({ payload: { navigate: true } })); expect(routerNavigateSpy).toHaveBeenCalledWith([{ outlets: { sidebar: ['root'] } }]); })); it('should not call router.navigate when the open action is dispatched with payload { navigate: false }', waitForAsync(() => { - store.dispatch(sidebarActions.open({ payload: { navigate: false } })); + store.dispatch(sidebarAction.open({ payload: { navigate: false } })); expect(routerNavigateSpy).not.toHaveBeenCalledWith([{ outlets: { sidebar: ['root'] } }]); })); it('should call router.navigate when the close action is dispatched with payload { navigate: true }', waitForAsync(() => { - store.dispatch(sidebarActions.close({ payload: { navigate: true } })); + store.dispatch(sidebarAction.close({ payload: { navigate: true } })); expect(routerNavigateSpy).toHaveBeenCalledWith([{ outlets: { sidebar: [] } }]); })); it('should not call router.navigate when the close action is dispatched with payload { navigate: false }', waitForAsync(() => { - store.dispatch(sidebarActions.close({ payload: { navigate: false } })); + store.dispatch(sidebarAction.close({ payload: { navigate: false } })); expect(routerNavigateSpy).not.toHaveBeenCalledWith([{ outlets: { sidebar: [] } }]); })); it('should call router.navigate when either open or close action is dispatched', waitForAsync(() => { - store.dispatch(sidebarActions.toggle()); + store.dispatch(sidebarAction.toggle()); expect(routerNavigateSpy).toHaveBeenNthCalledWith(1, [{ outlets: { sidebar: ['root'] } }]); - store.dispatch(sidebarActions.toggle()); + store.dispatch(sidebarAction.toggle()); const expectedCalls = 2; expect(routerNavigateSpy).toHaveBeenCalledTimes(expectedCalls); expect(routerNavigateSpy).toHaveBeenNthCalledWith(expectedCalls, [{ outlets: { sidebar: [] } }]); diff --git a/libs/client-store-sidebar/src/lib/sidebar.effects.ts b/libs/client-store-sidebar/src/lib/sidebar.effects.ts index dbe67428..7bb68e7b 100644 --- a/libs/client-store-sidebar/src/lib/sidebar.effects.ts +++ b/libs/client-store-sidebar/src/lib/sidebar.effects.ts @@ -5,9 +5,9 @@ import { Store } from '@ngrx/store'; import { from, of } from 'rxjs'; import { map, mergeMap, withLatestFrom } from 'rxjs/operators'; -import { sidebarActions } from './sidebar.actions'; +import { sidebarAction } from './sidebar.actions'; import { ISidebarState } from './sidebar.interface'; -import { sidebarSelectors } from './sidebar.selectors'; +import { sidebarSelector } from './sidebar.selectors'; @Injectable({ providedIn: 'root', @@ -16,7 +16,7 @@ export class AppSidebarEffects { public readonly open$ = createEffect( () => this.actions$.pipe( - ofType(sidebarActions.open), + ofType(sidebarAction.open), mergeMap(({ payload }) => (payload.navigate ? from(this.router.navigate([{ outlets: { sidebar: ['root'] } }])) : of(null))), ), { dispatch: false }, @@ -25,7 +25,7 @@ export class AppSidebarEffects { public readonly close$ = createEffect( () => this.actions$.pipe( - ofType(sidebarActions.close), + ofType(sidebarAction.close), mergeMap(({ payload }) => (payload.navigate ? from(this.router.navigate([{ outlets: { sidebar: [] } }])) : of(null))), ), { dispatch: false }, @@ -33,10 +33,10 @@ export class AppSidebarEffects { public readonly toggle$ = createEffect(() => this.actions$.pipe( - ofType(sidebarActions.toggle.type), - withLatestFrom(this.store.select(sidebarSelectors.sidebarOpen)), + ofType(sidebarAction.toggle.type), + withLatestFrom(this.store.select(sidebarSelector.sidebarOpen)), map(([action, sidebarOpen]) => - sidebarOpen ? sidebarActions.open({ payload: { navigate: true } }) : sidebarActions.close({ payload: { navigate: true } }), + sidebarOpen ? sidebarAction.open({ payload: { navigate: true } }) : sidebarAction.close({ payload: { navigate: true } }), ), ), ); diff --git a/libs/client-store-sidebar/src/lib/sidebar.reducer.spec.ts b/libs/client-store-sidebar/src/lib/sidebar.reducer.spec.ts index 636743a7..5285c6a5 100644 --- a/libs/client-store-sidebar/src/lib/sidebar.reducer.spec.ts +++ b/libs/client-store-sidebar/src/lib/sidebar.reducer.spec.ts @@ -3,10 +3,10 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store, StoreModule } from '@ngrx/store'; import { first, lastValueFrom } from 'rxjs'; -import { sidebarActions } from './sidebar.actions'; +import { sidebarAction } from './sidebar.actions'; import { ISidebarState, ISidebarStateModel, sidebarReducerConfig } from './sidebar.interface'; import { AppSidebarReducer, sidebarReducerProvider } from './sidebar.reducer'; -import { sidebarSelectors } from './sidebar.selectors'; +import { sidebarSelector } from './sidebar.selectors'; describe('AppSidebarReducer', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -35,26 +35,26 @@ describe('AppSidebarReducer', () => { }); it('should process the open action correctly', async () => { - store.dispatch(sidebarActions.open({ payload: { navigate: false } })); - const sidebarOpen = await lastValueFrom(store.select(sidebarSelectors.sidebarOpen).pipe(first())); + store.dispatch(sidebarAction.open({ payload: { navigate: false } })); + const sidebarOpen = await lastValueFrom(store.select(sidebarSelector.sidebarOpen).pipe(first())); expect(sidebarOpen).toBeTruthy(); }); it('should process the close action correctly', async () => { - store.dispatch(sidebarActions.open({ payload: { navigate: false } })); - let sidebarOpen = await lastValueFrom(store.select(sidebarSelectors.sidebarOpen).pipe(first())); + store.dispatch(sidebarAction.open({ payload: { navigate: false } })); + let sidebarOpen = await lastValueFrom(store.select(sidebarSelector.sidebarOpen).pipe(first())); expect(sidebarOpen).toBeTruthy(); - store.dispatch(sidebarActions.close({ payload: { navigate: false } })); - sidebarOpen = await lastValueFrom(store.select(sidebarSelectors.sidebarOpen).pipe(first())); + store.dispatch(sidebarAction.close({ payload: { navigate: false } })); + sidebarOpen = await lastValueFrom(store.select(sidebarSelector.sidebarOpen).pipe(first())); expect(sidebarOpen).toBeFalsy(); }); it('should process the toggle action correctly', async () => { - store.dispatch(sidebarActions.toggle()); - let sidebarOpen = await lastValueFrom(store.select(sidebarSelectors.sidebarOpen).pipe(first())); + store.dispatch(sidebarAction.toggle()); + let sidebarOpen = await lastValueFrom(store.select(sidebarSelector.sidebarOpen).pipe(first())); expect(sidebarOpen).toBeTruthy(); - store.dispatch(sidebarActions.toggle()); - sidebarOpen = await lastValueFrom(store.select(sidebarSelectors.sidebarOpen).pipe(first())); + store.dispatch(sidebarAction.toggle()); + sidebarOpen = await lastValueFrom(store.select(sidebarSelector.sidebarOpen).pipe(first())); expect(sidebarOpen).toBeFalsy(); }); }); diff --git a/libs/client-store-sidebar/src/lib/sidebar.reducer.ts b/libs/client-store-sidebar/src/lib/sidebar.reducer.ts index 6742c759..55e1abc2 100644 --- a/libs/client-store-sidebar/src/lib/sidebar.reducer.ts +++ b/libs/client-store-sidebar/src/lib/sidebar.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { sidebarActions } from './sidebar.actions'; +import { sidebarAction } from './sidebar.actions'; import { sidebarReducerConfig } from './sidebar.interface'; @Injectable({ @@ -11,9 +11,9 @@ export class AppSidebarReducer { public createReducer() { return createReducer( sidebarReducerConfig.initialState, - on(sidebarActions.open, () => ({ sidebarOpen: true })), - on(sidebarActions.close, () => ({ sidebarOpen: false })), - on(sidebarActions.toggle, state => ({ sidebarOpen: !state.sidebarOpen })), + on(sidebarAction.open, () => ({ sidebarOpen: true })), + on(sidebarAction.close, () => ({ sidebarOpen: false })), + on(sidebarAction.toggle, state => ({ sidebarOpen: !state.sidebarOpen })), ); } } diff --git a/libs/client-store-sidebar/src/lib/sidebar.selectors.ts b/libs/client-store-sidebar/src/lib/sidebar.selectors.ts index d6136a30..b7071cf0 100644 --- a/libs/client-store-sidebar/src/lib/sidebar.selectors.ts +++ b/libs/client-store-sidebar/src/lib/sidebar.selectors.ts @@ -4,8 +4,6 @@ import { ISidebarState, ISidebarStateModel } from './sidebar.interface'; const selectFeature = (state: ISidebarState) => state.sidebar; -const sidebarOpen = createSelector(selectFeature, (state: ISidebarStateModel) => state.sidebarOpen); - -export const sidebarSelectors = { - sidebarOpen, +export const sidebarSelector = { + sidebarOpen: createSelector(selectFeature, (state: ISidebarStateModel) => state.sidebarOpen), }; diff --git a/libs/client-store-theme/src/lib/theme.actions.ts b/libs/client-store-theme/src/lib/theme.actions.ts index fa3e4af2..d1e713ce 100644 --- a/libs/client-store-theme/src/lib/theme.actions.ts +++ b/libs/client-store-theme/src/lib/theme.actions.ts @@ -3,14 +3,8 @@ import { createAction } from '@ngrx/store'; import { themeReducerConfig } from './theme.interface'; -const enableDarkTheme = createAction(actionType(themeReducerConfig.featureName, 'enable dark theme')); - -const disableDarkTheme = createAction(actionType(themeReducerConfig.featureName, 'disable dark theme')); - -const toggleDarkTheme = createAction(actionType(themeReducerConfig.featureName, 'toggle theme')); - -export const themeActions = { - enableDarkTheme, - disableDarkTheme, - toggleDarkTheme, +export const themeAction = { + enableDarkTheme: createAction(actionType(themeReducerConfig.featureName, 'enable dark theme')), + disableDarkTheme: createAction(actionType(themeReducerConfig.featureName, 'disable dark theme')), + toggleDarkTheme: createAction(actionType(themeReducerConfig.featureName, 'toggle theme')), }; diff --git a/libs/client-store-theme/src/lib/theme.effects.spec.ts b/libs/client-store-theme/src/lib/theme.effects.spec.ts index 0a1102ac..ab3a22d4 100644 --- a/libs/client-store-theme/src/lib/theme.effects.spec.ts +++ b/libs/client-store-theme/src/lib/theme.effects.spec.ts @@ -4,7 +4,7 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; -import { themeActions } from './theme.actions'; +import { themeAction } from './theme.actions'; import { AppThemeEffects } from './theme.effects'; import { IThemeState, themeReducerConfig } from './theme.interface'; import { themeReducerProvider } from './theme.reducer'; @@ -30,22 +30,22 @@ describe('AppThemeEffects', () => { it('should add "unicorn-dark-theme" class to the overlay container when the enableDarkTheme action is dispatched', waitForAsync(() => { const addSpy = jest.spyOn(overlay.getContainerElement().classList, 'add'); - store.dispatch(themeActions.enableDarkTheme()); + store.dispatch(themeAction.enableDarkTheme()); expect(addSpy).toHaveBeenCalledWith('unicorn-dark-theme'); })); it('should remove "unicorn-dark-theme" class to the overlay container when the disableDarkTheme action is dispatched', waitForAsync(() => { const removeSpy = jest.spyOn(overlay.getContainerElement().classList, 'remove'); - store.dispatch(themeActions.disableDarkTheme()); + store.dispatch(themeAction.disableDarkTheme()); expect(removeSpy).toHaveBeenCalledWith('unicorn-dark-theme'); })); it('should add/remove "unicorn-dark-theme" class to/from the overlay container when the toggleDarkTheme action is dispatched', waitForAsync(() => { const addSpy = jest.spyOn(overlay.getContainerElement().classList, 'add'); const removeSpy = jest.spyOn(overlay.getContainerElement().classList, 'remove'); - store.dispatch(themeActions.toggleDarkTheme()); + store.dispatch(themeAction.toggleDarkTheme()); expect(addSpy).toHaveBeenCalledWith('unicorn-dark-theme'); - store.dispatch(themeActions.toggleDarkTheme()); + store.dispatch(themeAction.toggleDarkTheme()); expect(removeSpy).toHaveBeenCalledWith('unicorn-dark-theme'); })); }); diff --git a/libs/client-store-theme/src/lib/theme.effects.ts b/libs/client-store-theme/src/lib/theme.effects.ts index 10e42794..403d48d9 100644 --- a/libs/client-store-theme/src/lib/theme.effects.ts +++ b/libs/client-store-theme/src/lib/theme.effects.ts @@ -4,9 +4,9 @@ import { Actions, createEffect, ofType } from '@ngrx/effects'; import { Store } from '@ngrx/store'; import { map, tap, withLatestFrom } from 'rxjs/operators'; -import { themeActions } from './theme.actions'; +import { themeAction } from './theme.actions'; import { IThemeState } from './theme.interface'; -import { themeSelectors } from './theme.selectors'; +import { themeSelector } from './theme.selectors'; @Injectable({ providedIn: 'root', @@ -15,7 +15,7 @@ export class AppThemeEffects { public readonly enableDarkTheme$ = createEffect( () => this.actions$.pipe( - ofType(themeActions.enableDarkTheme.type), + ofType(themeAction.enableDarkTheme.type), tap(() => { this.overlayContainer.getContainerElement().classList.add('unicorn-dark-theme'); }), @@ -26,7 +26,7 @@ export class AppThemeEffects { public readonly disableDarkTheme$ = createEffect( () => this.actions$.pipe( - ofType(themeActions.disableDarkTheme.type), + ofType(themeAction.disableDarkTheme.type), tap(() => { this.overlayContainer.getContainerElement().classList.remove('unicorn-dark-theme'); }), @@ -36,9 +36,9 @@ export class AppThemeEffects { public readonly toggleDarkTheme$ = createEffect(() => this.actions$.pipe( - ofType(themeActions.toggleDarkTheme.type), - withLatestFrom(this.store.select(themeSelectors.darkThemeEnabled)), - map(([action, darkThemeEnabled]) => (darkThemeEnabled ? themeActions.disableDarkTheme() : themeActions.enableDarkTheme())), + ofType(themeAction.toggleDarkTheme.type), + withLatestFrom(this.store.select(themeSelector.darkThemeEnabled)), + map(([action, darkThemeEnabled]) => (darkThemeEnabled ? themeAction.disableDarkTheme() : themeAction.enableDarkTheme())), ), ); diff --git a/libs/client-store-theme/src/lib/theme.reducer.spec.ts b/libs/client-store-theme/src/lib/theme.reducer.spec.ts index 0fee4389..a91754d8 100644 --- a/libs/client-store-theme/src/lib/theme.reducer.spec.ts +++ b/libs/client-store-theme/src/lib/theme.reducer.spec.ts @@ -3,10 +3,10 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store, StoreModule } from '@ngrx/store'; import { first, switchMap, tap } from 'rxjs'; -import { themeActions } from './theme.actions'; +import { themeAction } from './theme.actions'; import { IThemeState, IThemeStateModel, themeReducerConfig } from './theme.interface'; import { AppThemeReducer, themeReducerProvider } from './theme.reducer'; -import { themeSelectors } from './theme.selectors'; +import { themeSelector } from './theme.selectors'; describe('AppThemeReducer', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -35,9 +35,9 @@ describe('AppThemeReducer', () => { }); it('should process the enableDarkTheme action correctly', waitForAsync(() => { - store.dispatch(themeActions.enableDarkTheme()); + store.dispatch(themeAction.enableDarkTheme()); void store - .select(themeSelectors.darkThemeEnabled) + .select(themeSelector.darkThemeEnabled) .pipe( first(), tap(darkThemeEnabled => { @@ -48,16 +48,16 @@ describe('AppThemeReducer', () => { })); it('should process the disableDarkTheme action correctly', waitForAsync(() => { - store.dispatch(themeActions.enableDarkTheme()); + store.dispatch(themeAction.enableDarkTheme()); void store - .select(themeSelectors.darkThemeEnabled) + .select(themeSelector.darkThemeEnabled) .pipe( first(), tap(darkThemeEnabled => { expect(darkThemeEnabled).toBeTruthy(); - store.dispatch(themeActions.disableDarkTheme()); + store.dispatch(themeAction.disableDarkTheme()); }), - switchMap(() => store.select(themeSelectors.darkThemeEnabled)), + switchMap(() => store.select(themeSelector.darkThemeEnabled)), tap(darkThemeEnabled => { expect(darkThemeEnabled).toBeFalsy(); }), diff --git a/libs/client-store-theme/src/lib/theme.reducer.ts b/libs/client-store-theme/src/lib/theme.reducer.ts index dec5318c..b237b72e 100644 --- a/libs/client-store-theme/src/lib/theme.reducer.ts +++ b/libs/client-store-theme/src/lib/theme.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { themeActions } from './theme.actions'; +import { themeAction } from './theme.actions'; import { themeReducerConfig } from './theme.interface'; @Injectable({ @@ -11,8 +11,8 @@ export class AppThemeReducer { public createReducer() { return createReducer( themeReducerConfig.initialState, - on(themeActions.enableDarkTheme, () => ({ darkThemeEnabled: true })), - on(themeActions.disableDarkTheme, () => ({ darkThemeEnabled: false })), + on(themeAction.enableDarkTheme, () => ({ darkThemeEnabled: true })), + on(themeAction.disableDarkTheme, () => ({ darkThemeEnabled: false })), ); } } diff --git a/libs/client-store-theme/src/lib/theme.selectors.ts b/libs/client-store-theme/src/lib/theme.selectors.ts index f7a8c080..cb29113b 100644 --- a/libs/client-store-theme/src/lib/theme.selectors.ts +++ b/libs/client-store-theme/src/lib/theme.selectors.ts @@ -4,8 +4,6 @@ import { IThemeState, IThemeStateModel } from './theme.interface'; const selectFeature = (state: IThemeState) => state.theme; -const darkThemeEnabled = createSelector(selectFeature, (state: IThemeStateModel) => state.darkThemeEnabled); - -export const themeSelectors = { - darkThemeEnabled, +export const themeSelector = { + darkThemeEnabled: createSelector(selectFeature, (state: IThemeStateModel) => state.darkThemeEnabled), }; diff --git a/libs/client-store-user/jest.config.ts b/libs/client-store-user/jest.config.ts index 28b63418..144f13eb 100644 --- a/libs/client-store-user/jest.config.ts +++ b/libs/client-store-user/jest.config.ts @@ -9,7 +9,7 @@ const config: Config.InitialOptions = { global: { branches: 100, functions: 87, - lines: 100, + lines: 95, statements: 95, }, }, diff --git a/libs/client-store-user/src/lib/user.actions.ts b/libs/client-store-user/src/lib/user.actions.ts index 32891eda..9af9da66 100644 --- a/libs/client-store-user/src/lib/user.actions.ts +++ b/libs/client-store-user/src/lib/user.actions.ts @@ -3,14 +3,8 @@ import { createAction, props } from '@ngrx/store'; import { IUserStateModel, userReducerConfig } from './user.interface'; -const login = createAction(actionType(userReducerConfig.featureName, 'login'), props<{ payload: Pick }>()); - -const logout = createAction(actionType(userReducerConfig.featureName, 'logout')); - -const signup = createAction(actionType(userReducerConfig.featureName, 'signup'), props<{ payload: Pick }>()); - -export const userActions = { - login, - logout, - signup, +export const userAction = { + login: createAction(actionType(userReducerConfig.featureName, 'login'), props<{ payload: Pick }>()), + logout: createAction(actionType(userReducerConfig.featureName, 'logout')), + signup: createAction(actionType(userReducerConfig.featureName, 'signup'), props<{ payload: Pick }>()), }; diff --git a/libs/client-store-user/src/lib/user.effects.spec.ts b/libs/client-store-user/src/lib/user.effects.spec.ts index 13083f70..89ffda68 100644 --- a/libs/client-store-user/src/lib/user.effects.spec.ts +++ b/libs/client-store-user/src/lib/user.effects.spec.ts @@ -4,7 +4,7 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { EffectsModule } from '@ngrx/effects'; import { Store, StoreModule } from '@ngrx/store'; -import { userActions } from './user.actions'; +import { userAction } from './user.actions'; import { AppUserEffects } from './user.effects'; import { IUserState, userReducerConfig } from './user.interface'; import { userReducerProvider } from './user.reducer'; @@ -31,17 +31,17 @@ describe('AppUserEffects', () => { }); it('should call router.navigate when the login action is dispatched', waitForAsync(() => { - store.dispatch(userActions.login({ payload: { email: 'test@test.test' } })); + store.dispatch(userAction.login({ payload: { email: 'test@test.test' } })); expect(routerNavigateSpy).toHaveBeenCalledWith([{ outlets: { primary: ['user'], sidebar: [''] } }]); })); it('should call router.navigate when the logout action is dispatched', waitForAsync(() => { - store.dispatch(userActions.logout()); + store.dispatch(userAction.logout()); expect(routerNavigateSpy).toHaveBeenCalledWith([{ outlets: { primary: [''], sidebar: [''] } }]); })); it('should call router.navigate when the signup action is dispatched', waitForAsync(() => { - store.dispatch(userActions.signup({ payload: { email: 'test@test.test' } })); + store.dispatch(userAction.signup({ payload: { email: 'test@test.test' } })); expect(routerNavigateSpy).toHaveBeenCalledWith([{ outlets: { primary: ['login'], sidebar: [''] } }]); })); }); diff --git a/libs/client-store-user/src/lib/user.effects.ts b/libs/client-store-user/src/lib/user.effects.ts index 3fbc30e7..827677a3 100644 --- a/libs/client-store-user/src/lib/user.effects.ts +++ b/libs/client-store-user/src/lib/user.effects.ts @@ -4,7 +4,7 @@ import { Actions, createEffect, ofType } from '@ngrx/effects'; import { from } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; -import { userActions } from './user.actions'; +import { userAction } from './user.actions'; @Injectable({ providedIn: 'root', @@ -13,7 +13,7 @@ export class AppUserEffects { public readonly login$ = createEffect( () => this.actions$.pipe( - ofType(userActions.login.type), + ofType(userAction.login.type), mergeMap(() => from(this.router.navigate([{ outlets: { primary: ['user'], sidebar: [''] } }]))), ), { dispatch: false }, @@ -22,7 +22,7 @@ export class AppUserEffects { public readonly logout$ = createEffect( () => this.actions$.pipe( - ofType(userActions.logout.type), + ofType(userAction.logout.type), mergeMap(() => from(this.router.navigate([{ outlets: { primary: [''], sidebar: [''] } }]))), ), { dispatch: false }, @@ -31,7 +31,7 @@ export class AppUserEffects { public readonly signup$ = createEffect( () => this.actions$.pipe( - ofType(userActions.signup.type), + ofType(userAction.signup.type), mergeMap(() => from(this.router.navigate([{ outlets: { primary: ['login'], sidebar: [''] } }]))), ), { dispatch: false }, diff --git a/libs/client-store-user/src/lib/user.reducer.spec.ts b/libs/client-store-user/src/lib/user.reducer.spec.ts index a10e2e39..83daddc5 100644 --- a/libs/client-store-user/src/lib/user.reducer.spec.ts +++ b/libs/client-store-user/src/lib/user.reducer.spec.ts @@ -3,10 +3,10 @@ import { getTestBedConfig, newTestBedMetadata } from '@app/client-testing-unit'; import { Store, StoreModule } from '@ngrx/store'; import { first, tap } from 'rxjs'; -import { userActions } from './user.actions'; +import { userAction } from './user.actions'; import { IUserState, IUserStateModel, userReducerConfig } from './user.interface'; import { AppUserReducer, userReducerProvider } from './user.reducer'; -import { userSelectors } from './user.selectors'; +import { userSelector } from './user.selectors'; describe('AppUserReducer', () => { const testBedMetadata: TestModuleMetadata = newTestBedMetadata({ @@ -36,9 +36,9 @@ describe('AppUserReducer', () => { it('should process the login action correctly', waitForAsync(() => { const payload = { email: 'test@test.test' }; - store.dispatch(userActions.login({ payload })); + store.dispatch(userAction.login({ payload })); void store - .select(userSelectors.email) + .select(userSelector.email) .pipe( first(), tap(email => { @@ -50,10 +50,10 @@ describe('AppUserReducer', () => { it('should process the logout action correctly', waitForAsync(() => { const payload = { email: 'test@test.test' }; - store.dispatch(userActions.login({ payload })); - store.dispatch(userActions.logout()); + store.dispatch(userAction.login({ payload })); + store.dispatch(userAction.logout()); void store - .select(userSelectors.email) + .select(userSelector.email) .pipe( first(), tap(email => { @@ -65,9 +65,9 @@ describe('AppUserReducer', () => { it('should process the signup action correctly', waitForAsync(() => { const payload = { email: 'test@test.test' }; - store.dispatch(userActions.signup({ payload })); + store.dispatch(userAction.signup({ payload })); void store - .select(userSelectors.email) + .select(userSelector.email) .pipe( first(), tap(email => { diff --git a/libs/client-store-user/src/lib/user.reducer.ts b/libs/client-store-user/src/lib/user.reducer.ts index 05441196..fbc7d5dd 100644 --- a/libs/client-store-user/src/lib/user.reducer.ts +++ b/libs/client-store-user/src/lib/user.reducer.ts @@ -1,7 +1,7 @@ import { Injectable, Provider } from '@angular/core'; import { createReducer, on } from '@ngrx/store'; -import { userActions } from './user.actions'; +import { userAction } from './user.actions'; import { userReducerConfig } from './user.interface'; @Injectable({ @@ -11,9 +11,9 @@ export class AppUserReducer { public createReducer() { return createReducer( userReducerConfig.initialState, - on(userActions.login, (state, { payload }) => ({ ...state, email: payload.email })), - on(userActions.logout, state => ({ ...userReducerConfig.initialState, email: state.email })), - on(userActions.signup, (state, { payload }) => ({ ...state, email: payload.email })), + on(userAction.login, (state, { payload }) => ({ ...state, email: payload.email })), + on(userAction.logout, state => ({ ...userReducerConfig.initialState, email: state.email })), + on(userAction.signup, (state, { payload }) => ({ ...state, email: payload.email })), ); } } diff --git a/libs/client-store-user/src/lib/user.selectors.ts b/libs/client-store-user/src/lib/user.selectors.ts index 100ba3fc..ae011386 100644 --- a/libs/client-store-user/src/lib/user.selectors.ts +++ b/libs/client-store-user/src/lib/user.selectors.ts @@ -4,12 +4,8 @@ import { IUserState, IUserStateModel } from './user.interface'; const selectFeature = (state: IUserState) => state.user; -const admin = createSelector(selectFeature, (state: IUserStateModel) => state.admin); -const email = createSelector(selectFeature, (state: IUserStateModel) => state.email); -const token = createSelector(selectFeature, (state: IUserStateModel) => state.token); - -export const userSelectors = { - admin, - email, - token, +export const userSelector = { + admin: createSelector(selectFeature, (state: IUserStateModel) => state.admin), + email: createSelector(selectFeature, (state: IUserStateModel) => state.email), + token: createSelector(selectFeature, (state: IUserStateModel) => state.token), }; diff --git a/libs/client-util-eliza/package.json b/libs/client-util-eliza/package.json index ae07bbcf..8a5f1d2f 100644 --- a/libs/client-util-eliza/package.json +++ b/libs/client-util-eliza/package.json @@ -1,6 +1,6 @@ { "name": "@rfprodz/client-util-eliza", - "version": "1.3.11", + "version": "1.3.12", "description": "Angular chatbot logic based on Eliza (https://en.wikipedia.org/wiki/ELIZA).", "keywords": [ "angular-chatbot", @@ -20,9 +20,9 @@ "license": "MIT", "author": "rfprod ", "dependencies": { - "tslib": "2.6.1" + "tslib": "2.6.2" }, "peerDependencies": { - "@angular/core": "16.2.0" + "@angular/core": "16.2.1" } } diff --git a/package.json b/package.json index 43783215..b26e8df6 100644 --- a/package.json +++ b/package.json @@ -118,19 +118,19 @@ "word-wrap": ">=1.2.4" }, "dependencies": { - "@angular/animations": "16.2.0", - "@angular/cdk": "16.2.0", - "@angular/common": "16.2.0", - "@angular/compiler": "16.2.0", - "@angular/core": "16.2.0", - "@angular/elements": "16.2.0", - "@angular/forms": "16.2.0", - "@angular/material": "16.2.0", - "@angular/material-moment-adapter": "16.2.0", - "@angular/platform-browser": "16.2.0", - "@angular/platform-browser-dynamic": "16.2.0", - "@angular/router": "16.2.0", - "@angular/service-worker": "16.2.0", + "@angular/animations": "16.2.1", + "@angular/cdk": "16.2.1", + "@angular/common": "16.2.1", + "@angular/compiler": "16.2.1", + "@angular/core": "16.2.1", + "@angular/elements": "16.2.1", + "@angular/forms": "16.2.1", + "@angular/material": "16.2.1", + "@angular/material-moment-adapter": "16.2.1", + "@angular/platform-browser": "16.2.1", + "@angular/platform-browser-dynamic": "16.2.1", + "@angular/router": "16.2.1", + "@angular/service-worker": "16.2.1", "@apollo/client": "3.8.1", "@apollo/server": "4.9.1", "@grpc/grpc-js": "1.9.0", @@ -158,7 +158,7 @@ "class-transformer": "0.5.1", "class-validator": "0.14.0", "compression": "1.7.4", - "core-js": "3.32.0", + "core-js": "3.32.1", "dotenv": "16.3.1", "electron-squirrel-startup": "1.0.0", "express": "4.18.2", @@ -170,7 +170,7 @@ "isomorphic-fetch": "3.0.0", "reflect-metadata": "0.1.13", "rxjs": "7.8.1", - "tslib": "2.6.1", + "tslib": "2.6.2", "zone.js": "0.13.1" }, "devDependencies": { @@ -185,8 +185,8 @@ "@angular-eslint/schematics": "16.1.0", "@angular-eslint/template-parser": "16.1.0", "@angular/cli": "~16.2.0", - "@angular/compiler-cli": "16.2.0", - "@angular/language-service": "16.2.0", + "@angular/compiler-cli": "16.2.1", + "@angular/language-service": "16.2.1", "@capacitor/android": "5.2.3", "@capacitor/cli": "5.2.3", "@capacitor/core": "5.2.3", @@ -203,30 +203,30 @@ "@ngrx/router-store": "16.2.0", "@ngrx/store": "16.2.0", "@ngx-translate/core": "15.0.0", - "@nx/angular": "16.7.0", - "@nx/cypress": "16.7.0", - "@nx/devkit": "16.7.0", - "@nx/eslint-plugin": "16.7.0", - "@nx/jest": "16.7.0", - "@nx/js": "16.7.0", - "@nx/linter": "16.7.0", - "@nx/nest": "16.7.0", - "@nx/node": "16.7.0", - "@nx/plugin": "16.7.0", - "@nx/storybook": "16.7.0", - "@nx/workspace": "16.7.0", + "@nx/angular": "16.7.2", + "@nx/cypress": "16.7.2", + "@nx/devkit": "16.7.2", + "@nx/eslint-plugin": "16.7.2", + "@nx/jest": "16.7.2", + "@nx/js": "16.7.2", + "@nx/linter": "16.7.2", + "@nx/nest": "16.7.2", + "@nx/node": "16.7.2", + "@nx/plugin": "16.7.2", + "@nx/storybook": "16.7.2", + "@nx/workspace": "16.7.2", "@schematics/angular": "16.2.0", "@sentry/angular-ivy": "7.64.0", "@sentry/tracing": "7.64.0", - "@storybook/addon-controls": "7.3.1", - "@storybook/angular": "7.3.1", - "@storybook/core-server": "7.3.1", - "@storybook/manager-api": "7.3.1", - "@storybook/preview-api": "7.3.1", - "@storybook/theming": "7.3.1", - "@swc-node/register": "1.6.6", + "@storybook/addon-controls": "7.3.2", + "@storybook/angular": "7.3.2", + "@storybook/core-server": "7.3.2", + "@storybook/manager-api": "7.3.2", + "@storybook/preview-api": "7.3.2", + "@storybook/theming": "7.3.2", + "@swc-node/register": "1.6.7", "@swc/cli": "0.1.62", - "@swc/core": "1.3.77", + "@swc/core": "1.3.78", "@swc/helpers": "0.5.1", "@types/apollo-upload-client": "17.0.2", "@types/compression": "1.7.2", @@ -238,7 +238,7 @@ "@types/jest": "29.5.3", "@types/jsdom": "21.1.1", "@types/marked": "5.0.1", - "@types/node": "20.5.0", + "@types/node": "20.5.1", "@types/readline-sync": "1.4.4", "@types/websocket": "1.0.5", "@types/ws": "8.5.5", @@ -266,7 +266,7 @@ "eslint-plugin-simple-import-sort": "10.0.0", "eslint-plugin-storybook": "0.6.13", "eslint-plugin-unicorn": "48.0.1", - "firebase": "10.1.0", + "firebase": "10.2.0", "firebase-admin": "11.10.1", "firebase-functions": "4.4.1", "google-protobuf": "3.21.2", @@ -289,7 +289,7 @@ "moment": "2.29.4", "ng-packagr": "16.2.0", "ngx-markdown": "16.0.0", - "nx": "16.7.0", + "nx": "16.7.2", "postcss": "8.4.28", "postcss-import": "15.1.0", "postcss-preset-env": "9.1.1", @@ -302,8 +302,8 @@ "sort-json": "2.0.1", "sort-package-json": "2.5.1", "source-map-loader": "4.0.1", - "storybook": "7.3.1", - "stylelint": "15.10.2", + "storybook": "7.3.2", + "stylelint": "15.10.3", "stylelint-config-prettier": "9.0.5", "stylelint-config-rational-order": "0.1.2", "stylelint-prettier": "4.0.2", diff --git a/yarn.lock b/yarn.lock index ec5b6a42..5df7700a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -256,17 +256,17 @@ "@angular-eslint/bundled-angular-compiler" "16.1.0" "@typescript-eslint/utils" "5.62.0" -"@angular/animations@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-16.2.0.tgz#193727e6ebe215da36d7b3ab4b135c2945c3fac7" - integrity sha512-SgOjldgRlU6XL1f6OUmFa+1iiy1OCWXH8i7q7g0yGCeQ4XAlvNRjDj++xxvUwDhE2pLKJLPYDJmCH98mvjKZcA== +"@angular/animations@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-16.2.1.tgz#cf50ebcedb63d4f043ed529042aa74aec6ce02aa" + integrity sha512-XVabK9fRKJaYPhW5wn8ySL4KL45N5Np+xOssWhLPDRDBdZjl62MExfpvMkamdkos6E1n1IGsy9wSemjnR4WKhg== dependencies: tslib "^2.3.0" -"@angular/cdk@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-16.2.0.tgz#30931dbe1cfca2764f9e4b63d2b9d20029008db8" - integrity sha512-pOIXP15uQkl3bf7t0i25+0uBjkHkVmBgwOMlqE9imY4gGq7UswbZRYHaGudJITin2ASFqKDgKvwNRCBqfmjO4A== +"@angular/cdk@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-16.2.1.tgz#f191e16d36881a9d53e0ba461104457c68f36324" + integrity sha512-rRVdAdfuQ34Eq7na/q2SIO6Me2p/rtU2zeQOW6wrNf6KJfWSTbU6RvNw09cDygAQLp/WmwQvWLhkjWNWGDSf0w== dependencies: tslib "^2.3.0" optionalDependencies: @@ -296,17 +296,17 @@ symbol-observable "4.0.0" yargs "17.7.2" -"@angular/common@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-16.2.0.tgz#c28cfb431d8108ccfd83c40adc2bb3a3cd564d4c" - integrity sha512-ByrDLsTBarzqRmq4GS841Ku0lvB4L2wfOCfGEIw2ZuiNbZlDA5O/qohQgJnHR5d9meVJnu9NgdbeyMzk90xZNg== +"@angular/common@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-16.2.1.tgz#ed475c55cf3c21360f6561cdc0794480c7e0d258" + integrity sha512-druackA5JQpvfS8cD8DFtPRXGRKbhx3mQ778t1n6x3fXpIdGaAX+nSAgAKhIoF7fxWmu0KuHGzb+3BFlZRyTXw== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-16.2.0.tgz#b5d6c55141c3051b5aaae6e3a907c45d81206a5b" - integrity sha512-IGRpEJwbzOLFsLj2qgTHpZ6nNcRjKDYaaAnVx+B1CfK4DP31PIsZLgsWcEcYt7KbF/FUlrCNwdBxrqE7rDxZaw== +"@angular/compiler-cli@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-16.2.1.tgz#e55647004d23ff23a3cda547bfdfe01cdde17073" + integrity sha512-A5SyNZTZnXSCL5JVXHKbYj9p2dRYoeFnb6hGQFt2AuCcpUjVIIdwHtre3YzkKe5sFwepPctdoRe2fRXlTfTRjA== dependencies: "@babel/core" "7.22.5" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -317,50 +317,50 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-16.2.0.tgz#17e65c1628229c037ca9d311f143d13933a371b5" - integrity sha512-Ai0CKRUDlMY6iFCeoRsC+soVFTU7eyMDmNzeakdmNvGYMdLdjH8WvgaNukesi6WX7YBIQIKTPJVral8fXBQroQ== +"@angular/compiler@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-16.2.1.tgz#26849828e9292d1833e95bb4e0b41ccbdbbb0b4a" + integrity sha512-dPauu+ESn79d66U9nBvnunNuBk/UMqnm7iL9Q31J8OKYN/4vrKbsO57pmULOft/GRAYsE3FdLBH0NkocFZKIMQ== dependencies: tslib "^2.3.0" -"@angular/core@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-16.2.0.tgz#1713f1210900917530483ce27d80a39830b0cea2" - integrity sha512-iwUWFw+JmRxw0chcNoqhXVR8XUTE+Rszhy22iSCkK0Jo8IJqEad1d2dQoFu1QfqOVdPMZtpJDmC/ppQ/f5c5aA== +"@angular/core@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-16.2.1.tgz#a108bcf5bc500753aec03867a495840d72220698" + integrity sha512-Y+0jssQnJPovxMv9cDKYlp6BBHeFBLOHd/+FPv5IIGD1c7NwBP/TImJxCaIV78a57xnO8L0SFacDg/kULzvKrg== dependencies: tslib "^2.3.0" -"@angular/elements@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/elements/-/elements-16.2.0.tgz#03a500bc569b141000ba9bb034e1a61c626c954c" - integrity sha512-G+1qn5bqcwVx9x01FyfdxbawkgpGPGuVyXH3H96lM4E065FB2J5Hmpd4ycN0F3wqrZshoqOHONrIAu1CJkBliQ== +"@angular/elements@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/elements/-/elements-16.2.1.tgz#1e17ccb848416092e24c4be715baf8e6661363c5" + integrity sha512-h0RIOB0tfEVlp3QxzmzlWtvofckSF85bPEGYbaqQAbUncdwe5HLZWv8f+wGE9nCXLVblrVu9+1rPg/aAksnjsA== dependencies: tslib "^2.3.0" -"@angular/forms@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-16.2.0.tgz#7a94e07531a5ad049aa841ef3f3f0932f11b768a" - integrity sha512-Z/IFw319ZSgGbJFkR5Ba0sRIIqDxQDVH4I+vnVoOYqq2NxuHYfLJDHAB9uHln9GWj86b1SrJBZe8qiS7Sxb7yQ== +"@angular/forms@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-16.2.1.tgz#d9223151cc2f7bad05baaba134bb793c4e5cb4be" + integrity sha512-cCygiLfBAsVHdtKmNptlk2IgXu0wjRc8kSiiSnJkfK6U/NiNg8ADMiN7iYgKW2TD1ZRw+7dYZV856lxEy2n0+A== dependencies: tslib "^2.3.0" -"@angular/language-service@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-16.2.0.tgz#cdb6f8015f4ff2a5aaf346f103fe1609f5eb0d76" - integrity sha512-ZeNdiQAR9anP4X1PaveGKsf57s6Ty9n1Py1YYzCvqC7x0RrP2rrvnF9iuj9E8+2TAd1xyS0AOrG5L8c1h6OnTg== +"@angular/language-service@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-16.2.1.tgz#700e0dbacbfd302d7d855e83082348faf56c33c2" + integrity sha512-B1eFYDUiXlx1xNf4rB1I+ACgD/aUE2M6HPET10FydFgPfzolX/xRdeUGYaAoEje4M9P9a93ovGeTPmg5TAUnLg== -"@angular/material-moment-adapter@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/material-moment-adapter/-/material-moment-adapter-16.2.0.tgz#ee49bdd69767c588ffce8b71ff9ce46813208f71" - integrity sha512-XmL6Jw0dN0D0erPXerSJrAqWZgqCW4tk8dyDjqFKYAsuyRXYdezYMlevgwPa5Ow+1Ia9Y5WBZthmWmMb2/TB0Q== +"@angular/material-moment-adapter@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/material-moment-adapter/-/material-moment-adapter-16.2.1.tgz#412c59625e30dc5b2867a571669856c11b3667a7" + integrity sha512-M739xkmR2YMaRcrVjsGjtEoQz4NX9KYtEjALvASBBpFnYyq1KtGIgfGmV3inzfKkqfmTXjcQ5+KhXRvQWfcReA== dependencies: tslib "^2.3.0" -"@angular/material@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-16.2.0.tgz#e3427d2fee2381397b7e1541bf5a3545c7e4f5ba" - integrity sha512-TMcg7zDZy3Q9KA2tCiBqXsjDMO+V7IWmFewPruX9NH5BTT6aZwfKxbFbJgRzhJgok4wJA4IIN5Jt4pPOKQ9LzA== +"@angular/material@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/material/-/material-16.2.1.tgz#bbad3fcba9797f101ebcd9283f00c28675bb5d2a" + integrity sha512-WwjKgYBkZA9EUEOMEFR00ZMFXPs9xLOca3+8njEs/SyeqE0p02H5cnjAaekQfUkcxhwFz1WfJMftI01ODS/S5A== dependencies: "@material/animation" "15.0.0-canary.bc9ae6c9c.0" "@material/auto-init" "15.0.0-canary.bc9ae6c9c.0" @@ -411,31 +411,31 @@ "@material/typography" "15.0.0-canary.bc9ae6c9c.0" tslib "^2.3.0" -"@angular/platform-browser-dynamic@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.0.tgz#48c1dd9d5b67479c6c387bc58b46e1792deaf2d9" - integrity sha512-kLxgR+ichWb6dNA1JUAh0JB+iSrObkomd10porGQWVxAGmHqg1eiB3bBaSAgcaLftsrmEguIH8O9AEfq+HLfrA== +"@angular/platform-browser-dynamic@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.1.tgz#46804d112d210c5317972954a5f3db3ff9275363" + integrity sha512-dKMCSrbD/joOMXM1mhDOKNDZ1BxwO9r9uu5ZxY0L/fWm/ousgMucNikLr38vBudgWM8CN6BuabzkxWKcqi3k4g== dependencies: tslib "^2.3.0" -"@angular/platform-browser@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-16.2.0.tgz#097743a49e3b654b1b90313c5120bebb223bcb32" - integrity sha512-6xjZFnSD0C8ylDbzKpsxCJ4pLJDRvippr9Wj9RCeDQvAzMibsqIjpbesyOccw3hO+jheJQRhM/rZeO1ubZU94w== +"@angular/platform-browser@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-16.2.1.tgz#c15de68d4d0675a2247c1e8eb2da11ff20eb8cee" + integrity sha512-SH8zRiRAcw0B5/tVlEc5U/lN5F8g+JizSuu7BQvpCAQEDkM6IjF9LP36Bjav7JuadItbWLfT6peWYa1sJvax2w== dependencies: tslib "^2.3.0" -"@angular/router@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-16.2.0.tgz#94f137562c8d101ca86013091fc35e574d079d67" - integrity sha512-bFOaE7PNF0UHgVhl8BvyHiZHizTRZO7w3V29VqsdXUMMugBR4kr1/FXGzXTaz+9/eK7LokUwN9pjKKENNmhdyg== +"@angular/router@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-16.2.1.tgz#26658d5af1dbce81ac32a3c1ddda93273c11e7eb" + integrity sha512-C0WfcktsC25G37unxdH/5I7PbkVBSEB1o+0DJK9/HG97r1yzEkptF6fbRIzDBTS7dX0NfWN/PTAKF0ep7YlHvA== dependencies: tslib "^2.3.0" -"@angular/service-worker@16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-16.2.0.tgz#9052f15d9cf7da81f094782f410f1bc10fdd095a" - integrity sha512-TO2F0NQHTyd/A3LkXYVML81zKsT5W1Bexu4w2BPbp7FG4yt1Ad29wYf2EJnPLYXctftxtA0t+P9Vsr3mN3IZbA== +"@angular/service-worker@16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-16.2.1.tgz#58c8c7447b82e0afa807b3d4a28f499fd483821c" + integrity sha512-9AYBYQ19aMQN3AoZgpd4T3qmHVM7nHvjqotSATwwWU/+sbcfdaasdJE4mRP3z6cRbIwYHTbNQJl6pJT/2jDWbw== dependencies: tslib "^2.3.0" @@ -735,7 +735,7 @@ json5 "^2.2.2" semver "^6.3.1" -"@babel/core@>=7.2.2", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.22.0", "@babel/core@^7.22.9": +"@babel/core@>=7.2.2", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.22.9": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw== @@ -2487,9 +2487,9 @@ fs-extra "^9.0.1" "@electron/osx-sign@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.4.tgz#8e91442846471636ca0469426a82b253b9170151" - integrity sha512-xfhdEcIOfAZg7scZ9RQPya1G1lWo8/zMCwUXAulq0SfY7ONIW+b9qGyKdMyuMctNYwllrIS+vmxfijSfjeh97g== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.5.tgz#0af7149f2fce44d1a8215660fd25a9fb610454d8" + integrity sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww== dependencies: compare-version "^0.1.2" debug "^4.3.4" @@ -2949,12 +2949,12 @@ "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/app-compat@0.2.15": - version "0.2.15" - resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.2.15.tgz#06a932311d340dd94666b9e9cb15ca5fc8bdc434" - integrity sha512-ttEbOEtO1SSz27cRPrwXAmrqDjdQ33sQc7rqqQuSMUuPRdYCQEcYdqzpkbvqgdkzGksx2kfH4JqQ6R/hI12nDw== +"@firebase/app-compat@0.2.16": + version "0.2.16" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.2.16.tgz#61e1bde1fe71f5305195b58e17f714853d56c0e0" + integrity sha512-jCIJ5lGYLidM/cP25XqyTkg2caJRrnfjLkgk2ItJD9k2W3V1jB1TlmNYOAHtNsPZXB4/y5qBkS+/NxvFD3iJyA== dependencies: - "@firebase/app" "0.9.15" + "@firebase/app" "0.9.16" "@firebase/component" "0.6.4" "@firebase/logger" "0.4.0" "@firebase/util" "1.9.3" @@ -2965,10 +2965,10 @@ resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.0.tgz#35b5c568341e9e263b29b3d2ba0e9cfc9ec7f01e" integrity sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q== -"@firebase/app@0.9.15": - version "0.9.15" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.9.15.tgz#8c5b7a85c6f856f3292c1fcc2a029c12a63b9ad9" - integrity sha512-xxQi6mkhRjtXeFUwleSF4zU7lwEH+beNhLE7VmkzEzjEsjAS14QPQPZ35gpgSD+/NigOeho7wgEXd4C/bOkRfA== +"@firebase/app@0.9.16": + version "0.9.16" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.9.16.tgz#4d14311d6e48879c333cf55a35fb0555491ec1fd" + integrity sha512-J6O8+khJpunlKITbcO1lKylPJp9nlyI5Ra/NlPcMHwP37uTJXJqz6sjmWp4MUfTWo/3T2N0lXUdf4UBXjrnleQ== dependencies: "@firebase/component" "0.6.4" "@firebase/logger" "0.4.0" @@ -2976,12 +2976,12 @@ idb "7.1.1" tslib "^2.1.0" -"@firebase/auth-compat@0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.4.4.tgz#062dd397a508c7a442f36c014133ded4d29c62bb" - integrity sha512-B2DctJDJ05djBwebNEdC3zbKWzKdIdxpbca8u9P/NSjqaJNSFq3fhz8h8bjlS9ufSrxaQWFSJMMH3dRmx3FlEA== +"@firebase/auth-compat@0.4.5": + version "0.4.5" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.4.5.tgz#f15c0b9f961da37a285dfc5b6f72336240193824" + integrity sha512-pCJiiCRrjlrjVYlw0NuZhT+P6jnl1J3hAgNr+74z9zh3k888pbhMRGYVxACGoAbmVnnU3w8locR1aUNGrIyCDA== dependencies: - "@firebase/auth" "1.1.0" + "@firebase/auth" "1.2.0" "@firebase/auth-types" "0.12.0" "@firebase/component" "0.6.4" "@firebase/util" "1.9.3" @@ -2998,10 +2998,10 @@ resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.12.0.tgz#f28e1b68ac3b208ad02a15854c585be6da3e8e79" integrity sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA== -"@firebase/auth@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-1.1.0.tgz#106cad08f977245e641642ac9b7c3a2dae46400d" - integrity sha512-5RJQMXG0p/tSvtqpfM8jA+heELjVCgHHASq3F7NglAa/CWUGCAE4g2F4YDPW5stDkvtKKRez0WYAWnbcuQ5P4w== +"@firebase/auth@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-1.2.0.tgz#7eba61ef9a1053f3c9f2079fb06221f3d29bdac6" + integrity sha512-nRtpmVXGmUi6JuTNXp8XVQ9K52gjXJ4LK2mszAE1Wk/R+bQ/7a4ncSs7M8aqyYPZR/BhWAMJIcC/Q7EXV7vzIQ== dependencies: "@firebase/component" "0.6.4" "@firebase/logger" "0.4.0" @@ -3082,13 +3082,13 @@ faye-websocket "0.11.4" tslib "^2.1.0" -"@firebase/firestore-compat@0.3.14": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.3.14.tgz#f1ceac5a85da52c6b5b9d65136456e3eaec7b227" - integrity sha512-sOjaYefSPXJXdFH6qyxSwJVakEqAAote6jjrJk/ZCoiX90rs9r3yYV90wP4gmaTKyXjkt8EMlwuapekgGsE5Tw== +"@firebase/firestore-compat@0.3.15": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.3.15.tgz#1b49fe38ba195a04d1e6b93feb5157e32850cb8a" + integrity sha512-MBi/t3QEuK6efNoYtx2e4rRvywzQi/xA4Lw7OA7knOKIKGl5QAj9oPdMY2KQ1dTS0ejtRpjO2a8iJ7v49vmJZQ== dependencies: "@firebase/component" "0.6.4" - "@firebase/firestore" "4.1.0" + "@firebase/firestore" "4.1.1" "@firebase/firestore-types" "3.0.0" "@firebase/util" "1.9.3" tslib "^2.1.0" @@ -3098,17 +3098,17 @@ resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-3.0.0.tgz#f3440d5a1cc2a722d361b24cefb62ca8b3577af3" integrity sha512-Meg4cIezHo9zLamw0ymFYBD4SMjLb+ZXIbuN7T7ddXN6MGoICmOTq3/ltdCGoDCS2u+H1XJs2u/cYp75jsX9Qw== -"@firebase/firestore@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-4.1.0.tgz#fcdd4e033c258fccbe4d47dadf625faa1f62272f" - integrity sha512-FEd+4R0QL9RAJVcdqXgbdIuQYpvzkeKNBVxNM5qcWDPMurjNpja8VaWpVZmT3JXG8FfO+NGTnHJtsW/nWO7XiQ== +"@firebase/firestore@4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-4.1.1.tgz#eb0d1d9817ff7bf75cbce3b9585b4be9cabaaafb" + integrity sha512-PYTdHdQBE6nL+IoKnjV5rw18b06VxMbnYD1ToUf+1l5MUfAVJJgi8v8CdO2u+sUgwMu7uppYJhNLDNY5JMU8ow== dependencies: "@firebase/component" "0.6.4" "@firebase/logger" "0.4.0" "@firebase/util" "1.9.3" "@firebase/webchannel-wrapper" "0.10.1" "@grpc/grpc-js" "~1.8.17" - "@grpc/proto-loader" "^0.6.13" + "@grpc/proto-loader" "^0.7.8" node-fetch "2.6.7" tslib "^2.1.0" @@ -3865,7 +3865,7 @@ "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" -"@grpc/proto-loader@0.7.8", "@grpc/proto-loader@^0.7.0": +"@grpc/proto-loader@0.7.8", "@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.8": version "0.7.8" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.8.tgz#c050bbeae5f000a1919507f195a1b094e218036e" integrity sha512-GU12e2c8dmdXb7XUlOgYWZ2o2i+z9/VeACkxTA/zzAe2IjclC5PnVL0lpgjhrqfpDYHzM8B1TF6pqWegMYAzlA== @@ -3876,17 +3876,6 @@ protobufjs "^7.2.4" yargs "^17.7.2" -"@grpc/proto-loader@^0.6.13": - version "0.6.13" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.13.tgz#008f989b72a40c60c96cd4088522f09b05ac66bc" - integrity sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g== - dependencies: - "@types/long" "^4.0.1" - lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^6.11.3" - yargs "^16.2.0" - "@humanwhocodes/config-array@^0.11.10": version "0.11.10" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" @@ -5343,20 +5332,20 @@ read-package-json-fast "^3.0.0" which "^3.0.0" -"@nrwl/angular@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-16.7.0.tgz#387ae583b3fd81a13199c6a523801ae81339affe" - integrity sha512-dvO4kbOyjuFSMW9jw7TAB/LCVPDS3aRF8K6J/Lr82snWqDci+pV2NQoXB8Hr+DgmK0wav01C69ka8CC9WsQC4Q== +"@nrwl/angular@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-16.7.2.tgz#11661914c5eb8c6ba3618fee5af5b5072e8a730c" + integrity sha512-qL0zkVtMopyWSXh1XFunG7z9hzg46Me3CplMCaE8nHfACg7qhfybwWhZ9NQZQVm4CXWcKJpJ6NJDi9wZyrMqbA== dependencies: - "@nx/angular" "16.7.0" + "@nx/angular" "16.7.2" tslib "^2.3.0" -"@nrwl/cypress@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-16.7.0.tgz#f6500095ec36a7a85dd2fe0b7e5985e6bb21cac8" - integrity sha512-o0wR3X3Axgvx3vviarbN9G5TKROBCf9AdBZKs6AS4PcvAwJLmkbDYHxWQIMxUWZSC7Ep8MnhinZweDpso20amQ== +"@nrwl/cypress@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-16.7.2.tgz#49fc75b0aaa736e2401d1dcaf81ffd191882956f" + integrity sha512-QAjvfTD/NuBhkciIc0EXttOPzKDwba8VdXFGO9xxMtsq9X9AN9xUHA5ZZStMtP/dnS1qi/BD6vG5d/h1g+c2sw== dependencies: - "@nx/cypress" "16.7.0" + "@nx/cypress" "16.7.2" "@nrwl/devkit@16.5.1": version "16.5.1" @@ -5365,68 +5354,68 @@ dependencies: "@nx/devkit" "16.5.1" -"@nrwl/devkit@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.7.0.tgz#1e343045e6eea1645235417d47900318421fca47" - integrity sha512-QH+2513/eDsCH7eOeweJTc8msly1ozfhIGgFMgpKtzPCv7xc3CyrUMa42tFf/Ld70v6fxp7zftyTsICPA7aOvg== +"@nrwl/devkit@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.7.2.tgz#2aad677797c594c42138ce7dea960d35e4a82997" + integrity sha512-xJIQFtmPoLFWX5gKl6QOGMzXjn+TZPkTMv5pQ12y2StpuGa3T2n8m7TnHPHGAk43ayiPDcDD97cZ75Fue+mK/w== dependencies: - "@nx/devkit" "16.7.0" + "@nx/devkit" "16.7.2" -"@nrwl/eslint-plugin-nx@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-16.7.0.tgz#6ec46493ef30c7bfb1fdac08b118d29486c97598" - integrity sha512-wcZYBf52XhriLW/rpbNg/tnqdtPyx3hHA2XjXNylSF47Et2VbhQni69g8BY087/VsBnIwopk2V7nt1pqUqhjtg== +"@nrwl/eslint-plugin-nx@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-16.7.2.tgz#6b65fdc3fef24bb6fb2a64a04ddcb7035a86536a" + integrity sha512-NS6TZ08Q0uY6YdNXZRwgwTzlNN3sedfGfibSrbUrPZIxnpBUvI9h+1SNkWNwMu9cGpq6ZrAoSaXUyXGWvC7YFw== dependencies: - "@nx/eslint-plugin" "16.7.0" + "@nx/eslint-plugin" "16.7.2" -"@nrwl/jest@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-16.7.0.tgz#45ebac88dbf092503d398736d5b1c1d9f78843d1" - integrity sha512-o/h++f7pDXaqZnAuyB2qGgxjYLNE2U4s8lr4Q5+EmMjuYRk3uA9DYoaltWP1JOcSBq1aqdvt4iQD5GTl12Vu+g== +"@nrwl/jest@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-16.7.2.tgz#9da1a09aa980de29156ef5573fdb2fdc3a1161f3" + integrity sha512-SXqANeAi4UNEPj3xg+o1x6kK8sXZiOk4+VhTtE8vftD/TdhgNVUiyG0DvHXvpLCWNhfFftJHhbUB2sg9vma9jg== dependencies: - "@nx/jest" "16.7.0" + "@nx/jest" "16.7.2" -"@nrwl/js@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-16.7.0.tgz#e687eec25ee51490a9182c3089f34801cdd62895" - integrity sha512-wzwgIaG/Xv7zkprP35YUrWb4ADn4zS1+hT065GHMx8QOX4zXavQYLj5+WHi0OMgLE0jZRpcaw97Xjc9t6n7RBg== +"@nrwl/js@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-16.7.2.tgz#53b488c2c8bf8dc4c5fe0e19af2bcd37c0263497" + integrity sha512-RflIReJoMmBhvBuSKzWLNJvqhz0uDy3Alg7QylGct0uzrTFqOH9fn35W9gYYN3EE8WQXpBlcQk3t+5xs9oHGXg== dependencies: - "@nx/js" "16.7.0" + "@nx/js" "16.7.2" -"@nrwl/linter@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/linter/-/linter-16.7.0.tgz#ba9467fee748f553cb1806fb7b28bc2c42a960c9" - integrity sha512-v22/bLiPjfa4f6pxJxcE+MnstawwuschJqlEZEdm4hpEgRG42ule4Ky2MxKAPn6QKraqNA4kQkdpPgmqEmOCwQ== +"@nrwl/linter@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/linter/-/linter-16.7.2.tgz#35d83244d3ab48c1f7722ab7714f9a8fcbb0d816" + integrity sha512-tY5Vi9I9mjwkeVBD96hkcNAwDxs2gxcWxwIs5bnAoGw4GM93toHnbe2vB72m89NwH4bYxD1UkDAqvYnOfEZ5/Q== dependencies: - "@nx/linter" "16.7.0" + "@nx/linter" "16.7.2" -"@nrwl/nest@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/nest/-/nest-16.7.0.tgz#ae3e4db5197db0dce1295c5c08dcaf66ca68253d" - integrity sha512-CquGwF8h5udCRVLhj6r+NOzDFhwYs/J7udR4FXNcABuCBeijCZ69TrvST51SS294DVQqwJ8kzwZFX3n/e4ihdg== +"@nrwl/nest@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/nest/-/nest-16.7.2.tgz#703678229982a4f3aa90730d9752040f0ffba6b5" + integrity sha512-kKwuWYbSnzCSr0V2wCDLt/Ij3OJpwGhohAK0U/EghCwCpkeTy4B1pL7WscR+cB8UVrBq7Vz/DQhOGOloLjyBww== dependencies: - "@nx/nest" "16.7.0" + "@nx/nest" "16.7.2" -"@nrwl/node@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/node/-/node-16.7.0.tgz#9e7c2622dc597c706eab043a5a83a475a6989565" - integrity sha512-eH5BdjRHyPpv8U2XiFMgYPhtz3bic4auTF+cQJCXiXCVnM3Fk2Ys7XZnwkiCQhk8BgDSMCy3cKSVGDLkPI1N2g== +"@nrwl/node@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/node/-/node-16.7.2.tgz#74a5d4498cd1265fc7e9e3dce4dccb99a1680b6f" + integrity sha512-HPhtGAxiM/N/JihRacHMVH4+MGp1eTPLw/T3RBtf5VyuBI/aRW0gF1nCqJxizSs+Vy9FD2XE+fUoca9FZIrxxg== dependencies: - "@nx/node" "16.7.0" + "@nx/node" "16.7.2" -"@nrwl/nx-plugin@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/nx-plugin/-/nx-plugin-16.7.0.tgz#8f36f43a55dc0f0530280a795a157b4967cd7b24" - integrity sha512-eAFL+Q/sswJxcmP/oz/+XG/mpKZSVo0NL8o9r5VczsqHxFXqgGDAl2mxUkfzC9VxMD52TlP7Ja8DxSKK83O+qQ== +"@nrwl/nx-plugin@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/nx-plugin/-/nx-plugin-16.7.2.tgz#62acf28ee11892929c74c39547eaaa3c8311e1f5" + integrity sha512-efvTzbCPLwzYpq84EQ0yaRgwOTDHru39x09tPHB7gYcLRiVeWSNzVbwqA6nfxjeh3fG/pm+3C7a5KIwmGZg40w== dependencies: - "@nx/plugin" "16.7.0" + "@nx/plugin" "16.7.2" -"@nrwl/storybook@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-16.7.0.tgz#e49e8d527a6b1a1a20bfd259ee05c0d2dfef0324" - integrity sha512-X8fmdB1UtcxWF1NUPHU1RabfgbXHz1SnqIQOfgYQ0eWdzVhw/ujZ4FhIYDxa7xaOheY0YDrXShy5iXMVX+yrCg== +"@nrwl/storybook@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-16.7.2.tgz#ebac9edaca0bdf7db2688866da13206cf679df6a" + integrity sha512-F0LZoo7F+S1zGNhMKO5GQojGScZKnPr9/29WzyOXggtoICO4JpYkIjTr5PqYZtFLJE8UrYAeLL9N6uRJD7Wh7g== dependencies: - "@nx/storybook" "16.7.0" + "@nx/storybook" "16.7.2" "@nrwl/tao@16.5.1": version "16.5.1" @@ -5435,27 +5424,27 @@ dependencies: nx "16.5.1" -"@nrwl/tao@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.7.0.tgz#2670a387b0dfba92d3cc7bdcbd0b1e9053631a50" - integrity sha512-bmzS1drM6qPjXoaIYM2l2xLoB2vCN4a6ZjicYrGA7vAxEDR2Q2+AqiZF5HIAAR2EeT1RrU6D6m9peU9TeBFX3A== +"@nrwl/tao@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.7.2.tgz#53dbb5a1ed221f0226c73d165d12d706b9069386" + integrity sha512-4Wc3ic5VtZL3t4qqCMJlEad/wWuFxNUX78U5ohEStN3UFFJIjwJJpKZYZDtxhaOLWUdXbk6CI3KfSIpWgwPdbQ== dependencies: - nx "16.7.0" + nx "16.7.2" tslib "^2.3.0" -"@nrwl/webpack@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/webpack/-/webpack-16.7.0.tgz#44e137454b4fa4a725e9e08d6099eaacd3f2ea8d" - integrity sha512-TD9LgIWzMwVQKsK/d2GmZOqc0S5OPgnr8TCgtMDQMdIepgAgMV3rsSKlUd2YZpmt9Y6v+SuC4TVtXPGIsOjMIA== +"@nrwl/webpack@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/webpack/-/webpack-16.7.2.tgz#ab9ac908294a596d2d84ea550b708c3036d42487" + integrity sha512-M4JCakc+piRt4eYEuC3s/Pu+J2z7l7Mr63K3FfeZJMLsX7sI87xWifm4Jf4sJvaRNzQHzrykb3xluWMQ/B22Ag== dependencies: - "@nx/webpack" "16.7.0" + "@nx/webpack" "16.7.2" -"@nrwl/workspace@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-16.7.0.tgz#3f4e670f7e8a2568e523a7ae376da867569e42ce" - integrity sha512-vuMMbY5/VhYSPO2NDR8Je+t5xuf6fELsLe40F6oXX2GQBEmRBWUeFvyhkQDrzrQDpt13Y7vuahgVH4kAkBRlUQ== +"@nrwl/workspace@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-16.7.2.tgz#8ef4eb11acc7d95c4f2e663a095b477cb2bbfcb8" + integrity sha512-PTYFfSG64DBJPII/AiUQXP9uuPRfllVBMKKLwvMgVp9siClvgmyctlf5XONlbWfYNJ5jRI7/To8FF52EuQ95Zg== dependencies: - "@nx/workspace" "16.7.0" + "@nx/workspace" "16.7.2" "@nuxtjs/opencollective@0.3.2": version "0.3.2" @@ -5466,19 +5455,19 @@ consola "^2.15.0" node-fetch "^2.6.1" -"@nx/angular@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/angular/-/angular-16.7.0.tgz#b98089940e945cb3da86df2c852c188b0aeb85b4" - integrity sha512-hLDGIFuyFj18/5vQucgRJ12mrCpt0nWtt+9CxKE2HXtRi42OdPTSuk9ZMouy1w43TDYi1J2PY3MaEafE9mBtWw== - dependencies: - "@nrwl/angular" "16.7.0" - "@nx/cypress" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/jest" "16.7.0" - "@nx/js" "16.7.0" - "@nx/linter" "16.7.0" - "@nx/webpack" "16.7.0" - "@nx/workspace" "16.7.0" +"@nx/angular@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/angular/-/angular-16.7.2.tgz#347a29028b814c5481589a3138f7ca31660cfc38" + integrity sha512-OOgVtOIFsnoqiaG+jLXmdZPZgqXp2Oefj2AbH4RwN3mYDSpieO8/MyoX0YcB5pBPOMM1iIREqEbYtq625Q8lmw== + dependencies: + "@nrwl/angular" "16.7.2" + "@nx/cypress" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/jest" "16.7.2" + "@nx/js" "16.7.2" + "@nx/linter" "16.7.2" + "@nx/webpack" "16.7.2" + "@nx/workspace" "16.7.2" "@phenomnomnominal/tsquery" "~5.0.1" "@typescript-eslint/type-utils" "^5.36.1" chalk "^4.1.0" @@ -5492,15 +5481,15 @@ webpack "^5.80.0" webpack-merge "^5.8.0" -"@nx/cypress@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/cypress/-/cypress-16.7.0.tgz#94d46a88c59fdf98210df452bf0131248225201d" - integrity sha512-u46tQn+9iUVAziYOexCRe0mU+/PXhPWxCOoe42E+QlahvQHMDm2MhY4S12blayDrCU7O0HXpqGqWxLVabihuXw== +"@nx/cypress@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/cypress/-/cypress-16.7.2.tgz#a780fa1eb16dd7f296e6a6d8c35aadec26f47f69" + integrity sha512-KBNd2whuBc/aY2dG9uiyMi7LHl5OUbKzKSY4s6bCjgJUiByFbSX6tP6U9QxWxlPmWWjw1OwcoeCWGuUAs/HUZw== dependencies: - "@nrwl/cypress" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/js" "16.7.0" - "@nx/linter" "16.7.0" + "@nrwl/cypress" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/js" "16.7.2" + "@nx/linter" "16.7.2" "@phenomnomnominal/tsquery" "~5.0.1" detect-port "^1.5.1" dotenv "~16.3.1" @@ -5519,12 +5508,12 @@ tmp "~0.2.1" tslib "^2.3.0" -"@nx/devkit@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-16.7.0.tgz#ace0534745c54dd9099e2a0bbd1807b82b1ea1c9" - integrity sha512-XR7k9IZa+qXiyIn5NAoB4mJ+V4yl6lRICndBUat4dECgPPJp8phF/ZiO4WEBA6qC6PyjLrd8jh9zAj+/L4+14g== +"@nx/devkit@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-16.7.2.tgz#cb34103221a257608ee9f330e615071a430148eb" + integrity sha512-Gf6FwxhVUH7h3u6Vp/62sDAqgiPR0WvU/etw/DQmJvOqauM9Nj43r0mBCmgh29yZZEgW1zMIMCTOtUYqFFl1ew== dependencies: - "@nrwl/devkit" "16.7.0" + "@nrwl/devkit" "16.7.2" ejs "^3.1.7" enquirer "~2.3.6" ignore "^5.0.4" @@ -5532,14 +5521,14 @@ tmp "~0.2.1" tslib "^2.3.0" -"@nx/eslint-plugin@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/eslint-plugin/-/eslint-plugin-16.7.0.tgz#9ca431a16c4333c85a851500b0daf92aaa9d9709" - integrity sha512-JFTm5aSlhU0PU+SRMin8Wqf3tYK+DvMYveGKuB3IagM2KpKItpPma5cFXFlsb39wYam/w4H9L9GRTJO4hQcOlA== +"@nx/eslint-plugin@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/eslint-plugin/-/eslint-plugin-16.7.2.tgz#e13137c2eea2a5c04d9c6336d371f48448657b6c" + integrity sha512-EEElrgkTmjkkyrl0tOBoN0nMZynOagAEiri7wOznUeBffqcR0QJt1CeUald3O8DJt49P7ywRSsceW3ZircSpiw== dependencies: - "@nrwl/eslint-plugin-nx" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/js" "16.7.0" + "@nrwl/eslint-plugin-nx" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/js" "16.7.2" "@typescript-eslint/type-utils" "^5.60.1" "@typescript-eslint/utils" "^5.60.1" chalk "^4.1.0" @@ -5548,16 +5537,16 @@ semver "7.5.3" tslib "^2.3.0" -"@nx/jest@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/jest/-/jest-16.7.0.tgz#23025ad6fa0f27b9ab35824ff0a6670b3c770738" - integrity sha512-lA0NdFZq7y9mUl+b3wa+YkeDIn4GRKy0RSQBZxzoSIy7gepqqUneBnz6dGP3V3dAZZYPmA1HUTwYzDKAm3BRJg== +"@nx/jest@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/jest/-/jest-16.7.2.tgz#68e8262c145d93b82ee426965a0c54745c631c8c" + integrity sha512-PoUxUPha2zWA3DOatjXxoCvqk+XySSGJV8XM+7oWdlVXWpWB60XAfs8f9Tl4krUk1v+JlB+9svwds8KLRoj++w== dependencies: "@jest/reporters" "^29.4.1" "@jest/test-result" "^29.4.1" - "@nrwl/jest" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/js" "16.7.0" + "@nrwl/jest" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/js" "16.7.2" "@phenomnomnominal/tsquery" "~5.0.1" chalk "^4.1.0" dotenv "~16.3.1" @@ -5568,10 +5557,10 @@ resolve.exports "1.1.0" tslib "^2.3.0" -"@nx/js@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/js/-/js-16.7.0.tgz#a556829d0f92235a25b659e5dce5897b62a6682b" - integrity sha512-5YoIRcESH9MWZUvEi6QlhtNclhqO+Abqm38dY2wRnw9rq9Q2SEyk2awN7vtQYi9Bd6LAWCQPGMnGq92bXzjutg== +"@nx/js@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/js/-/js-16.7.2.tgz#32f576bd7a48c7fb00ab21910a22061a13148a47" + integrity sha512-6mkOfZlI+RpqkF8Lwte+ZmC2Lx46cHcDUjvdYkoIud40C2uf7eaqnMKh4zw3M25mdzm51BAf22LV31b8q3mBmg== dependencies: "@babel/core" "^7.22.9" "@babel/plugin-proposal-class-properties" "^7.18.6" @@ -5580,9 +5569,9 @@ "@babel/preset-env" "^7.22.9" "@babel/preset-typescript" "^7.22.5" "@babel/runtime" "^7.22.6" - "@nrwl/js" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/workspace" "16.7.0" + "@nrwl/js" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/workspace" "16.7.2" "@phenomnomnominal/tsquery" "~5.0.1" babel-plugin-const-enum "^1.0.1" babel-plugin-macros "^2.8.0" @@ -5600,45 +5589,45 @@ tsconfig-paths "^4.1.2" tslib "^2.3.0" -"@nx/linter@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/linter/-/linter-16.7.0.tgz#d08f99c32f1d3e27d4f4afa0763b93086253507f" - integrity sha512-bVuCYgBw9QKHS8ZvBlJgQoTw37HcAbgnRqYaM0wEgZ/tJ1n520AaKTVTRQy1H9GCvhYWeHgIWrukHZhQd8FvVw== +"@nx/linter@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/linter/-/linter-16.7.2.tgz#49d960cf1509a9ae5ccb9967c69c7cf04085f936" + integrity sha512-rmgE7y0nUupG1iamdTH5S4SVp/+0VC/VvvXnB50mJgVn1XwtvgvmLMb90oFAy1azjxtrboK4y1tI1UC4eSytSw== dependencies: - "@nrwl/linter" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/js" "16.7.0" + "@nrwl/linter" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/js" "16.7.2" "@phenomnomnominal/tsquery" "~5.0.1" tmp "~0.2.1" tslib "^2.3.0" -"@nx/nest@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nest/-/nest-16.7.0.tgz#7928b5629dfaa2bf811ad275911debaf642ba4d9" - integrity sha512-McPgEINWQ9MOqGO5PVhMRDejTiOyFq5acEugHTiLLwmm3twpa5qZ5DTpm5sVPjlKFrEVQzSFiblucWMALCT24w== +"@nx/nest@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nest/-/nest-16.7.2.tgz#3b67fc2491aaae1c2da46e83fdd6b1ef6354e78e" + integrity sha512-PDRNdmOQt1Njv4EzBnvGFNjPvZR+27bwSIKMwUSh2HfNQLkhommmb4w6WOOV5QY4FN0NATc3JhJJilARzWubKw== dependencies: "@nestjs/schematics" "^9.1.0" - "@nrwl/nest" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/js" "16.7.0" - "@nx/linter" "16.7.0" - "@nx/node" "16.7.0" + "@nrwl/nest" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/js" "16.7.2" + "@nx/linter" "16.7.2" + "@nx/node" "16.7.2" "@phenomnomnominal/tsquery" "~5.0.1" enquirer "~2.3.6" semver "7.5.3" tslib "^2.3.0" -"@nx/node@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/node/-/node-16.7.0.tgz#abbbe962847d0f58210577473325c461262533d3" - integrity sha512-orZk5Tlyr3H+eXV9kb+h3nhvrC4EniR2tmupWnkMVV2gwhF/DZI3G938dQjcan4swiZOTfxrzqpcwSs2mwBgbQ== - dependencies: - "@nrwl/node" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/jest" "16.7.0" - "@nx/js" "16.7.0" - "@nx/linter" "16.7.0" - "@nx/workspace" "16.7.0" +"@nx/node@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/node/-/node-16.7.2.tgz#145914640c8883b970d1baba878b1c49c306cde1" + integrity sha512-BQ+dOGOXoc3/qlttJxsk/5Ty/EqjyjgiC95icV67o2bpfEnC+A7EzobsxiG23ZNGrkvxd8SxStv6VrbtH1Ox1g== + dependencies: + "@nrwl/node" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/jest" "16.7.2" + "@nx/js" "16.7.2" + "@nx/linter" "16.7.2" + "@nx/workspace" "16.7.2" tslib "^2.3.0" "@nx/nx-darwin-arm64@16.5.1": @@ -5646,141 +5635,141 @@ resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.5.1.tgz#87111664de492e5ae270ef2adc74553e03d77341" integrity sha512-q98TFI4B/9N9PmKUr1jcbtD4yAFs1HfYd9jUXXTQOlfO9SbDjnrYJgZ4Fp9rMNfrBhgIQ4x1qx0AukZccKmH9Q== -"@nx/nx-darwin-arm64@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.7.0.tgz#bd39d8d0aa1bdd7ef13b73510b8f0ab304861803" - integrity sha512-J7UYS8Rp/Eyjh5RI2l1sydDofbSd8FfXJat0r2uAfN9qxAHJD9DijC08bezSiZqsmkF9IwVkFFufDnbM1uSlxg== +"@nx/nx-darwin-arm64@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.7.2.tgz#b693d389c89edf1bdb82f533d843534f63b41282" + integrity sha512-dkTHAzOTbqRHUQtnw7knEJq4ll6hew11u+9B0fThs9gC/X0iPK0eDXD4TqbIKEbcWAsxpuGiWPzGoNPo7Gwl9A== "@nx/nx-darwin-x64@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.5.1.tgz#05c34ce8f8f23eeae0529d3c1022ee3e95a608a1" integrity sha512-j9HmL1l8k7EVJ3eOM5y8COF93gqrydpxCDoz23ZEtsY+JHY77VAiRQsmqBgEx9GGA2dXi9VEdS67B0+1vKariw== -"@nx/nx-darwin-x64@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.7.0.tgz#0a3eeb5741fcd89e0cacb4133baacfcd4a79a74a" - integrity sha512-gya03azE7iRjozZ/PTX86sw6GXzfAxIqInD47sNFzJbDP7zByMkwoPnfPxyBQDjm8e1UhrfrNgTJSoCdfZ9c5w== +"@nx/nx-darwin-x64@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.7.2.tgz#be7da3c22f50d36d2976be0d87b63cc24ecd7c59" + integrity sha512-EKhjX7DCRIA5U8yAxIgGXeIFaq1dhgLJy8OAG4n1Ud8c21px+bBSrcZvv0ww5VoEulhggQ+c6fW1cjKtGgLknQ== "@nx/nx-freebsd-x64@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.5.1.tgz#b4303ac5066f5c8ced7768097d6c85e8055c7d3a" integrity sha512-CXSPT01aVS869tvCCF2tZ7LnCa8l41wJ3mTVtWBkjmRde68E5Up093hklRMyXb3kfiDYlfIKWGwrV4r0eH6x1A== -"@nx/nx-freebsd-x64@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.7.0.tgz#9c98e7eea4aa83da089227ec899da531a64deed0" - integrity sha512-DC/Oi4E4aIxkN8HHcSWxoDr+MoamL6LKLWHx/bauHCoDj8NomSLDTLauffd3kFYicMqv8k1hiWB2WAsXAVALjQ== +"@nx/nx-freebsd-x64@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.7.2.tgz#710e3d4b2cbf76997b5e8b5e5663bf045bb6157e" + integrity sha512-3QhXZq0wxvi4lg1MJqwq72F7PE/d0Hcl3uwheenYQtwUvAFAmijC/Z4AVPSqbKJ+QaoqASnXRim9z3EIfeD+DQ== "@nx/nx-linux-arm-gnueabihf@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.5.1.tgz#4dde9e8c79da9c5a213b6938dff74f65dd79c157" integrity sha512-BhrumqJSZCWFfLFUKl4CAUwR0Y0G2H5EfFVGKivVecEQbb+INAek1aa6c89evg2/OvetQYsJ+51QknskwqvLsA== -"@nx/nx-linux-arm-gnueabihf@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.7.0.tgz#8e1eb2ef18dfe5749b86b723740b77a5020fa1fd" - integrity sha512-Jya1kiY4+XPdcWdiydsIY1PgCF2j57i//oHY1D1q/FrMmGeXdEeWFSStj47fLew5wfbdHw42lQNPeFMtSYzAyA== +"@nx/nx-linux-arm-gnueabihf@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.7.2.tgz#3f318c003c0678d11556e1bc7be0d4094e2939dd" + integrity sha512-7bny8NvE9iyfwRfq9/mOZjzMNWthT70Ce1N9suB2zdbgbLUEDPQQhBNbg969yT6/LbWMWuWZXeIbz/Fwndf9zA== "@nx/nx-linux-arm64-gnu@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.5.1.tgz#43dcdbd9b39fa91923ab949d161aa25c650f56d9" integrity sha512-x7MsSG0W+X43WVv7JhiSq2eKvH2suNKdlUHEG09Yt0vm3z0bhtym1UCMUg3IUAK7jy9hhLeDaFVFkC6zo+H/XQ== -"@nx/nx-linux-arm64-gnu@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.7.0.tgz#96cf9b5e21b96218d9be3385a0504d727b0e1a89" - integrity sha512-RLRnytYuqjcb6+tq86og8KYHtb4/lRpzujXeTckfoe0nA/z+TkZMIc+LSGbFlIa6Voar1O6+UAw5Fc9/EC909A== +"@nx/nx-linux-arm64-gnu@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.7.2.tgz#2fc032b217c0f99a94bdc4872080f969101326e7" + integrity sha512-+UdeFB1HY/3GU2+mflydFWpztghFRQiVzJV6MTcjtOzE3jfgXzz9TP580pDxozTvNSRPlblH07X+iB8DhVcB9w== "@nx/nx-linux-arm64-musl@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.5.1.tgz#fc33960cecb0064c3dd3330f393e3a38be8a71b7" integrity sha512-J+/v/mFjOm74I0PNtH5Ka+fDd+/dWbKhpcZ2R1/6b9agzZk+Ff/SrwJcSYFXXWKbPX+uQ4RcJoytT06Zs3s0ow== -"@nx/nx-linux-arm64-musl@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.7.0.tgz#aba829d2bdb4ab412466088c1bf667ee38172ac9" - integrity sha512-ZPF+Q0wX2CE81/3ynZfGPPmvMd4ABEwfJ31/7bgingcGSUJ20aIBFbZLdVjX4zO5plofTRujrggIi2SUHBoHzg== +"@nx/nx-linux-arm64-musl@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.7.2.tgz#9f3b256332d2ca074854ee1a0b4667aa44ff2640" + integrity sha512-YfkWu+4GKXageuYiH5a77gIDAXnit5SIyfI+RWe/j04uFy171KnUt167DC417fv/fTGxeXY1tzOu112Y+x5ixw== "@nx/nx-linux-x64-gnu@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.5.1.tgz#2b2ffbb80e29455b6900ec20d4249055590dc58f" integrity sha512-igooWJ5YxQ94Zft7IqgL+Lw0qHaY15Btw4gfK756g/YTYLZEt4tTvR1y6RnK/wdpE3sa68bFTLVBNCGTyiTiDQ== -"@nx/nx-linux-x64-gnu@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.7.0.tgz#baaeb99b09c941348bc0c8b0a6e729fce5f7a2ff" - integrity sha512-HvBZ8DXJ9vwQsOY4F5Vs5c/zgj+Mn/iwY98jXOa8NY4OsIDQQfOtwbiuCruMWD0S34r+yv8PX09MoVh0Qi4+Jg== +"@nx/nx-linux-x64-gnu@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.7.2.tgz#e9e42c800fcbd489501b618e3a2f0ed12481e007" + integrity sha512-/TtSa2rHR+1gNuALR1yafl4fzBK2/GAhosf+skn00OgwsJ0c8ie9tuuftlMo+2n3LcXY/IaPDaD7t6fln4qsQg== "@nx/nx-linux-x64-musl@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.5.1.tgz#955b2eae615ee6cf1954e24d42c205b1de8772bf" integrity sha512-zF/exnPqFYbrLAduGhTmZ7zNEyADid2bzNQiIjJkh8Y6NpDwrQIwVIyvIxqynsjMrIs51kBH+8TUjKjj2Jgf5A== -"@nx/nx-linux-x64-musl@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.7.0.tgz#8094105c67bd224edd3f7558e6ad39e2dfe55227" - integrity sha512-hqKX6XGrITfY/yONaWWGHY/DRv1evDLOUluBIGhcGZNKiQAPctE5f3Q29InfUakZV7ct4jYe6M3Rn+gq34QwyA== +"@nx/nx-linux-x64-musl@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.7.2.tgz#8279d458e7e763f02ae2f10cbfcbb46eb80ce9aa" + integrity sha512-VC638hxdWSA8VTDU9rAXjr60mmMP3ZyCUbSkJ+8ydEe83StMDY3PAXS5Hw3n/ouxDfCF9r1kWIGFe4g+emvfBw== "@nx/nx-win32-arm64-msvc@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.5.1.tgz#1dc4a7e3662eb757214c46d8db432f61e43a3dd9" integrity sha512-qtqiLS9Y9TYyAbbpq58kRoOroko4ZXg5oWVqIWFHoxc5bGPweQSJCROEqd1AOl2ZDC6BxfuVHfhDDop1kK05WA== -"@nx/nx-win32-arm64-msvc@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.7.0.tgz#607e1de32661242358bc90a873d4546d6f338f68" - integrity sha512-JmLH63ntsunlxveXTU8f5jMKZGNPXU++I8NKd+A+Texb5h90zoc7GDvyVImFTXzx0duU1CGjreQRiBqiOcQ4Ew== +"@nx/nx-win32-arm64-msvc@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.7.2.tgz#7258e46f3af9e93d667ff42a73ee6a36a484bc2b" + integrity sha512-sSUqgANLgQFFzKTvyMczh5D6xiqTQnB8daJTLX+QUCv5vO5+ZSwuVDyNfr6g/HV2+ak0M9/wVQUae11TgUIPYw== "@nx/nx-win32-x64-msvc@16.5.1": version "16.5.1" resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.5.1.tgz#d2f4a1b2bf675bceb6fb16174b836438293f9dca" integrity sha512-kUJBLakK7iyA9WfsGGQBVennA4jwf5XIgm0lu35oMOphtZIluvzItMt0EYBmylEROpmpEIhHq0P6J9FA+WH0Rg== -"@nx/nx-win32-x64-msvc@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.7.0.tgz#67bc2d079792417ac6681608b59b13d7bc1eab1c" - integrity sha512-R8erkoQ/+6HOCC9JTd3wMIa/VhfCR1Lwzws0mhSe0i5IU1mYdiZi67K8DchSXuLUheeEAZOQB4jW0c6P2jMgWA== - -"@nx/plugin@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/plugin/-/plugin-16.7.0.tgz#1fc75b7ff095018a325077bbccc26175a081855c" - integrity sha512-M3y95kJSkN2OSEb/086Gw5AsYa9mw4g/Ur0DySgIELdKXOOg70uO2lzsc05A6vF/hhwB9fhCek2jY3sAAMaNgw== - dependencies: - "@nrwl/nx-plugin" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/jest" "16.7.0" - "@nx/js" "16.7.0" - "@nx/linter" "16.7.0" +"@nx/nx-win32-x64-msvc@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.7.2.tgz#1b0a286a5b0cb9c8545c7c49e7514aaf464fe9a7" + integrity sha512-+n01cT9/P3o95x+FlRWYf9sFZ29ooxYD/WLcmxACeXN0V1bdbnZxKVSuJqrXZhmpHe7P+/+IRmniv9cdpkxz7g== + +"@nx/plugin@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/plugin/-/plugin-16.7.2.tgz#f751167f4d8259f56368c5c4e50d85eee1f465b3" + integrity sha512-dEF+AaICGQZihQ2lge4aOcBhkwGp8HAfZE84Z29XPd41M73B6OU/7oHaRvLeOcSvVRglIeBmZ7UBkk29vwWfKw== + dependencies: + "@nrwl/nx-plugin" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/jest" "16.7.2" + "@nx/js" "16.7.2" + "@nx/linter" "16.7.2" "@phenomnomnominal/tsquery" "~5.0.1" dotenv "~16.3.1" fs-extra "^11.1.0" tslib "^2.3.0" -"@nx/storybook@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/storybook/-/storybook-16.7.0.tgz#999f161636417b63641815f89767820909e97fea" - integrity sha512-B4MaU0MSg4uarfbrkMcdG/78gb8xxMooLZfwmNcsj3guwqEbSF12Ov44OhCnzUEyUj6N3oMaCngfomoCsCE+og== - dependencies: - "@nrwl/storybook" "16.7.0" - "@nx/cypress" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/js" "16.7.0" - "@nx/linter" "16.7.0" - "@nx/workspace" "16.7.0" +"@nx/storybook@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/storybook/-/storybook-16.7.2.tgz#2c158bbcc6fc5874d93970f2a83b71a2e124b269" + integrity sha512-vnyS6sYXEEknqOCvQJ9OO55GHOQVrkXkOU5k+/LrHAJekYvDsjVpZjXLUgfeGqJEasXiAtBzyExIRHroUmSd6g== + dependencies: + "@nrwl/storybook" "16.7.2" + "@nx/cypress" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/js" "16.7.2" + "@nx/linter" "16.7.2" + "@nx/workspace" "16.7.2" "@phenomnomnominal/tsquery" "~5.0.1" dotenv "~16.3.1" semver "7.5.3" tslib "^2.3.0" -"@nx/webpack@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/webpack/-/webpack-16.7.0.tgz#f708576b8af249c16a44ae5e5e1fedb7a3207210" - integrity sha512-dAupJKfLaNIwTR1ZJZo+OJGRm4wCmU5enS7bKSHDb+kSGDGXQnqNJMxIHp1FiFd8EyfY/WsCn4F/9jmQJFa3pg== +"@nx/webpack@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/webpack/-/webpack-16.7.2.tgz#8fbf0c7e520ee1ff5423ab9bf08e6db2c863f599" + integrity sha512-nZPgIISyUpPLTvPSfRMJo4IY2f3cABxJH4LKJ0U0+uV0fTvzMs9GO8JIQ8534m9b2KISjSbaPL6efJhGkn2VbQ== dependencies: "@babel/core" "^7.22.9" - "@nrwl/webpack" "16.7.0" - "@nx/devkit" "16.7.0" - "@nx/js" "16.7.0" + "@nrwl/webpack" "16.7.2" + "@nx/devkit" "16.7.2" + "@nx/js" "16.7.2" autoprefixer "^10.4.9" babel-loader "^9.1.2" browserslist "^4.21.4" @@ -5817,16 +5806,16 @@ webpack-node-externals "^3.0.0" webpack-subresource-integrity "^5.1.0" -"@nx/workspace@16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-16.7.0.tgz#d30f0d43e6e1bbf9c704a7f354d937be829b7bbe" - integrity sha512-03A3EDJaq00+4cfWqwPS6rI2tuxnNahkvLTkzEbg64emaEgrMbhZHeiaWOD/MAC7FdNfMSCA1zD3IhEL9eMKyg== +"@nx/workspace@16.7.2": + version "16.7.2" + resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-16.7.2.tgz#25b54090b37db9f45d795327c013781d290b6a95" + integrity sha512-6bI2EBXxbMcUI/Gtin+M95l9kQdoov9UIB97j8pX/V/4K8Xvegn01+MF99De9/oApkQjNehmR2dpi4hPo0FFUw== dependencies: - "@nrwl/workspace" "16.7.0" - "@nx/devkit" "16.7.0" + "@nrwl/workspace" "16.7.2" + "@nx/devkit" "16.7.2" chalk "^4.1.0" ignore "^5.0.4" - nx "16.7.0" + nx "16.7.2" rxjs "^7.8.0" tslib "^2.3.0" yargs-parser "21.1.1" @@ -6272,9 +6261,9 @@ "@rollup/pluginutils" "^5.0.1" "@rollup/plugin-node-resolve@^15.0.0": - version "15.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.1.0.tgz#9ffcd8e8c457080dba89bb9fcb583a6778dc757e" - integrity sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA== + version "15.2.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.0.tgz#982053b237f81471aace570472e88a456d211621" + integrity sha512-mKur03xNGT8O9ODO6FtT43ITGqHWZbKPdVJHZb+iV9QYcdlhUUB0wgknvA4KCUmC5oHJF6O2W1EgmyOQyVUI4Q== dependencies: "@rollup/pluginutils" "^5.0.1" "@types/resolve" "1.20.2" @@ -6379,9 +6368,9 @@ "@sigstore/protobuf-specs" "^0.2.0" "@sigstore/protobuf-specs@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.0.tgz#5801b2a4d10afe1577be6133be6b132b5677c18c" - integrity sha512-8ZhZKAVfXjIspDWwm3D3Kvj0ddbJ0HqDZ/pOs5cx88HpT8mVsotFrg7H1UMnXOuDHz6Zykwxn4mxG3QLuN+RUg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== "@sigstore/sign@^1.0.0": version "1.0.0" @@ -6424,43 +6413,52 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@storybook/addon-controls@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.3.1.tgz#5942aebff2dda5b00ec70a6f8a8404c314b8e090" - integrity sha512-4izb5spfoXZYFW0hiF9fqagYY8XMQapLDtSPdcdp40mEvb/2XgIfGfdnh63nEEjLMCQcO7PyK5U8EuH64NCKkg== - dependencies: - "@storybook/blocks" "7.3.1" - "@storybook/client-logger" "7.3.1" - "@storybook/components" "7.3.1" - "@storybook/core-common" "7.3.1" - "@storybook/core-events" "7.3.1" - "@storybook/manager-api" "7.3.1" - "@storybook/node-logger" "7.3.1" - "@storybook/preview-api" "7.3.1" - "@storybook/theming" "7.3.1" - "@storybook/types" "7.3.1" +"@storybook/addon-controls@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.3.2.tgz#4a8cf72cbbda9cc1fa0327652bfad1874e407e9c" + integrity sha512-n9ZoxlV8c9VLNfpFY1HpcRxjUFmHPmcFnW0UzFfGknIArPKFxzw9S/zCJ7CSH9Mf7+NJtYAUzCXlSU/YzT1eZQ== + dependencies: + "@storybook/blocks" "7.3.2" + "@storybook/client-logger" "7.3.2" + "@storybook/components" "7.3.2" + "@storybook/core-common" "7.3.2" + "@storybook/core-events" "7.3.2" + "@storybook/manager-api" "7.3.2" + "@storybook/node-logger" "7.3.2" + "@storybook/preview-api" "7.3.2" + "@storybook/theming" "7.3.2" + "@storybook/types" "7.3.2" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/angular@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/angular/-/angular-7.3.1.tgz#edca8102e7b1de23f5546b4c1c28a76e9a8791f8" - integrity sha512-b5SzCB65LElcwKnnQa+SxMr9iuoSmqp57BMVYPDKkEySnPwdwpfLT/tOW/rW5uKqRLJsFpAn/NK4WFNFuxyqyg== - dependencies: - "@storybook/builder-webpack5" "7.3.1" - "@storybook/cli" "7.3.1" - "@storybook/client-logger" "7.3.1" - "@storybook/core-common" "7.3.1" - "@storybook/core-events" "7.3.1" - "@storybook/core-server" "7.3.1" - "@storybook/core-webpack" "7.3.1" - "@storybook/docs-tools" "7.3.1" +"@storybook/addons@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-7.3.2.tgz#5e78757e67a414e4ae444cda5d7f39ceff6e12f7" + integrity sha512-qYwHniTJzfR7jKh5juYCjU9ukG7l1YAAt7BpnouItgRutxU/+UoC2iAFooQW+i74SxDoovqnEp9TkG7TAFOLxQ== + dependencies: + "@storybook/manager-api" "7.3.2" + "@storybook/preview-api" "7.3.2" + "@storybook/types" "7.3.2" + +"@storybook/angular@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/angular/-/angular-7.3.2.tgz#660809321f2cf8e941d9d2dea87d9c15fab370ab" + integrity sha512-6SoYX7sSb3Sl9GrE38qmZzCSjaYOVylJdNbc6D7ynfYvVGLe7W7fECO7sVyHFCJZiBRtUKS7+GWhcFdOIBAqcw== + dependencies: + "@storybook/builder-webpack5" "7.3.2" + "@storybook/cli" "7.3.2" + "@storybook/client-logger" "7.3.2" + "@storybook/core-common" "7.3.2" + "@storybook/core-events" "7.3.2" + "@storybook/core-server" "7.3.2" + "@storybook/core-webpack" "7.3.2" + "@storybook/docs-tools" "7.3.2" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.3.1" - "@storybook/node-logger" "7.3.1" - "@storybook/preview-api" "7.3.1" - "@storybook/telemetry" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/manager-api" "7.3.2" + "@storybook/node-logger" "7.3.2" + "@storybook/preview-api" "7.3.2" + "@storybook/telemetry" "7.3.2" + "@storybook/types" "7.3.2" "@types/node" "^16.0.0" "@types/react" "^16.14.34" "@types/react-dom" "^16.9.14" @@ -6475,22 +6473,22 @@ util-deprecate "^1.0.2" webpack "5" -"@storybook/blocks@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.3.1.tgz#581dfa9006ffa65492379721df87fe3993eb78f1" - integrity sha512-MIMM5+nU/3/RHEmCmSwkHs3Mq6mwJqUpkWUDPx81sQnq9C5r0NHHNmHGTqxF/SPyptPxmWGI88ETpiidVZK6RQ== +"@storybook/blocks@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.3.2.tgz#3fcc55848cdd972311d4d5b15282156ec8005204" + integrity sha512-j/PRnvGLn0Y3VAu/t6RrU7pjenb7II7Cl/SnFW8LzjMBKXBrkFaq8BRbglzDAUtGdAa9HmJBosogenoZ9iWoBw== dependencies: - "@storybook/channels" "7.3.1" - "@storybook/client-logger" "7.3.1" - "@storybook/components" "7.3.1" - "@storybook/core-events" "7.3.1" + "@storybook/channels" "7.3.2" + "@storybook/client-logger" "7.3.2" + "@storybook/components" "7.3.2" + "@storybook/core-events" "7.3.2" "@storybook/csf" "^0.1.0" - "@storybook/docs-tools" "7.3.1" + "@storybook/docs-tools" "7.3.2" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.3.1" - "@storybook/preview-api" "7.3.1" - "@storybook/theming" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/manager-api" "7.3.2" + "@storybook/preview-api" "7.3.2" + "@storybook/theming" "7.3.2" + "@storybook/types" "7.3.2" "@types/lodash" "^4.14.167" color-convert "^2.0.1" dequal "^2.0.2" @@ -6504,15 +6502,15 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-manager@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.3.1.tgz#431cf5523b38d17c26884c0db54aba01653b1b6f" - integrity sha512-kWM9ZKO1SONUW1OQE1lJafNBWYIsU2ZIQ0oP6KnMsLAauPKMo/uGLVrvmo37MmH9LXdCYTILUMfSQGL2GftgHQ== +"@storybook/builder-manager@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.3.2.tgz#6a6c98143007f14e553fc9a106033fe721cfa8a4" + integrity sha512-M0zdzpnZSg6Gd/QiIbOJkVoifAADpMT85NOC5zuAg3h3o29hedVBAigv/CE2nSbuwZtqPifjxs1AUh7wgtmj8A== dependencies: "@fal-works/esbuild-plugin-global-externals" "^2.1.2" - "@storybook/core-common" "7.3.1" - "@storybook/manager" "7.3.1" - "@storybook/node-logger" "7.3.1" + "@storybook/core-common" "7.3.2" + "@storybook/manager" "7.3.2" + "@storybook/node-logger" "7.3.2" "@types/ejs" "^3.1.1" "@types/find-cache-dir" "^3.2.1" "@yarnpkg/esbuild-plugin-pnp" "^3.0.0-rc.10" @@ -6526,20 +6524,28 @@ process "^0.11.10" util "^0.12.4" -"@storybook/builder-webpack5@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-7.3.1.tgz#5a9dfad4ac4d6af727d64e421474da072b7ecf89" - integrity sha512-+JHnzrZUpIfwhT114N4DTr6dWH6CQAYiyXAnUjfj8x4gUEFH3jNNxy/pXJmdncYBoHXjquQQoxzcjRF0B0VYWg== - dependencies: - "@babel/core" "^7.22.0" - "@storybook/channels" "7.3.1" - "@storybook/client-logger" "7.3.1" - "@storybook/core-common" "7.3.1" - "@storybook/core-events" "7.3.1" - "@storybook/core-webpack" "7.3.1" - "@storybook/node-logger" "7.3.1" - "@storybook/preview" "7.3.1" - "@storybook/preview-api" "7.3.1" +"@storybook/builder-webpack5@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-7.3.2.tgz#65c9ed673840ca1de5473d9ef89856950a875f1d" + integrity sha512-ywl3fKGmhB3UM+fV0Gsp++gtI8xNa6JqTYj3stJDfWe0sfMOQDSc/uW/Q4lx/oQyV5Lp8X4A/9OFccQ74ZUhXg== + dependencies: + "@babel/core" "^7.22.9" + "@storybook/addons" "7.3.2" + "@storybook/channels" "7.3.2" + "@storybook/client-api" "7.3.2" + "@storybook/client-logger" "7.3.2" + "@storybook/components" "7.3.2" + "@storybook/core-common" "7.3.2" + "@storybook/core-events" "7.3.2" + "@storybook/core-webpack" "7.3.2" + "@storybook/global" "^5.0.0" + "@storybook/manager-api" "7.3.2" + "@storybook/node-logger" "7.3.2" + "@storybook/preview" "7.3.2" + "@storybook/preview-api" "7.3.2" + "@storybook/router" "7.3.2" + "@storybook/store" "7.3.2" + "@storybook/theming" "7.3.2" "@swc/core" "^1.3.49" "@types/node" "^16.0.0" "@types/semver" "^7.3.4" @@ -6568,34 +6574,34 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.5.0" -"@storybook/channels@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.3.1.tgz#a618b5a7c8444e42284fb56d7f2385e775355d0c" - integrity sha512-DHdUdwfnMOSmtYv55Ixysklo/ZeD3TiTEQvyBaxhnMR3G0j7nb+TxqyfAn4fb7bntOPRNVB1Vz3nZXkkjrPNgw== +"@storybook/channels@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.3.2.tgz#2126321e7ad70e3fbc33d1544bb09e1fe6ffc5b9" + integrity sha512-GG5+qzv2OZAzXonqUpJR81f2pjKExj7v5MoFJhKYgb3Y+jVYlUzBHBjhQZhuQczP4si418/jvjimvU1PZ4hqcg== dependencies: - "@storybook/client-logger" "7.3.1" - "@storybook/core-events" "7.3.1" + "@storybook/client-logger" "7.3.2" + "@storybook/core-events" "7.3.2" "@storybook/global" "^5.0.0" qs "^6.10.0" telejson "^7.0.3" tiny-invariant "^1.3.1" -"@storybook/cli@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.3.1.tgz#50b672a7ac674be48ed2800accc4b0c1cce9e832" - integrity sha512-m7ET8sVIm9nDI9wKFIhs1gYq+txaUwF/PeDLh+hVHOIbTdQ+lmfzgG9BgNrXgsmfijzRdKcLcAJPhhUa3kyjDA== +"@storybook/cli@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.3.2.tgz#5f8bc0ea8afbf15763098520dfd529803690c7bc" + integrity sha512-RnqE/6KSelL9TQ44uCIU5xvUhY9zXM2Upanr0hao72x44rvlGQbV262pHdkVIYsn0wi8QzYtnoxQPLSqUfUDfA== dependencies: "@babel/core" "^7.22.9" "@babel/preset-env" "^7.22.9" "@babel/types" "^7.22.5" "@ndelangen/get-tarball" "^3.0.7" - "@storybook/codemod" "7.3.1" - "@storybook/core-common" "7.3.1" - "@storybook/core-server" "7.3.1" - "@storybook/csf-tools" "7.3.1" - "@storybook/node-logger" "7.3.1" - "@storybook/telemetry" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/codemod" "7.3.2" + "@storybook/core-common" "7.3.2" + "@storybook/core-server" "7.3.2" + "@storybook/csf-tools" "7.3.2" + "@storybook/node-logger" "7.3.2" + "@storybook/telemetry" "7.3.2" + "@storybook/types" "7.3.2" "@types/semver" "^7.3.4" "@yarnpkg/fslib" "2.10.3" "@yarnpkg/libzip" "2.3.0" @@ -6626,25 +6632,33 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.3.1.tgz#a8ea0f8579d33c7657a8eee12856300460e2bf89" - integrity sha512-VfKi8C5Z1hquaP6xtVn9ngKcnXZjHNV6+RAqLbUJyAoGeO8fFaMblYgbY+tF7Xyf3bZKMLBo4QqtegTh2QjdAA== +"@storybook/client-api@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-7.3.2.tgz#4f667b69691150fadf137a1e291f18f6a255717e" + integrity sha512-8BjoEbuBMvlJAYcIurVn7ghq3plgInOVC8IjswALhSBkvz5V2PRPFSAo9kKaDytNSw2gy1JLgp8imCvMo72+Mw== + dependencies: + "@storybook/client-logger" "7.3.2" + "@storybook/preview-api" "7.3.2" + +"@storybook/client-logger@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.3.2.tgz#8c04d07cc3fdce124fa95aafc5413fea0c202345" + integrity sha512-T7q/YS5lPUE6xjz9EUwJ/v+KCd5KU9dl1MQ9RcH7IpM73EtQZeNSuM9/P96uKXZTf0wZOUBTXVlTzKr66ZB/RQ== dependencies: "@storybook/global" "^5.0.0" -"@storybook/codemod@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.3.1.tgz#8e05aabbb6e26bffbbe47d9c89c3ab7d215ac0be" - integrity sha512-KVGc9CqWd0m3Qzh6oN22CGhsISUj60/7zcdi+GkwRD0+odr3zxHrdBGMcNfeUtjwN05cgTjcaTjG3HhSj/mQIg== +"@storybook/codemod@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.3.2.tgz#006b0495b9b9565bf3b883524d80974eaa661bae" + integrity sha512-B2P91aYhlxdk7zeQOq0VBnDox2HEcboP2unSh6Vcf4V8j2FCdPvBIM7ZkT9p15FHfyOHvvrtf56XdBIyD8/XJA== dependencies: "@babel/core" "^7.22.9" "@babel/preset-env" "^7.22.9" "@babel/types" "^7.22.5" "@storybook/csf" "^0.1.0" - "@storybook/csf-tools" "7.3.1" - "@storybook/node-logger" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/csf-tools" "7.3.2" + "@storybook/node-logger" "7.3.2" + "@storybook/types" "7.3.2" "@types/cross-spawn" "^6.0.2" cross-spawn "^7.0.3" globby "^11.0.2" @@ -6653,30 +6667,30 @@ prettier "^2.8.0" recast "^0.23.1" -"@storybook/components@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.3.1.tgz#1b480f8a69ba08981146edeaa2f22b97923c31e4" - integrity sha512-8dk3WutobHvjxweVzA9Vqrp564vWOTQaV38JSi84ME8wzOdl20Xne9LoeMnqPHXFhnVZdm/Gkosfv4tqkDy4aw== +"@storybook/components@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.3.2.tgz#84855518670a87b74275bdc4194148961b9cc776" + integrity sha512-hsa1OJx4yEtLHTzrCxq8G9U5MTbcTuItj9yp1gsW9RTNc/V1n/rReQv4zE/k+//2hDsLrS62o3yhZ9VksRhLNw== dependencies: "@radix-ui/react-select" "^1.2.2" "@radix-ui/react-toolbar" "^1.0.4" - "@storybook/client-logger" "7.3.1" + "@storybook/client-logger" "7.3.2" "@storybook/csf" "^0.1.0" "@storybook/global" "^5.0.0" "@storybook/icons" "^1.1.6" - "@storybook/theming" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/theming" "7.3.2" + "@storybook/types" "7.3.2" memoizerific "^1.11.3" use-resize-observer "^9.1.0" util-deprecate "^1.0.2" -"@storybook/core-common@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.3.1.tgz#3b51c11ac50ca86bd5d1751ff37a7607f0176a79" - integrity sha512-jALwn9T6xjVQ/GBD2UVMi0XAhJDIsSNf3ghxatRQpa5dphG4nZccF6xwnUdsQqDGr8E4lHgDDzIKP/wqQ3fi1Q== +"@storybook/core-common@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.3.2.tgz#82816a6d7a9b7d07a229d287d6a8b16aa41ec10a" + integrity sha512-W+X7JXV0UmHuUl9xSF/xzz1+P7VM8xHt7ORfp8yrtJRwLHURqHvFFQC+NUHBKno1Ydtt/Uch7QNOWUlQKmiWEw== dependencies: - "@storybook/node-logger" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/node-logger" "7.3.2" + "@storybook/types" "7.3.2" "@types/find-cache-dir" "^3.2.1" "@types/node" "^16.0.0" "@types/node-fetch" "^2.6.4" @@ -6698,31 +6712,31 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/core-events@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.3.1.tgz#ebc6b1fc21a50b3d293678c00199d01a01a30b8b" - integrity sha512-7Pkgwmj/9B7Z3NNSn2swnviBrg9L1VeYSFw6JJKxtQskt8QoY8LxAsPzVMlHjqRmO6sO7lHo9FgpzIFxdmFaAA== +"@storybook/core-events@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.3.2.tgz#9d18df7ceb6901225218e538a3d1d720a2f49b46" + integrity sha512-DCrM3s+sxLKS8vl0zB+1tZEtcl5XQTOGl46XgRRV/SIBabFbsC0l5pQPswWkTUsIqdREtiT0YUHcXB1+YDyFvA== -"@storybook/core-server@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.3.1.tgz#156243efaea94cb10ca44a46b242c06012598b3c" - integrity sha512-T/6zQrH+6AW7hin+p9PrQaEQsxbsJWeS/eIStA+/IsyYaJoVDsw//okr7O6VVbrdFWm+gLQ2WAXJh8x8u8AvgA== +"@storybook/core-server@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.3.2.tgz#b5abc90c7ed3900531b79a63c8f4059e4702f7d4" + integrity sha512-TLMEptmfqYLu4bayRV5m8T3R50uR07Fwja1n/8CCmZOGWjnr5kXMFRkD7+hj7wm82yoidfd23bmVcRU9mlG+tg== dependencies: "@aw-web-design/x-default-browser" "1.4.126" "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-manager" "7.3.1" - "@storybook/channels" "7.3.1" - "@storybook/core-common" "7.3.1" - "@storybook/core-events" "7.3.1" + "@storybook/builder-manager" "7.3.2" + "@storybook/channels" "7.3.2" + "@storybook/core-common" "7.3.2" + "@storybook/core-events" "7.3.2" "@storybook/csf" "^0.1.0" - "@storybook/csf-tools" "7.3.1" + "@storybook/csf-tools" "7.3.2" "@storybook/docs-mdx" "^0.1.0" "@storybook/global" "^5.0.0" - "@storybook/manager" "7.3.1" - "@storybook/node-logger" "7.3.1" - "@storybook/preview-api" "7.3.1" - "@storybook/telemetry" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/manager" "7.3.2" + "@storybook/node-logger" "7.3.2" + "@storybook/preview-api" "7.3.2" + "@storybook/telemetry" "7.3.2" + "@storybook/types" "7.3.2" "@types/detect-port" "^1.3.0" "@types/node" "^16.0.0" "@types/pretty-hrtime" "^1.0.0" @@ -6751,28 +6765,28 @@ watchpack "^2.2.0" ws "^8.2.3" -"@storybook/core-webpack@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-7.3.1.tgz#ba3777a4466b0b241dc2b704e9856c37b0e730fb" - integrity sha512-rWyGdxmcj0c1jomYjKZAGPnuKZkGMQbQsOwB0eXTzbEsGcAhBJGkrjTW57XdoqpnqbVdmZvhZrFPS3M8o7KX8g== +"@storybook/core-webpack@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-7.3.2.tgz#1d0cc04dc2224ceeb55528d3e4cb5c8518118ffb" + integrity sha512-N0Z1jzodhhGjTWwW4VfL/41z/Q4YEPXcYUVyTjuOgyW23uXD+3bTvBZInmWIpZezSJUgyyzAt6KamN2PBpAE1g== dependencies: - "@storybook/core-common" "7.3.1" - "@storybook/node-logger" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/core-common" "7.3.2" + "@storybook/node-logger" "7.3.2" + "@storybook/types" "7.3.2" "@types/node" "^16.0.0" ts-dedent "^2.0.0" -"@storybook/csf-tools@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.3.1.tgz#0e80fd8c112dbddb814189a39873c6fb11206c36" - integrity sha512-8b2VD1RrcAuogoj5mpukX8n4DKF1WjQpWbki6UrZ70btpl0TQclUqAlQw8SQqCQwuljPYaMLrj9x4bpbnBah3Q== +"@storybook/csf-tools@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.3.2.tgz#d93a47443ee24e59bc444f97234e11b2fb157136" + integrity sha512-54UaOsx9QZxiuMSpX01kSAEYuZYaB72Zz8ihlVrKZbIPTSJ6SYcM/jzNCGf1Rz7AjgU2UjXCSs5zBq5t37Nuqw== dependencies: "@babel/generator" "^7.22.9" "@babel/parser" "^7.22.7" "@babel/traverse" "^7.22.8" "@babel/types" "^7.22.5" "@storybook/csf" "^0.1.0" - "@storybook/types" "7.3.1" + "@storybook/types" "7.3.2" fs-extra "^11.1.0" recast "^0.23.1" ts-dedent "^2.0.0" @@ -6796,14 +6810,14 @@ resolved "https://registry.yarnpkg.com/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz#33ba0e39d1461caf048b57db354b2cc410705316" integrity sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg== -"@storybook/docs-tools@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.3.1.tgz#903a70331690a211f8bc9621449755e25076449c" - integrity sha512-9N8CRarcejQoYhIKxbSrS9WJwdbrnj2I8tRWS91cgC2o4pDykqoXD7hXabVixQREzHOZEwakKAg8LsDLfCZCkw== +"@storybook/docs-tools@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.3.2.tgz#4e76ca791c45595aa3bbfd53e6f74dcb5b60f100" + integrity sha512-MSmAiL/lg+B14CIKD6DvkBPdTDfGBSSt3bE+vW2uW9ohNJB5eWePZLQZUe34uZuunn3uqyTAgbEF7KjrtGZ/MQ== dependencies: - "@storybook/core-common" "7.3.1" - "@storybook/preview-api" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/core-common" "7.3.2" + "@storybook/preview-api" "7.3.2" + "@storybook/types" "7.3.2" "@types/doctrine" "^0.0.3" doctrine "^3.0.0" lodash "^4.17.21" @@ -6818,19 +6832,19 @@ resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-1.1.6.tgz#22536cde6dd85fa259608fa8bd7b9eeca2a8e688" integrity sha512-co5gDCYPojRAc5lRMnWxbjrR1V37/rTmAo9Vok4a1hDpHZIwkGTWesdzvYivSQXYFxZTpxdM1b5K3W87brnahw== -"@storybook/manager-api@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.3.1.tgz#a755295c22322288897f3d4ee54336b93de8c281" - integrity sha512-jFH0EfWasdwHW8X5DUzTbH5mpdCZBHU7lIEUj6lVMBcBxbTniqBiG7mkwbW9VLocqEbBZimLCb/2RtTpK1Ue3Q== +"@storybook/manager-api@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.3.2.tgz#8228ce35cfc0f304e3a1c51bec3d3e0d01427a1a" + integrity sha512-EEosLcc+CPLjorLf2+rGLBW0sH0SHVcB1yClLIzKM5Wt8Cl/0l19wNtGMooE/28SDLA4DPIl4WDnP83wRE1hsg== dependencies: - "@storybook/channels" "7.3.1" - "@storybook/client-logger" "7.3.1" - "@storybook/core-events" "7.3.1" + "@storybook/channels" "7.3.2" + "@storybook/client-logger" "7.3.2" + "@storybook/core-events" "7.3.2" "@storybook/csf" "^0.1.0" "@storybook/global" "^5.0.0" - "@storybook/router" "7.3.1" - "@storybook/theming" "7.3.1" - "@storybook/types" "7.3.1" + "@storybook/router" "7.3.2" + "@storybook/theming" "7.3.2" + "@storybook/types" "7.3.2" dequal "^2.0.2" lodash "^4.17.21" memoizerific "^1.11.3" @@ -6839,27 +6853,27 @@ telejson "^7.0.3" ts-dedent "^2.0.0" -"@storybook/manager@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.3.1.tgz#2cbb85e46123dcacda70878cf8ebfa13d789b6ed" - integrity sha512-Ip+FxWCO+D30Ay+KiZkzJ+FQECAc0TJ/urbWKcQaeXKiW2SQKbL51jctr+bsY7H9VTlwpWN+LtZsTow5C1ZAxA== +"@storybook/manager@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.3.2.tgz#9554d24b220c8547a75e9cbd714eddfc2c4a5824" + integrity sha512-nA3XcnD36WUjgMCtID2M4DWYZh6MnabItXvKXGbNUkI8SVaIekc5nEgeplFyqutL11eKz3Es/FwwEP+mePbWfw== -"@storybook/node-logger@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.3.1.tgz#4e56c3ec43cb874c1d665f5c28ecc509e7292b04" - integrity sha512-UVjXJ3nRsGI+yyVFCDKFCjkzrQsUSAMORSlo5vOqypO3PjSahGQBgKjlKnZGXwvdGKB2FW56PbKnb/sPBI/kPg== +"@storybook/node-logger@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.3.2.tgz#c8fea7b87d63c7b50757646af990d7cf13f7c71e" + integrity sha512-XCCYiLa5mQ7KeDQcZ4awlyWDmtxJHLIJeedvXx29JUNztUjgwyon9rlNvxtxtGj6171zgn9MERFh920WyJOOOQ== -"@storybook/preview-api@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.3.1.tgz#0a976397310478597551e056ca5e508657329b3c" - integrity sha512-otFvUJBFxhg11O5XLiyqddTS1ge/tjIs4gA4Uli6M+a6PV+SdNuTE8OjpvvgjsFTFdhyciHKTimKSLAqvopcuw== +"@storybook/preview-api@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.3.2.tgz#75701e7d27cb804c2e30403ce9d001ea8cb2022a" + integrity sha512-exQrWQQLwf/nXB6OEuQScygN5iO914iNQAvicaJ7mrX9L1ypIq1PpXgJR3mSezBd9dhOMBP/BMy1Zck/wBEL9A== dependencies: - "@storybook/channels" "7.3.1" - "@storybook/client-logger" "7.3.1" - "@storybook/core-events" "7.3.1" + "@storybook/channels" "7.3.2" + "@storybook/client-logger" "7.3.2" + "@storybook/core-events" "7.3.2" "@storybook/csf" "^0.1.0" "@storybook/global" "^5.0.0" - "@storybook/types" "7.3.1" + "@storybook/types" "7.3.2" "@types/qs" "^6.9.5" dequal "^2.0.2" lodash "^4.17.21" @@ -6869,65 +6883,73 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/preview@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.3.1.tgz#5cb1efc10fb6c266bc70599594fb76a3c8a4970d" - integrity sha512-7C5Gzg2cbwPduLNHaSyh5I5U/Ms4I+loPWAnwuXJxrdNLqXyLmCcEZ6ABbqEw6JKFh1FF9dLCqQz3D0nELraLQ== +"@storybook/preview@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.3.2.tgz#ba86f2bdf47df1f523023155735cc57969004438" + integrity sha512-UXgImhD7xa+nYgXRcNFQdTqQT1725mOzWbQUtYPMJXkHO+t251hQrEc81tMzSSPEgPrFY8wndpEqTt8glFm91g== -"@storybook/router@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.3.1.tgz#15637309e41c3a5c2da615f947c1bf339b4f3e49" - integrity sha512-KY+Mo0oF2xcRUDCXPJjAB5xy7d8Hi2dh8VqLahGa14ZHwhsZ/RxqE2bypwLXXkRpEiyOpfMbSsG73+1ml3fIUg== +"@storybook/router@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.3.2.tgz#6f59996c67bd22c57947cf58337979e0730e1e5e" + integrity sha512-J3QPudwCJhdnfqPx9GaNDlnsjJ6JbFta/ypp3EkHntyuuaNBeNP3Aq73DJJY2XMTS2Xdw8tD9Y9Y9gCFHJXMDQ== dependencies: - "@storybook/client-logger" "7.3.1" + "@storybook/client-logger" "7.3.2" memoizerific "^1.11.3" qs "^6.10.0" -"@storybook/telemetry@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.3.1.tgz#a4f5dec79193c914763bb91bd834680e6defd224" - integrity sha512-yRM1ACOIuacwIy0V0NzEpm83b/qhE9urHIZq9b9Bnnv22865vbJCSt5yfiH+HHn0FColNDgSx6dY35cneFG/Xg== +"@storybook/store@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/store/-/store-7.3.2.tgz#88b9e46a2a4ca71a6ba4ddc9d2ff672c395fbea0" + integrity sha512-lGgpHQjNbNpvdpCAzxbWzZyNDgjpH8eypqOj8E6YHAq1LKcyvE4KFLVRdp2nBEsWNUWMlfYMTeHc8idcdm2FgQ== + dependencies: + "@storybook/client-logger" "7.3.2" + "@storybook/preview-api" "7.3.2" + +"@storybook/telemetry@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.3.2.tgz#61c07300dedd40f3c17c81ea9d2a097187cb37c9" + integrity sha512-BmgwaZGoR2ZzGZpcO5ipc4uMd9y28qmu9Ynx054Q3mb86daJrw4CU18TVi5UoFa9qmygQhoHx2gaK2QStNtqCg== dependencies: - "@storybook/client-logger" "7.3.1" - "@storybook/core-common" "7.3.1" - "@storybook/csf-tools" "7.3.1" + "@storybook/client-logger" "7.3.2" + "@storybook/core-common" "7.3.2" + "@storybook/csf-tools" "7.3.2" chalk "^4.1.0" detect-package-manager "^2.0.1" fetch-retry "^5.0.2" fs-extra "^11.1.0" read-pkg-up "^7.0.1" -"@storybook/theming@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.3.1.tgz#bc4361545a026986b771c93cafea8b6d84fce9b6" - integrity sha512-1CF6bT8o8pZcd/ptl1q4CiTGY4oLV19tE8Wnhd/TO934fdMp4fUx1FF4pFL6an98lxVeZT0JQ4uvkuaTvHJFRQ== +"@storybook/theming@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.3.2.tgz#6742697322de78831e5e67567368f82b5969a83d" + integrity sha512-npVsnmNAtqGwl1K7vLC/hcVhL8tBC8G0vdZXEcufF0jHdQmRCUs9ZVrnR6W0LCrtmIHDaDoO7PqJVSzu2wgVxw== dependencies: "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@storybook/client-logger" "7.3.1" + "@storybook/client-logger" "7.3.2" "@storybook/global" "^5.0.0" memoizerific "^1.11.3" -"@storybook/types@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.3.1.tgz#51548d0b6e12969c06de2712b48d153c7c499d1c" - integrity sha512-QR714i/Stus/RYqJ8chTCfWNt3RY6/64xRXxaMLqkx75OIq5+rtsmes9I5iUqM4FuupvE7YdlZ5xKvxLYLYgJQ== +"@storybook/types@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.3.2.tgz#81ca5cf87dcaeb06d99e17e91d7852677a0676b9" + integrity sha512-1UHC1r2J6H9dEpj4pp9a16P1rTL87V9Yc6TtYBpp7m+cxzyIZBRvu1wZFKmRB51RXE/uDaxGRKzfNRfgTALcIQ== dependencies: - "@storybook/channels" "7.3.1" + "@storybook/channels" "7.3.2" "@types/babel__core" "^7.0.0" "@types/express" "^4.7.0" file-system-cache "2.3.0" -"@swc-node/core@^1.10.4": - version "1.10.4" - resolved "https://registry.yarnpkg.com/@swc-node/core/-/core-1.10.4.tgz#3cb5ddb0171bbf541c17c713c91423799e67e0ec" - integrity sha512-ixZCb4LsSUPflnOxj4a8T5yTPzKbgvP+tF0N59Rk2+68ikFRt9Qci2qy9xfuDIQbuiONzXersrNpd+p598uH0A== +"@swc-node/core@^1.10.5": + version "1.10.5" + resolved "https://registry.yarnpkg.com/@swc-node/core/-/core-1.10.5.tgz#eb9678c020ee128db08506147eb7794d83315609" + integrity sha512-G+Me0sTApMy6WY9mT0TluFxdO633P1GWMllbT3LWeJlknqQxJo8dAQcV0Uc0+rvBVXt7rRo/BMUZNJp88qarzg== -"@swc-node/register@1.6.6": - version "1.6.6" - resolved "https://registry.yarnpkg.com/@swc-node/register/-/register-1.6.6.tgz#dfcf092b45c76d76d45949b1be8e17561566e2d9" - integrity sha512-KgnQrWLgtJzEgPpxvhOPUDonv1xreVumGdzXDQlDVIqU3vH+spW8ZYxxyjJVMh3G/mQG8E3bFvUMHIS+E3FL2w== +"@swc-node/register@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@swc-node/register/-/register-1.6.7.tgz#e67690d37ffa7d7d9a935fc6bedc909d56031794" + integrity sha512-+Tccbb4+fN8vYx88fdEGFbsCSnF0zBxbVhZkYkFAbVI7h6zVIgA3Jmlok4ZM+q+1KxzPN7AOfhQVuFOYBzZBeA== dependencies: - "@swc-node/core" "^1.10.4" + "@swc-node/core" "^1.10.5" "@swc-node/sourcemap-support" "^0.3.0" colorette "^2.0.19" debug "^4.3.4" @@ -6954,71 +6976,71 @@ slash "3.0.0" source-map "^0.7.3" -"@swc/core-darwin-arm64@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.77.tgz#f02118acb783d3b3c845abf3e55e110b8eba9f7a" - integrity sha512-l4KGQAGB4Ih1Al2tWoUBrtVJCF/xZRjH3jCMCRD52KZDRAnRVDq42JKek7+aHjjH8juzTISaqzsI8Ipv6zvKhA== - -"@swc/core-darwin-x64@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.77.tgz#80dc81e81bf8e0421e79396090bae752d12dd180" - integrity sha512-eFCkZg/BzObOn5IWn7t/Ywz+jlZKff/1XBymT7Arh/UkO39Agh+rYdBqjbylp4JQMl0qGRBfxD3wPgDRoViNVQ== - -"@swc/core-linux-arm-gnueabihf@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.77.tgz#345f20a093cbcd613cf7dad32f63d1f19e0fac7f" - integrity sha512-+1BueyGcCQAtxSORJml0CU8aKQNssQ5E3ABMFJwCbcec+lUCiGYK1fBfqj4FmWQMbXuQ+mn1SMeXSZAtaXoQ3w== - -"@swc/core-linux-arm64-gnu@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.77.tgz#ba5d730017adb87bca45b0c11c607bd705b5f858" - integrity sha512-3smbzVcuuCiWWPFeUIp1c0aAXd+fGsc8x8rUcYvoJAWBgLJ45JymOI5WSUjIybl3rk0prdkbFylZuR0t1Rue3A== - -"@swc/core-linux-arm64-musl@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.77.tgz#40cdf55b4547d5d249742d9dcf0d36a1a8fa2ae3" - integrity sha512-e81+i4ef5vDeu9AkMY2AamPcmtPVPUqeqq3aNWM1tcHCaUej1DwY4xhRxrd1OvEoYyVBLtiMb5nenF3V9OzXIQ== - -"@swc/core-linux-x64-gnu@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.77.tgz#2dd749bf0f78aeeacded4ad737fbe320a03aff50" - integrity sha512-gl3+9VESckZ/GYCmGClGgXqB2tAA2MivEV/51Wde+2alo2lPSSujEhxE6Q3TNYkXOLAHSupYyDZ0ou9RfXufOw== - -"@swc/core-linux-x64-musl@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.77.tgz#9800563d908e1cba8af915746aad84098b925675" - integrity sha512-AqQLZAMYTaNrA4i/Nv/GhXdildDZyRv6xsK8u2actevv5PPjD/69yYB3Z4uaptwh/4ys4W/Y2vnt+OPCNH4OQg== - -"@swc/core-win32-arm64-msvc@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.77.tgz#a597aee2407294437cbaabb56d1ba14382a1c4bd" - integrity sha512-Wdw++6w7WyavxZ3WruElCrRJ6EO0iHS0Mts4qHnbKgD08GJqIMTZPtZ5qhRe9zCf6sj2rQqhAMf/HKhYrHoF+w== - -"@swc/core-win32-ia32-msvc@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.77.tgz#6833f1f86f565af69e9957f62c31e680c78d293c" - integrity sha512-ObNVpdtLdXDpmVKuMZh87yBYL4ti64WX95o2j5Oq3r0e0RqwIGqGvPDxvJVEiyCnaXHfl8eSNKWuiOxPHPkMNQ== - -"@swc/core-win32-x64-msvc@1.3.77": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.77.tgz#dee0dbab07d4dfe90ebb5d24cc62562c9d0324ab" - integrity sha512-Ew6jg/qr0v/2ixeJXvIUBuAPMKTz8HRoDBO/nHkvlnDFmkhsyH7h5YwJS1rLBwAEhWuJaVYjYi7cibZTI/QRYQ== - -"@swc/core@1.3.77", "@swc/core@^1.3.49": - version "1.3.77" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.77.tgz#0bdf830f61379b61fc6a995254929f1389113281" - integrity sha512-CiLD2NGTdhE8JnWFHeRAglaCAcvwOxvpeWNtCIT261GrxTKCXHPAn4eqIWiBzXnwWDmZ6XdyrCL4/GmPESNnrg== +"@swc/core-darwin-arm64@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.78.tgz#352c39630f97376b9de367eb1955965c6d2cef64" + integrity sha512-596KRua/d5Gx1buHKKchSyHuwoIL4S1BRD/wCvYNLNZ3xOzcuBBmXOjrDVigKi1ztNDeS07p30RO5UyYur0XAA== + +"@swc/core-darwin-x64@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.78.tgz#0279831884f3275eea67c34a87fb503b35a6f6c7" + integrity sha512-w0RsD1onQAj0vuLAoOVi48HgnW6D6oBEIZP17l0HYejCDBZ+FRZLjml7wgNAWMqHcd2qNRqgtZ+v7aLza2JtBQ== + +"@swc/core-linux-arm-gnueabihf@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.78.tgz#4268cac6945329f47216ae57e8ad17bf0e5cc294" + integrity sha512-v1CpRn+H6fha1WIqmdRvJM40pFdjUHrGfhf4Ygci72nlAU41l5XimN8Iwkm8FgIwf2wnv0lLzedSM4IHvpq/yA== + +"@swc/core-linux-arm64-gnu@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.78.tgz#dcedcc8fb3addaca8660c8c712376850a04d5251" + integrity sha512-Sis17dz9joJRFVvR/gteOZSUNrrrioo81RQzani0Zr5ZZOfWLMTB9DA+0MVlfnVa2taYcsJHJZFoAv9JkLwbzg== + +"@swc/core-linux-arm64-musl@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.78.tgz#c09c29419879e819a1790994da614887714fa675" + integrity sha512-E5F8/qp+QupnfBnsP4vN1PKyCmAHYHDG1GMyPE/zLFOUYLgw+jK4C9rfyLBR0o2bWo1ay2WCIjusBZD9XHGOSA== + +"@swc/core-linux-x64-gnu@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.78.tgz#e295812b2c871a559fda2314c7063f965d7a3139" + integrity sha512-iDxa+RknnTQlyy+WfPor1FM6y44ERNI2E0xiUV6gV6uPwegCngi8LFC+E7IvP6+p+yXtAkesunAaiZ8nn0s+rw== + +"@swc/core-linux-x64-musl@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.78.tgz#e9742111dc62b857492559491cff277ce7f952f2" + integrity sha512-dWtIYUFL5sMTE2UKshkXTusHcK8+zAhhGzvqWq1wJS45pqTlrAbzpyqB780fle880x3A6DMitWmsAFARdNzpuQ== + +"@swc/core-win32-arm64-msvc@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.78.tgz#59d76fbd58e0efcc003cf2a08984e697d285be8d" + integrity sha512-CXFaGEc2M9Su3UoUMC8AnzKb9g+GwPxXfakLWZsjwS448h6jcreExq3nwtBNdVGzQ26xqeVLMFfb1l/oK99Hwg== + +"@swc/core-win32-ia32-msvc@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.78.tgz#5aac382bc8e1d3c74228f823033e19d04720cb28" + integrity sha512-FaH1jwWnJpWkdImpMoiZpMg9oy9UUyZwltzN7hFwjR48e3Li82cRFb+9PifIBHCUSBM+CrrsJXbHP213IMVAyw== + +"@swc/core-win32-x64-msvc@1.3.78": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.78.tgz#3ee7a3bd46503bf81a88343d545d7e1aca8d57de" + integrity sha512-oYxa+tPdhlx1aH14AIoF6kvVjo49tEOW0drNqoEaVHufvgH0y43QU2Jum3b2+xXztmMRtzK2CSN3GPOAXDKKKg== + +"@swc/core@1.3.78", "@swc/core@^1.3.49": + version "1.3.78" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.78.tgz#2c4bd7c397b85c021271043c76433e553446fe95" + integrity sha512-y6DQP571v7fbUUY7nz5G4lNIRGofuO48K5pGhD9VnuOCTuptfooCdi8wnigIrIhM/M4zQ53m/YCMDCbOtDgEww== optionalDependencies: - "@swc/core-darwin-arm64" "1.3.77" - "@swc/core-darwin-x64" "1.3.77" - "@swc/core-linux-arm-gnueabihf" "1.3.77" - "@swc/core-linux-arm64-gnu" "1.3.77" - "@swc/core-linux-arm64-musl" "1.3.77" - "@swc/core-linux-x64-gnu" "1.3.77" - "@swc/core-linux-x64-musl" "1.3.77" - "@swc/core-win32-arm64-msvc" "1.3.77" - "@swc/core-win32-ia32-msvc" "1.3.77" - "@swc/core-win32-x64-msvc" "1.3.77" + "@swc/core-darwin-arm64" "1.3.78" + "@swc/core-darwin-x64" "1.3.78" + "@swc/core-linux-arm-gnueabihf" "1.3.78" + "@swc/core-linux-arm64-gnu" "1.3.78" + "@swc/core-linux-arm64-musl" "1.3.78" + "@swc/core-linux-x64-gnu" "1.3.78" + "@swc/core-linux-x64-musl" "1.3.78" + "@swc/core-win32-arm64-msvc" "1.3.78" + "@swc/core-win32-ia32-msvc" "1.3.78" + "@swc/core-win32-x64-msvc" "1.3.78" "@swc/helpers@0.5.1": version "0.5.1" @@ -7776,10 +7798,10 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@20.5.0", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.5.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.0.tgz#7fc8636d5f1aaa3b21e6245e97d56b7f56702313" - integrity sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q== +"@types/node@*", "@types/node@20.5.1", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "20.5.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.1.tgz#178d58ee7e4834152b0e8b4d30cbfab578b9bb30" + integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg== "@types/node@20.4.7": version "20.4.7" @@ -7787,14 +7809,14 @@ integrity sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g== "@types/node@^16.0.0", "@types/node@^16.18.39": - version "16.18.40" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.40.tgz#968d64746d20cac747a18ca982c0f1fe518c031c" - integrity sha512-+yno3ItTEwGxXiS/75Q/aHaa5srkpnJaH+kdkTVJ3DtJEwv92itpKbxU+FjPoh2m/5G9zmUQfrL4A4C13c+iGA== + version "16.18.41" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.41.tgz#61b14360fd3f7444b326ac3207c83005371e3f8a" + integrity sha512-YZJjn+Aaw0xihnpdImxI22jqGbp0DCgTFKRycygjGx/Y27NnWFJa5FJ7P+MRT3u07dogEeMVh70pWpbIQollTA== "@types/node@^18.11.18": - version "18.17.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.5.tgz#c58b12bca8c2a437b38c15270615627e96dd0bc5" - integrity sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA== + version "18.17.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.6.tgz#0296e9a30b22d2a8fcaa48d3c45afe51474ca55b" + integrity sha512-fGmT/P7z7ecA6bv/ia5DlaWCH4YeZvAQMNpUhrJjtAhOhZfoxS1VLUgU2pdk63efSjQaOJWdXMuAJsws+8I6dg== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -10635,16 +10657,16 @@ copy-webpack-plugin@^10.2.4: serialize-javascript "^6.0.0" core-js-compat@^3.31.0: - version "3.32.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.0.tgz#f41574b6893ab15ddb0ac1693681bd56c8550a90" - integrity sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw== + version "3.32.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.1.tgz#55f9a7d297c0761a8eb1d31b593e0f5b6ffae964" + integrity sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA== dependencies: - browserslist "^4.21.9" + browserslist "^4.21.10" -core-js@3.32.0: - version "3.32.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.0.tgz#7643d353d899747ab1f8b03d2803b0312a0fb3b6" - integrity sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww== +core-js@3.32.1: + version "3.32.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.1.tgz#a7d8736a3ed9dd05940c3c4ff32c591bb735be77" + integrity sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ== core-util-is@1.0.2: version "1.0.2" @@ -12101,9 +12123,9 @@ electron-squirrel-startup@1.0.0: debug "^2.2.0" electron-to-chromium@^1.3.30, electron-to-chromium@^1.4.477: - version "1.4.492" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.492.tgz#83fed8beb64ec60578069e15dddd17b13a77ca56" - integrity sha512-36K9b/6skMVwAIEsC7GiQ8I8N3soCALVSHqWHzNDtGemAcI9Xu8hP02cywWM0A794rTHm0b0zHPeLJHtgFVamQ== + version "1.4.496" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.496.tgz#a57534b70d2bdee7e1ad7dbd4c91e560cbd08db1" + integrity sha512-qeXC3Zbykq44RCrBa4kr8v/dWzYJA8rAwpyh9Qd+NKWoJfjG5vvJqy9XOJ9H4P/lqulZBCgUWAYi+FeK5AuJ8g== electron@26.0.0: version "26.0.0" @@ -12998,7 +13020,7 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@3.3.1, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0: +fast-glob@3.3.1, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -13362,24 +13384,24 @@ firebase-functions@4.4.1: node-fetch "^2.6.7" protobufjs "^7.2.2" -firebase@10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-10.1.0.tgz#07281ac2fe4bcf3886eeddcea8903ad17f1aec67" - integrity sha512-ghcdCe2G9DeGmLOrBgR7XPswuc9BFUfjnU93ABopIisMfbJFzoqpSp4emwNiZt+vVGZV1ifeU3DLfhxlujxhCg== +firebase@10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-10.2.0.tgz#c19d5a2b80b1104519aa914a24e63db8270ff7a4" + integrity sha512-pmegHB73xrZFNR02nvBxLbxM5+9Z0njimf+7uCjjEDVW7ZNdhhTgFpB0qecqpJ5uGKy6Tkavzc8LfcGkNpPgjg== dependencies: "@firebase/analytics" "0.10.0" "@firebase/analytics-compat" "0.2.6" - "@firebase/app" "0.9.15" + "@firebase/app" "0.9.16" "@firebase/app-check" "0.8.0" "@firebase/app-check-compat" "0.3.7" - "@firebase/app-compat" "0.2.15" + "@firebase/app-compat" "0.2.16" "@firebase/app-types" "0.9.0" - "@firebase/auth" "1.1.0" - "@firebase/auth-compat" "0.4.4" + "@firebase/auth" "1.2.0" + "@firebase/auth-compat" "0.4.5" "@firebase/database" "1.0.1" "@firebase/database-compat" "1.0.1" - "@firebase/firestore" "4.1.0" - "@firebase/firestore-compat" "0.3.14" + "@firebase/firestore" "4.1.1" + "@firebase/firestore-compat" "0.3.15" "@firebase/functions" "0.10.0" "@firebase/functions-compat" "0.3.5" "@firebase/installations" "0.6.4" @@ -16227,9 +16249,9 @@ jest@29.6.2: jest-cli "^29.6.2" jiti@^1.17.1, jiti@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1" - integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== + version "1.19.3" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.3.tgz#ef554f76465b3c2b222dc077834a71f0d4a37569" + integrity sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w== jose@^4.10.4, jose@^4.11.4: version "4.14.4" @@ -16665,10 +16687,10 @@ known-css-properties@^0.11.0: resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.11.0.tgz#0da784f115ea77c76b81536d7052e90ee6c86a8a" integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== -known-css-properties@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.27.0.tgz#82a9358dda5fe7f7bd12b5e7142c0a205393c0c5" - integrity sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg== +known-css-properties@^0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.28.0.tgz#8a8be010f368b3036fe6ab0ef4bbbed972bd6274" + integrity sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ== known-css-properties@^0.5.0: version "0.5.0" @@ -18167,9 +18189,9 @@ node-fetch@2.6.7: whatwg-url "^5.0.0" node-fetch@^2.0.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.9: - version "2.6.12" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== + version "2.6.13" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.13.tgz#a20acbbec73c2e09f9007de5cda17104122e0010" + integrity sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA== dependencies: whatwg-url "^5.0.0" @@ -18457,12 +18479,12 @@ nx@16.5.1: "@nx/nx-win32-arm64-msvc" "16.5.1" "@nx/nx-win32-x64-msvc" "16.5.1" -nx@16.7.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/nx/-/nx-16.7.0.tgz#89c54fe9e927f4cd3033dea58b6e05aa206a0d36" - integrity sha512-PPEI4znnR8k0X5mEriMYDlTXTf3GyDTzBYn5qc+FWIY/P1r8E1cEcb0yWh7eNNSv3qgdJYdkRsPO7hNJINM5SA== +nx@16.7.2: + version "16.7.2" + resolved "https://registry.yarnpkg.com/nx/-/nx-16.7.2.tgz#d5886f183f0b99c1e218f0c0e6edac72f9be637d" + integrity sha512-T7cRC97qJ4H9fg498ZGwFQaTzJdLQaRp6DFUwzFo1B9qzR56A2tA3HBvT/huo85THaDX+/pcgLyeixJKEE5RPg== dependencies: - "@nrwl/tao" "16.7.0" + "@nrwl/tao" "16.7.2" "@parcel/watcher" "2.0.4" "@yarnpkg/lockfile" "^1.1.0" "@yarnpkg/parsers" "3.0.0-rc.46" @@ -18498,16 +18520,16 @@ nx@16.7.0: yargs "^17.6.2" yargs-parser "21.1.1" optionalDependencies: - "@nx/nx-darwin-arm64" "16.7.0" - "@nx/nx-darwin-x64" "16.7.0" - "@nx/nx-freebsd-x64" "16.7.0" - "@nx/nx-linux-arm-gnueabihf" "16.7.0" - "@nx/nx-linux-arm64-gnu" "16.7.0" - "@nx/nx-linux-arm64-musl" "16.7.0" - "@nx/nx-linux-x64-gnu" "16.7.0" - "@nx/nx-linux-x64-musl" "16.7.0" - "@nx/nx-win32-arm64-msvc" "16.7.0" - "@nx/nx-win32-x64-msvc" "16.7.0" + "@nx/nx-darwin-arm64" "16.7.2" + "@nx/nx-darwin-x64" "16.7.2" + "@nx/nx-freebsd-x64" "16.7.2" + "@nx/nx-linux-arm-gnueabihf" "16.7.2" + "@nx/nx-linux-arm64-gnu" "16.7.2" + "@nx/nx-linux-arm64-musl" "16.7.2" + "@nx/nx-linux-x64-gnu" "16.7.2" + "@nx/nx-linux-x64-musl" "16.7.2" + "@nx/nx-win32-arm64-msvc" "16.7.2" + "@nx/nx-win32-x64-msvc" "16.7.2" object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -19975,7 +19997,7 @@ postcss@8.4.27: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@8.4.28, postcss@^8.2.14, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.24, postcss@^8.4.25, postcss@^8.4.26: +postcss@8.4.28, postcss@^8.2.14, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.27: version "8.4.28" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.28.tgz#c6cc681ed00109072816e1557f889ef51cf950a5" integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw== @@ -20203,25 +20225,6 @@ protobufjs@7.2.4, protobufjs@^7.0.0, protobufjs@^7.2.2, protobufjs@^7.2.4: "@types/node" ">=13.7.0" long "^5.0.0" -protobufjs@^6.11.3: - version "6.11.4" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" - integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -20341,9 +20344,9 @@ pure-rand@^6.0.0: integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== pvtsutils@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.3.tgz#29ef8ea50318d1187b15260b1d0b32e57eea32dc" - integrity sha512-6sAOMlXyrJ+8tRN5IAaYfuYZRp1C2uJ0SyDynEFxL+VY8kCRib9Lpj/+KPaNFpaQWr/iRik5nrzz6iaNlxgEGA== + version "1.3.5" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" + integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== dependencies: tslib "^2.6.1" @@ -21321,9 +21324,9 @@ sass@1.64.1: source-map-js ">=0.6.2 <2.0.0" sass@^1.42.1, sass@^1.55.0: - version "1.65.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.65.1.tgz#8f283b0c26335a88246a448d22e1342ba2ea1432" - integrity sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA== + version "1.66.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1" + integrity sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -22044,12 +22047,12 @@ store2@^2.14.2: resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068" integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== -storybook@7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.3.1.tgz#11e5b1e471d1cd0e916a1d514c61a8c8813fe4cd" - integrity sha512-djrNw2WPJNXgdyHM+6Zxl6EvdhU9TCSghc7wQLXqJG8B1VvB6XSoiexVNOQcnpEaMWDUbU0wUnkBlVHE/Vowuw== +storybook@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.3.2.tgz#602960a7a084af1e6d7b0612f98afbb5e958abff" + integrity sha512-Vf1C5pfF5NHQsb+33NeBd3gLGhcwbT+v6WqqIdARV7LSByqKiWNgJl2ATgzm1b4ERJo8sHU+EiJZIovFWEElkg== dependencies: - "@storybook/cli" "7.3.1" + "@storybook/cli" "7.3.2" stream-events@^1.0.5: version "1.0.5" @@ -22322,14 +22325,14 @@ stylelint-prettier@4.0.2: dependencies: prettier-linter-helpers "^1.0.0" -stylelint@15.10.2: - version "15.10.2" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.2.tgz#0ee5a8371d3a2e1ff27fefd48309d3ddef7c3405" - integrity sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg== +stylelint@15.10.3: + version "15.10.3" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.3.tgz#995e4512fdad450fb83e13f3472001f6edb6469c" + integrity sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA== dependencies: - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" - "@csstools/media-query-list-parser" "^2.1.2" + "@csstools/css-parser-algorithms" "^2.3.1" + "@csstools/css-tokenizer" "^2.2.0" + "@csstools/media-query-list-parser" "^2.1.4" "@csstools/selector-specificity" "^3.0.0" balanced-match "^2.0.0" colord "^2.9.3" @@ -22337,7 +22340,7 @@ stylelint@15.10.2: css-functions-list "^3.2.0" css-tree "^2.3.1" debug "^4.3.4" - fast-glob "^3.3.0" + fast-glob "^3.3.1" fastest-levenshtein "^1.0.16" file-entry-cache "^6.0.1" global-modules "^2.0.0" @@ -22348,13 +22351,13 @@ stylelint@15.10.2: import-lazy "^4.0.0" imurmurhash "^0.1.4" is-plain-object "^5.0.0" - known-css-properties "^0.27.0" + known-css-properties "^0.28.0" mathml-tag-names "^2.1.3" meow "^10.1.5" micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.25" + postcss "^8.4.27" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" postcss-selector-parser "^6.0.13" @@ -23066,9 +23069,9 @@ truncate-utf8-bytes@^1.0.0: utf8-byte-length "^1.0.1" ts-api-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" - integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== + version "1.0.2" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.2.tgz#7c094f753b6705ee4faee25c3c684ade52d66d99" + integrity sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ== ts-dedent@^2.0.0, ts-dedent@^2.2.0: version "2.2.0" @@ -23162,11 +23165,16 @@ tslib@2.6.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== -tslib@2.6.1, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, "tslib@^2.4.1 || ^1.9.3", tslib@^2.5.0, tslib@^2.6.0, tslib@^2.6.1: +tslib@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== +tslib@2.6.2, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, "tslib@^2.4.1 || ^1.9.3", tslib@^2.5.0, tslib@^2.6.0, tslib@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tslib@^1.13.0, tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -24459,7 +24467,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0, yargs@^16.2.0: +yargs@16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==