diff --git a/.gitignore b/.gitignore index 1fc6e2e..e23625e 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,4 @@ libs/fantalytic-web-scraper/env.ts libs/fantalytic-web-scraper/package-lock.json libs/fantalytic-web-scraper/output/* apps/fantalytic-public/src/assets/stats/* +apps/fantalytic-api/local.settings.json diff --git a/.vscode/launch.json b/.vscode/launch.json index e2f8da6..38f458a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -15,6 +15,36 @@ "env": { "NODE_TLS_REJECT_UNAUTHORIZED": "0" } + }, + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/apps/fantalytic-api/bin/Debug/net6.0/Pmt.FantalyticApi.dll", + "args": [], + "cwd": "${workspaceFolder}/apps/fantalytic-api", + "stopAtEntry": false, + // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+(https?://\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" } ] } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..3c8d5fd --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,41 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/apps/fantalytic-api/Pmt.FantalyticApi.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/apps/fantalytic-api/Pmt.FantalyticApi.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/apps/fantalytic-api/Pmt.FantalyticApi.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/apps/fantalytic-api/.vscode/launch.json b/apps/fantalytic-api/.vscode/launch.json new file mode 100644 index 0000000..27dce73 --- /dev/null +++ b/apps/fantalytic-api/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/bin/Debug/net6.0/Pmt.FantalyticApi.dll", + "args": [], + "cwd": "${workspaceFolder}", + "stopAtEntry": false, + // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+(https?://\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/apps/fantalytic-api/.vscode/tasks.json b/apps/fantalytic-api/.vscode/tasks.json new file mode 100644 index 0000000..37e4b6a --- /dev/null +++ b/apps/fantalytic-api/.vscode/tasks.json @@ -0,0 +1,41 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/Pmt.FantalyticApi.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/Pmt.FantalyticApi.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/Pmt.FantalyticApi.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/apps/fantalytic-public/src/app/topics/services/ffa-rss-feed.service.ts b/apps/fantalytic-public/src/app/topics/services/ffa-rss-feed.service.ts index 482ba39..1e26ca8 100644 --- a/apps/fantalytic-public/src/app/topics/services/ffa-rss-feed.service.ts +++ b/apps/fantalytic-public/src/app/topics/services/ffa-rss-feed.service.ts @@ -14,17 +14,6 @@ export class FfaRssFeedService extends EspnRssFeedService { } protected override parseRssItemResponse(item: Element): Topic { - const title = item.getElementsByTagName('title')[0].textContent ?? ''; - const description = - item - .getElementsByTagName('description')[0] - .firstChild?.textContent?.replace('

', '') - .replace('

', '') ?? ''; - const link = - item.getElementsByTagName('link')[0].firstChild?.textContent ?? ''; - const publishedDate = - item.getElementsByTagName('pubDate')[0].textContent ?? ''; - const topic = { title, description, publishedDate, link }; - return topic; + } } diff --git a/apps/fantalytic-ssr/src/app.config.ts b/apps/fantalytic-ssr/src/app.config.ts index 5fee5df..a2912a1 100644 --- a/apps/fantalytic-ssr/src/app.config.ts +++ b/apps/fantalytic-ssr/src/app.config.ts @@ -2,7 +2,8 @@ import { ApplicationConfig } from '@angular/core'; import { provideClientHydration } from '@angular/platform-browser'; import { provideFileRouter } from '@analogjs/router'; import { provideHttpClient } from '@angular/common/http'; +import { provideAnimations } from '@angular/platform-browser/animations'; export const appConfig: ApplicationConfig = { - providers: [provideFileRouter(), provideClientHydration(), provideHttpClient()], + providers: [provideFileRouter(), provideClientHydration(), provideHttpClient(), provideAnimations()], }; diff --git a/apps/fantalytic-ssr/src/app/pages/fantasy-football.page.ts b/apps/fantalytic-ssr/src/app/pages/fantasy-football.page.ts new file mode 100644 index 0000000..87275f7 --- /dev/null +++ b/apps/fantalytic-ssr/src/app/pages/fantasy-football.page.ts @@ -0,0 +1,16 @@ +import { Component } from '@angular/core'; +import { ToolbarComponent } from '../shared/components/toolbar/toolbar.component'; + +@Component({ + standalone: true, + imports: [ToolbarComponent], + template: ` + +
+ Test Page +
+ ` +}) +export default class FantasyFootballPageComponent { + +} \ No newline at end of file diff --git a/apps/fantalytic-ssr/src/app/pages/index.page.ts b/apps/fantalytic-ssr/src/app/pages/index.page.ts index 054a27d..87183d5 100644 --- a/apps/fantalytic-ssr/src/app/pages/index.page.ts +++ b/apps/fantalytic-ssr/src/app/pages/index.page.ts @@ -1,23 +1,29 @@ import { AsyncPipe, DatePipe, NgFor, NgIf } from '@angular/common'; import { Component, inject } from '@angular/core'; +import { MatCardModule } from '@angular/material/card'; +import { ToolbarComponent } from '../shared/components/toolbar/toolbar.component'; import { EspnRssFeedService } from '../topics/services/espn-rss-feed.service'; -import { MatToolbarModule } from '@angular/material/toolbar'; -import {MatCardModule} from '@angular/material/card'; +import { FfaRssFeedService } from '../topics/services/ffa-rss-feed.service'; +import { FootballersRssService } from '../topics/services/footballers-rss.service'; @Component({ selector: 'fantalytic-ssr-home', standalone: true, - imports: [AsyncPipe, NgFor, DatePipe, NgIf, MatToolbarModule, MatCardModule], + imports: [AsyncPipe, NgFor, DatePipe, NgIf, ToolbarComponent, MatCardModule], host: { class: 'flex min-h-screen flex-col text-zinc-900 bg-zinc-50 w-[100vw]', }, template: ` - - Fantalytic.io - -
-
+ +
+
+ + +
+
@@ -25,7 +31,7 @@ import {MatCardModule} from '@angular/material/card'; - ESPN Image + Image
{{topic.description}}
@@ -41,5 +47,28 @@ import {MatCardModule} from '@angular/material/card'; }) export default class HomeComponent { private _espnRssFeedSvc = inject(EspnRssFeedService); + private _ffaRssFeedSvc = inject(FfaRssFeedService); + private _footballersRssFeedSvc = inject(FootballersRssService); + readonly RSS_FEEDS = ['ESPN', 'Footballers']; + + topics$ = this._espnRssFeedSvc.getTopics(); + + handleRssFeedChange(ev: EventTarget | null): void { + const rssFeed = (ev as HTMLSelectElement).value; + switch (rssFeed) { + case 'ESPN': + this.topics$ = this._espnRssFeedSvc.getTopics(); + break; + case 'FFA': + this.topics$ = this._ffaRssFeedSvc.getTopics(); + break; + case 'Footballers': + this.topics$ = this._footballersRssFeedSvc.getTopics(); + break; + default: + break; + } + } + } diff --git a/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.html b/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.html new file mode 100644 index 0000000..73eb6ff --- /dev/null +++ b/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.html @@ -0,0 +1,24 @@ + +
+ Fantalytic.io + + +
    +
  • + +
  • +
  • + +
  • +
+
+
+ +
\ No newline at end of file diff --git a/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.scss b/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.spec.ts b/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.spec.ts new file mode 100644 index 0000000..bf6bf9c --- /dev/null +++ b/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ToolbarComponent } from './toolbar.component'; + +describe('ToolbarComponent', () => { + let component: ToolbarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ToolbarComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(ToolbarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.ts b/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.ts new file mode 100644 index 0000000..7047c66 --- /dev/null +++ b/apps/fantalytic-ssr/src/app/shared/components/toolbar/toolbar.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { MatMenuModule } from '@angular/material/menu'; +import { RouterLink } from '@angular/router'; +import { MatToolbarModule } from '@angular/material/toolbar'; + +@Component({ + selector: 'pmt-toolbar', + standalone: true, + imports: [CommonModule, MatToolbarModule, MatMenuModule, RouterLink], + templateUrl: './toolbar.component.html', + styleUrls: ['./toolbar.component.scss'], +}) +export class ToolbarComponent {} diff --git a/apps/fantalytic-ssr/src/app/topics/services/espn-rss-feed.service.ts b/apps/fantalytic-ssr/src/app/topics/services/espn-rss-feed.service.ts index 8afa523..5b27de1 100644 --- a/apps/fantalytic-ssr/src/app/topics/services/espn-rss-feed.service.ts +++ b/apps/fantalytic-ssr/src/app/topics/services/espn-rss-feed.service.ts @@ -8,15 +8,15 @@ import { Observable, catchError, map, throwError } from 'rxjs'; }) export class EspnRssFeedService { - private readonly RSS_URL = `https://www.espn.com/espn/rss/news`; + protected RSS_URL = `https://www.espn.com/espn/rss/news`; - private _http = inject(HttpClient); + protected _http = inject(HttpClient); getTopics(): Observable { const options = {responseType: 'text' as 'json'}; return this._http.get(this.RSS_URL, options).pipe( map(resp => { - return parseESPNRSSFeed(resp); + return this.parseRssReponse(resp); }), catchError(err => { console.error('ERROR', err); @@ -25,4 +25,8 @@ export class EspnRssFeedService { ) } + protected parseRssReponse(resp: any): Topic[] { + return parseESPNRSSFeed(resp); + } + } diff --git a/apps/fantalytic-ssr/src/app/topics/services/ffa-rss-feed.service.spec.ts b/apps/fantalytic-ssr/src/app/topics/services/ffa-rss-feed.service.spec.ts new file mode 100644 index 0000000..a371fc4 --- /dev/null +++ b/apps/fantalytic-ssr/src/app/topics/services/ffa-rss-feed.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { FfaRssFeedService } from './ffa-rss-feed.service'; + +describe('FfaRssFeedService', () => { + let service: FfaRssFeedService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(FfaRssFeedService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/apps/fantalytic-ssr/src/app/topics/services/ffa-rss-feed.service.ts b/apps/fantalytic-ssr/src/app/topics/services/ffa-rss-feed.service.ts new file mode 100644 index 0000000..343dc50 --- /dev/null +++ b/apps/fantalytic-ssr/src/app/topics/services/ffa-rss-feed.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { Topic, parseFFARSSFeed } from '@pmt/fantalytic-shared-v2'; +import { EspnRssFeedService } from './espn-rss-feed.service'; + +@Injectable({ + providedIn: 'root' +}) +export class FfaRssFeedService extends EspnRssFeedService { + + protected override RSS_URL = `https://fantasyfootballanalytics.net/feed`; + + constructor() { + super(); + } + + protected override parseRssReponse(resp: any): Topic[] { + return parseFFARSSFeed(resp); + } +} diff --git a/apps/fantalytic-ssr/src/app/topics/services/footballers-rss.service.spec.ts b/apps/fantalytic-ssr/src/app/topics/services/footballers-rss.service.spec.ts new file mode 100644 index 0000000..b63ae1f --- /dev/null +++ b/apps/fantalytic-ssr/src/app/topics/services/footballers-rss.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { FootballersRssService } from './footballers-rss.service'; + +describe('FootballersRssService', () => { + let service: FootballersRssService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(FootballersRssService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/apps/fantalytic-ssr/src/app/topics/services/footballers-rss.service.ts b/apps/fantalytic-ssr/src/app/topics/services/footballers-rss.service.ts new file mode 100644 index 0000000..b471c70 --- /dev/null +++ b/apps/fantalytic-ssr/src/app/topics/services/footballers-rss.service.ts @@ -0,0 +1,21 @@ +import { Injectable } from '@angular/core'; +import { EspnRssFeedService } from './espn-rss-feed.service'; +import { Topic, parseFootballersRSSFeed } from '@pmt/fantalytic-shared-v2'; + +@Injectable({ + providedIn: 'root' +}) +export class FootballersRssService extends EspnRssFeedService { + + protected override RSS_URL = 'https://thefantasyfootballers.libsyn.com/fantasyfootball'; + + constructor() { + super(); + } + + protected override parseRssReponse(resp: any): Topic[] { + return parseFootballersRSSFeed(resp); + } + + +} diff --git a/libs/fantalytic-shared-v2/src/lib/fantalytic-shared-topics.ts b/libs/fantalytic-shared-v2/src/lib/fantalytic-shared-topics.ts index a030298..2334b0f 100644 --- a/libs/fantalytic-shared-v2/src/lib/fantalytic-shared-topics.ts +++ b/libs/fantalytic-shared-v2/src/lib/fantalytic-shared-topics.ts @@ -7,14 +7,37 @@ export function parseESPNRSSFeed(httpResponse: any): Topic[] { const items = doc.getElementsByTagName('item'); let topics: Topic[] = []; for (let i = 0; i < items.length; i++) { - const topic = parseRssItemResponse(items[i]); + const topic = parseEspnRssItemResponse(items[i]); topics = [...topics, topic]; } - // console.log('DOC', doc); return topics; } -function parseRssItemResponse(item: Element): Topic { +export function parseFFARSSFeed(httpResponse: any): Topic[] { + const parser = new DOMParser(); + const doc = parser.parseFromString(httpResponse, 'application/xml'); + const items = doc.getElementsByTagName('item'); + let topics: Topic[] = []; + for (let i = 0; i < items.length; i++) { + const topic = parseFfaRssItemResponse(items[i]); + topics = [...topics, topic]; + } + return topics; +} + +export function parseFootballersRSSFeed(httpResponse: any): Topic[] { + const parser = new DOMParser(); + const doc = parser.parseFromString(httpResponse, 'application/xml'); + const items = doc.getElementsByTagName('item'); + let topics: Topic[] = []; + for (let i = 0; i < items.length; i++) { + const topic = parseFootballersRssItemResponse(items[i]); + topics = [...topics, topic]; + } + return topics; +} + +function parseEspnRssItemResponse(item: Element): Topic { const title = item.getElementsByTagName('title')[0].textContent ?? ''; const description = item.getElementsByTagName('description')[0].firstChild?.textContent ?? ''; const imageUrl = item.getElementsByTagName('enclosure')[0]?.getAttribute('url') ?? ''; @@ -23,3 +46,27 @@ function parseRssItemResponse(item: Element): Topic { const topic = {title, description, publishedDate, imageUrl, link}; return topic; } + +function parseFfaRssItemResponse(item: Element): Topic { + const title = item.getElementsByTagName('title')[0].textContent ?? ''; + const description = + item + .getElementsByTagName('description')[0] + .firstChild?.textContent?.replace('

', '') + .replace('

', '') ?? ''; + const link = + item.getElementsByTagName('link')[0].firstChild?.textContent ?? ''; + const publishedDate = + item.getElementsByTagName('pubDate')[0].textContent ?? ''; + const topic = { title, description, publishedDate, link }; + return topic; +} + +function parseFootballersRssItemResponse(item: Element): Topic { + const title = item.getElementsByTagName('title')[0].textContent ?? ''; + const description = item.getElementsByTagName('description')[0].firstChild?.textContent ?? ''; + const link = item.getElementsByTagName('link')[0].firstChild?.textContent ?? ''; + const publishedDate = item.getElementsByTagName('pubDate')[0].textContent ?? ''; + const topic = {title, description, publishedDate, link}; + return topic; +} diff --git a/package-lock.json b/package-lock.json index 902db14..43a8281 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,9 +36,10 @@ "@ngrx/component-store": "16.0.0", "@ngrx/effects": "16.0.0", "@ngrx/store": "16.0.0", + "@nrwl/devkit": "^16.3.2", "@nx/next": "16.1.4", "@nx/storybook": "16.1.4", - "@nxext/stencil": "^15.0.0", + "@nxext/stencil": "^15.7.0", "ag-grid-angular": "^28.1.0", "ag-grid-community": "^28.1.0", "axios": "^0.27.2", @@ -7132,6 +7133,45 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@isaacs/cliui/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", @@ -7147,6 +7187,25 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -7164,6 +7223,74 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -9423,105 +9550,29 @@ } }, "node_modules/@nrwl/devkit": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.5.3.tgz", - "integrity": "sha512-Fg2n5KjCbKn2c5lRGpYzuyB2x385RJmsyJ+7EE230MCTJaw5OXk7U02hrK+nL5dZltEmI06VH409FAEwVyOUqw==", - "dev": true, - "dependencies": { - "@nrwl/tao": "13.5.3", - "ejs": "^3.1.5", - "ignore": "^5.0.4", - "rxjs": "^6.5.4", - "semver": "7.3.4", - "tslib": "^2.3.0" - } - }, - "node_modules/@nrwl/devkit/node_modules/@nrwl/cli": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-13.5.3.tgz", - "integrity": "sha512-TMh8FfF6PPnjuxoSIU0wFVtE6xcf5UfxmX0pSy+ztEDU66RBSPwUxbHUFZGMKrT7jNZLutqmziwi89leTngvfw==", - "dev": true, + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-16.3.2.tgz", + "integrity": "sha512-EiDwVIvh6AcClXv22Q7auQh7Iy/ONISEFWzTswy/J6ZmVGCQesbiwg4cGV0MKiScr+awdVzqyNey+wD6IR5Lkw==", "dependencies": { - "@nrwl/tao": "13.5.3", - "chalk": "4.1.0", - "enquirer": "~2.3.6", - "v8-compile-cache": "2.3.0", - "yargs-parser": "20.0.0" - }, - "bin": { - "nx": "bin/nx.js" + "@nx/devkit": "16.3.2" } }, - "node_modules/@nrwl/devkit/node_modules/@nrwl/tao": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-13.5.3.tgz", - "integrity": "sha512-YAHW4yGROt+a8yDrgG9UxrmSyi62S0Pi6EhLluk5e9s/sNJM1k2NfoVCzZMZYsCbv4tKYv4RSlqf3EQMe28uJw==", - "dev": true, + "node_modules/@nrwl/devkit/node_modules/@nx/devkit": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-16.3.2.tgz", + "integrity": "sha512-1ev3EDm2Sx/ibziZroL1SheqxDR7UgC49tkBgJz1GrQLQnfdhBYroCPSyBSWGPMLHjIuHb3+hyGSV1Bz+BIYOA==", "dependencies": { - "chalk": "4.1.0", - "enquirer": "~2.3.6", - "fast-glob": "3.2.7", - "fs-extra": "^9.1.0", + "@nrwl/devkit": "16.3.2", + "ejs": "^3.1.7", "ignore": "^5.0.4", - "jsonc-parser": "3.0.0", - "nx": "13.5.3", - "rxjs": "^6.5.4", - "rxjs-for-await": "0.0.2", "semver": "7.3.4", "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs-parser": "20.0.0" - }, - "bin": { - "tao": "index.js" - } - }, - "node_modules/@nrwl/devkit/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nrwl/devkit/node_modules/nx": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/nx/-/nx-13.5.3.tgz", - "integrity": "sha512-OqYNq+RL+nk8IAbxOl9CnfHnURA68tYlQojUdtdAiKnmcOouSzWnt1zRZb2nUWiMUiWEVojExMvCqXLwgRwQ6Q==", - "dev": true, - "dependencies": { - "@nrwl/cli": "13.5.3" - }, - "bin": { - "nx": "bin/nx.js" - } - }, - "node_modules/@nrwl/devkit/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" + "tslib": "^2.3.0" }, - "engines": { - "npm": ">=2.0.0" + "peerDependencies": { + "nx": ">= 15 <= 17" } }, - "node_modules/@nrwl/devkit/node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@nrwl/eslint-plugin-nx": { "version": "16.1.4", "resolved": "https://registry.npmjs.org/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-16.1.4.tgz", @@ -11637,22 +11688,22 @@ } }, "node_modules/@nxext/stencil": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@nxext/stencil/-/stencil-15.0.0.tgz", - "integrity": "sha512-91jTj/D8I6MgkydnpJyDFZZLQoulvKbqh0Tc8pxOgCU5FOrzbpAFe1k2xUCylCzkDFE0u924bGqxEEsQFu/3WQ==", + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/@nxext/stencil/-/stencil-15.7.0.tgz", + "integrity": "sha512-56RIUhltVV/UwG2HFbQU+ckCOOOWNizroiz9oLtQpExp+YF/cS3mAz9KAzp/KjPj+NUUW5+ECvJNdUZrAprwrA==", "dependencies": { - "@nrwl/devkit": "15.3.0", + "@nrwl/devkit": "~15.7.0", "ignore": "^5.2.0" }, "peerDependencies": { - "@nrwl/angular": "^15.3.0", - "@nrwl/cypress": "^15.3.0", - "@nrwl/jest": "^15.3.0", - "@nrwl/linter": "^15.3.0", - "@nrwl/react": "^15.3.0", - "@nrwl/storybook": "^15.3.0", - "@nrwl/workspace": "^15.3.0", - "@nxext/svelte": "^15.1.0", + "@nrwl/angular": "^15.7.0", + "@nrwl/cypress": "^15.7.0", + "@nrwl/jest": "^15.7.0", + "@nrwl/linter": "^15.7.0", + "@nrwl/react": "^15.7.0", + "@nrwl/storybook": "^15.7.0", + "@nrwl/workspace": "^15.7.0", + "@nxext/svelte": "^15.7.0", "@stencil/core": "^2.17.1" }, "peerDependenciesMeta": { @@ -11674,9 +11725,9 @@ } }, "node_modules/@nxext/stencil/node_modules/@nrwl/devkit": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.3.0.tgz", - "integrity": "sha512-1O9QLB/eYS6ddw4MZnV4yj4CEqLIbpleZZiG/9w1TaiVO/jfNfXVaxc8EA87XSzMpk2W+/4Qggmabt6gAQaabA==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.7.2.tgz", + "integrity": "sha512-HMGi7L6w2g4IrYwhb04snD8Zr24Z/gzau5i9WUNkwzrjeR1xAm0Cc9WRre221zaeohtK11gyBt7BerT1tgkNwA==", "dependencies": { "@phenomnomnominal/tsquery": "4.1.1", "ejs": "^3.1.7", @@ -11685,7 +11736,7 @@ "tslib": "^2.3.0" }, "peerDependencies": { - "nx": ">= 14 <= 16" + "nx": ">= 14.1 <= 16" } }, "node_modules/@nxtend/capacitor": { @@ -11700,6 +11751,40 @@ "@nrwl/workspace": "^13.0.0" } }, + "node_modules/@nxtend/capacitor/node_modules/@nrwl/devkit": { + "version": "13.10.6", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.10.6.tgz", + "integrity": "sha512-oxL+r9pGguFwl//iuIyPih8mxFwYjYmPY7K8coPoucLCIwKWAnp1B8T5LEMlZh58VaYEQFaGUnuILdVrK1s4pA==", + "dev": true, + "dependencies": { + "ejs": "^3.1.5", + "ignore": "^5.0.4", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "nx": ">= 13.10 <= 15" + } + }, + "node_modules/@nxtend/capacitor/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nxtend/capacitor/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/@nxtend/ionic-angular": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/@nxtend/ionic-angular/-/ionic-angular-13.0.0.tgz", @@ -11713,6 +11798,40 @@ "@nxtend/capacitor": "^13.0.0" } }, + "node_modules/@nxtend/ionic-angular/node_modules/@nrwl/devkit": { + "version": "13.10.6", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.10.6.tgz", + "integrity": "sha512-oxL+r9pGguFwl//iuIyPih8mxFwYjYmPY7K8coPoucLCIwKWAnp1B8T5LEMlZh58VaYEQFaGUnuILdVrK1s4pA==", + "dev": true, + "dependencies": { + "ejs": "^3.1.5", + "ignore": "^5.0.4", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "nx": ">= 13.10 <= 15" + } + }, + "node_modules/@nxtend/ionic-angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nxtend/ionic-angular/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/@parcel/watcher": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", @@ -27016,7 +27135,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "devOptional": true, "dependencies": { "entities": "^4.4.0" }, @@ -29025,15 +29143,6 @@ "tslib": "^2.1.0" } }, - "node_modules/rxjs-for-await": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", - "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", - "dev": true, - "peerDependencies": { - "rxjs": "^6.0.0" - } - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -30005,18 +30114,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -30217,16 +30314,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - } - }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -32720,18 +32807,6 @@ "node": ">=8" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -32871,15 +32946,6 @@ "node": ">=12" } }, - "node_modules/yargs-parser": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", - "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", @@ -37892,6 +37958,40 @@ "strip-ansi": "^7.0.1" } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "strip-ansi": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", @@ -37901,6 +38001,23 @@ "ansi-regex": "^6.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } + } + }, "wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -37911,6 +38028,60 @@ "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } } } }, @@ -39662,87 +39833,24 @@ } }, "@nrwl/devkit": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.5.3.tgz", - "integrity": "sha512-Fg2n5KjCbKn2c5lRGpYzuyB2x385RJmsyJ+7EE230MCTJaw5OXk7U02hrK+nL5dZltEmI06VH409FAEwVyOUqw==", - "dev": true, + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-16.3.2.tgz", + "integrity": "sha512-EiDwVIvh6AcClXv22Q7auQh7Iy/ONISEFWzTswy/J6ZmVGCQesbiwg4cGV0MKiScr+awdVzqyNey+wD6IR5Lkw==", "requires": { - "@nrwl/tao": "13.5.3", - "ejs": "^3.1.5", - "ignore": "^5.0.4", - "rxjs": "^6.5.4", - "semver": "7.3.4", - "tslib": "^2.3.0" + "@nx/devkit": "16.3.2" }, "dependencies": { - "@nrwl/cli": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-13.5.3.tgz", - "integrity": "sha512-TMh8FfF6PPnjuxoSIU0wFVtE6xcf5UfxmX0pSy+ztEDU66RBSPwUxbHUFZGMKrT7jNZLutqmziwi89leTngvfw==", - "dev": true, + "@nx/devkit": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-16.3.2.tgz", + "integrity": "sha512-1ev3EDm2Sx/ibziZroL1SheqxDR7UgC49tkBgJz1GrQLQnfdhBYroCPSyBSWGPMLHjIuHb3+hyGSV1Bz+BIYOA==", "requires": { - "@nrwl/tao": "13.5.3", - "chalk": "4.1.0", - "enquirer": "~2.3.6", - "v8-compile-cache": "2.3.0", - "yargs-parser": "20.0.0" - } - }, - "@nrwl/tao": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-13.5.3.tgz", - "integrity": "sha512-YAHW4yGROt+a8yDrgG9UxrmSyi62S0Pi6EhLluk5e9s/sNJM1k2NfoVCzZMZYsCbv4tKYv4RSlqf3EQMe28uJw==", - "dev": true, - "requires": { - "chalk": "4.1.0", - "enquirer": "~2.3.6", - "fast-glob": "3.2.7", - "fs-extra": "^9.1.0", + "@nrwl/devkit": "16.3.2", + "ejs": "^3.1.7", "ignore": "^5.0.4", - "jsonc-parser": "3.0.0", - "nx": "13.5.3", - "rxjs": "^6.5.4", - "rxjs-for-await": "0.0.2", "semver": "7.3.4", "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs-parser": "20.0.0" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "nx": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/nx/-/nx-13.5.3.tgz", - "integrity": "sha512-OqYNq+RL+nk8IAbxOl9CnfHnURA68tYlQojUdtdAiKnmcOouSzWnt1zRZb2nUWiMUiWEVojExMvCqXLwgRwQ6Q==", - "dev": true, - "requires": { - "@nrwl/cli": "13.5.3" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "tslib": "^2.3.0" } } } @@ -41395,18 +41503,18 @@ } }, "@nxext/stencil": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@nxext/stencil/-/stencil-15.0.0.tgz", - "integrity": "sha512-91jTj/D8I6MgkydnpJyDFZZLQoulvKbqh0Tc8pxOgCU5FOrzbpAFe1k2xUCylCzkDFE0u924bGqxEEsQFu/3WQ==", + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/@nxext/stencil/-/stencil-15.7.0.tgz", + "integrity": "sha512-56RIUhltVV/UwG2HFbQU+ckCOOOWNizroiz9oLtQpExp+YF/cS3mAz9KAzp/KjPj+NUUW5+ECvJNdUZrAprwrA==", "requires": { - "@nrwl/devkit": "15.3.0", + "@nrwl/devkit": "~15.7.0", "ignore": "^5.2.0" }, "dependencies": { "@nrwl/devkit": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.3.0.tgz", - "integrity": "sha512-1O9QLB/eYS6ddw4MZnV4yj4CEqLIbpleZZiG/9w1TaiVO/jfNfXVaxc8EA87XSzMpk2W+/4Qggmabt6gAQaabA==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.7.2.tgz", + "integrity": "sha512-HMGi7L6w2g4IrYwhb04snD8Zr24Z/gzau5i9WUNkwzrjeR1xAm0Cc9WRre221zaeohtK11gyBt7BerT1tgkNwA==", "requires": { "@phenomnomnominal/tsquery": "4.1.1", "ejs": "^3.1.7", @@ -41424,6 +41532,38 @@ "dev": true, "requires": { "@nrwl/devkit": "^13.0.0" + }, + "dependencies": { + "@nrwl/devkit": { + "version": "13.10.6", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.10.6.tgz", + "integrity": "sha512-oxL+r9pGguFwl//iuIyPih8mxFwYjYmPY7K8coPoucLCIwKWAnp1B8T5LEMlZh58VaYEQFaGUnuILdVrK1s4pA==", + "dev": true, + "requires": { + "ejs": "^3.1.5", + "ignore": "^5.0.4", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tslib": "^2.3.0" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + } } }, "@nxtend/ionic-angular": { @@ -41433,6 +41573,38 @@ "dev": true, "requires": { "@nrwl/devkit": "^13.0.0" + }, + "dependencies": { + "@nrwl/devkit": { + "version": "13.10.6", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.10.6.tgz", + "integrity": "sha512-oxL+r9pGguFwl//iuIyPih8mxFwYjYmPY7K8coPoucLCIwKWAnp1B8T5LEMlZh58VaYEQFaGUnuILdVrK1s4pA==", + "dev": true, + "requires": { + "ejs": "^3.1.5", + "ignore": "^5.0.4", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tslib": "^2.3.0" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + } } }, "@parcel/watcher": { @@ -52668,7 +52840,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "devOptional": true, "requires": { "entities": "^4.4.0" } @@ -54069,12 +54240,6 @@ "tslib": "^2.1.0" } }, - "rxjs-for-await": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", - "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", - "dev": true - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -54846,17 +55011,6 @@ "strip-ansi": "^6.0.1" } }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -55016,15 +55170,6 @@ "ansi-regex": "^5.0.1" } }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -56773,17 +56918,6 @@ "strip-ansi": "^6.0.0" } }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -56891,12 +57025,6 @@ } } }, - "yargs-parser": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", - "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", - "dev": true - }, "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/package.json b/package.json index dab7fd7..f13047d 100644 --- a/package.json +++ b/package.json @@ -130,9 +130,10 @@ "@ngrx/component-store": "16.0.0", "@ngrx/effects": "16.0.0", "@ngrx/store": "16.0.0", + "@nrwl/devkit": "^16.3.2", "@nx/next": "16.1.4", "@nx/storybook": "16.1.4", - "@nxext/stencil": "^15.0.0", + "@nxext/stencil": "^15.7.0", "ag-grid-angular": "^28.1.0", "ag-grid-community": "^28.1.0", "axios": "^0.27.2", @@ -161,4 +162,4 @@ "xml2js": "^0.4.23", "zone.js": "~0.11.4" } -} \ No newline at end of file +}