From 4a66ad5519504fd7d662447ffe7d61cd7ebd53da Mon Sep 17 00:00:00 2001 From: Vocal Date: Mon, 1 Jan 2024 11:06:23 -0300 Subject: [PATCH 1/2] Project done --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 154e127..728ff72 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,8 @@ # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs +FrontEnd\BreweryAppAngular\.angular\cache\ + # Mono auto generated files mono_crash.* @@ -475,3 +477,4 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk +/FrontEnd/BreweryAppAngular/.angular/cache/17.0.6 From 2f5026d3ca3b982aa3e5f64294b7bae88164acf1 Mon Sep 17 00:00:00 2001 From: Vocal Date: Mon, 1 Jan 2024 11:06:33 -0300 Subject: [PATCH 2/2] Project done --- .gitattributes | 63 + Brewery/BreweryApi.csproj | 26 + Brewery/BreweryApi.http | 6 + Brewery/Controllers/BeersController.cs | 96 + Brewery/Controllers/BreweriesController.cs | 97 + Brewery/Controllers/SalesController.cs | 96 + Brewery/Controllers/WholesalersController.cs | 116 + Brewery/Models/Beer.cs | 15 + Brewery/Models/Brewery.cs | 12 + Brewery/Models/BreweryContext.cs | 57 + Brewery/Models/DTOs/BeerDTO.cs | 13 + Brewery/Models/DTOs/SaleDTO.cs | 20 + Brewery/Models/DTOs/WholesalerDTO.cs | 18 + Brewery/Models/Sales.cs | 15 + Brewery/Models/Wholesaler.cs | 16 + Brewery/Models/WholesalerStock.cs | 10 + Brewery/Program.cs | 63 + Brewery/Properties/launchSettings.json | 41 + Brewery/Repositories/BeerRepository.cs | 58 + Brewery/Repositories/BreweryRepository.cs | 64 + Brewery/Repositories/IBeerRepository.cs | 16 + Brewery/Repositories/IBreweryRepository.cs | 17 + Brewery/Repositories/ISalesRepository.cs | 18 + Brewery/Repositories/IWholesalerRepository.cs | 19 + .../IWholesalerStockRepository.cs | 9 + Brewery/Repositories/SalesRepository.cs | 63 + Brewery/Repositories/WholesalerRepository.cs | 69 + .../Repositories/WholesalerStockRepository.cs | 21 + Brewery/Services/BeerService.cs | 106 + Brewery/Services/BreweryService.cs | 66 + Brewery/Services/SalesService.cs | 128 + Brewery/Services/WholesalerService.cs | 161 + Brewery/appsettings.Development.json | 12 + Brewery/appsettings.json | 12 + BreweryApi.sln | 33 + FrontEnd/BreweryAppAngular/.editorconfig | 16 + .../BreweryAppAngular/.vscode/extensions.json | 4 + .../BreweryAppAngular/.vscode/launch.json | 20 + FrontEnd/BreweryAppAngular/.vscode/tasks.json | 42 + FrontEnd/BreweryAppAngular/README.md | 27 + FrontEnd/BreweryAppAngular/ZqSbrg.jpg | Bin 0 -> 402572 bytes FrontEnd/BreweryAppAngular/angular.json | 97 + FrontEnd/BreweryAppAngular/package-lock.json | 13752 ++++++++++++++++ FrontEnd/BreweryAppAngular/package.json | 40 + .../brew-edit/brew-edit.component.css | 13 + .../brew-edit/brew-edit.component.html | 49 + .../brew-edit/brew-edit.component.spec.ts | 79 + .../brew-edit/brew-edit.component.ts | 68 + .../brewery-edit/brewery-edit.component.css | 11 + .../brewery-edit/brewery-edit.component.html | 25 + .../brewery-edit.component.spec.ts | 52 + .../brewery-edit/brewery-edit.component.ts | 48 + .../app/EditViews/sale-edit/dialog-quote.html | 3 + .../sale-edit/sale-edit.component.css | 11 + .../sale-edit/sale-edit.component.html | 43 + .../sale-edit/sale-edit.component.spec.ts | 34 + .../sale-edit/sale-edit.component.ts | 83 + .../wholesaler-edit.component.css | 11 + .../wholesaler-edit.component.html | 46 + .../wholesaler-edit.component.spec.ts | 52 + .../wholesaler-edit.component.ts | 67 + .../src/app/Models/BeersModel.ts | 22 + .../src/app/Models/BreweryModel.ts | 13 + .../src/app/Models/SalesModel.ts | 24 + .../src/app/Models/WholesalerModel.ts | 21 + .../src/app/Models/WholesalerStockModel.ts | 13 + .../app/Services/brewery-info.service.spec.ts | 21 + .../src/app/Services/brewery-info.service.ts | 28 + .../app/Services/brewery-post.service.spec.ts | 20 + .../src/app/Services/brewery-post.service.ts | 51 + .../src/app/app.component.css | 4 + .../src/app/app.component.html | 2 + .../src/app/app.component.spec.ts | 33 + .../src/app/app.component.ts | 20 + .../BreweryAppAngular/src/app/app.config.ts | 9 + .../BreweryAppAngular/src/app/app.routes.ts | 61 + .../src/app/header/header.component.css | 8 + .../src/app/header/header.component.html | 13 + .../src/app/header/header.component.spec.ts | 33 + .../src/app/header/header.component.ts | 14 + .../src/app/home/home.component.css | 11 + .../src/app/home/home.component.html | 4 + .../src/app/home/home.component.spec.ts | 23 + .../src/app/home/home.component.ts | 13 + .../views/beer-view/beer-view.component.css | 21 + .../views/beer-view/beer-view.component.html | 51 + .../beer-view/beer-view.component.spec.ts | 33 + .../views/beer-view/beer-view.component.ts | 49 + .../brewery-view/brewery-view.component.css | 21 + .../brewery-view/brewery-view.component.html | 32 + .../brewery-view.component.spec.ts | 33 + .../brewery-view/brewery-view.component.ts | 50 + .../views/sales-view/sales-view.component.css | 0 .../sales-view/sales-view.component.html | 49 + .../sales-view/sales-view.component.spec.ts | 33 + .../views/sales-view/sales-view.component.ts | 32 + .../stock-view/stock-view.component.css | 0 .../stock-view/stock-view.component.html | 7 + .../stock-view/stock-view.component.ts | 13 + .../wholesaler-view.component.css | 21 + .../wholesaler-view.component.html | 43 + .../wholesaler-view.component.spec.ts | 33 + .../wholesaler-view.component.ts | 73 + .../BreweryAppAngular/src/assets/.gitkeep | 0 FrontEnd/BreweryAppAngular/src/favicon.ico | Bin 0 -> 15086 bytes FrontEnd/BreweryAppAngular/src/index.html | 15 + FrontEnd/BreweryAppAngular/src/main.ts | 6 + FrontEnd/BreweryAppAngular/src/styles.css | 7 + FrontEnd/BreweryAppAngular/tsconfig.app.json | 14 + FrontEnd/BreweryAppAngular/tsconfig.json | 33 + FrontEnd/BreweryAppAngular/tsconfig.spec.json | 14 + README.md | 82 + Tests/BreweryTests/BreweryTests.csproj | 31 + Tests/BreweryTests/DatabaseControllerTests.cs | 176 + Tests/BreweryTests/GlobalUsings.cs | 1 + 115 files changed, 17779 insertions(+) create mode 100644 .gitattributes create mode 100644 Brewery/BreweryApi.csproj create mode 100644 Brewery/BreweryApi.http create mode 100644 Brewery/Controllers/BeersController.cs create mode 100644 Brewery/Controllers/BreweriesController.cs create mode 100644 Brewery/Controllers/SalesController.cs create mode 100644 Brewery/Controllers/WholesalersController.cs create mode 100644 Brewery/Models/Beer.cs create mode 100644 Brewery/Models/Brewery.cs create mode 100644 Brewery/Models/BreweryContext.cs create mode 100644 Brewery/Models/DTOs/BeerDTO.cs create mode 100644 Brewery/Models/DTOs/SaleDTO.cs create mode 100644 Brewery/Models/DTOs/WholesalerDTO.cs create mode 100644 Brewery/Models/Sales.cs create mode 100644 Brewery/Models/Wholesaler.cs create mode 100644 Brewery/Models/WholesalerStock.cs create mode 100644 Brewery/Program.cs create mode 100644 Brewery/Properties/launchSettings.json create mode 100644 Brewery/Repositories/BeerRepository.cs create mode 100644 Brewery/Repositories/BreweryRepository.cs create mode 100644 Brewery/Repositories/IBeerRepository.cs create mode 100644 Brewery/Repositories/IBreweryRepository.cs create mode 100644 Brewery/Repositories/ISalesRepository.cs create mode 100644 Brewery/Repositories/IWholesalerRepository.cs create mode 100644 Brewery/Repositories/IWholesalerStockRepository.cs create mode 100644 Brewery/Repositories/SalesRepository.cs create mode 100644 Brewery/Repositories/WholesalerRepository.cs create mode 100644 Brewery/Repositories/WholesalerStockRepository.cs create mode 100644 Brewery/Services/BeerService.cs create mode 100644 Brewery/Services/BreweryService.cs create mode 100644 Brewery/Services/SalesService.cs create mode 100644 Brewery/Services/WholesalerService.cs create mode 100644 Brewery/appsettings.Development.json create mode 100644 Brewery/appsettings.json create mode 100644 BreweryApi.sln create mode 100644 FrontEnd/BreweryAppAngular/.editorconfig create mode 100644 FrontEnd/BreweryAppAngular/.vscode/extensions.json create mode 100644 FrontEnd/BreweryAppAngular/.vscode/launch.json create mode 100644 FrontEnd/BreweryAppAngular/.vscode/tasks.json create mode 100644 FrontEnd/BreweryAppAngular/README.md create mode 100644 FrontEnd/BreweryAppAngular/ZqSbrg.jpg create mode 100644 FrontEnd/BreweryAppAngular/angular.json create mode 100644 FrontEnd/BreweryAppAngular/package-lock.json create mode 100644 FrontEnd/BreweryAppAngular/package.json create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/dialog-quote.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Models/BeersModel.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Models/BreweryModel.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Models/SalesModel.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Models/WholesalerModel.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Models/WholesalerStockModel.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Services/brewery-info.service.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Services/brewery-info.service.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Services/brewery-post.service.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/Services/brewery-post.service.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/app.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/app.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/app.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/app.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/app.config.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/app.routes.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/header/header.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/header/header.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/header/header.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/header/header.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/home/home.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/home/home.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/home/home.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/home/home.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.css create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.html create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.spec.ts create mode 100644 FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.ts create mode 100644 FrontEnd/BreweryAppAngular/src/assets/.gitkeep create mode 100644 FrontEnd/BreweryAppAngular/src/favicon.ico create mode 100644 FrontEnd/BreweryAppAngular/src/index.html create mode 100644 FrontEnd/BreweryAppAngular/src/main.ts create mode 100644 FrontEnd/BreweryAppAngular/src/styles.css create mode 100644 FrontEnd/BreweryAppAngular/tsconfig.app.json create mode 100644 FrontEnd/BreweryAppAngular/tsconfig.json create mode 100644 FrontEnd/BreweryAppAngular/tsconfig.spec.json create mode 100644 README.md create mode 100644 Tests/BreweryTests/BreweryTests.csproj create mode 100644 Tests/BreweryTests/DatabaseControllerTests.cs create mode 100644 Tests/BreweryTests/GlobalUsings.cs diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/Brewery/BreweryApi.csproj b/Brewery/BreweryApi.csproj new file mode 100644 index 0000000..cfa5034 --- /dev/null +++ b/Brewery/BreweryApi.csproj @@ -0,0 +1,26 @@ + + + + net8.0 + enable + enable + false + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + diff --git a/Brewery/BreweryApi.http b/Brewery/BreweryApi.http new file mode 100644 index 0000000..30e7b13 --- /dev/null +++ b/Brewery/BreweryApi.http @@ -0,0 +1,6 @@ +@BreweryApi_HostAddress = http://localhost:5099 + +GET {{BreweryApi_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/Brewery/Controllers/BeersController.cs b/Brewery/Controllers/BeersController.cs new file mode 100644 index 0000000..19f0211 --- /dev/null +++ b/Brewery/Controllers/BeersController.cs @@ -0,0 +1,96 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using BreweryApi.Models; +using BreweryApi.Models.DTOs; +using BreweryApi.Services; + +namespace BreweryApi.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class BeersController : ControllerBase + { + private readonly BeerService _beerService; + + public BeersController(BeerService beerService) + { + _beerService = beerService; + } + + // GET: api/Beers + [HttpGet] + public async Task>> GetBeer() + { + return _beerService.GetBeers(); + } + + // GET: api/Beers/5 + [HttpGet("{id}")] + public async Task> GetBeer(int id) + { + var result = _beerService.GetBeerDTO(id); + + if ( result == null) { return NotFound(); } + + return result; + + } + + // PUT: api/Beers/5 + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPut("{id}")] + public async Task PutBeer(int id, Beer beer) + { + if (id != beer.Id) + { + return BadRequest(); + } + + _beerService.UpdateBeer(beer); + + try + { + _beerService.SaveDb(); + } + catch (DbUpdateConcurrencyException) + { + if (!_beerService.BeerExsists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return NoContent(); + } + + // POST: api/Beers + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPost] + public async Task> PostBeer(Beer beer) + { + _beerService.InsertBeer(beer); + + return CreatedAtAction(nameof(GetBeer), new { id = beer.Id }, beer); + } + + // DELETE: api/Beers/5 + [HttpDelete("{id}")] + public async Task DeleteBeer(int id) + { + var beer = _beerService.GetBeer(id); + + if (beer == null) + { + return NotFound(); + } + + _beerService.DeleteBeer(beer); + + return NoContent(); + } + } +} diff --git a/Brewery/Controllers/BreweriesController.cs b/Brewery/Controllers/BreweriesController.cs new file mode 100644 index 0000000..44f6dee --- /dev/null +++ b/Brewery/Controllers/BreweriesController.cs @@ -0,0 +1,97 @@ +using BreweryApi.Models; +using BreweryApi.Services; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace BreweryApi.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class BreweriesController : ControllerBase + { + private BreweryService _breweryService; + + public BreweriesController( BreweryService breweryService ) + { + _breweryService = breweryService; + } + + // GET: api/Breweries + [HttpGet] + public async Task>> GetBrewery() + { + return _breweryService.GetBreweries(); + } + + // GET: api/Breweries/5 + [HttpGet("{id}")] + public async Task> GetBrewery(int id) + { + var brewery = _breweryService.GetBrewery(id); + + if (brewery == null) + { + return NotFound(); + } + + return brewery; + } + + // PUT: api/Breweries/5 + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPut("{id}")] + public async Task PutBrewery(int id, Brewery brewery) + { + if (id != brewery.Id) + { + return BadRequest(); + } + + _breweryService.UpdateBrewery(brewery); + + try + { + _breweryService.SaveDb(); + } + catch (DbUpdateConcurrencyException) + { + if (!_breweryService.BreweryExsists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return NoContent(); + } + + // POST: api/Breweries + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPost] + public async Task> PostBrewery(Brewery brewery) + { + _breweryService.InsertBrewery(brewery); + + return CreatedAtAction("GetBrewery", new { id = brewery.Id }, brewery); + } + + // DELETE: api/Breweries/5 + [HttpDelete("{id}")] + public async Task DeleteBrewery(int id) + { + var brewery = _breweryService.GetBrewery(id); + + if (brewery == null) + { + return NotFound(); + } + + _breweryService.DeleteBrewery(brewery); + + return NoContent(); + } + } +} diff --git a/Brewery/Controllers/SalesController.cs b/Brewery/Controllers/SalesController.cs new file mode 100644 index 0000000..2df0e4a --- /dev/null +++ b/Brewery/Controllers/SalesController.cs @@ -0,0 +1,96 @@ +using Microsoft.AspNetCore.Mvc; +using BreweryApi.Models; +using BreweryApi.Models.DTOs; +using BreweryApi.Services; + +namespace BreweryApi.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class SalesController : ControllerBase + { + private readonly SalesService _salesService; + + public SalesController( SalesService salesService ) + { + _salesService = salesService; + } + + // GET: api/Sales + [HttpGet] + public async Task>> GetSales() + { + List sales = _salesService.GetSales(); + + return _salesService.GetSalesDTO(sales); + } + + // GET: api/Sales/5 + [HttpGet("{id}")] + public async Task> GetSales( int id ) + { + var sale = _salesService.GetSale(id); + + if (sale == null) + { + return NotFound(); + } + + return _salesService.GetSaleDTO(sale); + } + + // POST: api/Sales + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPost] + public async Task> PostSales( Sales sales ) + { + + (Wholesaler wholesaler, Brewery brewery, Beer beer) saleInformation = _salesService.GetSalesInformation(sales); + + if (saleInformation.brewery == null || saleInformation.beer == null) + { + return BadRequest("Brewery or beer don't exist or weren't informed"); + } + + if (sales.Quantity <= 0) + { + return BadRequest("You can't make a sale without informing the quantity"); + } + + if (saleInformation.wholesaler == null) + { + return BadRequest("Wholesaler not informed or dosn't exist. Please check again"); + } + + if (!_salesService.CanWholesalerSellBeer(saleInformation.wholesaler, sales)) + { + return BadRequest("Wholesaler can't buy this beer"); + } + + if (!_salesService.WholesalerHasSpaceInStock(saleInformation.wholesaler, sales)) + { + return BadRequest("The current sale exceeds the stock limit of the wholesaler"); + } + + await _salesService.InsertSale(saleInformation.wholesaler, sales); + + return CreatedAtAction("GetSales", new { id = sales.Id }, sales); + } + + + // DELETE: api/Sales/5 + [HttpDelete("{id}")] + public async Task DeleteSales( int id ) + { + var sales = _salesService.GetSale(id); + if (sales == null) + { + return NotFound(); + } + + _salesService.DeleteSale(sales); + + return NoContent(); + } + } +} diff --git a/Brewery/Controllers/WholesalersController.cs b/Brewery/Controllers/WholesalersController.cs new file mode 100644 index 0000000..f725a46 --- /dev/null +++ b/Brewery/Controllers/WholesalersController.cs @@ -0,0 +1,116 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using BreweryApi.Models; +using Newtonsoft.Json; +using BreweryApi.Models.DTOs; +using BreweryApi.Services; + +namespace BreweryApi.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class WholesalersController : ControllerBase + { + private readonly WholesalerService _wholesalerService; + + public WholesalersController( WholesalerService wholesalerService ) + { + _wholesalerService = wholesalerService; + } + + // GET: api/Wholesalers + [HttpGet] + public async Task>> GetWholesalers() + { + List wholesalers = _wholesalerService.GetWholesalers(); + + return _wholesalerService.GetWholesalerDTOs(wholesalers); + } + + // GET: api/Wholesalers/5 + [HttpGet("{id}")] + public async Task> GetWholesaler(int id) + { + var wholesaler = _wholesalerService.GetWholesaler(id); + + if (wholesaler == null) + { + return NotFound(); + } + + return wholesaler; + } + + [HttpGet("/api/Sale/beer={beerId}&quantity={quantity}&seller={wholesalerId}")] + public async Task> GetQuote(int wholesalerId, int beerId, int quantity) + { + (bool valid, string message) quote = _wholesalerService.CalculateQuote(wholesalerId, beerId, quantity); + + if (!quote.valid) + { + return BadRequest(quote.message); + } + + var messageJson = JsonConvert.SerializeObject(quote.message); + + return Content(messageJson, "application/json"); + + } + + // PUT: api/Wholesalers/5 + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPut("{id}")] + public async Task PutWholesaler(int id, Wholesaler wholesaler) + { + if (id != wholesaler.Id) + { + return BadRequest(); + } + + await _wholesalerService.UpdateWholesaler(wholesaler); + + try + { + _wholesalerService.SaveDb(); + } + catch (DbUpdateConcurrencyException) + { + if (!_wholesalerService.WholesalerExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return NoContent(); + } + + // POST: api/Wholesalers + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPost] + public async Task> PostWholesaler(Wholesaler wholesaler) + { + await _wholesalerService.InsertWholesaler(wholesaler); + + return CreatedAtAction("GetWholesaler", new { id = wholesaler.Id }, wholesaler); + } + + // DELETE: api/Wholesalers/5 + [HttpDelete("{id}")] + public async Task DeleteWholesaler(int id) + { + var wholesaler = _wholesalerService.GetWholesaler(id); + if (wholesaler == null) + { + return NotFound(); + } + + _wholesalerService.DeleteWholesaler(wholesaler); + + return NoContent(); + } + } +} diff --git a/Brewery/Models/Beer.cs b/Brewery/Models/Beer.cs new file mode 100644 index 0000000..2878cdc --- /dev/null +++ b/Brewery/Models/Beer.cs @@ -0,0 +1,15 @@ +using System.ComponentModel.DataAnnotations; + +namespace BreweryApi.Models +{ + public class Beer + { + [Key] + public int Id { get; set; } + public string? Name { get; set; } + public string? Flavour { get; set; } + public string Age { get; set; } + public int BreweryId { get; set; } + public decimal BreweryPrice { get; set; } + } +} diff --git a/Brewery/Models/Brewery.cs b/Brewery/Models/Brewery.cs new file mode 100644 index 0000000..d3a4f9a --- /dev/null +++ b/Brewery/Models/Brewery.cs @@ -0,0 +1,12 @@ +using System.ComponentModel.DataAnnotations; + +namespace BreweryApi.Models +{ + public class Brewery + { + [Key] + public int Id { get; set; } + public string Name { get; set; } + public required ICollection Beers { get; set; } + } +} diff --git a/Brewery/Models/BreweryContext.cs b/Brewery/Models/BreweryContext.cs new file mode 100644 index 0000000..1d61e51 --- /dev/null +++ b/Brewery/Models/BreweryContext.cs @@ -0,0 +1,57 @@ +using Microsoft.EntityFrameworkCore; + +namespace BreweryApi.Models +{ + public class BreweryContext : DbContext + { + + public BreweryContext() { } + public BreweryContext( DbContextOptions options ) :base(options) + { + + } + + protected override void OnModelCreating( ModelBuilder modelBuilder ) + { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity().HasData( + new Brewery { Id = 1, Name = "Malter", Beers = new List() }, + new Brewery { Id = 2, Name = "Holing", Beers = new List() }, + new Brewery { Id = 3, Name = "Mudkip", Beers = new List() } + ); + + modelBuilder.Entity().HasData( + new Beer { Id = 1, Name = "Malt", Age = "Grand Reserve", BreweryId = 1, Flavour = "Honeyed", BreweryPrice = 15.0m }, + new Beer { Id = 2, Name = "Whisk", Age = "Common", BreweryId = 2, Flavour = "spice", BreweryPrice = 9.0m }, + new Beer { Id = 3, Name = "Hon", Age = "Rare", BreweryId = 3, Flavour = "Yest", BreweryPrice = 11.15m} + ); + + modelBuilder.Entity().HasData( + new Wholesaler { Id = 1, Name = "Beer Dreams", StockLimit= 1000, Sales = new List(), Stocks = new List(), AllowedBeersId = [1] }, + new Wholesaler { Id = 2, Name = "Beerum", StockLimit= 800, Sales = new List(), Stocks = new List(), AllowedBeersId = [1,2,3] }, + new Wholesaler { Id = 3, Name = "Quantum Beers", StockLimit= 1500, Sales = new List(), Stocks = new List(), AllowedBeersId = [1,3] } + ); + + modelBuilder.Entity().HasData( + new Sales { Id = 1, BeerId = 2, BreweryId = 2, Quantity = 100, SaleDate = DateTime.Now, WholeSalerId = 1 }, + new Sales { Id = 2, BeerId = 1, BreweryId = 1, Quantity = 500, SaleDate = DateTime.Now, WholeSalerId = 1 }, + new Sales { Id = 3, BeerId = 2, BreweryId = 2, Quantity = 400, SaleDate = DateTime.Now, WholeSalerId = 2 }, + new Sales { Id = 4, BeerId = 3, BreweryId = 3, Quantity = 1000, SaleDate = DateTime.Now, WholeSalerId = 3 } + ); + + modelBuilder.Entity().HasData( + new WholesalerStock { Id = 1, WholesalerId = 1, BeerId = 2, StockQuantity = 100 }, + new WholesalerStock { Id = 2, WholesalerId = 1, BeerId = 1, StockQuantity = 500 }, + new WholesalerStock { Id = 3, WholesalerId = 2, BeerId = 2, StockQuantity = 400 }, + new WholesalerStock { Id = 4, WholesalerId = 3, BeerId = 3, StockQuantity = 1000 } + ); + } + + public DbSet Beer { get; set; } = null!; + public DbSet Brewery { get; set; } + public DbSet Sales { get; set; } + public DbSet Wholesalers { get; set; } + public DbSet WholesalerStocks { get; set; } + } +} diff --git a/Brewery/Models/DTOs/BeerDTO.cs b/Brewery/Models/DTOs/BeerDTO.cs new file mode 100644 index 0000000..ef35514 --- /dev/null +++ b/Brewery/Models/DTOs/BeerDTO.cs @@ -0,0 +1,13 @@ +namespace BreweryApi.Models.DTOs +{ + public class BeerDTO + { + public int Id { get; set; } + public string? Name { get; set; } + public string? Flavour { get; set; } + public string Age { get; set; } + public int BreweryId { get; set; } + public decimal BreweryPrice { get; set; } + public Brewery Brewery { get; set; } + } +} diff --git a/Brewery/Models/DTOs/SaleDTO.cs b/Brewery/Models/DTOs/SaleDTO.cs new file mode 100644 index 0000000..c4da817 --- /dev/null +++ b/Brewery/Models/DTOs/SaleDTO.cs @@ -0,0 +1,20 @@ +namespace BreweryApi.Models.DTOs +{ + public class SaleDTO + { + public int Id { get; set; } + public int BreweryId { get; set; } + public int WholeSalerId { get; set; } + public int BeerId { get; set; } + public int Quantity { get; set; } + public DateTime SaleDate { get; set; } + public Brewery? Brewery { get; set; } + public Wholesaler? Wholesaler { get; set; } + public Beer? Beer { get; set; } + + public static explicit operator SaleDTO( Sales v ) + { + throw new NotImplementedException(); + } + } +} diff --git a/Brewery/Models/DTOs/WholesalerDTO.cs b/Brewery/Models/DTOs/WholesalerDTO.cs new file mode 100644 index 0000000..e981631 --- /dev/null +++ b/Brewery/Models/DTOs/WholesalerDTO.cs @@ -0,0 +1,18 @@ +namespace BreweryApi.Models.DTOs +{ + public class WholesalerDTO + { + public int Id { get; set; } + public string Name { get; set; } + + public int StockLimit { get; set; } + + public List Sales { get; set; } + + public List Stocks { get; set; } + + public List AllowedBeersId { get; set; } + + public List AllowedBeersNames { get; set; } + } +} diff --git a/Brewery/Models/Sales.cs b/Brewery/Models/Sales.cs new file mode 100644 index 0000000..1f9fa71 --- /dev/null +++ b/Brewery/Models/Sales.cs @@ -0,0 +1,15 @@ +using System.ComponentModel.DataAnnotations; + +namespace BreweryApi.Models +{ + public class Sales + { + [Key] + public int Id { get; set; } + public int BreweryId { get; set; } + public int WholeSalerId { get; set; } + public int BeerId { get; set; } + public int Quantity { get; set; } + public DateTime SaleDate { get; set; } + } +} diff --git a/Brewery/Models/Wholesaler.cs b/Brewery/Models/Wholesaler.cs new file mode 100644 index 0000000..daa5e0d --- /dev/null +++ b/Brewery/Models/Wholesaler.cs @@ -0,0 +1,16 @@ +namespace BreweryApi.Models +{ + public class Wholesaler + { + public int Id { get; set; } + public string Name { get; set; } + + public int StockLimit { get; set; } + + public List Sales { get; set; } + + public List Stocks { get; set; } + + public List AllowedBeersId { get; set; } + } +} diff --git a/Brewery/Models/WholesalerStock.cs b/Brewery/Models/WholesalerStock.cs new file mode 100644 index 0000000..c99dca1 --- /dev/null +++ b/Brewery/Models/WholesalerStock.cs @@ -0,0 +1,10 @@ +namespace BreweryApi.Models +{ + public class WholesalerStock + { + public int Id { get; set; } + public int WholesalerId { get; set; } + public int BeerId { get; set; } + public int StockQuantity { get; set; } + } +} diff --git a/Brewery/Program.cs b/Brewery/Program.cs new file mode 100644 index 0000000..d4fd737 --- /dev/null +++ b/Brewery/Program.cs @@ -0,0 +1,63 @@ +using BreweryApi.Models; +using BreweryApi.Repositories; +using BreweryApi.Services; +using Microsoft.EntityFrameworkCore; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. + +builder.Services.AddControllers(); +builder.Services.AddDbContext(opt => +opt.UseSqlServer(builder.Configuration.GetConnectionString("BreweryDatabase"))); +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +//This is how you add extra more DI's through application +//builder.Services.AddScoped(); + +builder.Services.AddCors(options => +{ + options.AddPolicy("AllowAngularDev", builder => + { + builder.WithOrigins("http://localhost:4200") + .AllowAnyHeader() + .AllowAnyMethod(); + }); +}); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +using (var scope = app.Services.CreateScope()) +{ + var services = scope.ServiceProvider; + var db = scope.ServiceProvider.GetRequiredService(); + db.Database.EnsureDeleted(); + db.Database.EnsureCreated(); +} + +app.UseCors("AllowAngularDev"); +app.UseHttpsRedirection(); + +app.UseAuthorization(); + + +app.MapControllers(); + +app.Run(); diff --git a/Brewery/Properties/launchSettings.json b/Brewery/Properties/launchSettings.json new file mode 100644 index 0000000..7376bda --- /dev/null +++ b/Brewery/Properties/launchSettings.json @@ -0,0 +1,41 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:18656", + "sslPort": 44363 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "http://localhost:5099", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "https://localhost:7036;http://localhost:5099", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/Brewery/Repositories/BeerRepository.cs b/Brewery/Repositories/BeerRepository.cs new file mode 100644 index 0000000..e4de44e --- /dev/null +++ b/Brewery/Repositories/BeerRepository.cs @@ -0,0 +1,58 @@ +using BreweryApi.Models; +using Microsoft.EntityFrameworkCore; + +namespace BreweryApi.Repositories +{ + public class BeerRepository : IBeerRepository + { + + private BreweryContext _context; + + public BeerRepository(BreweryContext context) + { + _context = context; + } + + public void DeleteBeer( Beer beer ) + { + _context.Beer.Remove(beer); + SaveAsync(); + } + + public Beer getBeerByID( int id ) + { + return _context.Beer.Find(id); + } + + public IEnumerable getBeers() + { + return _context.Beer.ToList(); + } + + public void InsertBeer( Beer beer ) + { + _context.Beer.Add(beer); + SaveAsync(); + } + + public void Save() + { + _context.SaveChanges(); + } + + public void SaveAsync() + { + _context.SaveChangesAsync(); + } + + public void UpdateBeer( Beer beer ) + { + _context.Entry(beer).State = EntityState.Modified; + } + + public Boolean BeerExists(int id) + { + return _context.Beer.Any(e => e.Id == id); + } + } +} diff --git a/Brewery/Repositories/BreweryRepository.cs b/Brewery/Repositories/BreweryRepository.cs new file mode 100644 index 0000000..64dd356 --- /dev/null +++ b/Brewery/Repositories/BreweryRepository.cs @@ -0,0 +1,64 @@ +using BreweryApi.Models; +using Microsoft.EntityFrameworkCore; + +namespace BreweryApi.Repositories +{ + public class BreweryRepository : IBreweryRepository + { + + private BreweryContext _context; + + public BreweryRepository(BreweryContext context) + { + _context = context; + } + + public bool BreweryExists( int id ) + { + return _context.Brewery.Any(e => e.Id == id); + } + + public void DeleteBrewery( Brewery brewery ) + { + _context.Brewery.Remove(brewery); + SaveAsync(); + } + + + public IEnumerable getBreweries() + { + return _context.Brewery.ToList(); + } + + public IEnumerable GetBreweryBeers( Brewery brewery ) + { + return _context.Beer.Where(b => b.BreweryId == brewery.Id).ToList(); + } + + public Brewery getBreweryByID( int id ) + { + return _context.Brewery.Find(id); + } + + public void InsertBrewery( Brewery brewery ) + { + _context.Brewery.Add(brewery); + SaveAsync(); + } + + public void Save() + { + _context.SaveChanges(); + } + + public void SaveAsync() + { + _context.SaveChangesAsync(); + } + + public void UpdateBrewery( Brewery brewery ) + { + _context.Entry(brewery).State = EntityState.Modified; + } + } +} diff --git a/Brewery/Repositories/IBeerRepository.cs b/Brewery/Repositories/IBeerRepository.cs new file mode 100644 index 0000000..77863e7 --- /dev/null +++ b/Brewery/Repositories/IBeerRepository.cs @@ -0,0 +1,16 @@ +using BreweryApi.Models; + +namespace BreweryApi.Repositories +{ + public interface IBeerRepository + { + IEnumerable getBeers(); + Beer getBeerByID( int id ); + void InsertBeer( Beer beer ); + void DeleteBeer( Beer beer ); + void UpdateBeer( Beer beer ); + void Save(); + void SaveAsync(); + Boolean BeerExists( int id ); + } +} diff --git a/Brewery/Repositories/IBreweryRepository.cs b/Brewery/Repositories/IBreweryRepository.cs new file mode 100644 index 0000000..c109f45 --- /dev/null +++ b/Brewery/Repositories/IBreweryRepository.cs @@ -0,0 +1,17 @@ +using BreweryApi.Models; + +namespace BreweryApi.Repositories +{ + public interface IBreweryRepository + { + IEnumerable getBreweries(); + Brewery getBreweryByID(int id); + void InsertBrewery(Brewery brewery); + void DeleteBrewery(Brewery brewery); + void UpdateBrewery( Brewery brewery ); + void Save(); + void SaveAsync(); + IEnumerable GetBreweryBeers(Brewery brewery); + Boolean BreweryExists( int id ); + } +} diff --git a/Brewery/Repositories/ISalesRepository.cs b/Brewery/Repositories/ISalesRepository.cs new file mode 100644 index 0000000..6264d11 --- /dev/null +++ b/Brewery/Repositories/ISalesRepository.cs @@ -0,0 +1,18 @@ +using BreweryApi.Models; +using Microsoft.EntityFrameworkCore; + +namespace BreweryApi.Repositories +{ + public interface ISalesRepository + { + IEnumerable getSales(); + Sales getSaleByID( int id ); + Task InsertSale( Sales sales ); + void DeleteSale( Sales sales ); + void UpdateSale( Sales sales ); + void Save(); + void SaveAsync(); + Boolean SaleExists( int id ); + DbSet GetAll(); + } +} diff --git a/Brewery/Repositories/IWholesalerRepository.cs b/Brewery/Repositories/IWholesalerRepository.cs new file mode 100644 index 0000000..dc45ba7 --- /dev/null +++ b/Brewery/Repositories/IWholesalerRepository.cs @@ -0,0 +1,19 @@ +using BreweryApi.Models; +using Microsoft.EntityFrameworkCore; + +namespace BreweryApi.Repositories +{ + public interface IWholesalerRepository + { + IEnumerable getWholesalers(); + Wholesaler getWholesalerByID( int id ); + Task InsertWholesaler( Wholesaler wholesaler ); + void DeleteWholesaler( Wholesaler wholesaler ); + void UpdateWholesaler( Wholesaler wholesaler ); + void Save(); + void SaveAsync(); + Boolean WholesalerExists( int id ); + DbSet GetWholesalerStocks(); + List GetBeersSold( Wholesaler wholesaler ); + } +} diff --git a/Brewery/Repositories/IWholesalerStockRepository.cs b/Brewery/Repositories/IWholesalerStockRepository.cs new file mode 100644 index 0000000..77e91b1 --- /dev/null +++ b/Brewery/Repositories/IWholesalerStockRepository.cs @@ -0,0 +1,9 @@ +using BreweryApi.Models; + +namespace BreweryApi.Repositories +{ + public interface IWholesalerStockRepository + { + Task InsertStockRegistry( WholesalerStock wholesalerStock ); + } +} diff --git a/Brewery/Repositories/SalesRepository.cs b/Brewery/Repositories/SalesRepository.cs new file mode 100644 index 0000000..0938433 --- /dev/null +++ b/Brewery/Repositories/SalesRepository.cs @@ -0,0 +1,63 @@ +using BreweryApi.Models; +using Microsoft.EntityFrameworkCore; + +namespace BreweryApi.Repositories +{ + public class SalesRepository : ISalesRepository + { + + private BreweryContext _context; + + public SalesRepository(BreweryContext context) + { + _context = context; + } + + public void DeleteSale( Sales sale ) + { + _context.Sales.Remove(sale); + SaveAsync(); + } + + public DbSet GetAll() + { + return _context.Sales; + } + + public Sales getSaleByID( int id ) + { + return _context.Sales.Find(id); + } + + public IEnumerable getSales() + { + return _context.Sales.ToList(); + } + + public async Task InsertSale( Sales sale ) + { + await _context.Sales.AddAsync(sale); + await _context.SaveChangesAsync(); + } + + public bool SaleExists( int id ) + { + return _context.Sales.Any(e => e.Id == id); + } + + public void Save() + { + _context.SaveChanges(); + } + + public void SaveAsync() + { + _context.SaveChangesAsync(); + } + + public void UpdateSale( Sales sale ) + { + _context.Entry(sale).State = EntityState.Modified; + } + } +} diff --git a/Brewery/Repositories/WholesalerRepository.cs b/Brewery/Repositories/WholesalerRepository.cs new file mode 100644 index 0000000..cf367cd --- /dev/null +++ b/Brewery/Repositories/WholesalerRepository.cs @@ -0,0 +1,69 @@ +using BreweryApi.Models; +using Microsoft.EntityFrameworkCore; + +namespace BreweryApi.Repositories; + +public class WholesalerRepository : IWholesalerRepository +{ + private BreweryContext _context; + + public WholesalerRepository(BreweryContext context) + { + _context = context; + } + + public void DeleteWholesaler( Wholesaler wholesaler ) + { + _context.Wholesalers.Remove(wholesaler); + SaveAsync(); + } + + public Wholesaler getWholesalerByID( int id ) + { + return _context.Wholesalers.Find(id); + } + + public IEnumerable getWholesalers() + { + return _context.Wholesalers.ToList(); + } + + public async Task InsertWholesaler( Wholesaler wholesaler ) + { + await _context.Wholesalers.AddAsync(wholesaler); + await _context.SaveChangesAsync(); + } + + public void Save() + { + _context.SaveChanges(); + } + + public void SaveAsync() + { + _context.SaveChangesAsync(); + } + + public void UpdateWholesaler( Wholesaler wholesaler ) + { + _context.Entry(wholesaler).State = EntityState.Modified; + } + + public List GetBeersSold(Wholesaler wholesaler) + { + return _context.Beer + .Where(b => wholesaler.AllowedBeersId + .Contains(b.Id)) + .Select(b => b.Name).ToList(); + } + + public DbSet GetWholesalerStocks() + { + return _context.WholesalerStocks; + } + + public bool WholesalerExists( int id ) + { + return _context.Wholesalers.Any(e => e.Id == id); + } +} diff --git a/Brewery/Repositories/WholesalerStockRepository.cs b/Brewery/Repositories/WholesalerStockRepository.cs new file mode 100644 index 0000000..71d815e --- /dev/null +++ b/Brewery/Repositories/WholesalerStockRepository.cs @@ -0,0 +1,21 @@ +using BreweryApi.Models; + +namespace BreweryApi.Repositories +{ + public class WholesalerStockRepository : IWholesalerStockRepository + { + + private BreweryContext _context; + + public WholesalerStockRepository( BreweryContext context ) + { + _context = context; + } + + public async Task InsertStockRegistry( WholesalerStock wholesalerStock ) + { + await _context.WholesalerStocks.AddAsync(wholesalerStock); + await _context.SaveChangesAsync(); + } + } +} diff --git a/Brewery/Services/BeerService.cs b/Brewery/Services/BeerService.cs new file mode 100644 index 0000000..384a848 --- /dev/null +++ b/Brewery/Services/BeerService.cs @@ -0,0 +1,106 @@ +using BreweryApi.Models; +using BreweryApi.Models.DTOs; +using BreweryApi.Repositories; + +namespace BreweryApi.Services +{ + public class BeerService + { + private readonly IBeerRepository _beerRepository; + private readonly IBreweryRepository _breweryRepository; + + public BeerService( IBeerRepository beerRepository, IBreweryRepository breweryRepository ) + { + _beerRepository = beerRepository; + _breweryRepository = breweryRepository; + } + + public List GetBeers() + { + var beers = _beerRepository.getBeers(); + var beersDTO = new List(); + + foreach (var beer in beers) + { + var brewery = _breweryRepository.getBreweryByID(beer.BreweryId); + + beersDTO.Add(new BeerDTO + { + Id = beer.Id, + Name = beer.Name, + Age = beer.Age, + Brewery = brewery, + BreweryId = beer.BreweryId, + BreweryPrice = beer.BreweryPrice, + Flavour = beer.Flavour + }); + } + + return beersDTO; + } + + public Beer GetBeer( int id ) + { + var beer = _beerRepository.getBeerByID(id); + + if (beer == null) + { + return null; + } + + return beer; + } + + public BeerDTO GetBeerDTO( int id ) + { + var beer = _beerRepository.getBeerByID(id); + + if (beer == null) + { + return null; + } + + var brewery = _breweryRepository.getBreweryByID(beer.BreweryId); + + var dto = new BeerDTO + { + Id = beer.Id, + Name = beer.Name, + Age = beer.Age, + Brewery = brewery, + BreweryId = beer.BreweryId, + BreweryPrice = beer.BreweryPrice, + Flavour = beer.Flavour + }; + + return dto; + } + + public void DeleteBeer(Beer beer) + { + _beerRepository.DeleteBeer(beer); + SaveDb(); + } + + public void InsertBeer(Beer beer) + { + _beerRepository.InsertBeer(beer); + SaveDb(); + } + + public void UpdateBeer(Beer beer) + { + _beerRepository.UpdateBeer(beer); + } + + public void SaveDb() + { + _beerRepository.SaveAsync(); + } + + public bool BeerExsists(int id) + { + return _beerRepository.BeerExists(id); + } + } +} diff --git a/Brewery/Services/BreweryService.cs b/Brewery/Services/BreweryService.cs new file mode 100644 index 0000000..83d827e --- /dev/null +++ b/Brewery/Services/BreweryService.cs @@ -0,0 +1,66 @@ +using BreweryApi.Models; +using BreweryApi.Repositories; + +namespace BreweryApi.Services +{ + public class BreweryService + { + private IBreweryRepository _breweryRepository; + + public BreweryService( IBreweryRepository breweryRepository ) + { + _breweryRepository = breweryRepository; + } + + public List GetBreweries() + { + List Breweries = (List)_breweryRepository.getBreweries(); + + foreach (var brewery in Breweries) + { + brewery.Beers = (ICollection)_breweryRepository.GetBreweryBeers(brewery); + } + + return Breweries; + } + + public Brewery GetBrewery( int id ) + { + var brewery = _breweryRepository.getBreweryByID(id); + + if (brewery == null) + { + return null; + } + + brewery.Beers = (ICollection)_breweryRepository.GetBreweryBeers(brewery); + + return brewery; + } + + public void DeleteBrewery( Brewery brewery ) + { + _breweryRepository.DeleteBrewery(brewery); + } + + public void InsertBrewery( Brewery brewery ) + { + _breweryRepository.InsertBrewery(brewery); + } + + public void UpdateBrewery( Brewery brewery ) + { + _breweryRepository.UpdateBrewery(brewery); + } + + public void SaveDb() + { + _breweryRepository.SaveAsync(); + } + + public bool BreweryExsists( int id ) + { + return _breweryRepository.BreweryExists(id); + } + } +} diff --git a/Brewery/Services/SalesService.cs b/Brewery/Services/SalesService.cs new file mode 100644 index 0000000..e4582fd --- /dev/null +++ b/Brewery/Services/SalesService.cs @@ -0,0 +1,128 @@ +using AutoMapper; +using BreweryApi.Models.DTOs; +using BreweryApi.Models; +using BreweryApi.Repositories; + +namespace BreweryApi.Services +{ + public class SalesService + { + private readonly ISalesRepository _salesRepository; + private readonly IBreweryRepository _breweryRepository; + private readonly IBeerRepository _beerRepository; + private readonly IWholesalerRepository _wholesalerRepository; + private readonly MapperConfiguration _mapperConfiguration; + + public SalesService( ISalesRepository repository, IBeerRepository beerRepository, IBreweryRepository breweryRepository, IWholesalerRepository wholesalerRepository ) + { + _salesRepository = repository; + _beerRepository = beerRepository; + _breweryRepository = breweryRepository; + _wholesalerRepository = wholesalerRepository; + + _mapperConfiguration = new MapperConfiguration(mapper => mapper.CreateMap()); + } + + public List GetSales() + { + return _salesRepository.getSales().ToList(); + } + + public Sales GetSale( int id ) + { + return _salesRepository.getSaleByID(id); + } + + public void UpdateSale( Sales sale ) + { + _salesRepository.UpdateSale(sale); + } + + public void SaveDB() + { + _salesRepository.SaveAsync(); + } + + public bool SaleExists( int id ) + { + return _salesRepository.SaleExists(id); + } + + public void DeleteSale( Sales sale ) + { + _salesRepository.DeleteSale(sale); + } + + public (Wholesaler wholesaler, Brewery brewery, Beer beer) GetSalesInformation( Sales sales ) + { + var wholesaler = _wholesalerRepository.getWholesalerByID(sales.WholeSalerId); + var beer = _beerRepository.getBeerByID(sales.BeerId); + var brewery = _breweryRepository.getBreweryByID(sales.BreweryId); + + return (wholesaler, brewery, beer); + } + + public bool CanWholesalerSellBeer( Wholesaler wholesaler, Sales sale ) + { + return wholesaler.AllowedBeersId.Contains(sale.BeerId); + } + + public bool WholesalerHasSpaceInStock( Wholesaler wholesaler, Sales sale ) + { + int stock = _wholesalerRepository.GetWholesalerStocks() + .Where(stock => stock.WholesalerId == wholesaler.Id).ToList() + .Select(stock => stock.StockQuantity) + .Aggregate(( StockUsed, next ) => StockUsed + next); + + return wholesaler.StockLimit > stock + sale.Quantity; + } + + public async Task InsertSale( Wholesaler wholesaler, Sales sale ) + { + var wholesaleStock = _wholesalerRepository.GetWholesalerStocks() + .FirstOrDefault(w => + w.WholesalerId == wholesaler.Id + && w.BeerId == sale.BeerId); + + if (wholesaleStock != null) + { + wholesaleStock.StockQuantity += sale.Quantity; + _wholesalerRepository.SaveAsync(); + } + + await _salesRepository.InsertSale(sale); + } + + public List GetSalesDTO( List sales ) + { + List dtos = new List(); + + var mapper = _mapperConfiguration.CreateMapper(); + + foreach (Sales sale in sales) + { + SaleDTO dto = mapper.Map(sale); + + dto.Beer = _beerRepository.getBeerByID(sale.BeerId); + dto.Brewery = _breweryRepository.getBreweryByID(sale.BreweryId); + dto.Wholesaler = _wholesalerRepository.getWholesalerByID(sale.WholeSalerId); + + dtos.Add(dto); + } + + return dtos; + } + + public SaleDTO GetSaleDTO( Sales sale ) + { + var mapper = _mapperConfiguration.CreateMapper(); + SaleDTO dto = mapper.Map(sale); + + dto.Beer = _beerRepository.getBeerByID(sale.BeerId); + dto.Brewery = _breweryRepository.getBreweryByID(sale.BreweryId); + dto.Wholesaler = _wholesalerRepository.getWholesalerByID(sale.WholeSalerId); + + return dto; + } + } +} diff --git a/Brewery/Services/WholesalerService.cs b/Brewery/Services/WholesalerService.cs new file mode 100644 index 0000000..eaea790 --- /dev/null +++ b/Brewery/Services/WholesalerService.cs @@ -0,0 +1,161 @@ +using AutoMapper; +using BreweryApi.Models.DTOs; +using BreweryApi.Models; +using BreweryApi.Repositories; + +namespace BreweryApi.Services +{ + public class WholesalerService + { + private readonly ISalesRepository _salesRepository; + private readonly IWholesalerRepository _wholesalerRepository; + private readonly IBeerRepository _beerRepository; + private readonly IWholesalerStockRepository _wholesalerStockRepository; + private readonly MapperConfiguration _mapperConfiguration; + + public WholesalerService( IWholesalerRepository repository, ISalesRepository salesRepository, IBeerRepository beerRepository, IWholesalerStockRepository wholesalerStockRepository ) + { + _wholesalerRepository = repository; + _salesRepository = salesRepository; + _beerRepository = beerRepository; + _wholesalerStockRepository = wholesalerStockRepository; + + _mapperConfiguration = new MapperConfiguration(mapper => mapper.CreateMap()); + + } + + public List GetWholesalers() + { + return _wholesalerRepository.getWholesalers().ToList(); + } + + public Wholesaler GetWholesaler( int id ) + { + var wholesaler = _wholesalerRepository.getWholesalerByID(id); + + if (wholesaler == null) + { + return null; + } + + wholesaler.Sales = _salesRepository.GetAll() + .Where(s => s.WholeSalerId == wholesaler.Id) + .ToList(); + + wholesaler.Stocks = _wholesalerRepository.GetWholesalerStocks() + .Where(s => s.WholesalerId == wholesaler.Id) + .ToList(); + + return wholesaler; + } + + public async Task UpdateWholesaler( Wholesaler wholesaler ) + { + _wholesalerRepository.UpdateWholesaler(wholesaler); + await UpdateStockRegistry(wholesaler); + } + + public void SaveDb() + { + _wholesalerRepository.SaveAsync(); + } + + public bool WholesalerExists( int id ) + { + return _wholesalerRepository.WholesalerExists(id); + } + + public void DeleteWholesaler( Wholesaler wholesaler ) + { + _wholesalerRepository.DeleteWholesaler(wholesaler); + } + + private async Task UpdateStockRegistry(Wholesaler wholesaler) + { + foreach (int beerId in wholesaler.AllowedBeersId) + { + var wholesaleStock = _wholesalerRepository.GetWholesalerStocks() + .FirstOrDefault(w => + w.WholesalerId == wholesaler.Id + && w.BeerId == beerId); + + if (wholesaleStock == null) + { + await _wholesalerStockRepository.InsertStockRegistry( + new WholesalerStock + { + Id = 0, + BeerId = beerId, + StockQuantity = 0, + WholesalerId = wholesaler.Id, + }); + } + } + } + + public async Task InsertWholesaler( Wholesaler wholesaler ) + { + await _wholesalerRepository.InsertWholesaler(wholesaler); + await UpdateStockRegistry(wholesaler); + } + + public (bool, string) CalculateQuote( int wholesalerId, int beerId, int quantity ) + { + var wholesaler = _wholesalerRepository.getWholesalerByID(wholesalerId); + var beer = _beerRepository.getBeerByID(beerId); + + if (wholesaler == null || beer == null) + { + return (false, "Beer or wholesaler don't exist"); + } + + if (!wholesaler.AllowedBeersId.Contains(beer.Id)) + { + return (false, "Wholesaler can't sell this beer"); + } + + decimal quotePrice = quantity * beer.BreweryPrice; + + if (quantity > 20) + { + quotePrice = quotePrice - (quotePrice * (20 / 100)); + + } + if (quantity > 10) + { + quotePrice = quotePrice - (quotePrice * (10 / 100)); + } + + var result = $"The price for the quoted order from {wholesaler.Name} for {quantity} units of {beer.Name} will total at around {quotePrice}"; + + return (true, result); + } + + + public List GetWholesalerDTOs( List wholesalers ) + { + var mapper = _mapperConfiguration.CreateMapper(); + + List dtos = new List(); + + foreach (Wholesaler wholesaler in wholesalers) + { + WholesalerDTO dto = mapper.Map(wholesaler); + + dto.Sales = _salesRepository.GetAll() + .Where(s => s.WholeSalerId == wholesaler.Id) + .ToList(); + + dto.Stocks = _wholesalerRepository.GetWholesalerStocks() + .Where(s => s.WholesalerId == wholesaler.Id) + .ToList(); + + dto.AllowedBeersNames = _wholesalerRepository.GetBeersSold(wholesaler); + + dtos.Add(dto); + } + + return dtos; + } + } +} diff --git a/Brewery/appsettings.Development.json b/Brewery/appsettings.Development.json new file mode 100644 index 0000000..8879853 --- /dev/null +++ b/Brewery/appsettings.Development.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "ConnectionStrings": { + "BreweryDatabase": "Server=(localdb)\\mssqllocaldb;Database=Brew;Trusted_Connection=True;MultipleActiveResultSets=true" + } +} diff --git a/Brewery/appsettings.json b/Brewery/appsettings.json new file mode 100644 index 0000000..23db934 --- /dev/null +++ b/Brewery/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "ConnectionStrings": { + "BreweryDatabase": "Server=(localdb)\\mssqllocaldb;Database=Brew;Trusted_Connection=True;MultipleActiveResultSets=true" + } +} \ No newline at end of file diff --git a/BreweryApi.sln b/BreweryApi.sln new file mode 100644 index 0000000..52c056b --- /dev/null +++ b/BreweryApi.sln @@ -0,0 +1,33 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34309.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{AE5A2F5A-7221-41C7-AA9E-B6EB114B7D6F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BreweryApi", "Brewery\BreweryApi.csproj", "{11495423-D929-4C77-B8A8-6652272B168E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BreweryTests", "Tests\BreweryTests\BreweryTests.csproj", "{0AC52636-D57E-46C6-93AB-7B15105D90CF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {11495423-D929-4C77-B8A8-6652272B168E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11495423-D929-4C77-B8A8-6652272B168E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11495423-D929-4C77-B8A8-6652272B168E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11495423-D929-4C77-B8A8-6652272B168E}.Release|Any CPU.Build.0 = Release|Any CPU + {0AC52636-D57E-46C6-93AB-7B15105D90CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AC52636-D57E-46C6-93AB-7B15105D90CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AC52636-D57E-46C6-93AB-7B15105D90CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AC52636-D57E-46C6-93AB-7B15105D90CF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BFB29EB5-6435-45C3-9D2E-7BF657DF087F} + EndGlobalSection +EndGlobal diff --git a/FrontEnd/BreweryAppAngular/.editorconfig b/FrontEnd/BreweryAppAngular/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/FrontEnd/BreweryAppAngular/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/FrontEnd/BreweryAppAngular/.vscode/extensions.json b/FrontEnd/BreweryAppAngular/.vscode/extensions.json new file mode 100644 index 0000000..77b3745 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 + "recommendations": ["angular.ng-template"] +} diff --git a/FrontEnd/BreweryAppAngular/.vscode/launch.json b/FrontEnd/BreweryAppAngular/.vscode/launch.json new file mode 100644 index 0000000..925af83 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "ng serve", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: start", + "url": "http://localhost:4200/" + }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + } + ] +} diff --git a/FrontEnd/BreweryAppAngular/.vscode/tasks.json b/FrontEnd/BreweryAppAngular/.vscode/tasks.json new file mode 100644 index 0000000..a298b5b --- /dev/null +++ b/FrontEnd/BreweryAppAngular/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/FrontEnd/BreweryAppAngular/README.md b/FrontEnd/BreweryAppAngular/README.md new file mode 100644 index 0000000..6796c3e --- /dev/null +++ b/FrontEnd/BreweryAppAngular/README.md @@ -0,0 +1,27 @@ +# BreweryApp + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.6. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/FrontEnd/BreweryAppAngular/ZqSbrg.jpg b/FrontEnd/BreweryAppAngular/ZqSbrg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10fc2cb28464fcefcded42de28fe41400d729080 GIT binary patch literal 402572 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 PIxlB5#K3B7Yq{u= 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\y`&uaFwpK4a_Nrmr9YcbR@!ejlrwt5rT?R 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

    v5ePwKN#)QWA>s+;8~2^C(6Q_D1^_ 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

    !`+M1v6Dig6_U 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

    GIUXr->N#rn6CtZC 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%0Ak-% z`$Ot+;y=i=wt$&Qze!9}?fR`5rg}t5BcO33{i~k}*V?){HbBH}l;hZKC-iP~;&fe& zV7_vJguw;GjATExF12SGYom1*ZK`srGU{YB`*kWq6C(FwT47}KpRBE%dCZE zgnR~_N-sdJyq5ryD;mg%08ic&wR$!}UX($Mq1V0&QIl$XAPtO0PR-ol4{SHMfFeA$g&LWxJXF&wuvlWu)esI zAsKnLk1Qe>f%8mJeKUxRr&P$0>$o<;M^wU~%Nr;4QliPr%Nt}QXA$t)07Pe;ai?5N zEsR)sOm`C_;6MeF`572v8=}*cD1dJ$f!ss>(=C3i<|#Epe#+-5!X)exiTyiL;br>7 zl^GJK0UF~FNhAqxJ};t44n+C^X3560tbjknKW}Anyp|ja%%ut;As2BQCS*^}LBB$m zXlHMBfyHEyNu4Y{Hgx;dmsPuLYWV4q_~1Y;1Yuz(?~<9H#uDvYs>7R;D(kW%@a?9@ zbMW4hF?aV{92;wv_~S&_4usPnTz33Q#%|iT(~m`xoU%B-IRkmyD9OiR5bU*TOFh?R zaDyTP>F~}aED4Z=w;!1@{>6@w(rxu}Y~pCggubFuop0pOhWHjK$}d{VaU%%KW7Fw_ zuc=vg2d0FTn`=`H;}jFNVsHbi#0Nckl^c~w0GXUpM(roIF#RvpGNb%j;LR_Xjb#3% zI#kXG!aL2eE;{av0oV3RC734JB#j$HJu4+2-P!%g*XY)DNZ2PRLKV)Ja9%a&KT26n zQkLv$M7A4cVIjy7fCu2}OIF~p#Kzpwj>w+7qYb}4`mJ5-JZGWhix?6kd}Y`*b&@{P z0-TqPQ(Rgyro-w!fuUaCo3goFd%%_^FpEkrF90AL^eH#3Vk`PeH1w)2-ONkBreFhK4*mM05?;##b<5qJ(q;`%hT}~ypBdqcEblRBtSK@+X%)ZznB0% z#mf1y+W!En8)>g=C+zxH37x@FC}YNvU7{m>R~@pM=tRIII`Qk|#?t0(@7>GE`1|9h z^m|NvTmud8iL4QzjfBJj;J&85UlrFlllj-j-fy0v^wdJ}D1Aia0R#B065bkzT>fdM z(oS0#wt6Yfz@sY~cGxZwt|meP`8)o}S@U@>lU&(mKDl-9`7e)dnEjqNFCT==28*eY z{{Z0|z>x#@nS9N5`q$ppZ;wy^02c={*f?2Ln>fE#n>v`=m%1nXCLk`e%V+-p4RV^_ zy8ha{zJIZ~IwnNpI{?#sZ!Aa0a_c`L&;A|cn@)~4PquTYti$Q#+OReU*X><(^W}aE z=^VLW+eEzHOCzHTWE=FZzbhXO)6mt#MnV@2@#sOi(f6?`a;}qG>fKiv?dzZ?Wp&eM z?8^Iz{^c)|dFr#prSvqtzs1TjHHvHiIP~tc5`G$~^KQT6>+I*xhv7+SnPbcr{{S+= zKT6#5Z|LWL8%1*AaOEwu-Au=4woxQ}i!FS+GyW{}{{U51@E{#4u4ne5Ouw~R=D$`p z{9EkBcMC{yAqbz2=&qB^TyNsmU*zyVfLA$p8>RiFboreB0L9zs`>U4~C`G4;4}po1 z{?)IS>dpLZy_K8+5B~L@o-r!?ne}Jjv(Z(RQxmN~1JoFoAEjzr?#A9fp*Ge7MyUO; z{{U*&Uw1wzCS#;)8uUJxRi484boAn1_NobpomR#+kR)oTfA=B%>RSma>~mn2`9iWI z&>BMp630&iB*P?IRe06QbLj@@tHJs$>$Q$sNcT9t_^3B z?Qz|SrmoyMzD`17`-OLs4z-!aL7d2s!dH{eJi7*|zZK_Yx*x+-hDm$z4c9@^fY_j&8R zyfQ>>vpho02H^_!l3ar0qU}7^dOaK^^>Z?~S=BAKp!+A7w{-BiDA^D+78yjJk!D>d<>@=e9lry~ z>9dcO#`D}{W%by(4-(#}1jkQ^3(>EW$G2-9ZNDGOuYRmi=-;hpjA&z(H+jX+VhK(#UtVOuBt{|ov;P2UmsO6(w`4PU zA%`M&Sw=?RFYMJR5&9M^$5y&lemdN2Z2TTq4>Zw}i*?jm%_GnSM>Mjzt+|v#}+l zErIGj5+9abK})Q|JddA=94Xh4firg-l=8&5{vh9qn|v&Xe;%q%z1O5u8!WOqklqA@ z#A;Tmc?{fU6bbmY4C5;(rbFgv?(dasr8 zab)g}_68uy+v4IqerpZldZhUY*$Ek436^OPbtC7qRb++wJKSGAgU|7F@ILX#l%r7F z#`BfEnK;pR^s)m3c0a?YUdiOv&O3hZ4*nZ2Ek9;{XNKl|y*OK(M6fN_6OhN5o*mHa zYqy~P01TL~KbOJBuXleBn_aqgzRq~$2(l(tc~3wlOTU8; z%!59x81+`_%-i${-3iqyCy^^5FU2Bkf3t5!N%}A9#11^A=;UPNANo@DuGDz3WT3w?cLxcJil(K~C zw#G1`(j}{Ii0Sf7qPf>_a3dfGZ&Y>pt1K)~D#?tslv}RY&L{6zFveBNyop!@U~Dov z4Zy#KipvtrE|nRTO{HB`%l1sh@3}fLGgKJd31c1IyxkKmaixWMHEXgGe&$D4@GP$) zN~Y?ri@Yii-+3qXGQ6WaYb}*n$IT6Yc&j#vb!Pf&U(^D!N9Nprur8dK;**5*8{ju| z22%dzGS?Eui%*r}0P5R|CSqWc#g|6~{(su9D3~y+@#S)2+HLS3B*}yrx9DXvuVM=) zBv~3VVgLo=J_k?Grc`Xgvez}lCB(t$Qz;` z#b)T&$y%u7#A0f*ccx32$7t8)&a-rGc^adgg&-T$A2JW>TyC2?&n#bE*prr*0DdLE zv1aSHv!vfz*IX-}f^jiD-D5SZeGQRb2r&ZctR#7hZDakZn#_~dGD{zgB!eIb=tR2x zip{o5q*icoBngGFiTIVSb)SxVsyHq9ErI)4YvlST3Li;mEW%IF0t&p@x==Mv16Yyv zE0o1nTc(ZT%Aq=V6Wc{_f#p32`;(~<2yMX9Z6>>u~!ITp{U6TexO!%e@hpDer!I#$t zJ`st8W4pUfx(OfeZC@VwZGB1Of+)q0{J6!xW*ET#0O?oczUK%N#*LD3Y~lMLPZ~e^ zYg6Q>1o}yW^0vtV)$fFV^wggvYl7Oa=q)J9?cM_Tv;P3X75O&zP77?Izy@;$KlLo! zKU$Z|eMzU#zK;6acy5AlxYplrDo-V9>-1D`A_nnnnCQm&%k=G9o?6Y*=rF>VXqi_r z*v{J+eSjy)eak1Z+VQI=Y-psDp)s~&UyFq2eQhx>qVtIuH>LoWaV(1lqrk)`JL^-2 z)BP1pWep<4_iU>^&Y?`tb>n@IReZx6V+m=jt(3n|)mdcqF1Og#VA&b8=S7`%$lE9Z z^U+&px?=wT#dNn4YnDADYicqiN6$sd*`Dpmwe(Z;^-K7dW8+R;w@&#I-z9GN^)Y>o z8ZkBrdU(~J&HiZD;AJHFKUTO~-DP)69x{yvkr@U%ZMGr5-F2Uo_<}OZvSMDQKXw*d zbcfv~XObn;=zl{tKl3rA9;9xW`RL0tZGEcnx6x6Yqd($(F4&TGP9%wauIqW9Q-;dU zUK%pH+_{W-_UOmra=4+y4MDQ#tf!*(s-Qi*WFc|=0&>7HEj;UPz3zk6=t|% z+f@!~?eAR`%mMgeQ#t)A;wBQ_UfD-nQCz=vuq1x)m@x}qCM+VmYr3!A5*qwc%Nm%a z7TG%`8l_PeK3>WW{Y%^fGpjp)`xC$+B}Zt`-P_7@2r>&@AjJ(q)^rsf+clY}OvSpj3iUrxW z$blKxyIFaQ{KGQRa3#^VYgs#H!@Z^d09vytb^To1VJJkCSv}m?N&O|32~ zRJGKmHVX~BjnTMBG;tviBN&Y%0)Hq2vYTz}&a>TaPA?~yeK%D)pjCpf>d|PDPv~05(VlTrPNOR3 zY?Q}A8p-*)E5qoVzO2$bgpcrqh$C5T01v#aNfPWpZm!Lnc8d=n zX%d;8a3#Y)Mknp=rv>LdFvVQ5Y?+Mhmc1G;Bl1fLeyihFTu6H?gh1_C{Vo*g?9|)p zXm#3>s!6kO$hQA9IjKS@#eP@*SLp0b7q_BRew; zh#6Kqddjdvr%z)v(3V`lCnqXR+IAhI>}7g;M9ud!axaU<-29EM=WK{SX&R@0L-~xV z7KZwpcF&>pt^WY+la-#vGwRH6X{LMk+bIvg_E<;U>s;;jP7~d6ws9LJJ+MC+KkHfQ zvJ_oxUNuL4?&opS;!2gMle2X9$k`GOyFdY!aMo}`d?xV*V2Bo{hB}D0^=q!W z=3(JE3NOaXzMA;kZN`8;p_HqHqS}c@ZVKZh?)!c{rrOJP>-^q&+^pP7KZgq{ePbV5 zxkQe>ZmW9FtKX!T>-?H=xy{d2vbKzLWOq)sqZNnj>Hl2c)B9 zqD0T`&9qT<%)b8sqm!3DHXBA&c48R5&C;q>pSmS<*55}-KC}9{x6vGtBa2=?B6^sK z!WIGW&_#94TduRw#LvL4ALsE_;sf}sje>gootIs9`ncUC^sax=V+NHOQiX?68A>8Q zdh5&R$HzS@M5yH@7>ngbRZaLsu`>NjKWkH6y|Tq;8EoWzI{gxQiwGfZZ5+1O=*cW> z>{&dZVmnSJX!)(pwXT13FV^P7mX_iH08G0p#xs1oGs|U!dYI9P{isfH{SLR=)s9*3 z5aP&}$F#w^ZYTAtHus5slm$Gb1B198giK5HCoLHN0PQTV&#Y~}u){|omE*1LSiW7S zeMu851DYT;>=nj6Q{|WaqdMX|u%r@o=vXN))h{1rbAcPA@g8ppZV_EM;mYYRV}C7_ z2r-RBjeiV?f4x3Nej2tIm(?#)HPr8~khk3HJmOyqT~Ny;8DrzvVbV5LK#G5Uu z?X3R*f?$@9gZE!2@_f4Oan7=%Fd4C`BF}2UD z=NUf8_Z{1$Wse9SEPXn(ltJ#x&99ePGm859`Q*5B=k4BKiI=Agm`XDIaWv@XtXfk0 zinGtI-j(d}`E5#g>%{Dt6j~49qtO*x@!K~e?^?b{^=sw6uqw&p=YP}Lb=X#d-i}O6 zdVcU5R`Jo-J@_{I~hN~9|&tF*0o9*lz_()}8(=FO>l`wy>xMi(8 zmUgatT`zen%IE(8PI#lbbjti#=-!F0Q2Ch1{{U+CY59A4^>Ewqd|P(=Tv>Y)GO|V& zFI+S&8@E<}M&P@DmoI%>Z{h8)_Uz7myY7rQ#F z@LKVaOvg}Tx(ivJiO%}U62tWfj^R0Y5@3Gisk0kc2amK7zE{9>@`%iR;nt?kR|=ZW!U21t_KMu;z9erixT)_CN z&NK1s0~RjQckptYlZ{y%Sj3MfPl;K(E*)=gPP`stA1Z&t5sk4jksuBANv6dNLyxG$iKf|qy-eMkMvCpc zbDGsRaCYO`YCC4y!pM=fa6Kg-ntZW%7Cd#a8pc0(Pm(VhVS!}2#sqeG1v#e+?7FNC zSjG-|M{xeto4WCHb4m;g}?{kv(0!I;a%p8A_mqcU0dx5&MyiOq5zLjMf?fd z_PUp4npNJXr5(Pgj=iQ^Ptdd7sVrY#A(2@V^`R)9n}lTFdYmI%_FOr+^q-}xv5Ww3 zxo6{9PQOH(OuwmCR`atS&# z34tyD00K;9at11;tR|&EK zgo!$n*T+IqYPc!52{5)YlWQ1>Nxs%s4C2*USq=fvH{$*ji~LeA7C7YJq#<0)UqB*2 zZ;I9v5KpToK9;WILHY`v6;ytx%hZHr0y}_zvDW%VFHntk9c5>m{1PF)B{~?U*?0oV z$s#|PK#=3$k`|s2oMtCvqzMFw&bc?-Qm0B5n}l5N+b-KoN%<*-%pjHIY&A)V(pv6s zv@KjQ)lK-BTTQXu7`toS{mC%Wh|!RL%#@-!ux(Yg7^apnmzQ;p>;N%8s42-f{Zr^n z35fLs%N?Y|57e(S5iG!#&@GgSJ_HozmrSU?j1!09ct|#zUrl;|;cj`Wo$zYGX8;bc z-ygIU(s|sk<4;Vo&w|PivSa=2KT_#D(aQck^k$zKnGUfM9w5I(x#X43__m7vlOPr_ zkUt`|$}z@>rr7my;i6>0;~9>>sb<*Rm2^E%l8sEQj^5-fR-{|HJ&)*EYl=og#GkPj zh?8GUe&k#bi0Vly-GG0!GI1Y9UK)JUCIm)9Kze*s%HTv~ z?$7qAkY!tqLb*!_G3$3AADXDg)xC^3l9(hDaxk^GN%^F zYvz&s(hLCkE6S$`dhs!!;O!*-6Bc$U%BKjvA4>>rjABnh`hoFb-Dfp;M6=Mc2hx}l z9Y)<4cs{9`aEuoEQaVIGay$H1vrI;FR7qg9D>g+FjN)6U@mr2{Nn_LQRVhSCDzf_k z%sLp?Yo7Z+Z~UwC++TZ@Il9S^VMWsM^1u>)K2@*gWFU-<7h1>YoW^y70)LAK8aRjcMOY02Q4)^JrhjTA575b#$dPN1(-HxI-5Blt z1=Q&jk&I<0^zAe8-2e~V0xntw8Gt-$m%teS{{SKqrz2M$LQ)ZqEuk@Aa`9?qF$e#f?zuBVBBJzi>StZ1At$2qqCJp}prD|%; z+A5IAvR~woPgb@7kFk@pQ)m;$x*{zrqc08h5I!%}YHXH;a>|6*(P4=?ZM1!z0?%5v zXu37z&U>wmfDK#KEPNP+scSie^fJqk1NRcPMCsxPQuSF-8=(+3RW02Cuo3zLsUuf# zeBB@_#WC(gtcwqrSBySSpo;P>mcfq^GIW$>A{*^0T~>Ku#|I>WeF&b+Coj?z>kfMR z7x{i%B2UxQ(jSOONP+(HvYh4gS1vyw#E4?oH~b-@-=m_uue&zu>_11B7>c0?M0iF! zTi^>(dTjU-GQS-SqX6PLnoHU!csZHuPJxPv!a6$VBXgaMD6Q?cAA(HYJ#3R~jH_ z196evA2Bk}?v{=;&~{gy#tu5?DIO~(kW6gGuedQAiGJGdSLMQSl~p`VkuN(dZiS;S z(!pl$2_vEWv6?1W&dm`x&+jZ3JGarkiZb|$#5Y+CYY%3LA8;z`FIO>2|>nvCo= z?WPgz3`zUff1bGC6luoxwNNs$VlszfB1hV#^VQeKCwA;!B*n%#t|WH=^!wL4zI|P0 zC!(H5i=EK^EUJ|L160?1Ci`WI91UfNlwe;%1b?}7`D>JpjJWYe&-=-p3&yy_2X7D* zn`hCkSnRH^p(4|80Bwu(c@{O_;uw<5d-q=>Gv%1wWv1XN>KFvrpY+gLq_r(9(S+UOz0bcm$$^d={7=lcXi*#jX(6*?L8vl z%~|}KyPyQE6Yh4zpU?_Tq%E|TaI^^Q5VF}sXm*ev?K&;Z-0WgJR0F`&CP{E)C8yfA zH*>;_jxTH_Ia40J2|9g=$vD?OSh*326;kMj;Bz{;WEP=Z$h!F5+*njd7I|qW%4Q3H#TDn;*P=+f zBarlCC{E#eSnu!S(39=%T;`~*@Yn=7n2pcrAcDxa!#hX$*l!Sqm650osbWVf1VR{~1keoKrTtFI;ILP(*fE7$AmSlv4 zW+f9XS}_Cc)kVUyb=O$aHVAeEX|GhK7T9G0yVM3T(8a*h!&Nfe)|MAnDMoOagAmL> zI((GPS*&TD@R5|IWrI(|WKZZ=Ym8AVv4l)Rllxi&`c;`YkmXh)&F26IksqOo)=Vpv z=5it?5hFq*Sp9)qGCr(p1X(DVc4F#brPWW@VHvcC?wKFZrUt4_kPl^Kx9)(Yifb&D zetd$!yGKVKG=>>0%&KMMA^W?$p=$})CwyaHo=}J#!xF5OEtN;Fia~+5&DTpb`$1O9 zlEF4rj}a(HOv|i6JwDZ(R;`G0L?g117y=x(QvU#AylE^|^)i%%BtRW}K5hz}TIC65 zMIuHpX%E^25Z)=ohP z&OgL>$Fbahxmm4FP?5JDK3d5n^(I7rV!Uc|kn+h9a4U&!?n(VhaHq=#yqR2fnC%_9 zx9AF8Fux{R>BgqX4^qhK)Oo+OE>_=1U3__NjaYSt6iQ|EB$gxYT(h(oSFK^0{;5BLQ46 zv0z;75OPEK=(=k)`n}rE)y2vglQNCss=yu+kw2+-*Nc5a9^C4yl&PIWepr|jABdPe z7Od5&c8;zuEt7R-yoxb(4YGC1(=YaZrOxXoW~MKH^--C@^3$y3@tC;K+8%h|%#uH9 zy+1*P7?d2Jp-14=%ekN#OMn9(`y>lTcv^JM(K6-WO7jS99*ece>L zbGUJq(O1AKtNxJ33wUz2d3ySoe`E zYvcj!V8ngpZf}M!hHcuGKHZe#wDJ|icn~x{VOQq*Ip4+G(x|)JIrYD%Z>-<4Vn15c z^Xu&Ae;3I;S!Kub7~~I2Add%xf&FWLCYRaH`23UIRBM@*%!=%Wy++Y5xm?diF@0ga zmYF+Qa3i#UZ~Ups{R~fWjxOemWio$uQ2y099B-lJi?i_=#17Jwf3PXcx>CxCkW6L) z@iQOXuO@L;QC4HPxES~TBzk;^R_z$$wRLH_%y_ktu5o|I8*AL-;k9$ysfy`KI*ho& z5S(hSP4S(M5034g3(Iw}sf=Oo_>XaNI9L_oQQP zVo;_Lut!I_Q3QNI3v*{|XVsgKmR4kaEZk}(OSC2@X_Qayp3APbPT6lwWd0+Ioxt<> zex3YTIaC;l&Qwly?I-dW$b%w0S$g&IX?j$iO|$L%*5h+|k%*@*p&3U)MC2y^CNd-} z?WFXs+U8dp415`H=dV5R>+Gst$>c~s_Y~V7%jA(ic`IK# zpTQjbuViwt^G0)s?Xsd5N%;|r_|wwID((}N$FtIzorH9amG)geNmJn3dgYpU*_irS z6I5SQ7=nJ{wKkPLI<8Qv!Mfb5W7)O={i^2sCDMDIny85W9mZgf2*2w~YEK;ZISt-K z4(%13xACkpsK?D@wd&Qu{?evu{Be&XAC9o@GqfJ&BnSNqb8VdV@M&3pmtsl9cH0pD z0GW=9UnO$?03Tm+S;qeW)5(eO1b|X`K8b%D+PWMJIV^il7U6C;rX&3pXyF8;IrQ(`xh4s=EIGH`?WQ z&R%{t52+UsHkKVVIw^y%xnu)_8(jBRCCb4t0~4>>RKQU>SyeRgQZ`_)3DV3=dBth}J+XV0y9YV?9Aq?Z2W= z9;J^R!A@K0m_5KGNAwh)P5n=YRF(%DFz}fL^Z-^z-V3YpZS0=}_fb9~iIF;_WC>t3 zAE|5PzRdhzRW@<{kSFPk!TeGJL=T5Wsk@g5q4BDbfX0}S?dJVUeQP*`He=TFl>naS zRO{|$G*QXhj~A}nM0-RMLe25zua^6?!<*!R-5E+_z=!*mFN;@6=d0oF8CHMp@h3mp zm@Hf3;b-9Xt$&dhRqk#tZ~~hu2dI%G5BOOxgJ!;MYiv2rGG2P7BO(|#hk@#z&f-$ms;X`z!u&+zdwO9zt+ zx_JH&rPBQgyq=~Wdm5Zu;N53sQ=5JAOn!}X*W4_s`t>x(nE*(QQXoIb^-C6QFiqT? zCOs@^vFrRjpQOn+&vfJ_e753E1d-8&D(5=h%Y8^HSl*@>FAmFiszRK z{L-dm#Cd_USs#E`j!eaH&GiQQsgyf;q|f)sTdkg?+B6LAN6H}>$TI;W5D0C)RVvGrr5 zKh)n;4#Pm((8RI*N^vtim5jWp0wrZNgR7S=d^8HpQtk9pzV>RZj3qq@j3j!0y0wJ6 zMY6@pzCN87m=O``JY*dAmZdX2lQ?Gj36tfz$dJ5v;ew2Y$?){)RrM`WI&wk^{Ty+Ifgi+K{NyQ+ z!ZiaSIY^K^hBDBX?nvmFOkZ-Es-EqUnH}{c54B9yv||e3L6mC%2L2!t0D3oyyy{;Z zA;P0qp5KagJAMjv5N-GbGGGUTgffP&gCb=GMEnZ5Oq@leW(VXu|n zxLS!u5ddmRELa3UeNWn;A~2EE7f}u>?is#pnJ{5U9f8xllPDgC?N&Y-tB?*T>;OIj zO7f|K%L>vC*8A1um{Bf1`0Jrsra$Hp`Br4WbB@g59nlJNtw|tD zkIt+CSggeBwlXAsl;qXNvdS z9&`b$-3{IM2(x~LZp79kxcTmu?3e?o{{SuoY5ww=i;tqeqp~t4jEc-oq_ttb^>UJX z#iJOQf^C7B{n($ql*;0JA;Zc8$SK-K;*3d=@%bxhB%X>-9c83%kQ%muzp>SuLlXKD zTy=(91<^ZnAdwULdaKEtVJyRxKoYzNjU!yF*X#;qsUas+D$rPB2y-aU`=aRA7)fDc zNQqgNJx`ndg{K80jswf&lx<=PP^}#SuPOKZELPHX$kYr+IujLK;l+CSijWyv`A-{j7=cGoz zpeb$jFiSY7Ss@{LJG45Ge%4987m7#Qv`R$VeB@4|J9k8VbO{NDZ+ulj?p;ukv#KXa4}Vlpe8ks$%9clYPvlDbbcyVhHRooMYoNJ$`yCn$H-k z(Z#HZRRSh|H=W<)u4%<}ah#*n$5wD8U;ZMc!&5Dhrkf$@+dD&c14sDkxmS4_sKcrO ztFp;IaK}}fvvX2pVF_8f;b}bv=^cJLNhaxhYb)cWD3es=JOMx6ROjxqPh#7NIK`~E z$KvjPK~`+d(z({+#-d2dc^!5KEg>3X%!uuiQX549Jf*hh_&{{V?xy-0zqVn85w zB$UlDJ<@e?vj=^)n!)@AP5%IfSi5aK9Vd=oRX&Fo8E%b?J4R64oc8r!ihH(IM;~N= z49rRL{{Rj#`G91cslpoGF9zyEN^#NRWo$b9KvU$$qI`Dtu4VXCW7!y+>u=qVmWxw+ z?3c$+kBZWazOJuGmyj@q=k3&mdH$*K-=lHJ7m?Y?w`q4Rc&NQ zU1fIn1Q6tW)roaiI&q~5TU`clgKnPZ)?Kt+b(=U_BP0eH6Q8G%scAvUWAR|GQegJi zf?*3W@NJ!fK5b5g{wqCw*Q8eylIB0l}S%* z?fVqtecJner>~T%pilDo?mwT@i2#nff|tjA+UKP7qb_dQhmCtoLE90wA-`Hr982W( zjOUZcuo+(x2kgYR>1C;-H+5EWRY=ALy8&*}C;Jun)8#y@r)hj!tOWdJuh^z9yg6%q z$ayS!h!UdO$mk49DZpZctysGCdme(1?^ps{JA@(kOYk8HfICq^DG=%)*pzB7T*znJh@@DCk&q z(Q@C%j@7BYR()NSS+^#3L>Cl@)nrVjz=wXZ`6%J zOJqmp1UA1l=HJF^jQu~8xyJIm%`vMcs;C%|mg&=F04_#Oc~B z%(JF%-Q9QAPqtqF07r-SFSsHyZjL` zzeX**!X<<7PP)aRr2}S1*+I*`F9ov?ImjX^_|J(tx)7W(@e<5l~9`xF5*VL zv@E9$JzD3tv%QDz4o511kIv%KWgP{P6W#L%s9bi_S$aBYb-wcd07fkSADcExSU1sa zO}a49P9W>%1nZ*KyX)$^-1d2k^Rp*zIE7PvJ-$x6++SB9vgP*7W0H(?! zFZg{q5%$JKmamUf{EfbimHUFrq(?E28zUk9Z8-3SgYPV{d{fY$kw4uTt*?g3nEGx~ zc=D0fIW@wD{G%T2p%OZeVT8LXo!te75?s&P7awuvmhm|LdPu2`(e~O;6*iG3 z)!f9m8euDBC$?YnXDy)o$5rFsUuS7@^|&7C;;Q5Z&L*i=AR{X)wqfPenLrk0y z9P{6+g_rFbae=c4i|c(L?=kc7UY&mw=q&aA~=ae^M@B0{@?sg9x%B#+R#d~E!a*`~a_T*(7oZG*%UD4)<4Y_q&M z)|lXDTILqpIChY*xl@!rYZXs|%ClQRm%_%8``KIMiSv;AY@I~o0n$PsfA*>Jr_1zF zXS1>HG1uTpgirS^&ozwQrD4DNd4;UEjl}db^uv9QwLd3kK04n<8UFxIES!&_l^Taw zk#UgyPP$LZ_l|pb=cZiDpJV6K2OO0%leB9wvHsZ*7U$(_?9au&rDe0(y!~Z`SoePQ zb1(N2w?89Kt3Mx;*;M_%m5d)Z8p_9ri8}r2{Id3^9lc_h;o-%jWb1(^rGSE*sUv0{ zJy^DS_>+Nub>+t^6_m?4Ff+HubCY>DkCIQ=U&WvOu09&0waZiTauAGZk0^{n3% zbopy-UgNwGD`P%x87hJE0>fG~v8)^3!A0T5Y?x4y-M8rUc_-MK9;oH);Ji5C0 z+|C`-jD}5S8POtd_Q7TEO=aWBPSk<@HXLQR6GRGcw16fzm=DiRq|6p=x<7^=A0>zKqA( z{!&b=E(C|CI7COpZCyTi=kayurv3*$zco1xv^+)A4&E9CXPZ>M8pl32m4jF#3rw{T z-_ZX6ycuqJb!PZ$Da7S=%4ZmZ*^BA^>fGC3cRQ_~icVGa0U2(ncQBEOe;rn_5?c%P z*|DGS^0FJK{vjHD>Bf6TzD=j9`hCO6Qe_`ra*6yv*&q+xLYKuGo@&t#bl(vdtZCQy zvOjZ`&)|)G?LX?;CPWA|gVec}zYSFQD|5{jSIE(nHjJ90Pvwx1KiskL*xd3@Mu^ju zH#B8dWAFq0s#`smG~$_^rrfDW$4|u;{R=$4izW9gp(vfPodosWDVO__RkDn1oPn;( z>VCdJ{{VZfB1;;J16wL2!$UJ5e$Ay$SVXH63b~6RZ4e`_*vdqI#8$b~x~`DMt=l^u z0RGbtmt{Yd6v~LsA-Nh1UED%OFZLwAN?}B>YaqT|G7|hiS7O}S`&MqL^wiV5deEFm zF&nFqBjP_~t!Dc%g<}%AOf`}uj+<>D{ozd2=v(QkFA{9%$H`~+B(%6!KUUHj{EFip zVq+QTdTFDr%kItkRkiW;%grmYY;8#~X@BNZm(e==v)Mtcktk$a5OiQ--#wtMO1b){ z;*g9m?y9l#kw0kxIGpg&T@VqG+hjd54y1{f{g}S1HZ0x+qMc%K?~yu7&f&k}Q?Jo^ zPpDhQ)*@$KKj8q6Kb}w64aZdF^(FmS<$-CIxYvj5W&r(bT>i1FeyLs!&R{U+@&%4s`qQTpAAMNudXStD&AC&PjfR69loOJt&oTs_h*>U6SjeD%J zh)5s6NZtArB}DU11WiUTlrd6DA zIBhf&Bl-PMaRs;H#`4Z||c+7xazeZmJV1Kz;yk~_`JZzfuoN9l8 z+_g59i>j$Y`pZZ}9|l^OWSj2qr`WC{=9kqcNo)26c&1WBHlUQjm1Ac|AS;AfWi65E1DT5&^A~bKc(*{fHM_mb5ie#edq*#Vmja;0|6nLqMxqvL777}6KM8z`} zJx5s0$M{sjWI+IR(M%aXs3Ln3m`s>l$608v6C|@C!voXctklY%tCV|^uN36AtmqI# z^zn6@qRo~cM&H7xSiRKQf=;m4syZ*r>N~stAM#Z9-&05;}BJ zwHm6F5jmPac*zz?UdsnA>*X36en=!YjVBh8Nj4`E~epsd&Gau2G%L+D5U0L~xoSC7?l zk-H%F1__)IV@-AE*T2oQWIlm?lzjs1de*b2?pO=K2S#A>^|0SY~+3 zPwh-kWt(h=9utT^S!}v_gvQoA+iG<7Ip1~js*QtwVLG!*NWb`qbjQ%;S*pWpCn_$C zU?lrQ-GJ$??Nz%^Vp`D)BLZtCR!UuE7z5L*5Oi6wtgNWp5M1TLGSV`T5)JSHIJ0;9 ztd#L3IL33FjE6#Y79VPHNwr=DbBPoav=76ikKR?nU89!3^)X3p9Au@kMyVgm0AwV`zKYC=9xn_4 zV$+PH_+CYa%`;Nks(g1I9Bs6BA`iFqEpn-C_hqu2Ir&;mj<3MrJ_2{J7c+{M6etm+E^h!iSc+Z9gc?x5rYmjlEYe@w!q2OT`c_i%O4a5HCO-}ywWZ_88brv04c<}Ch5r4e6*~9 zWYHZR!B3LLF1cXH;d4La9H2#K@S3O~m7cX_g`J#!;%TcRPzWBEf3zo6%=ZIF9d$;@VOt{pQz&-$h=k3C zB8?-w!Ra3?Bl+4|0%1xwB)<1dCYn@9C5r;b?^msLyZq`I^KWAk*Us{-oZXRhHaU)z} zT*^_4l6*Bz{;M$zE#Fq!D-nt6BM=GslsYoc9^Kn#1EAat*mYWGB$Qz}7)Gk(@zkEL z;i9MVHZIDn+d3mH%+d_Z{{R)Nv2|Z&9aEW{F(zC0qqKqZSDeamtMIDEqyc477Lp8i zPPW>5^mVzkV{JBF5rsciS(Oh(zy}^pD2|3lXw_hGCF*XFKA|O{ z`3}9$buEiIIriT=PLbWXG@}WV*W$B>Nw>QC@4OxGCaESh)4A&(U?z z&M-ESQQUMAoIyWg&qnj~WUCXAoXNh5*}S_Z7OkF@oc$Nw$L2;LW8xV}nr~o`e;BOt zp0#?h`aG>tKDAM(56iqd-`dYFp{H(K0E`P0)ujIb*qmcr>7p`hG2am*+jNLh$qBYv zE5gpW{{RlWaqu<}{{U%N%%1L&-(i*}c07*bjR|-DF1o3hvp&l~%!qFz4&pn9-m{3@ zq?GwU+crjLzoyBJeOk?Gr}^wZ`|7C3kHQFX^9!BVOX$}v+oPAr#wHi?G>Jq!Kq5k4 z0=eHD^o`B0s`_Ec+kHRxxbU)Y7f?jT*+jV4T@PIfn`?>MlIOEU{^Fk@>EPvaRmO@W zAZm!X#?}B3S-~!*3P6Gw%L zn+1IT02vs4B{$V!2mHxH(wJb);J5JYdf8i>YwsBIvk0?(HeGwn9!>^?_Huiz>8H`1 zxB9ryw`jCaKDy&}-&V6Zfi0!O#ywcCRz8)+?LFf)yu_C(Z zW&1h))p4(}Jp0d9t2u0otMu~nqimz3Y?UO;eW7M}r=)8BU9%Ssb+)sUlV}IRnE<+R z`Z(V&)sEY%k=kv(PvZgt={5ZvuabMSPYQPH2@*R3KfQFD;mX{Y(S9s;gJB1(Vi`=z zX26AY$dhGu2Jr=3Q#o8CSLKQM7g)_+i)#}lpa}=GL#*1=t(0TiGC;>C;=E*tH)qrS6WRk>NT&H|n+#<&3T8>g@QMRV6n-)6S* zPSMRVj_0~Y!{5%!wtbxQeO2X7CIT4q+8N7|Tf`k!w4Uj<(oT$Vrcxp70C@EN)!Nsa ztzTakZJv0E*d312I{m8`%OdcrYr~vu5{@;qEc=9@G#Vc37kOuPu|1xPj>oqr7Tbm- zCtWe!Wp-a&PTu4}+?C_r$$Prb(dfAU0Bhw#)5*u;DizIxODeJ?2!9;9Mm3EL~cBkq#ao~nJfEw%~Bx~AJifgsij#%{Q^BlJpcH|YtB?@80$A(cceYJQpkjRC%3{-oo6tID=j z&Q({I%W=lt3}j_5(zA4{m7nUKFoGrYIpnmxsP;@ zGletdvmOuH5-$os?QrY@+%zWe25{)>(DN;NaMGX(jDFO_~@${spkyD>)=xcMo_n` zoR64Op_*N@9nX%Ebxe$5TfD@+ZhyH!WMNa27)$;m{mOL~ZL9#)ANb0dzUwe(dVM_t z?WdYcHdV_-LS%zoWD(zVzrAM0ruH^hnaEIBOHuh|W=HE>?wYz!HqABi*}y;2(;?jM zuz&9?Uly%=)uygr63}Cpiwd8>+adbaemgr>zFAr;$o9>R>XBLKcE;b+=2^!70LB`d z&vvN8+afVI_r_8ktlnSllFoPbS##_CS4TGjFc6?uVeZt({*xsvtA&xBZR&ahUadj@ z0PU2;iP2oKaVG*!BxM$e+_lDP7 zo><2U=G}{ti!HfTSy}D6Kiah{sfAItaF*(&Fnb*WxLo~PspdH{z}n zYjeqCsfq4tL_|3pb3I>uaezOma=ssCzE@tKa(ilef85khc?dV?is$g`*U3HF>dfJC zTj}y=C+ia^#Qy;4Qt5q{m)025RHdz^F+LW>{_UzwOS?eE<4u3X$huzvv5(&r$I&L& z=oRB&&L6;zNrX>n#4BY^Utj1GrlNMjH^g`wMy>WMh2`~I3@JsVBWMRxBVg4q$1_`9 zP>9~gLNwe~$?qaD^u8elv5K!4J+V_d1@cOS8gF{0gOz@NF(6><^u97J77jJ^;L z@C2lbcAmpLU}WMnf;*BKFq3Fek4=CJh_1-!(2M{-X;-5>scgflu9ik`sE+882gF4h za)<*?r~8u-yVKc(1YBkA zBcSt{et@PS%CVe#j*+rbe!7s~cvleSt~6aa7dMtYK`ga|<}<^QiJYfs0QZ|BU6dSB zWu=6UgU(O(ttM5TD&Xc;ojQk@Z_=&WEXd1^zA+Mv_YTK&zrAOaUaHP5)sRH>Jv1l# zRhKD}Y`jZY#zW%*{{XF1Cmy^@MmtYe5OpxTl};9hot5rAq+m5xM6?BhI+}z>?Q9Gc z!g4{A2WsH*AD93gIGKif=3X_*C-$6bm=9bno4`PlI=Bt@qFTCQ`yv6NA_K12#nV4l zdH}=1mzr>x9r^&7*qXybjpHnkfCpZhfIjsm`xjkL{J(^%;|t|!j7vz?Tz%^D**NN> zFAIm1&(g}+!?cKUtlMu?y2cxL*hH|f$~~nZ0_!(piz&jHE*OQbX^IoWnALzjI;7or zsyMeDKqurDvl%3+wgu%A_bQn%83Y3w%N05qAL0#VAF%-wn|=fLCJcn9XY7zZD&aDM zGVtn%1~MJfAtVofwOC-HMlZHRD}iJ(E*e5#+Ox(JYPe;nLYcnJ#kIhK!a)6sR+oonBlIj`sb1_|I>xy6 z8UFx?7W-X%+pP4jXDVM($qmMfH6Qf={YuZ&$j0D65voA-9&%6qlrp}$jj?934)5pD zXD3sA20V2)SSC6FEq_YaB+XWFE0(^oW1)K)Cd<^(R_ z>}GI%Q`f_)oROPt7}iEY>q~V8&nq8e=37g~US0NJ~jdURK@j8VJDxFi0@g-y* z_p;*6@nWujj2u!qQ;ZnjPSWK603Ijo=u<54Te}x1nMlS`JwUYW{RzorOjJ4{= zU%D#hu2u|wBBQoc#yuE;KEEbYl{zmTghtwl5$*+Z>GNfr->T+)4YLRW3?*O#P;tz@ z(BW#@nf(+_G=2)P$%)a%)Y%xw#thvI4^N0C zOsa`u$PXHk@qx}%5*HPr&${0 z1hkZ+SOhnRRXV5>cbe#K)qr^jojgGyRksT#m62U%)QqI;%^<`705Zx-pyg+{^lLFP zI&2k^KjMVEx(zI0r&J)LzHW-vob-f#l9vb{u;7dgwM4#wb&!HZr7mzmihUV z%ro^>Rs={Am#A5sYpCz2l3kZSRkq>blID{jbP+aK3HhDMa;NhoDW@3!01p@m%cOyn z-TX|QIZ{um>T2}mDa#oA%S0c%tnIedX0dg*-C=5}(6KU&kU!d)rX*KZ>L@?Gm4-Tq|jPA9>?6MnrY}wQ1HzM>k85yu97_+|Vbcr&C z&_CV*lF90}p8L6(MdwtaVi?L&hP}MZq?0V>7QCrf9ku}(L^+>Na;Tt*g;>IdaK) zRXbu^Ss6#C+@;ofs>s=uv8W!M3|C1|$iQF)dF}#3nDYboW&u$m9+6 zTYk~z5fZK-{M;rdvD?*Em-1A`HcoJk)81eow`^AMlNEk8UPeTo6vW5^3}tcH0n?wD|0V;%vHpVh8+YN+;mB~&l&2pV$u^?I_)IV}^gFLYLS$Sb* z&HZ-W)9(wX+Hw)aayH5&+oVAcD;OWpvz<)eV2>Nf#s(0SBnG<8_3$Z}a{4bAISm-w zvNLuhNyp5vSqwMoq9?SYKBweXwwkl9_t~<_a)emhL!PEF zm*{d8EwRTC--y7;qp< z)Qoi1qC+2nQHcQE~0E?ZXRS#KZ6VSxiV6O;_9ho-`DiDMwc z#czbfto)g{=%N@owGGxtj=%^L`oiaIt>l*Re!O=Kxr+rJ)~ST_)9=hEL^?qH!>U;zwB!f3&Uh%bMdHh!4g!=v!5sM)^?{PF`Ctp1q)_ z@-kC_R9uQje94WjEM;2aOuu1S8Y1_cGT*JNe>BmL_E2j+Hcu_sX#>mkT34CR>aPs)~)^xwsX43Y0Y<@%f zdkU+>%E78v!bjA)xT_AYflG~-j2Im&h|oA?$2deRkjW*8h1-kJ2s7v;TP3({{SD! z81LJ9vOJHqFymfLwPEE`C`#i92>t=7kK%p9!Aaxt=heGyo$>tKY5SYogxg$AHCG94 zgriv9D4ki~vh;tCnZ9g@MOcJC7P zOhEE}#?TjA_}^Cx`CmqV^$tj|&J@*Ky8&3x6|aIZ{$2J~d2GvNyvduOh!G2O!>c#) zwj}wS=Gh=V(&zOj!4LAPvCQX0nZ{EG(uZA=JR?B~#=S&kT3}3I55A0d^V*db> zYNN^Jekfc+ctyXlUygex&s0l4GDMS;Fi+UE@y}%W_Gqu4&9FcQ0cQAh&T!Vh zk-YU)JnQZAS#;!2S676diG0@jv&!K&CR2Zk*B3jvPSe!MymeJFuFC3{?UDBX0D7}2 zYLi_sJrCOI=ChTarEJ8XkaaOy#-SZ3KSj~^J4bW-Tl*nMe8G}wHcDTT?m*YQ7km|Uj%#-x$=rYXq= zP>12Lf$}QwIgi#)MzHOJ zl1BPu$I=m(ZJ@1Urzmf#x&`Z;;5;Jgaf|W~^DaWB^ztnY@h$pOgg#2V^Sr#G1({PL z!JSW!Q{Duk zQt2ibyINh$7?McvL`~3UB#(kFOXcgjUjz*cWmz7a=M(!tvS5|Eu6vT8?T&52KM5?| zC2nl%;d_pY8acOQOZT_`0AlBSZB3nuxqd#tE3YRfZ+EmtA#<|(3o5^g$eA*gv)QA{ z;z0Q_ooAz0KJ8KZI%_hfn=J=HIb?t}{nAmK-*XDFtpn81^#t7?>?&l(#%97yypjWHxR^#;B@Rh6t&R%dY)$iUSr zWCKc7%t>CPm))A{c+(L&u_YhzmnZH_(-`$t448?FHS`N0Nc?Q8Z;;U%SmJksv;hpW|&Rf%2i57 z^o4CqEUOrcMDn)UJ8i7R{{TXqj5JdX)=Dt0m{$|0sTmXYEZVX)Ln}iFil4WVTBx{a zhD0t6I_umtGT5_nAhT;7vG4{pg&M>U;F2X|V>ph3(+cLMB1+A`$`t_tplE@rW~L&W z1-csG#A+I_s`OPXoaoWlp8DAIu4|P%WV^sr!}42MX(9_|Bd#9Wt!e@wq(- z2jJ)RB&k_thmld(UeWXd3e7E8&!`ponJD&=NI zM;}y-G4TCpboEYzpMu6VzO77plAMkt!d|^MM$@Eh(1G?QHuqe{=vnRm07?K~Y%Ki8 zV}&f)W*(X~U%AQC!*E^*r*5tHDV0j_sgnrG!}A~P zSCVA%#t;n7MxJ2lDU^mj;kRHU^pg!gLb*(uR6sYBIMC_Td`l)wtA;f*o60(kSOVXv zYc(>_=tE}1QDga-6Z%$ixqy{A1@!T+kb38%YFrPsPNr8zy1_MiQjC}#r?@>1zA1ASQw%6hENPbCi*;GM zQzwm8KnQwMZnB$>-Giqk7y<#5sSf%Ab^Qu*Tr46o5qQogtc!!M$f?Ot(M+8BN9I6x z@lx%B2N-nCnX4zLBp#k2IZ)$^!jG17i5*XtI(@8{eU%3p#7aOIK=={|_bl_+Y8*Bu z(<DF zk~RC($WvBabQ?rQf%^W0m=7v)ArNC|i0VN-N_1SSvlrHYmG?$b{gQO~t5R%Q@bQQu zQ;2SiKz|2doa)-q8bFYjs0famNhM=7GOluX&au_|2UbMo4k)z3GBSwox4-C2wU~KP zK|7>F_aKk~`6nu!3_pqFrs79(H4pZtYF2YhsWJe{N5rz!+bNhxW6sGL%E~||%1I^s zT{$#qVvXW*zM>hL6-)KHXQE|Yl~-kkKBP$-H5$4JICYCaAQ zt6#}XDHhArGmMAj9+}bpWlmNl!pekkiJYxyjW(G70AihL%1gN%13jDk(df`DKG2+M z~9*1*)rYbXvYTjfku4hBKJyp5)P`cAwm{#PS z9Dj02mFUemUDcxyPNB40k_Ov&jHMFfhG7)wWbnt!oP6;cdO7X(EZZWfjtM4B79rSx zU+1FMQ1HOXt(s&T$oP~03nhLdN3L?b@nq<$`B-&SZCo70dKus zS>;y7!zdq6h{c!#2S1^7m72>u?Y4RlowFSbg?cxGq}0q+EVEO>spLq=u@S7tPnlZ7 zJdZ`!-#J21x_|?T$-8)^hakwxEFmjo8?dZ7{U~Ll7~_e?Ql3VgcGMWG*-lls%A*~z zw)g@2a0@ppEn>>gu8?D1WwjXUS`pQ1YoA2U87by!x_`vCCS-SZf4icW#@{xIB~ZTA3rG?OWI z`k=(etIr=*!PJ=&Q#CTTTOs9*vjeF%AMR5N$fGLiPQ#5bJ0DZ8=vv~PD$8@~j??tk z*`RT}k```>KUGH9+$4U6$cTrDl>Y!yvs*n*jIiXrD>h38Q;_KLEI&fk(Q_Li&0&aN;Y_W3Z0&};e}g+43vYn=B=&Mcr0^4yE&b=@fs>{E^RjOKfc zufwpl+-#}?v7h!WaI>{s&vkPgXR8@U4%k*aX2V~SeaV^be2REzRS622)gc{NOs&r%VS_7( zF{p~_24k?3E|X)Uon}4NkPR}Ai&$4qj4Z1R#v(?r$E(=0TZgj~5`Jler$(BYttvF* zKa>*@+EZ03`sl-x5f3wH^U$f9VDZMskRZaaegwLiTpqki;0EfWFN^A>*>JWvxYCn> z>5mXuXEeda1PnaeWgipOIT$eGF{cm=SPsCDoautwMm8uLY7RcqthSwr3o4L#L$8Wi zS1lFajN%(MlcTcDm0b$)>2PENb^(_jRlX}@i$sAYsIc#&shYT5PaBOfztRREv0y(XtZw;kyraIOt%J^(e#>ycYh|q$1uOE|m>8@5+#8L^Fl{>qM9=~ey zZ@;8;nI=~W$KMFo2x5aH<}O`lUnbDv=4X39iJ04LD}Ws(8wc9EY56qk=k!iHPg?VKU_!4cF`18f5hM4nWZy0~TC3ECG(5QY(j)$4 z!^o{;KD9ISVVs4gQZ&&LPhh&q`mvUK3|njkek1_8NX4p!v2YAv8~0YQ!oz50@|Wz% zfFnBk7{oWhFc@T24x4^Vn4zP6GW^Z=tAxl-cF3PjdVG@*%Astkklixl#4RGv<`*CN zzF!6jgjzW(#6(2*2G9_u7JiCs%(B43EiVz#Fsgp1Aas}LR}pekk!d4*kKCAng|Z>H z7YboQR+jThUlhPkQYWOOt`O0%fL?QB+0?<5^&=wR#3UvRrt#cZm@UH)Q;N?Sbw&;KZf&@;hH)u?g z>9TAs42b=~GZ*tc z7sJYO90Ty^ojs1F{wA+smw^N_y$}R$>%IOZE&~nZG>9J*=wJ+BKNQ0&l)!C+`6sk@ z)iPmR+N= zYYjN~94_D(M5C$czv*gbsfcr{`F09wWKW6?NPi2ndg>n$jA4;N_@ zU;9-503v%Q8Z-WzMlb&W<3S)iD?i?!JoYhJ?*5%+LN8uGuyu9;UzsqjuVZCGW7IoG zj)hN_E*_VM_RcmQx8xHO*v1-t>z>|Btku-B3yY|Yl8E^TYx4jueCpv`v3Tnw@r)#T z2aI(63d=?H<8bvw?S*DTQZ|G7Q#E2oBaAX}(C7mVK1yP$o3eOFfeGGXPhbc4CsEI{ zkoMGVi&|u3*wzStxo&bWzMQTIgC;TE)a(QM6B{OBtjpktj@TJ6(?ALR3S(oTCwCV* z#G^qk(je*+sguHtDv32wDH)AM)58=dybD#ld z3&|s81bOR>XWvv@p*W|^-8v9Tbxf8sqf-!MPhxaTRmdA-9Sw1Bo2Cvy_0fic0lSpJ zm?M+LA*_gR9aD;O80O*3{{Rj_zwzRnYUE{pKATKQJ#|rXs?3U8SOMV0Fmh5dVJ*It zcMx^eYYCP9us&$g2|aaDRoRg^Yw5szTq3iatE6{FU=P!&TIiWS)J_1*#sXd0MO1Tc zFd{}LR~jpWDfQZa9O?N;3dosNW@Tbd1G=~}N#zNLFemKMFmh*&hRWgQFQ>Ugu{jI2G z0nLQV&LqpR5pIg$#7k`w0#(47cO4WJ3D`>-iEje5$+n%IYJ^W{x@1sbKy#z?9aYFt z{4X%q=7tZt$;F&8?CRtg)?pp7h}WwrlMQ&7vA$qkF#+OwCQKJD!H+WxQ5m*|at{9h zB_&)i@5r2<$w|H%E6~ZdL;^`C=9wiy9l?Z|`#LU0Sm2h7pGBODYr?F-<1NxXVmhgI zYDcXYl0Sk{1pfDB;mfaPig4_#0_2h6RJ6+R9ELIJ9>hsHC8ZSDbp|22l1Tei$f(4U z=0Z)>0#HHf>~S#{EwDSciqY9@Vc|2l9{Pfz)X@L|y2A1A;)IJtcYb*v094ABR7Ck^ z#1Yh;6+((@gq#8KAgh`zfR3@5+Iuls$Y+E}5|J(ORO$wO4SQd{;#oQ;Q^rPL=1L4Y zfd2rkF&2-hTwWl9_H|RC)f^8vA&1YZOeSnd&Sa8L$P!M8NmdhNoJ9TFGMS6iwbaCK zkt}ud5T%VY8(=>_nCRs61LNSUG8WvH0j3G<=IWy1U)D?T?GDUK>dA<>rjAq~1Hvc9 zPVBE3bwAfv-XZkWV~XK?GUua42j~5(JYvO?IXA_lDq={|Kx(Yw#g&+0WkfXYtmu5s zNhNQdu;Xg4nZv!aIu(kXoK;?3`*@gO^M}t1!b)+CSc>%RQFOjXSfhrZroT zED-My1e@pGW?Af|^nGj0z%h#fvrWG}d#kqDXI*f<7*~NK4TN|}x-NX9aagMFRwe`R z_1YdQa=~n2$W8=8F@e>I@l5K@DSnqQK#AQKKZt+^igSi3Yva$Svw1zYN@TjfBwSUe z2G9h(a61_8Bqzxe6h;iX3pak#m-|AKcyXchcEo=Q!6G_?;;%Syss<+|J4rUe6}GGa z*X>uHrxu#H`_G=-uzP6ErQUll8kXT(7`$X;=TG*mWWwrj35(8V5Opv}3A#iFGYpA01qF%Ay}#bywxI;?OWCs!azG zZ^Bt;k%f0);K=^~5)jv`tIDN}mSOSGfd&TH_+S zf0b7O>p}82vdcxW6N+-w6fHKGYBqi5r=(5Jh;L$%c z0I&^pIu(wpVf8gW+UgPPHzQ?G~j@ ztiMS^u$)|L2|4{MSvspU&@Vx({}p|7e)A&g(Da;bw$jlsGbY&%DfbemY1 zL&9k&y-aGD}1pO($0^)aVwuCMjpb@#Kll25etnf^(^c z$k9xML}DYiqR%SSitgj-oS!0F{sbi4#bvjSZTkM=Zt(g2>bOsm7WF1VRAN4F<^XRx;Z8&it+c%en)tuJ2q;A6kLL`$Op_3H4 z!i>CAsFu)la5YR*0X*C`*bRn5;i*ZjTn#yN$g~8)Al=I^w1Qxxdk8fpLyMx9QIVx_4pY-6Dj2kdot)XKAik04lmz$Q^mm>6#5#JpKl z%A-de7A#zJGE=Jc2~&wCluTSKw+thTBl#TlW>c!1dNj!GAbd1T(nAc)Nlm17c$W;b ziq-_j8zLqXwoDv?2xd}RT}%cXA}fWThq*ede?-E1d{~z0S~njO3Yn?IvN&K7>c&IB zkhEbzhaGIUS|C6S9g4iRCZI8Rs7G~m(-H7slWJjXXyc4_ybkV~jTN-wgO9~#jqKfo zfK!t7L&o6EjijBuCAcKnS*_x@Yo<5tAa!!LHms_*g5c~PoFNE)@G0_ayjX7bj~6P> zrXDiSpJZKjT{w%I4m}J!< z_`gEW6Co?BmzDxV4(zWK%s@n(5?J<3ETSznjZB(96v2==jz_6kAoNZqRtu<*EnJ(Y zWieF3${;@j_yWs4T3H@Wy0kP%{ED11WKS$f@>OXb45!At&klDYjbT-;rSY8N4{~yr zP2eX8p3D>Ci#LlS%VkPNRvQWVu74C>YGupcB1flWwNHj8$P(pdz)G2i>=WXP@)B9F zvOa8iOm=?C&mKKX=FubA7vY(XH56mVLKSCMA1N<=F04s`SD;Gi| z{ImBaDVSMgKT62>vbao=Hj;eRl)}oBm?4A$coi@#22&q^ ze8SCY8`Gans%3EyV_zb|1^gAs&_*Tf!l@sUnFc&{^A8&4uRo3! zO!NemIT%@A4}6Z>F>EpT6a9(J1n}ayZTd@G>NS#_?My+hg}TyAajc7cPQQ9x$XhsE z*vM^xZvs+p3k^OGKV$k${_=B+f`25;+VX~@sWMmOiNq(v(W}cfm)kGiA6Fx5K3imVMrR0_Bxp`1XtjGPOeN8OhfSQkAV^) z5vs03I=}Mov<~BWSh`PT&2}(-=gQ!dtZfIVo0W^=m8`nee^YX!A5QEVWfRql6^r=) z09DLrulj|@-gf0-YzIdL)_w||9Xw8R+SzOkq7SJOBrIKai-$^3;Vv7fwz&@5ORVOm zFnTd@qQpSN4w`jSk~Bt|OT-4<*-X$*B`0hQVtfj6wJ^_i4lK!p>4EXkE6SKxUl)rQ zlM0{*j@MV6PA3?VVF3tf+=S&!K(d)sK{0_Rp^RToie-8b`tlo0qYw9cBJ^7drMMYc z7x3CpU+Ip5Lr%ggISD$X2#_+?~on9 zPDT}+8lls1`K!rzshuDX^7Q)@M z9ZZu|k@P@#!ckKz#AP^`kObf6nOrlRdCSaXe%)1@7)VAHf+P&SO60)GR2>W~`2v|R zs>(!z#mB+bgl;SVVf#vDLfYgSGqL=8 zt0<~ehic>-y16=*G=SjCUllToA&*!e=Ky|bm0MmNM_F09{wi`7eI7hO0PgVUrz9k? zY3V3+R&7+jNDKOKi>6d#hdB*nu=s^73V7|^Uqs}&0mtKkwnkqRi z=(UQJvX(FpxCiK%UZ^ji`8P-H4x-|l*2X7km>(dRODR616w7dJGE@U6%S34@6UrPFG5!IujN@AcG)=Qq!pVG>u|r-NQQ0dKjx~jC#j;Z-89t;PR9x z22vyr?g1(_6btd~mzYc7w}x=Ixpvkc>|Net|Q-kEQdbX@MWu8WRFbmH4j#E7Yc z=!RJX%2~Ua4N%NYf?!Dg>Q3nU31sF4Hk zi1+xVRgk(ria-aA{?IsS5M>fy|r3dKoQ-G4rvu@~Abogkq!KQ1u4Bfk-SsyS~zB;`bYvg$e%$q7; z3x*7*65&m}ry;v=p4bEChzD^V0d8rpt2gMBava>JwtEk8q3Q8cZ8d8yggGpTLO!%3 zCeX+YR~{>Hru^Cuo9SmVd>vV>V=+``U8U@(z#RjHdap&|ieMPowfhdFe3i`=jCvzB zGm#&%Lb<53=<&&aMbC)ttlMvL;C_c3NH#k^$vJKAofnLKx<;*_buOlA<|(%q)Ea~L zrf^#dF^Da-!*z7cGY<;m(8o^@Sxai>DZT-i2lzXwDq5ly#Qy-x`4U#a)pxR2hC4mVI?utI2=RdXaKS1LC2{Bg5mE zxf3$@$!{$3zUyJe3d7e?{{V=s892iRK+X~b{7W)OnK{9v`HW=WGRomOD!UT~19efb zPwirt3oZ9GbW>zBs&YO0tl@3?gt*Z+m!lv@;Twv$OtM){$!)TNBs%$zMVqT!hBJhS z5vYUlB}o?39BNCGUz@*GaL+18(Fp$l%O7g8884?9k|PS-b`F>&!Tye9ZXymo2)R92 z)(4zp08ha)4ACaulayjU0ZxZds{1J#qy7mnSIWaQps4X%+Hu0zy~@!S4ks0R)LeU z02q(j^7Sh>2_;=jW*&2lN&TQ1bG50ZXfgEwXvbdb8EcA*FramjjAi1^tlZ+ZoLzy8 zNo$CjeFkBCs>U#Fxu@Zx?eSvaqaQ~(I38Z6pz6J1>e6^HmN+PqP$ zkCHT0eksV}Xp39{MMvO5WjLQ^K_#iH?oMmQB(di>?Y6o=J(wil2N>sH?W{{Dy3b5M zU>8r8#NwvkYGVlPgrgVeQhDjcg70eO)(N7>&%_1NdEtjXTsB2gBEcy9TSdQ;E)>~- z0XyZ@UVh7kGQ*+3eu>Ve5aH7y1$h_)PSSSRPuQ%fg?@o|++XF{Z!F-l z#)N?q4*nrdRWTKREuiXSr^#=XXN(cYV)PN$GqN;fII{ zU~a;qo2Fwj-Tgs^=Q7zBkqHsC1RhLU|+aR;SdAeA+SVlk^Z1Z(4vvpZr2-i#=R1#mHC1I>Nc^Ny5 zp>u){SjSdc!ZKZxSgZ)fLHt7|8jOP?$6*Z*h+4p~TaxVv7WpjT$>K9-CiJ9!9Tdb| ztcEWkW`ena_NkaO(?=^)h|0)s^jR&xvl za57By8^I^2lXXr}Ft7P`bZjT;D*)@%E6NzE@;Kb<3rixlJ`w?0v@EKl$LCY1%7`7t z;IBBCry}jTQo z7cGsHK#pW0PvkPyak9@wn}${_bU8Ik{q0sIzQzaZ=zTIO+u$S;*y#xlRzLI~#VHb%yLpnZC=!W65KW{{5tXyd5S^3!%$kh`h3^ z-S8u#S+}xqi$9!k(hVGlKW$cVx3ck4IeZ%=Yd69~b=p{ktZbM(J;lXg7d8tIg!NMR z_N&o{E0e?IE%oDlkcs@Ukpu2p*IlApD?E8TOly3$TuAxIE%CK7*g4urebW14Rz51Z zfj&mN^dM1VSF1yKWAz855H< ztK?3ylz!$+YP^dobIz?EnjWh3T-F=$a|v@}9{?4WB8gz-jYdp?J_}i%zz#b)dVOTT z_$kVJ3oGHRkp3oRvOV===RK1b-46vZq;oFU!b<#;**M>F&w{n~$1>L)_b18pYZu*I zxGmaCHsLQ5CRTYqkhXMzlOXWOT3%U>taF@4Z*GZAr_Y4|#Pli4wS(C{&qvdFdn z0K})s^ju$a%Yv?{2-$6#htRseB4B@%W5=b|6Y(l@ryr?5ms0yo=C35<^)z_wSP(>u z_!W7l6W5E47cu~N6y%&vBTk@gQ!B(;p`nyODU$>O0$=8aKP7UQqG_UTP2VnwlLU?y zF$DU*VLeskoKG5Yz-|3H2UC%Q2xAcDW+&iO$%S%_5tfn%!&OvXxx;8@{jTYQEYih+ z{C6MFwUhyaiy{v2T{4(m3@mtS8#VZpwJGLDj+W!31prLw%3hXN9p%_a`7Za4l}5PVmY4*6GQ7R};je^S(tVY7 z9a7TDs&<0Fhv>ZcXtF~$Uev;*9DCKr;!iA+c{8ukpQ6OsOopg#}V zrWYm{ly}qabTYJJW0KJUhrlU=D@H9sECBg3&KD>#YV8O8N^vr>G&mwO>K3?}G%IG` zUecxviN}VsU;yz*+QCuxv>k=0BYHp)S2$EsWzHJJ8Df@}MH6p<>wrjT(uw?y|$E>qC95eBNh z4C+ah$%T2K6SG6qI+bNlLetWsN!O}$L&B_};<|SHT}8@?;pRqr=1A_qt#rb5D21KL zGVpaeH8N3$bjXpO!0t!;Q!wfh#mI;t*zxQ_xrvIh70Mt1GZM|!)_N`~#=a5&$^02! ziHf-9PAwTgpNLEtF_dI?vHMddDgXqWk@lucRnfkcI1{XmdpQ<3rCWq(nM zWDM=Bd~{cm@cI_qj7bfnCK34%rdpa`W?L!6vSIVKk>MZ~`TY}(EOD{wjEK%N5IWjTEgH`#tJRuysvSH|xR%(phjqc_J| zPJ5UQg2?d_J&SL@zu6uVb&pJuBgV%2bg}PtR&X1qTEa8uw~U> z%!d7Irkcy@#?t#No;?wVt7d&5Ige5O>$k@}*yVkfM~|pR1aeetxA4fwcKcJ~*WH}$ z?9DNQUy{yBgC`+eHVHheP?}qr4y`0!31^t)w=6FQyY6RUC7{K*Sg%g z_LJ9mTz0tZ>#mlu9#@OVFZC4@*qH@0mi{{mGkEBEPDM=b_=3hx2`*ELi3jRy1Zq6N zGkuriQ$ACQl%5$i$e+a#Ag@&T@Xcp2#8-C6WL7LArs3IYa!v#M&kJcIE~X*dcuq9K z6#d7=*FAG<4X5J@aK6ihbN4q0Ww_^6{{RxR$94*)bK*-JacNmTXIOWvS!a*u?i3`^SKY^JO{l z0HyI?Wa;j2^>+okc*rc?1cg35y^fyeuibnlnhVKt!$Pd_-(<}9G=0a#%4WFE*&hJ{ zR(A32?9{sZy12RcmxhckC;TKXSI1)BKJK15#Jl)*S77<*S1qNGm~0W@YIyoK$hL&| zuRZ5mn#C5|fDYR6rSn#4x4T^&+^m|bc|!=!UJkqK;O-bEn#d{pFo0SmnR zd+yEhYQ;ZxD}XPl9`|$rVTXiMbFl9;BV8a&-j!6QGQ*1r$5xJr~pR;k*a@*f8`hD*XnqG zQS+urj{%Tds(*=n;$JSmQd#{;%Fx;E{D9vLQ~Y23q4MkXTOaCNLmN08rf%^++@Iq8 zVtla=^+qI!$J_ZvKNz3xPw_sm`E~lFzo}Ug{{So7xjT<$>XY#^{^)$#{ag5-a&o+$ zWNOOcY{bQsOr>PQmmL5LU*k#NW;XNtMN;<;P12k{({~z#r5N2PZ4v;phw)mUkB+>O zd800OFlvyEe%{D=2PPrFS@>_fZh2#$e=m_8YTl*nZIQIrsZVwH3Be4ZO zAFBMCq4!1A%gw}GWAF)lH{AI(`kZ^la4tAo&&VwQ0FQm*{F?n&Rqt$#3^-eK@e4oW zf9(&GU#n00?r7JtV70NNiU`j%e%$!{+YkmIha7x6Rx=-03HQOt}yv!$=aW{7?OlmtShnFLv^*!-g&KTc3?T1Jt2DjS z&5gux!*7Y|wLc$U`6tWtXP3Bn>okuU7?bc@_;vpPl3yp#Ai)j;aBWT?9o&`+CzHP9lGi|rgTe_*nQ$W)k>lM z=qk=B)m(4)$Uly`5Adhhb@n;C-g44YtRL{H_MLr*PrIZVc2}o;srIj5VaA6$3x%08 zs>=0vZD&`OsbyCx`GX_7(PDHPJ1p{x#;vCxCwKkDRZry>SClxazZWi2GOr4)f2olE67Lqmf0 z?Q(3KeAu3!cKsIww!Bh5jgNDW+O3L`)x>6$c=#8MHiP~Gw=T)Y zRZ_a0?rF9|#K5g)v&U7HUrU1;Ect9$vir4-TPnJlN#{-EcnC5sBUE`DXafl0WX-+` zV*Lz4Tg%PB$Kq{1CTTVLr`pdv?m~M104aY5Au&DL%t+6jusvL5QSf$7I{TTP%VQsN zk)}O0{mOm5=6;5bC%Gpkvg+!7qyVOMI{O>>FF9#p$cTJHDa%h}>Zadr^I~LM%7Qx= zTIZ*-{mRd`d2%)7fca1Tsq$&;zj34O%&3REmNGs9ZT+fzn)*U=5y9a=z1i}Vf$eAe zRQW!Oiq#$$g0d|vnI9kGAMaWDD&n)*!TWiMH`*Ji^$OR^x3XO?x}(K=YCrw?X1xaK zEqt4M9B;a_$9rZPO8J-g$vN-rar&yW8`@R5otD3V+*O--FQYeE?x@%7`A13J_5!t^ zC$l)7>Sv4XA`43Y0G`sdH}WOdUv^nw@E?+QH)26s=essfbQqjD4ZhMxz^Tu5#P?A? zJB&Yvc|Ei%Q^~P)ie-mPdO~Cl;1#ZQoCl*p4YFhGD&~Zq7CG%U`4s0@3Z;jLI__HM zS>qK;8y-D35U(n6gfOgh2jI2UFdxHhU0$a_9+SHkQ>tPvjg)}F)Wuw{fT-#mtlX;6 zO-EAdW{Y861M(8H)O0Z6K#-g(mf_qiZEDA^;vtV<5uOo|>PrV+P3?7&)|MUy-~ND~ z0kkf2Ywp$pIGBEvt&bi+iDn>vrF#3OVvK{0PzU*I?(o{KFS_(3va7C%V@HdG;WN0O zE048nmBuohW^%(Zk1sjlMxF*KE%#hOuIN{+cxboAQBJ<*B1@9U))C=i2af21um1ql zmR zy8i$nIh^Tn=wZkGg&eFSB5B#qZ%5AcGgPpba_BF@fA z%_WyWJ{w6>p^%N)!>)Y~;k7z@DP?aVJ!P9#o)K4~5>v@AFPj2?!mmL@Ws)Q}W(GYP zB|05WAs~N=mHz;hPvj2B5vEHY@Tc-EG%ASel;hzQQ#E0tu;g1K@gYowmOWYle1Sb# zT>TlvA*Pr~y;+h~$%+RKi4QfCm(3=|D8~a7AH_9!CO)M&SiJ!iU;Ik*sfJO<;TbojA>-y(l`xayu+NmnUwXXhgpUz`0rHuAHzzunDdMmWo}8k8 z#IHJF@#AnI`3d;$Q=MD{@HqKt=}G)VicP77HgT9+bd1<`+_g8UVv)z-K)sFn@%8!mPC! z2N{G;;|ct?m9BL#pUbdesH~IzBAlwEX~l%U$$@|cl@@x z^L%x_aX*~GM@$@p-Po(b`<&v~^7xT`xX)Xc<39btdW27z8bROK2!nco&LLZZl$=Wz8i19XsIL~$E`nA`0EjdST z4=93q%F&{6p5|R)^>G4bsJI?r{Ts5))_bg~hIP|BO%eyiX6ZfJn=Pv{^SV1Ww?KQW zU0Td6Gr0*!k4_Pfi7AM(g_&Ha{6A0d23n+=nP&RldK;cN#GamYX1b?8ha*pEHQn+e8=1sfPP7hJ(rgM07RBIBe|~k2xHWMnAiR% zEzMpnf;JP)8)qo_B+az=rZxWnid(}mKTnQ5QK>_+0 zEn`pkE_e5caqiK*&g67>q?-Q##W`>97ewUNJl^2md_+{^ul!e*?RbXkUMHJ&>7vb= z{{Y2h+ugn#ee?4UQp4ii7CCF|x!c^g@za!AT!oL?LEI}gp2l|fXO|x~X>yZ`Xf!&j z%74Vo_Zu;zTq0%4*hEI7X(=qeiT8W4-z-*pIeUlfff)syxZ zzyAPAU9Y-}2Nzs{Jg!`ifD&S_U-+jh?k2u6-@}`nTyz3KI{QWI?yvcFIS)L%?T5#5 znfgS{_at!m*qy&!n(e6bEoS>f&Hn(BSw|TNh|e=HNREU{qSi08OyBt}#XLPwFtYrs z0q#VWHqW$bTkg{zs)#oTc=O_j{?I0c<6- zXJ6+1^0m%;LmPY5_4{`l(*o>_iAFk;>P!39FPGXyn%{crV{p7Bu@=N%IYf2!Bwy@x z&hNL;tF4~3raVs+U`(N7I}l`CEa!isW_zrU2g6$cBN_R8Bvj|TKbo=a-Y8q^Lb(|Z z(vef;*yHt6k;3upOtI%K{#hUITi3~HXV$Yzg5zfpeJf+(=Re-J&Y1d*e%Ry8WjPy| z^m`BYt$d8)`>M0sm?eR#(g#8;I{uXTDUYoP@Z4+;wO#V{4`01rcj%mNxrZ0T*ml`Q zLyrr8+N|3B3op9(aU209>9{cHY(0MTyVS+^XdDj*Wh9JCPj~f?_o+9fm)^2j#PAd} z=Y@GAuG^1Ky>y%3qd30xoY%rh<6aI_hfodQ?N-};n(OOJ98MZhY2oEJhpKe{0L-V| z^fUET2ec`)O56;Y$~{4uKiaI@f1@^M)vDfC*^q>x4l>c;HyuApxu!Ax>f~f*dqUH= z@wa^Umi=ii-$lgtr5vBMpbTNf+;nFW{{U)z)Wr9yC4UQXEymGo{v7CrE45rbwHEt*QQ&#yE_LWAe|zU8Zct?1_~lDKmqCQP8}(Z6eL7I zq+=T;B_SX&5D<`Vc)$I=|DJo#z3s_!pSZ5;#~W4B9{Fbp60-EZDg*xX(kc@!hp}W#2cY&>9h#xG*r}t8x#v zeeZQJHfKdCzR@eoso-dQM6q>)2oS5pUphPzwhx&!1}`i9-7_>uiUFomG7~4WB41x9 z?P>;os0h^jt%Q7ydw!2*>)%~Yw%`QH=nh}oeDgZ!4DgII;9 zw{1T0(W8=w*I&+Wq|!UC9!yBuPW*@GPstI8;{v|r4%@>DzaD0<>Q0SxT`T@uxHpnH zaUzeWtw0ds_C*!vJ$W}3!f(3`jX2-jdLlb^$L`3bO>zJvk6efEHmmFFaJ2G~_v0y! zGs6I`#9i|p9L%rEuQMa1}r?ZdueIw~B;n@Ey)p)BIW4W>0PmxMT`bQ?HcR zBU}pm!eahY@S_FiKWbynv}Z@r7xOmiYU;QJ z;ThzsTIHvbRNBWct=Af6-9q2hZpsVYy9;SvSvB`N*4l^StgRv{eRb0#oCYY?_m-_| z#C77>hp+u<%g(Jr$3*pQvbV+<$}3&YD8SYF{;XbpvGO=3{n12Zr9`?$+{Ag^(cJFu z?u{;EHXdR#Dr z`|#t>w;+}Ux9p!QrUthUi8V5lPr>4iB>(=y<6_xU#QUP5d()NV)n7ZM7_Ka^>Oy*6 zTe#-{q|b|z-2|pz>fE>N?6uElrC`}@PNv)9Z!C89LPw|T`)t`R!uyy{)Cz}Ic2k2~ zwTeQz%qadi!fw8gz-)dbr;J7)I@Jf9CkDN(c?2DDY2S3XYoRzQM!!FxM|~z_!~U*B zLrh#BEkoSBDuP*7!Zw573VU~;L6~o|uwwx$AAc*?1^G}6AKK{XSKuXyNz1M;m>2rU z{%uH~yTwh6EBt+W@%m#Ho|VGcur=1D>`Yj`?k&g7w46$P9Eq>%85<9m!9_LZEti#X zXN`ig@`H`ai;B`56-rra#!KO`7icdz8EB91v%Z8FKGUO5D-(<*QSq+VK?bL z;lc1YvA-LV?7#BEZv}3q_SI4x1Ew~pW84;LOpkb0nkTl~%H`yp=_ST<61Sf@5AWb4 zT;!}kj#6ZQOL#+`nQ1J3?6{G{T*6iB#avNQVG8O0Y=*v0)>&2E#OFjjKj<*?u`4h zFg37-)_wTIIF01zaGWUs#UaCz`NmFOcOSV>zQ86;4C7<~#$Ze1#?7cV(}x36hIR55 zMhxoHO(P>ARN8Y=He-U9Z)qUOJh#60n{G#v6(#rx7a?O{*FyS%Nw&qH*=<991siAL zlQ%EI8y$k{-isI6eBqjIn&igP|E~6MYOO9h;Yqp)qv5aTcdI>n#B+}fKg#u0%YI1O zASKZ;rK%SbjuY&L%(~SztG#OPzKX})7pafU9Dre_xCHq#^dHV;l8*nTh%lsX# zIo18F^rXAY>qIAgJj#^BgJ&@~ON+okYV``NLtPa$HZ)f1R**97`owfDYh3`16-0G< z&HUuE-~`Rv;A*euSQM>is?&pDmBhS+t@+<^-@_S(?~<&genUI|S(sdg&o@nF7b-Jn zCKC4H$i!sLyK=~oL&40sS0&XrA~c|z^|`282-Bb(6DHt^!i$Ws-7`4~iFz})4B*VV z4i0KTiz$#C)T-EYs7;_NGM_SL+->4Z4NVp{7DrXjqZ(}!qed9$T`O=vVNi;Db6O>c zPUGFuu~neH^3ktkO@k%<#FyiN)rUTX@V)#ohK<^E;`jI+53?}0lQL<| z1~dX;Q$QQ<9M{^~*nT%`>u~ltr2fd~V0s_8{v+3kVHw`_WF{@{QOn8mR>4uSGuVi? zv4W&k1yxa(*-oT4?|J3OLgirF8|7k>(I@d9eqjAw|j_g6V)y+H~jzB%MqsiSMMR388c zZaa9c_c4|1l7)Q4(T`W@-aY(E?uHCF;nSanU5B{pmNd$%4Nh(-+qt-kZ;<{gw=WkA z#Ia^CdhU0in=HbdCgL>fbu|%E@8@;ns@a1jIi^J z0Z$&ydwzk{oq~c|5~&Y{zX^WRB7tT~*GjF@k6(c$qR958C6g~-=@7bCONBnczZY`S z|I*UM6U>kQ;(>(ctHny4>QFqB;`z{BY_CW>gGlOUnj^3<>5jGMO9o-e(*VLxpZ$)2 zNYd>c_V@gD>xHsrv4$s<0>@xsYB>*X`$J#>x%1=-Dh3^E-cxSyrkcrZF!FSMGMR&y zzztz(!a=Qbdx!&hh)m-sRhODK3<|x*iX1x`oR_ule6<`TgB=;iWOb-)lpo=RFevnJ z+6w;iqJYbiQe;q$3n{Z&`TBOhlExw28K<>~$kX3JHyDkm>$@r~gFp#XDo>ncchEk_ zQ8imd5@UTbpNfa_6vwilq{kR>n9sIO4puIu=f9(97=6S?XV$y5B>Mc$(Uh&)0T!Wm-VWd{7O@7 z=q+bWqTd^utMj(If(KS@m3;T`jmtu192ePNgr{s|H)~65@dS;YD|2FqpH#jx;s!I+ zH3P~?9g+^OIrD~#deVV=CGP`3vF8qs7Tg;>udh3^)Cbl=6T?18ho@!+!8Y;N5#CLI zc9CJL8?9eYs8%}g>ZWcuyFT3hOZ)odn62U1m}ODe``a@}H#?a;wi)lTI-qOh{lQP= zdeM00E4^<~Bb?ri?+@fI9x>4Bz8on`H#bu0<~mOs*6*5IL9IlRU4T_ootXN2A7$CZBcv?H8~W3^NCBR88DhZtxrCGJD=&4r_RJ9k`ZU zvrIzKeQ`Ke@8PkOq&ZDEz^7}yHt3&s^8{n}Wm4yBha^(9p28sCmLqxbvDZu{OAw{d zg2(YDL!ej{BIPAJAy&)5#}_L$4lK*^?CFXUl7XMq;XciMHw|KE_Ku3Mxzsv?Z|Izj z(4W>#E8dKx*WxxEkE<2B{w55&fBW1x!mUzGz4ztl*KQGY=v-o`wxw@?@{t$gWkY*` z+4wlqb;-!{1T|I>n(E1S6F!?pqe>m_j!B*BICmiM<~@LlZ)loe@%c{wZhK5gdypMT zK|xRVv+AP>znpVb<@@mGgzO2!jf;$3$_IYML)?F`NGfk+CA;E}62=P$zXh{DQX@@r zu}uHid3ePSuaU0LKqH8V(_NzCZ~BQtZws%b&SX+JhZ@%vV-b22lUkeb#&whFIer!T zUUlVAp z>V68qJ`mop_NY#Eh%XGRZX`aJ^T|bpISIjUTW4RO)ndo5jwdn1X6Yydt-n) ze3kK@RJ~2o%EXaV}zBCvCFen%toLKeMmP~I=$zLIF_Lk0<+CjJo9u`2V>#o<0odlwStcp_kic`Kc?EVePJu z)c^h+Ej%9K9^#4=H@BUYOU%K~W$x{ueVXktTVg&!$`psP6*{rS4udvkQ;mjp>t$BW zr?2XYACXq<4Rvzg1z6dRtJmeP--MYJ#;F|_-U@z`kP^IZ`?_w%AV49~plL5}yB%UX zfWMq{zwgE$-8X?s#W69#jclVil#o2m$Yb-QEc>wPFO|{A_IV+%+~`r8uD^*P=!TPy|%yR-|Z!n zxE(Qo8?MjVgO66}g<0Rtz1UvT6PK|?sRO{IqA#fS8-Iyq-irzIpEv@KB{*Kzn5$JB zTX)ngSZR)ZwJj4ZiOgE*Kn?wx(oVDJA0t1wLfbtw{BH3a%h`zoS}+LtvgER^{mDA1 zz^KzaRN<^LMiiiicj^+kZg+0SpE@TNODW3Xoj;x(uYT8oX-eLUxQu{S>TMdb%Vgl0 z0=ri%0XEKV0oOJmi%+-SmWK*^YE0Ar{wCzdP`zdhd9s|+e+vMW zBInI>+%?vuBYgd$2$uHemRJvkseMG!xAWT>tYNWT$hz>AYjRk2zk;G2sQ<$EHZpCw z=|8-PO3|P6oZ)=dQ|*P}5g!-nryt1>^c9v|P!!Atfv!2f*XgU4+)}t&+wTUe4$!>k z*7*;wy*AbQj}_RRk1bMMJ-pvouHLc~d;Fa*Y2#~#!==S9U63xvCRoG?1BF-k z1xR))V_j_;55_JcaI{z-;9j`dck}M@s`2BuuWJ-{T{~k2*Ptc8a4@&ty`1fz8n{Ae z?SUw|ELm1nw>IRM8VOcICBY{{Mfhu8MJkmTD$G;7Xy zbj~jZ9B*Mwdp-xHaB3L8e7)eEU#PDgc3ZL`T*tnc+xQg zJAv%B5S)m(n~dDO$pn`~Ex+U8e|YdBYG-wZrFVpS12if2z`;NCsw{FVof&T%(=SBy zwwhE$0POtA)FHs|c3?k3;d}F_9bZRn!qJjOyRqq3;Eho}@0GARiR(>vmi^D+Mb4q0 z!o6#MaAGI<&zqsR)|7A#!<-6}ON@!2vi!mx;)JCjrwb%@Jb)%`X)e{#)}>y-wW$yQ z!9Fau(=WovyM1>JO|m#^EggP3P1P9uQN~3`$1*}0=b!XVV5BC$^DpXd^VqIi!TSzM zjS7uC-(~(+y?PjqJS54ibv)wvXMH7(yOGakrs$9w{7;+FmgU{AT*ga`cb%5WcAG=; zMUnrU55IbfmvfZbi8k~Es zG)v#NYTPt}?_l?q(@6Z1EP@*R7r4LYs|G*6^-nX@z@rFV8KU`n6PkWhVS=h$-gEkP z*Da;hQW7C{!791gv+wrp0Jl}Vw{gX(K_o5V2zQaly?vsAwKW)1-`p-S8+<*~?8qi| zA(`n94_swuT})>qR{1h%kBHNFvOa)+gHCdjUqI&CiI*VVK`bT+*isY80P z&iDATMJ#jn=RvMG=3?^XH=dM<%qf8b^L?t09A8NMT1NU(`*La9jr#la+L!tpGk6UX z?rwnwj+7BY{RvEiE?2G9eJZ&iU79=*cs3f8;)Fdqc5_G#VKHnuV--yo(Y-*m9jJVA zc9crM*QA654g=h1sU$xKRf?u9*8Z?meGKJh9tRvPHHf-pZ~N(2isN7pazUnfOqEA4 zoURu=PSDG-^!J?b4}*V9@Bqm}3Bs36UYA!n=yw%IIpLRK4Bv0z;GETI?n0~d zwDks=vUi3~KZ7@I!&k&g%4WI^ES-md=t~?`HW)6a&#Ev_y;peqHT;W%;fzM^x_UbU z4h>%^IQZyzN#8ls{T8MyEnev4s{0?_d;Vo^L)5MS4P#L16pxq$TBUM&J!inkkI+>!hJN@`p8ThyQN%c)7(?oZxye_?F2nxvDQ1%7ys&rF+GC^QJUw!O48HgiYJoP!+K~TLv&$;q$ zI>ed5X-Hbj#eEshB_dW>QHB752 zLQaQ-@(fNFuZ;A}I<4XT!2X@yEcd(SeDQBX&dWtPu(u;sKStU=1gTIES#NxQNmZ16&9Bha`RI}nc&!`v{~9kkXzigCX_Ug0x-vk>_Eb$aPK zk>>Rk?L+UV!mc5i_OA_n zc{YnPr9vf^edB`oJT=YG$8Q2e_YXN%w`CXg!Sh=)dK0c-$2Oc{kUq5U`{fqtJn7&lF5d1c8 zoF~G^qz-?-rt>S%@0ui`*%g*5{R&YLhW;^u9ZEm(51c5fw19dAnNOPp*FZ7ivMp(-|))T~t03NiJY<=YeSt_ncDffoNSa zy+{5nJP17DUdfQMj0prF9yt_a@89$cT>0)#e-jyQFFa^<*jPP{82UU?>QlmuE(rgl zs+gH8PqQTQ;N7U@o5wxi2gqc>x}&{uS0V1z)xQOq{VlIlBtq=oBHh3FE7!A+g%uBl zCxzHayMMFZykylI=fqw|j8_gfExoOaSME!AFEIRMxDux%e*3ujRo5mrcJ0r{5J>BV z59Zbm8DQwQ#Oda$uBdq#@$qQS-7!G^!lZT8+BZ8VKF0h-N@=%kR}p@*RZ7i2g2 z@uVSvJ0*<{9P)_=8h?#Nqn02e0mrrduIx8e%_{{&K}sJkBygjqiIv=!f2ZEkvlBV(SKCy z0P|~Pz~CQ6$eU%qs)-e!1Y9j&*E%Ez7nhHi8?0E2wzL%t1a3DBhK}3b8LO>9D8q4* zPHBlD;N>8X&o@h&FNQR`qa||rk@4XB}(X>0p@A}PTU5o=ej=q$%i1eR11mB33 zbiNe9U4dD`BR-q;>q<3?k~i4ye1e9!GEdwPt(FwJ@%~qO)m@oM{4TEPNygi0RnOb5 zvh$eBFx=iWwS5$K!Nc1C@8CKbS2yhA>`F>+ze+g&sICUi|538r<)OI)qKWEeu6}(juD-uj^bUE2%P8PX z;7ujM`Rmk8H%^zfdi;i6eRC^#bnZgz$OG~3bBVtnow|+Afl0E(x8E*2aKEM><4x*M zZ*39(8p}pcs9?(d2jV`nL5|Lx7qa(uyfkPf54V=#qOI2UE*@b}TD{6W)P4NX*Sc@IgBKiD#xY>BZBrqwS{O(EJXyexBiMhU26X z?o_uMX7$|*%C^o&m!P#Do1tl;a|g7quUB#3?k_*?!l50_-zH?h@+Q`p)Ya(swSW7) zO=8!AA`c=gG>Jz<+oRbGMQW57e^$EWA|y_uA_B zMbB+tzP(yL%Yx5^K?i@xLZ-$+b-&)xv>~39(HspkvMqLc>jW4RWbaF;Pm`%bm5=iJHL@zjeRit z4Xcgx+hVyzI6k-3{mf8x)Nt-5Fec3=Jj);QP^WM+ehqyyjFSqW7X12d3+q2ZxQAO5 zU0B`k{SKavfHH4-h;@k zJgBAyvC?+Hx!8qF+i%U94rUOYUP0~?iWk@4Ki<}csR z;wrQ*HTOXyyI0K`?l+bj4UI{4C!Bk6g^FHB|Kat5(z=E%?p;Sy_4Q(>*^4YEvbHv= zQJ=+9ZFgJijSvEF8Z_Ql2h8L))fET#e%mGETB@_DId&xX1N^ixa7?rw|2*a(gpQz@ zEhyf^)%+?&161Kbta*7h-jSe>rw+AcB_RsMz=|-K8+tE5vfVCuc((Ay$aiggb4HJEi}vJCs=(owE><#&7sf?5R|5qg1=Woe6xcK zBN61%Mlm9gz>?(fM#%m_h?(V_k0Q&d3;7|%$$YV}gpbn8=nh&u>RLZ^vj(SYGhtF% zV@2D6#`&iS>ES^}gt5B$)CZ=pXW1K1)?Kr)KFirfjw#{!Kd+gG?-^zZ7fk$kICBHXI zKtojuyF4bukKEMf`Mr36KYD)@LC?CSbnXDXMa@w)tQn z;fY9`7Swq&0H#(MZXNaCt*Nm*I>_b`|qMQnygeF$f#xG90 z1)BUqwHnD~kp;dp06r&PqdZ_T)efQ66K6FKlL#P)IH$3rkZ9K_Zq!ACK?Fp!ocIIn zfTVmZ7nk|IcBY3??4Qh3q-2p=f+)avE}H}&g!hm=qsEz=(4JA&)yv5P695rcrsX1o z_C{eAQ8OKFvUQlQ`s%3Q3}P0-U4nQPML5+_>%?W!zmgC6>@+%wPeB4*A0aav&j>XI zY%-68j65M$7}gka)yQ!AW=thx(>t2AocCLn@6C5PUE>*O=Fr8>CMbc!L~hQOa{V|@v|0HbMM>;ny)APf7n z;|JCOCgPw{9KpJlI=mpA2c~|1*NDD4#eZH6-vr+ zf90Ay*h7d@h7b|&B4!@o@fk zjK&xM;auC_1r2iHX*V(yFk1(R{0TnYW)5;{lKPM`;zH!IA~5Kk%_R^JV(jH2pOF}z z4y$&t4KKxhAY>il^#~yLFDlsC?RQg$iqvWH6uSI8Vui>4YK{80+MI_?$&3REP2M{L zza)GfmamTpBxYep*cIbPBuD?Q$+sN9H}*fvVe5EaPvy~tfDA8-e ^bX%1i9+$tT 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 literal 0 HcmV?d00001 diff --git a/FrontEnd/BreweryAppAngular/angular.json b/FrontEnd/BreweryAppAngular/angular.json new file mode 100644 index 0000000..aa082c5 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/angular.json @@ -0,0 +1,97 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "BreweryApp": { + "projectType": "application", + "schematics": {}, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/brewery-app", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "@angular/material/prebuilt-themes/deeppurple-amber.css", + "src/styles.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "BreweryApp:build:production" + }, + "development": { + "buildTarget": "BreweryApp:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "BreweryApp:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "@angular/material/prebuilt-themes/deeppurple-amber.css", + "src/styles.css" + ], + "scripts": [] + } + } + } + } + } +} diff --git a/FrontEnd/BreweryAppAngular/package-lock.json b/FrontEnd/BreweryAppAngular/package-lock.json new file mode 100644 index 0000000..73c3a37 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/package-lock.json @@ -0,0 +1,13752 @@ +{ + "name": "brewery-app", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "brewery-app", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/cdk": "^17.0.3", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/material": "^17.0.3", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/router": "^17.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.6", + "@angular/cli": "^17.0.6", + "@angular/compiler-cli": "^17.0.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1700.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.6.tgz", + "integrity": "sha512-zVpz736cBZHXcv0v2bRLfJLcykanUyEMVQXkGwZp2eygjNK1Ls9s/74o1dXd6nGdvjh6AnkzOU/vouj2dqA41g==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.6", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.6.tgz", + "integrity": "sha512-gYxmbvq5/nk7aVJ6JxIIW0//RM7859kMPJGPKekcCGSWkkObjqG6P5cDgJJNAjMl/IfCsG7B+xGYjr4zN8QV9g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1700.6", + "@angular-devkit/build-webpack": "0.1700.6", + "@angular-devkit/core": "17.0.6", + "@babel/core": "7.23.2", + "@babel/generator": "7.23.0", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.2", + "@babel/plugin-transform-async-to-generator": "7.22.5", + "@babel/plugin-transform-runtime": "7.23.2", + "@babel/preset-env": "7.23.2", + "@babel/runtime": "7.23.2", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "17.0.6", + "@vitejs/plugin-basic-ssl": "1.0.1", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.16", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browser-sync": "2.29.3", + "browserslist": "^4.21.5", + "chokidar": "3.5.3", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild-wasm": "0.19.5", + "fast-glob": "3.3.1", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.2", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.5", + "mini-css-extract-plugin": "2.7.6", + "mrmime": "1.0.1", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "3.0.1", + "piscina": "4.1.0", + "postcss": "8.4.31", + "postcss-loader": "7.3.3", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.69.5", + "sass-loader": "13.3.2", + "semver": "7.5.4", + "source-map-loader": "4.0.1", + "source-map-support": "0.5.21", + "terser": "5.24.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.6.2", + "undici": "5.27.2", + "vite": "4.5.1", + "webpack": "5.89.0", + "webpack-dev-middleware": "6.1.1", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.19.5" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "@angular/localize": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^17.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.2 <5.3" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1700.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.6.tgz", + "integrity": "sha512-xT5LL92rScVjvGZO7but/YbTQ12PNilosyjDouephl+HIf2V6rwDovTsEfpLYgcrqgodh+R0X0ZCOk95+MmSBA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1700.6", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.6.tgz", + "integrity": "sha512-+h9VnFHof7rKzBJ5FWrbPXWzbag31QKbUGJ/mV5BYgj39vjzPNUXBW8AaScZAlATi8+tElYXjRMvM49GnuyRLg==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.6.tgz", + "integrity": "sha512-2g769MpazA1aOzJOm2MNGosra3kxw8CbdIQQOKkvycIzroRNgN06yHcRTDC03GADgP/CkDJ6kxwJQNG+wNFL2A==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.6", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/animations": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.6.tgz", + "integrity": "sha512-fic61LjLHry79c5H9UGM8Ff311MJnf9an7EukLj2aLJ3J0uadL/H9de7dDp8PaIT10DX9g+aRTIKOmF3PmmXIQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.6" + } + }, + "node_modules/@angular/cdk": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.3.tgz", + "integrity": "sha512-Qd5uvC09B3+uk2uX1JxmiWrD7wueMHSxNBoCbDEmnrsdDVUta0wN/jj/CtATljxUM8ZqvEvkqgxJCig1od9oyQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.6.tgz", + "integrity": "sha512-BLA2wDeqZManC/7MI6WvRRV+VhrwjxxB7FawLyp4xYlo0CTSOFOfeKPVRMLEnA/Ou4R5d47B+BqJTlep62pHwg==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1700.6", + "@angular-devkit/core": "17.0.6", + "@angular-devkit/schematics": "17.0.6", + "@schematics/angular": "17.0.6", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.1", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.4", + "resolve": "1.22.8", + "semver": "7.5.4", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.6.tgz", + "integrity": "sha512-FZtf8ol8W2V21ZDgFtcxmJ6JJKUO97QZ+wr/bosyYEryWMmn6VGrbOARhfW7BlrEgn14NdFkLb72KKtqoqRjrg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.6", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.6.tgz", + "integrity": "sha512-PaCNnlPcL0rvByKCBUUyLWkKJYXOrcfKlYYvcacjOzEUgZeEpekG81hMRb9u/Pz+A+M4HJSTmdgzwGP35zo8qw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.6" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.6.tgz", + "integrity": "sha512-C1Gfh9kbjYZezEMOwxnvUTHuPXa+6pk7mAfSj8e5oAO6E+wfo2dTxv1J5zxa3KYzxPYMNfF8OFvLuMKsw7lXjA==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/compiler": "17.0.6", + "typescript": ">=5.2 <5.3" + } + }, + "node_modules/@angular/core": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.6.tgz", + "integrity": "sha512-QzfKRTDNgGOY9D5VxenUUz20cvPVC+uVw9xiqkDuHgGfLYVFlCAK9ymFYkdUCLTcVzJPxckP+spMpPX8nc4Aqw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.0" + } + }, + "node_modules/@angular/forms": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.6.tgz", + "integrity": "sha512-n/trsMtQHUBGiWz5lFaggMcMOuw0gH+96TCtHxQiUYJOdrbOemkFdGrNh3B4fGHmogWuOYJVF5FAm97WRES2XA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.6", + "@angular/core": "17.0.6", + "@angular/platform-browser": "17.0.6", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.0.3.tgz", + "integrity": "sha512-a7l5hMMCMobULAjwPK8HVQmOsbd3pOwju1QdBVhec0XwNGj2pK4ooKWdUmQcwsUA9DaZaOwAgEISHEADXJfKpQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/auto-init": "15.0.0-canary.a246a4439.0", + "@material/banner": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/card": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/chips": "15.0.0-canary.a246a4439.0", + "@material/circular-progress": "15.0.0-canary.a246a4439.0", + "@material/data-table": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dialog": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/drawer": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/fab": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/form-field": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/image-list": "15.0.0-canary.a246a4439.0", + "@material/layout-grid": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/linear-progress": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/radio": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/segmented-button": "15.0.0-canary.a246a4439.0", + "@material/select": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/slider": "15.0.0-canary.a246a4439.0", + "@material/snackbar": "15.0.0-canary.a246a4439.0", + "@material/switch": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", + "@material/tab-bar": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/tab-scroller": "15.0.0-canary.a246a4439.0", + "@material/textfield": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tooltip": "15.0.0-canary.a246a4439.0", + "@material/top-app-bar": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^17.0.0 || ^18.0.0", + "@angular/cdk": "17.0.3", + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/forms": "^17.0.0 || ^18.0.0", + "@angular/platform-browser": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.6.tgz", + "integrity": "sha512-nBhWH1MKT2WswgRNIoMnmNAt0n5/fG59BanJtodW71//Aj5aIE+BuVoFgK3wmO8IMoeP4i4GXRInBXs6lUMOJw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.0.6", + "@angular/common": "17.0.6", + "@angular/core": "17.0.6" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.6.tgz", + "integrity": "sha512-5ZEmBtBkqamTaWjUXCls7G1f3xyK/ykXE7hnUV9CgGqXKrNkxblmbtOhoWdsbuIYjjdxQcAk1qtg/Rg21wcc4w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.6", + "@angular/compiler": "17.0.6", + "@angular/core": "17.0.6", + "@angular/platform-browser": "17.0.6" + } + }, + "node_modules/@angular/router": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.6.tgz", + "integrity": "sha512-xW6yDxREpBOB9MoODSfIw5HwkwLK+OgK34Q6sGYs0ft9UryMoFwft+pHGAaDz2nzhA72n+Ht9B2eai78UE9jGQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.6", + "@angular/core": "17.0.6", + "@angular/platform-browser": "17.0.6", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", + "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", + "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", + "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", + "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", + "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.5", + "@babel/types": "^7.23.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", + "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@material/animation": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-0eV06UGYeuFwC/4t+yjg3LCRGRLq72ybBtJYzcBDpP4ASTjie0WmpAOFJYXRq2U5X/yxLviDMhpRemoSUjgZ0Q==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/auto-init": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-0QfmjT5elQ10hCxToVgq/WaC3301tVH1sJaO3O2yocVzr7s6iWm8/zch16V5hcHzQHbtcT3Rf4y1ZzmdNys2Iw==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/banner": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-PBLgH7JEbEpTkLy33oyWXUhIFmSsdOrR6Gn6qIgQRo1qrnk5RSBGW2gEq4Z6793vjxM107gKudDb23E4Fcu4vg==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/base": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/ob3v3IFU8q2gGdVNWw5kNPjW2mRTeBIz1YdhGWUmRxKn2Kl8bdLOvrAmZtQMmPn/4cGXvinxpec/zVBWQKDkA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/button": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-rGpVRde0Aqhv2t9QvT8Zl3HvG89BeUNPOpgfpaLBZ4SGGAO4rIrckl/eCENibKgmmdCKcYZlG9gc5abQVPfUvw==", + "dependencies": { + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/card": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+rYUnBPgv5QVF6BeUs3toIRdSwFVohGmjk2ptTXMZkKxqAJt7Nr9Znbm3Ym2hD8GUHJeh3pyGFvEs6rG6JMYAw==", + "dependencies": { + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/checkbox": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-sQwHzm1TSxHUoPrqplWTk/BhyzdDhzcwlbucwJK9W0o9WXMDk+d9PvcCxpP/9sAnVqZk42BfE89Y0T1DHglZ9A==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/chips": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-TiV9WJ5taEHPGWPhXbxJvUJhLzThg+VpK7aAlvL4RurtmJ7pURuEdRS4Z6o0OEqi3wKQ4z/+K44kZUn/+9HALg==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/circular-progress": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+QTfyExPWzgm2tqMInd32qQOftsC1b8MUhAhZSfuecYBfqAc7KZkQEKa2nm4y8EHKMFWe8/DcxLV6IxMBLgHwA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/progress-indicator": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/data-table": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-89qVOjR7gqby6fsmh7tKj29SjQ2sGLXu2IzCeX3Vni4mz+xxo5dv11jxYNADvdgJDfhyDJFPh1FlqAH7O09nFA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/linear-progress": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/select": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/density": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-h8BJVCWkPR97WeWCN6/atVbSOP8J4+ZbbssidcwsnX7b3+3IaWdtBxGii25dsILX8pUVwwqxVis24y211b+8rg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dialog": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4lyxd+5ccOEMUGKzZcssaYyzkCsYTpYCSQSANR0toQPLv3voDwKMfA709uZI6+nL7Re6Xdf7jx8qe+QpTTjVcw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dom": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-AftSOGQoQg/Ys2kOVjZzvqWmsnhg3Kam/2UC4Gj0DMMCu36J4MAoD+3PpnOd1aG3wiJKtUXR2vPIwE8I/PM9yg==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/drawer": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/JUmbzRBaikdbZ250yA9ZTPqp2W5nGvvuHYoNVAAmtOmxuwGvvNNpWiVZy2lIYeYcf1hA7hJ5mEQxs0aSD7iWQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/elevation": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-lwPIOb8fHyOljIWYcVLPT73dPIEOKat/CXu6gqYIVMQgZQIksQNUA7z1O3l7apkRSuYUOYSXqrgU7AnWP4KcJg==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/fab": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-XUex3FNqxPD1i/4jITucB/RWTNkkdv52mbNmwrvbuThZlhuhyH9GzOQYTDop/b2783TPcv++xr8UUbuh8GWYzA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/feature-targeting": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/SU9X5y8CRp6RS9qnjnM/N5qfsJ8bYILpR841eZmN6DLqMupaM9Yy7Mx8+v/QvpBLLhk+jmu79nFzwkwW54d6Q==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/floating-label": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-832qZ/qxKx0KUatoeVY3Q2NmboVgiWBG0/1VsbJyodHrgQWfnBOHgLE+M322o6uM3OhvO+kWm4iYbvwhmLZGsw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/focus-ring": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-ar0BtACFS3K14k/enAg0ePeEA/f/RJY4Ji4L/00Dw/B3XVpNRbqLH49jkcbtcQjdTS0FEyk2sWSNMZl6wVi0/A==", + "dependencies": { + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0" + } + }, + "node_modules/@material/form-field": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Q/+ErgtAUFUPPUmWA1m5IP5voiN8XjPRwyoAlFxSTa/4t+EA5B18Z8Bsn9b6I0AC8RHke06H7UWrKz8XUDIFpw==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/icon-button": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Igyo94rkIlqC91BR1Tv+WLTz1ZWcZZjl1xU7Vsx8mbWA1PnaRDUTNVV5LFi4e0ORp6GSblFTImpHngEy4agMEg==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/image-list": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Rcj3q7Tp7Nwbe5ht6ptTc3zqK8TSDJHaPDBf+kzi0kkh6MAB4qoHPgn+HnA+zIZ79CScU56bN7zjA6XYaZvsLw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/layout-grid": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-bkfxZuVzgtjEJgR3n8pvDQbe88ffULDJ5d2DF34IR8SOiRmQcj7UzqAt95XwIUcWlfisLCoIryP4U8XSpFb1EQ==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/line-ripple": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-20WmwRrejmtOdI37+959UqEVIjbMtAXlkDOkfCIA3OUhp+oZSjVkCqKxI16jxxVlnzJ353fy8xeSKzOHe4sExQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/linear-progress": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-IcCd4476pXHloTYadHDJ+2c2lntoVigeNnQEiD/ASQTKqKrJqkIdvvczFm9Ryu+V2+TKhp7vvQGFLUMaLPcmhw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/progress-indicator": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/list": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4H5dKIjCUGIPmKjfcegV0SBybD5NNdHp26OU6sovvWIvxSGQtDJr6z9I7i+0vF/HIS5ScbHD2+9/txtL80iqCA==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-2HOHQAIdWQtXjSvEIrW3lnbcIwFf5XaQhFzCEZ04FcSGApc4iLwsmRFVW3PzWx+mVrUrEfO/K42DVULIX9J1Pg==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu-surface": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4h4wZ0Rs7qBg1Otldw8ljp+LCULNL42pqbqcTXhKAkJM7pHcSw4k7IfoThSRLU3+V8T3/+qiAXyeQix2OGHzwg==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/notched-outline": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-zmRZHJ+5cOWsBatRyK50wuht78olXySyKOJIIEmy8lxSMZefI1764u0mr8tS1KYF8vSAl5cUlwCC3/2Njz1FPg==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/progress-indicator": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-92HM5niUnqG5Y3M/xkscBD+2lkaWPDcIRPo0RHPYcyldL+EhWRv/sdQpfdiXw/h3uvKSowKxBMCHm8krAyf+sQ==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/radio": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-on8EVztWXc/ajcaowFZ31ClGADYxQrhj4ulMne0NxdHHWQ44ttf5aXOVqtv5mxeOzrRACOkQyTUXBG07yTWCEQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/ripple": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Vl615/PIBpBD+IOI9Xypz0SV3RsmYJYSNx890Rih7irhUOaPsOUBmTYOWF5AsGBynqLcXoTNVhK92drYLKtJwQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/rtl": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-pgJFw8ZRpWGpwv7ZuBTJ+WdNmFBKoLVoMbbxKQWTHXVwhAqn3aoIq95o62T5QeEG/+sguNShdquG45CpAMmSRw==", + "dependencies": { + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/segmented-button": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-oqGHs2C7C+yJW/xZf/wP8jBGLs6HcerhM3CsorLAEMH3MGuIlVC17WcisBewEWucsILYEWbySXy/7T4h6/psZA==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/select": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-odoNLiVOgdwbEeePkjHtlr43pjskDwyO8hi4z3jcud1Rg1czk5zoJ2mUI0+olOJjBQ26PGocwrSLqf3qaThbIA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/shape": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-rcWPlCoHyP79ozeEKk73KWt9WTWdh6R68+n75l08TSTvnWZB5RRTmsI9BMkz55O9OJD/8H8ZsOxBe4x2QXUT7w==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/slider": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-is1BSBpxaXBBv+wSVpe9WGWmWl59yJEeDNubTES2UFD0er3BmA+PdKkL09vvytDnBcbKf77TbxaRiUSGVaKUQA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/snackbar": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-2NAtC1qozR/uajszZnPy08Ej8HNnpgvCjNCBerDN4SLH2Q0/aWrVrUjqRCp2ayAvsX+szoroGbCboMhaWRzDuQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/switch": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-o0wcbYgm2yRs4een5uxT4RJnJ003DxXe33rk8vTBG2o7cdiSR3X7GJQxeIK3D9wPgWCAwBLhNYSzXrlTL5pkMw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-HGLK774uMeLnhbjDJBOjft7S6SurZnKb+6Und88OMDUVUEG6MkFBAKQQr09iBIeLE2sUAiGQhBVQtb7LJKwolQ==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-bar": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-dMQb1vXsBchQXcjbwgJZIGqTZHngm+3QGSOSb4LWjqHIgC5+w2RRrHsIAjNTyRhKssJ9nKKrbpM/Yz5vTPWH6w==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/tab-scroller": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-indicator": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-gG2BgHT+ggKnUOaT8LjmH/+9nknRLh8v9qemrhUkDuCtZ8inlaC33OVbbxfrpQW3J+UzBh5YCUSC+2KrN39uUA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-scroller": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-6KvBpalc4SwLbHFm0rnuIE64VffUj7AKhnPc+mqM6VmxOvDzQ/ZSYga0rWlUfM4mCDFX3ZkSxim+iNzVF+Ejaw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/textfield": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4BW5bUERPlIeiPnLSby21h1/xDmySuAG9Ucn1LM801a0+5mK3IwWb8031AP3filKZZqTx5JJvOJYZd6/OWBJVA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/theme": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-HWxC5Nhz8JZKTLTVmAsNxIGB3Kzr53+YFMg327S8/XuEDmI0RFHFvtwM9rADmyrHFBmUaVhV4iELyxFdi67c9w==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tokens": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+5iGfQ51YSb0Qau8uC6/jHXCSC3enKaQKDf/iPHfuXAe04UznW3tmm1/Ju227aZXNISTJcnQYa2rpm1M14MeUg==", + "dependencies": { + "@material/elevation": "15.0.0-canary.a246a4439.0" + } + }, + "node_modules/@material/tooltip": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Ja2Z4aZQkYWD6InXA+MG4M9zdKR6dYsXXlYzQppYpfcQzXylZqh5Y7WBLulG5fA2o83pHVwILfwFZM7j7ht08Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/top-app-bar": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-twQchmCa1In/FFrALPYojgeM8vmV7KH96wRY9NmPSJ046ANgPCicLBgLuSzrLETCFqAwbztqzxSG4xMBL81rYg==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/touch-target": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-ubyD1TUjZnRPEdDnk6Lrcm2ZsjnU7CV5y7IX8pj9IPawiM6bx4FkjZBxUvclbv3WiTGk5UOnwPOySYAJYAMQ1w==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/typography": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-eXzBl9ROzWZ+41nan5pCrn1C/Zq3o/VsrLFaGv8fdRmhRR6/wHMeuvCCwGf5VtEmWdAE9FpJzRU/4ZPiJCJUyg==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.6.tgz", + "integrity": "sha512-9Us20rqGhi8PmQBwQu6Qtww3WVV/gf2s2DbzcLclsiDtSBobzT64Z6F6E9OpAYD+c5PxlUaOghL6NXdnSNdByA==", + "dev": true, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.3", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", + "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz", + "integrity": "sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==", + "dev": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz", + "integrity": "sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@schematics/angular": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.6.tgz", + "integrity": "sha512-AyC7Bk3Omy6PfADThhq5ci+zzdTTi2N1oZI35gw4tMK5ZxVwIACx2Zyhaz399m5c2RCDi9Hz4A2BOFq9f0j/dg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.6", + "@angular-devkit/schematics": "17.0.6", + "jsonc-parser": "3.2.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", + "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.0.tgz", + "integrity": "sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", + "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.44.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", + "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", + "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz", + "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", + "dev": true, + "dependencies": { + "browser-sync-client": "^2.29.3", + "browser-sync-ui": "^2.29.3", + "bs-recipes": "1.3.4", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "bin": { + "browser-sync": "dist/bin.js" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/browser-sync-client": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", + "dev": true, + "dependencies": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/browser-sync-ui": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browser-sync-ui/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/browser-sync-ui/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/browser-sync-ui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync-ui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync-ui/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync-ui/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync/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/browser-sync/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/browser-sync/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", + "dev": true + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz", + "integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001568", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz", + "integrity": "sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/critters": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "dev": true, + "dependencies": { + "chalk": "4.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eazy-logger/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/eazy-logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eazy-logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eazy-logger/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eazy-logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.609", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.609.tgz", + "integrity": "sha512-ihiCP7PJmjoGNuLpl7TjNA8pCQWu09vGyjlPYw1Rqww4gvNuCcmvl+44G+2QyJ6S2K4o+wbTS++Xz0YN8Q9ERw==", + "dev": true + }, + "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/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.5.tgz", + "integrity": "sha512-7zmLLn2QCj93XfMmHtzrDJ1UBuOHB2CZz1ghoCEZiRajxjUvHsF40PnbzFIY/pmesqPRaEtEWii0uzsTbnAgrA==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/express/node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.9", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "dependencies": { + "lodash.isfinite": "^3.3.2" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", + "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/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/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/karma/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/karma/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/karma/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "dependencies": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "bin": { + "lt": "bin/lt.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/localtunnel/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/localtunnel/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/localtunnel/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/localtunnel/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/localtunnel/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/localtunnel/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/localtunnel/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.0.tgz", + "integrity": "sha512-Kaq820952NOrLY/LVbIhPZeXtCGDBAPVgT0BYnoT3p/Nr3nkGXdvWXXA3zgy7wpAgqRULu9p/NvKiFo6f/12fw==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz", + "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.1.tgz", + "integrity": "sha512-MQpL27ZrsJQ2kiAuQPpZb5LtJwydNRnI15QWXsf3WHERu4rzjRj6Zju/My2fov7tLuu3Gle/uoIX/DDZ3u4O4Q==", + "dev": true, + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", + "dev": true + }, + "node_modules/opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz", + "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "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" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.1.0.tgz", + "integrity": "sha512-sjbLMi3sokkie+qmtZpkfMCUJTpbxJm/wvaPzU28vmYSsTSW8xk9JcFUsbqGJdtPpIQ9tuj+iDcTtgZjwnOSig==", + "dev": true, + "dependencies": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + }, + "engines": { + "node": ">=0.4", + "npm": ">=1.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "dev": true, + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/resp-modifier/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/resp-modifier/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/safevalues": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, + "node_modules/sass": { + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sass/node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true + }, + "node_modules/send/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "bin": { + "mime": "cli.js" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", + "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "dependencies": { + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-client": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "dependencies": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "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/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" + }, + "engines": { + "node": ">=8" + } + }, + "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/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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", + "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==", + "dev": true, + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", + "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", + "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", + "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.0.tgz", + "integrity": "sha512-H/Z3H55mrcrgjFwI+5jKavgXvwQLtfPCUEp6pi35VhoB0pfcHnSoyuTzkBEZpzq49g1193CUEwIvmsjcotenYw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.2.tgz", + "integrity": "sha512-X4U7J1isDhoOmHmFWiLhloWc2lzMkdnumtfQ1LXzf/IOZp5NQYuMUTaviVzG/q1ugMBIXzin2AqeVJUoSEkNyQ==", + "dependencies": { + "tslib": "^2.3.0" + } + } + } +} diff --git a/FrontEnd/BreweryAppAngular/package.json b/FrontEnd/BreweryAppAngular/package.json new file mode 100644 index 0000000..78cd716 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/package.json @@ -0,0 +1,40 @@ +{ + "name": "brewery-app", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/cdk": "^17.0.3", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/material": "^17.0.3", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/router": "^17.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.6", + "@angular/cli": "^17.0.6", + "@angular/compiler-cli": "^17.0.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } +} \ No newline at end of file diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.css b/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.css new file mode 100644 index 0000000..eaa63f2 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.css @@ -0,0 +1,13 @@ +.example-form { + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); + } + + mat-form-field { + margin: 3px; + } + + \ No newline at end of file diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.html b/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.html new file mode 100644 index 0000000..c76a78b --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.html @@ -0,0 +1,49 @@ +

    + + + Name + + + + + Flavour + + + + + Age + + + + + Price + + + +
    + + Brewery + + @for (brewery of breweries; track brewery) { + {{brewery.name}} + } + + +
    + + + + + diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.spec.ts new file mode 100644 index 0000000..d65a664 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.spec.ts @@ -0,0 +1,79 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BrewEditComponent } from './brew-edit.component'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { ActivatedRoute } from '@angular/router'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { FormsModule } from '@angular/forms'; + +describe('BrewEditComponent', () => { + let component: BrewEditComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [BrewEditComponent, HttpClientModule, BrowserAnimationsModule, FormsModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(BrewEditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it("should have a valid form", () => { + const form = fixture.nativeElement.querySelector('form'); + const name = fixture.nativeElement.querySelector('#name'); + const flavour = fixture.nativeElement.querySelector('#flavour'); + const age = fixture.nativeElement.querySelector('#age'); + const price = fixture.nativeElement.querySelector('#price'); + const brewery = fixture.nativeElement.querySelector('#brewery'); + + name.value = 'testing'; + flavour.value = 'test'; + age.value = 'new'; + price.value = '10' + brewery.value = 1; + + name.dispatchEvent(new Event('input')); + flavour.dispatchEvent(new Event('input')); + age.dispatchEvent(new Event('input')); + price.dispatchEvent(new Event('input')); + brewery.dispatchEvent(new Event('input')); + + fixture.detectChanges(); + + expect(form.classList.contains('ng-valid')).toBeTruthy(); + + + name.value = ''; + flavour.value = 'test'; + age.value = 'new'; + price.value = '10' + brewery.value = 1; + + name.dispatchEvent(new Event('input')); + flavour.dispatchEvent(new Event('input')); + age.dispatchEvent(new Event('input')); + price.dispatchEvent(new Event('input')); + brewery.dispatchEvent(new Event('input')); + + fixture.detectChanges(); + + expect(form.classList.contains('ng-invalid')).toBeTruthy(); + + }) + +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.ts b/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.ts new file mode 100644 index 0000000..ceccc0e --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/brew-edit/brew-edit.component.ts @@ -0,0 +1,68 @@ +import { Component} from '@angular/core'; +import {FormsModule} from '@angular/forms'; +import { Router } from '@angular/router'; +import {MatInputModule} from '@angular/material/input'; +import {MatSelectModule} from '@angular/material/select'; +import {MatFormFieldModule} from '@angular/material/form-field'; +import {MatButtonModule} from '@angular/material/button'; +import {MatSnackBar} from '@angular/material/snack-bar'; +import { BreweryClass } from '../../Models/BreweryModel'; +import { BreweryInfoService } from '../../Services/brewery-info.service'; +import { BreweryPostService } from '../../Services/brewery-post.service'; +import { BeerClass } from '../../Models/BeersModel'; +import { MatDialog } from '@angular/material/dialog'; +import { DialogQuote } from '../sale-edit/sale-edit.component'; + + + +@Component({ + selector: 'app-brew-edit', + standalone: true, + imports: [FormsModule, MatInputModule, MatSelectModule, MatFormFieldModule, MatButtonModule], + templateUrl: './brew-edit.component.html', + styleUrl: './brew-edit.component.css' +}) +export class BrewEditComponent { + isButtonDisabled: boolean = false; + itemId: number = 0; + breweries: BreweryClass[] = []; + beer: BeerClass = { + id: 0, + name: '', + flavour: '', + age: '', + breweryId: 1, + breweryPrice: 0, + brewery: undefined + }; + + constructor(private breweryInfoService: BreweryInfoService, private breweryPostService: BreweryPostService, private route: Router, private _snackBar: MatSnackBar, public dialog: MatDialog) { + this.breweryInfoService.getInfo('Breweries').subscribe((result) => { + this.breweries = result; + }); + + if (this.route.getCurrentNavigation()?.extras?.state != undefined){ + this.beer = this.route.getCurrentNavigation()?.extras?.state!['beer']; + } + } + + onSubmit() { + + this.isButtonDisabled = true; + + if (this.beer.breweryPrice <= 0) { + this.dialog.open(DialogQuote, { data: 'You cant add a beer without price!'}), + this.isButtonDisabled = false; + return; + } + + if (this.beer.id != 0) { + delete this.beer.brewery; + this.breweryPostService.updateItem(this.beer, 'Beers'); + } else { + this.breweryPostService.postItem(this.beer, 'Beers', this.route); + } + } + + +} diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.css b/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.css new file mode 100644 index 0000000..7c31cb0 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.css @@ -0,0 +1,11 @@ +.example-form { + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); + } + + mat-form-field { + margin: 3px; + } diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.html b/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.html new file mode 100644 index 0000000..c60951e --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.html @@ -0,0 +1,25 @@ +
    + + + Name + + + + + + + +
    diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.spec.ts new file mode 100644 index 0000000..b8e3a52 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.spec.ts @@ -0,0 +1,52 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BreweryEditComponent } from './brewery-edit.component'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { ActivatedRoute } from '@angular/router'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { FormsModule } from '@angular/forms'; + +describe('BreweryEditComponent', () => { + let component: BreweryEditComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [BreweryEditComponent, HttpClientModule, BrowserAnimationsModule, FormsModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(BreweryEditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it("should have a valid form", () => { + const form = fixture.nativeElement.querySelector('form'); + const name = fixture.nativeElement.querySelector('#name'); + + name.value = 'testing'; + name.dispatchEvent(new Event('input')); + fixture.detectChanges(); + + expect(form.classList.contains('ng-valid')).toBeTruthy(); + + name.value = ''; + name.dispatchEvent(new Event('input')); + fixture.detectChanges(); + + expect(form.classList.contains('ng-invalid')).toBeTruthy(); + }) +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.ts b/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.ts new file mode 100644 index 0000000..3da95fb --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/brewery-edit/brewery-edit.component.ts @@ -0,0 +1,48 @@ +import { Component } from '@angular/core'; +import {FormsModule} from '@angular/forms'; +import {MatInputModule} from '@angular/material/input'; +import {MatSelectModule} from '@angular/material/select'; +import {MatFormFieldModule} from '@angular/material/form-field'; +import {MatButtonModule} from '@angular/material/button'; +import { BreweryClass } from '../../Models/BreweryModel'; +import { BreweryInfoService } from '../../Services/brewery-info.service'; +import { BreweryPostService } from '../../Services/brewery-post.service'; +import { Router } from '@angular/router'; + + +@Component({ + selector: 'app-brewery-edit', + standalone: true, + imports: [FormsModule, MatInputModule, MatSelectModule, MatFormFieldModule, MatButtonModule], + templateUrl: './brewery-edit.component.html', + styleUrl: './brewery-edit.component.css' +}) +export class BreweryEditComponent { + isButtonDisabled: boolean = false; + itemId: number = 0; + brewery: BreweryClass = { + id: 0, + name: '', + Beers: [] + }; + + onSubmit() { + + this.isButtonDisabled = true; + + if (this.brewery.id != 0) { + delete this.brewery.Beers; + this.breweryPostService.updateItem(this.brewery, 'Breweries'); + } else { + this.breweryPostService.postItem(this.brewery, 'Breweries', this.route); + } + } + + constructor(private breweryInfoService: BreweryInfoService, private breweryPostService: BreweryPostService, private route: Router) { + + if (this.route.getCurrentNavigation()?.extras?.state != undefined){ + this.brewery = this.route.getCurrentNavigation()?.extras?.state!['brewery']; + } + } + +} diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/dialog-quote.html b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/dialog-quote.html new file mode 100644 index 0000000..a71250b --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/dialog-quote.html @@ -0,0 +1,3 @@ +
    + {{data}} +
    diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.css b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.css new file mode 100644 index 0000000..7c31cb0 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.css @@ -0,0 +1,11 @@ +.example-form { + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); + } + + mat-form-field { + margin: 3px; + } diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.html b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.html new file mode 100644 index 0000000..751d319 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.html @@ -0,0 +1,43 @@ +
    + + + Quantity + + + +
    + + Beer + + @for (beer of beers; track beer) { + {{beer.name}} + } + + +
    + +
    + + Wholesaler + + @for (wholesaler of wholesalers; track wholesalers) { + {{wholesaler.name}} + } + + +
    + + + + +
    diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.spec.ts new file mode 100644 index 0000000..b47aaa5 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.spec.ts @@ -0,0 +1,34 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SaleEditComponent } from './sale-edit.component'; +import { ActivatedRoute } from '@angular/router'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; + +describe('SaleEditComponent', () => { + let component: SaleEditComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [SaleEditComponent, HttpClientModule, BrowserAnimationsModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(SaleEditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.ts b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.ts new file mode 100644 index 0000000..6c6b051 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/sale-edit/sale-edit.component.ts @@ -0,0 +1,83 @@ +import { Component, Inject } from '@angular/core'; +import {FormsModule} from '@angular/forms'; +import {MatInputModule} from '@angular/material/input'; +import {MatSelectModule} from '@angular/material/select'; +import {MatFormFieldModule} from '@angular/material/form-field'; +import {MatButtonModule} from '@angular/material/button'; +import { + MAT_DIALOG_DATA, + MatDialog, + MatDialogActions, + MatDialogClose, + MatDialogContent, + MatDialogTitle, +} from '@angular/material/dialog'; +import { SalesClass } from '../../Models/SalesModel'; +import { BreweryInfoService } from '../../Services/brewery-info.service'; +import { BreweryPostService } from '../../Services/brewery-post.service'; +import { Router, RouterLink, RouterOutlet } from '@angular/router'; +import { BeerClass } from '../../Models/BeersModel'; +import { WholesalerClass } from '../../Models/WholesalerModel'; + +@Component({ + selector: 'app-sale-edit', + standalone: true, + imports: [FormsModule, MatInputModule, MatSelectModule, MatFormFieldModule, MatButtonModule], + templateUrl: './sale-edit.component.html', + styleUrl: './sale-edit.component.css' +}) +export class SaleEditComponent { + isButtonDisabled: boolean = false; + itemId: number = 0; + beers: BeerClass[] = []; + wholesalers: WholesalerClass[] = []; + sale: SalesClass = { + id: 0, + breweryId: 0, + wholesalerId: 0, + beerId: 0, + quantity: 0, + saleDate: new Date() + }; + + constructor(private breweryInfoService: BreweryInfoService, private breweryPostService: BreweryPostService, private route: Router, public dialog: MatDialog) { + this.getBeers(); + this.getWholesalers(); + } + + onSubmit() { + this.breweryPostService.postItem(this.sale, 'Sales', this.route); + } + + getBeers() { + this.breweryInfoService.getInfo('Beers').subscribe((result) => { + this.beers = result; + }); + } + + getWholesalers() { + this.breweryInfoService.getInfo('Wholesalers').subscribe((result) => { + this.wholesalers = result; + }); + } + + getQuote() { + this.breweryInfoService.getQuote(this.sale.beerId, this.sale.quantity, this.sale.wholesalerId) + .subscribe({ + next: (result) => + this.dialog.open(DialogQuote, { data: result}), + + error: (e) => this.dialog.open(DialogQuote, {data: e.error}) + }); + } +} + +@Component({ + selector: 'dialog-quote', + templateUrl: 'dialog-quote.html', + standalone: true, + imports: [MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogClose, MatButtonModule], +}) +export class DialogQuote { + constructor(@Inject(MAT_DIALOG_DATA) public data: string) {} +} diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.css b/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.css new file mode 100644 index 0000000..7c31cb0 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.css @@ -0,0 +1,11 @@ +.example-form { + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); + } + + mat-form-field { + margin: 3px; + } diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.html b/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.html new file mode 100644 index 0000000..596b12e --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.html @@ -0,0 +1,46 @@ +
    + + + Name + + + + + Stock Limit + + + + + Beers + + @for (beer of beers; track beer) { + {{beer.name}} + } + + + + + + +
    diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.spec.ts new file mode 100644 index 0000000..b6d91fa --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.spec.ts @@ -0,0 +1,52 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WholesalerEditComponent } from './wholesaler-edit.component'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { ActivatedRoute } from '@angular/router'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { FormsModule } from '@angular/forms'; + +describe('WholesalerEditComponent', () => { + let component: WholesalerEditComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WholesalerEditComponent, HttpClientModule, BrowserAnimationsModule, FormsModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WholesalerEditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it("should have a valid form", () => { + const form = fixture.nativeElement.querySelector('form'); + const name = fixture.nativeElement.querySelector('#name'); + + name.value = 'testing'; + name.dispatchEvent(new Event('input')); + fixture.detectChanges(); + + expect(form.classList.contains('ng-valid')).toBeTruthy(); + + name.value = ''; + name.dispatchEvent(new Event('input')); + fixture.detectChanges(); + + expect(form.classList.contains('ng-invalid')).toBeTruthy(); + }) +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.ts b/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.ts new file mode 100644 index 0000000..130c820 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/EditViews/wholesaler-edit/wholesaler-edit.component.ts @@ -0,0 +1,67 @@ +import { Component } from '@angular/core'; +import {FormsModule} from '@angular/forms'; +import {MatInputModule} from '@angular/material/input'; +import {MatSelectModule} from '@angular/material/select'; +import {MatFormFieldModule} from '@angular/material/form-field'; +import {MatButtonModule} from '@angular/material/button'; +import { WholesalerClass } from '../../Models/WholesalerModel'; +import { BreweryClass } from '../../Models/BreweryModel'; +import { BreweryInfoService } from '../../Services/brewery-info.service'; +import { BreweryPostService } from '../../Services/brewery-post.service'; +import { Router } from '@angular/router'; +import { BeerClass } from '../../Models/BeersModel'; +import { DialogQuote } from '../sale-edit/sale-edit.component'; +import { MatDialog } from '@angular/material/dialog'; + +@Component({ + selector: 'app-wholesaler-edit', + standalone: true, + imports: [FormsModule, MatInputModule, MatSelectModule, MatFormFieldModule, MatButtonModule], + templateUrl: './wholesaler-edit.component.html', + styleUrl: './wholesaler-edit.component.css' +}) +export class WholesalerEditComponent { + isButtonDisabled: boolean = false; + itemId: number = 0; + beers: BeerClass[] = []; + breweries: BreweryClass[] = []; + wholesaler: WholesalerClass = { + id: 0, + name: '', + stockLimit: 0, + sales: [], + stocks: [], + allowedBeersId: [] + }; + + constructor(private breweryInfoService: BreweryInfoService, private breweryPostService: BreweryPostService, private route: Router, public dialog: MatDialog) { + this.getBeers(); + if (this.route.getCurrentNavigation()?.extras?.state != undefined){ + this.wholesaler = this.route.getCurrentNavigation()?.extras?.state!['wholesaler']; + } + } + + onSubmit() { + this.isButtonDisabled = true; + + if (this.wholesaler.stockLimit <= 0) { + this.dialog.open(DialogQuote, { data: 'You cant add a wholesaler without a stock limit!'}), + this.isButtonDisabled = false; + return; + } + + if (this.wholesaler.id != 0) { + this.wholesaler.sales = []; + this.wholesaler.stocks = []; + this.breweryPostService.updateItem(this.wholesaler, 'Wholesalers'); + } else { + this.breweryPostService.postItem(this.wholesaler, 'Wholesalers', this.route); + } + } + + getBeers() { + this.breweryInfoService.getInfo('Beers').subscribe((result) => { + this.beers = result; + }); + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/Models/BeersModel.ts b/FrontEnd/BreweryAppAngular/src/app/Models/BeersModel.ts new file mode 100644 index 0000000..6b9f3f0 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Models/BeersModel.ts @@ -0,0 +1,22 @@ +import { BreweryClass } from "./BreweryModel"; + +export class BeerClass { + public id: number; + public name: string; + public flavour: string; + public age: string; + public breweryId: number; + public breweryPrice: number; + public brewery?: BreweryClass | undefined; + + constructor(id: number, name: string, flavour: string, age: string, breweryId: number, breweryPrice: number, brewery: BreweryClass) { + this.id = id; + this.name = name; + this.flavour = flavour; + this.age = age; + this.breweryId = breweryId; + this.breweryPrice = breweryPrice; + this.brewery = brewery; + } + +} diff --git a/FrontEnd/BreweryAppAngular/src/app/Models/BreweryModel.ts b/FrontEnd/BreweryAppAngular/src/app/Models/BreweryModel.ts new file mode 100644 index 0000000..3462217 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Models/BreweryModel.ts @@ -0,0 +1,13 @@ +import { BeerClass } from "./BeersModel"; + +export class BreweryClass { + public id: number; + public name: string; + public Beers?: BeerClass[]; + + constructor(id:number, name:string, Beers:BeerClass[]) { + this.id = id; + this.name = name; + this.Beers = Beers; + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/Models/SalesModel.ts b/FrontEnd/BreweryAppAngular/src/app/Models/SalesModel.ts new file mode 100644 index 0000000..536907f --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Models/SalesModel.ts @@ -0,0 +1,24 @@ +import { BeerClass } from "./BeersModel"; +import { BreweryClass } from "./BreweryModel"; +import { WholesalerClass } from "./WholesalerModel"; + +export class SalesClass { + public id: number; + public breweryId: number; + public wholesalerId: number; + public beerId: number; + public quantity: number; + public saleDate: Date; + public brewery?: BreweryClass; + public beer?: BeerClass; + public wholesaler?: WholesalerClass; + + constructor(id: number, breweryId: number, wholesaerId:number, beerId: number, quantity:number, saleDate:Date) { + this.id = id; + this.breweryId = breweryId; + this.beerId = beerId; + this.wholesalerId = wholesaerId; + this.quantity = quantity; + this.saleDate = saleDate; + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/Models/WholesalerModel.ts b/FrontEnd/BreweryAppAngular/src/app/Models/WholesalerModel.ts new file mode 100644 index 0000000..73d0047 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Models/WholesalerModel.ts @@ -0,0 +1,21 @@ +import { SalesClass } from "./SalesModel"; +import { WholesalerStockClass } from "./WholesalerStockModel"; + +export class WholesalerClass { + public id: number; + public name: string; + public stockLimit: number; + public sales?: SalesClass[]; + public stocks?: WholesalerStockClass[]; + public allowedBeersId: number[]; + public allowedBeersNames?: string[]; + + constructor(id: number, name: string, stockLimit: number, sales: SalesClass[], stocks: WholesalerStockClass[], allowedBeersId: number[]) { + this.id = id; + this.stockLimit = stockLimit; + this.name = name; + this.sales = sales; + this.stocks = stocks; + this.allowedBeersId = allowedBeersId; + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/Models/WholesalerStockModel.ts b/FrontEnd/BreweryAppAngular/src/app/Models/WholesalerStockModel.ts new file mode 100644 index 0000000..a27890a --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Models/WholesalerStockModel.ts @@ -0,0 +1,13 @@ +export class WholesalerStockClass { + public id: number; + public wholesalerId: number; + public beerId: number; + public stockQuantity: number; + + constructor(id: number, wholesalerId: number, beerId: number, stockQuantity: number) { + this.id = id; + this.wholesalerId = wholesalerId; + this.beerId = beerId; + this.stockQuantity = stockQuantity; + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/Services/brewery-info.service.spec.ts b/FrontEnd/BreweryAppAngular/src/app/Services/brewery-info.service.spec.ts new file mode 100644 index 0000000..5658826 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Services/brewery-info.service.spec.ts @@ -0,0 +1,21 @@ +import { TestBed } from '@angular/core/testing'; + +import { BreweryInfoService } from './brewery-info.service'; +import { HttpClient, HttpHandler } from '@angular/common/http'; + +describe('BreweryInfoService', () => { + let service: BreweryInfoService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [HttpClient, HttpHandler] + }); + service = TestBed.inject(BreweryInfoService); + }); + + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/Services/brewery-info.service.ts b/FrontEnd/BreweryAppAngular/src/app/Services/brewery-info.service.ts new file mode 100644 index 0000000..80be58f --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Services/brewery-info.service.ts @@ -0,0 +1,28 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class BreweryInfoService { + + private apiUrl = "https://localhost:7036/api" + + getApiRoute() { + return this.apiUrl; + } + + constructor(private http: HttpClient) { } + + getInfo(model: string, id?: number): Observable { + if (id) { + return this.http.get(`${this.apiUrl}/${model}/${id}`); + } + return this.http.get(`${this.apiUrl}/${model}`); + } + + getQuote(beerId: number, quantity: number, wholesalerId: number): Observable { + return this.http.get(`${this.apiUrl}/Sale/beer=${beerId}&quantity=${quantity}&seller=${wholesalerId}`); + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/Services/brewery-post.service.spec.ts b/FrontEnd/BreweryAppAngular/src/app/Services/brewery-post.service.spec.ts new file mode 100644 index 0000000..da6fb76 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Services/brewery-post.service.spec.ts @@ -0,0 +1,20 @@ +import { TestBed } from '@angular/core/testing'; + +import { BreweryPostService } from './brewery-post.service'; +import { HttpClient, HttpClientModule, HttpHandler } from '@angular/common/http'; + +describe('BreweryPostService', () => { + let service: BreweryPostService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [HttpClient, HttpHandler] + }); + service = TestBed.inject(BreweryPostService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/Services/brewery-post.service.ts b/FrontEnd/BreweryAppAngular/src/app/Services/brewery-post.service.ts new file mode 100644 index 0000000..6f34010 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/Services/brewery-post.service.ts @@ -0,0 +1,51 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import {MatDialog} from '@angular/material/dialog'; +import { DialogQuote } from '../EditViews/sale-edit/sale-edit.component'; +import { Router } from '@angular/router'; + +@Injectable({ + providedIn: 'root' +}) +export class BreweryPostService { + + private apiUrl = "https://localhost:7036/api" + + constructor(private http: HttpClient, private dialog: MatDialog) { } + + postItem(item: any, model: string, route: Router) { + this.http.post(`${this.apiUrl}/${model}`, item) + .subscribe({ + next: (r) => { + setTimeout(() => + { + route.navigate([model]); + }, + 1000); + }, + error: (e) => { + this.dialog.open(DialogQuote, {data: e.error}) + } + }) + } + + updateItem(item: any, model: string) { + + this.http.put(`${this.apiUrl}/${model}/${item.id}`, item) + .subscribe({ + next: (r) => console.log("Api sucess", r), + error: (e) => console.error("Api error", e) + }) + } + + deleteRow(id: number, model: string) { + + this.http.delete(`${this.apiUrl}/${model}/${id}`) + .subscribe({ + next: (r) => { + console.log("Api sucess", r); + }, + error: (e) => console.error("Api error", e) + }) + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/app.component.css b/FrontEnd/BreweryAppAngular/src/app/app.component.css new file mode 100644 index 0000000..b7b73a9 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/app.component.css @@ -0,0 +1,4 @@ +html, body { + height: 100%; + +} diff --git a/FrontEnd/BreweryAppAngular/src/app/app.component.html b/FrontEnd/BreweryAppAngular/src/app/app.component.html new file mode 100644 index 0000000..ae11588 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/app.component.html @@ -0,0 +1,2 @@ + + diff --git a/FrontEnd/BreweryAppAngular/src/app/app.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/app.component.spec.ts new file mode 100644 index 0000000..cc5e382 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/app.component.spec.ts @@ -0,0 +1,33 @@ +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; +import { HttpClient, HttpHandler } from '@angular/common/http'; +import { ActivatedRoute } from '@angular/router'; + +describe('AppComponent', () => { + beforeEach(async () => { + + const mockComponent = { + close: jasmine.createSpy('close') + } + + await TestBed.configureTestingModule({ + imports: [AppComponent], + providers: [HttpClient, HttpHandler, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have the 'BrewApi' title`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('BrewApi'); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/app.component.ts b/FrontEnd/BreweryAppAngular/src/app/app.component.ts new file mode 100644 index 0000000..171a989 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/app.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterLink, RouterOutlet } from '@angular/router'; +import { BreweryInfoService } from './Services/brewery-info.service'; +import { BeerClass } from './Models/BeersModel'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { HeaderComponent } from './header/header.component'; + +@Component({ + selector: 'app-root', + standalone: true, + imports: [CommonModule, RouterOutlet, MatSlideToggleModule, HeaderComponent, RouterLink], + templateUrl: './app.component.html', + styleUrl: './app.component.css' +}) +export class AppComponent { + title = 'BrewApi'; + + constructor(private dataService: BreweryInfoService) {} +} diff --git a/FrontEnd/BreweryAppAngular/src/app/app.config.ts b/FrontEnd/BreweryAppAngular/src/app/app.config.ts new file mode 100644 index 0000000..54ccd40 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/app.config.ts @@ -0,0 +1,9 @@ +import { ApplicationConfig } from '@angular/core'; +import { provideRouter, withComponentInputBinding } from '@angular/router'; +import { routes } from './app.routes'; +import { provideHttpClient } from '@angular/common/http'; +import { provideAnimations } from '@angular/platform-browser/animations'; + +export const appConfig: ApplicationConfig = { + providers: [provideRouter(routes, withComponentInputBinding()), provideHttpClient(), provideAnimations()] +}; diff --git a/FrontEnd/BreweryAppAngular/src/app/app.routes.ts b/FrontEnd/BreweryAppAngular/src/app/app.routes.ts new file mode 100644 index 0000000..793e7fd --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/app.routes.ts @@ -0,0 +1,61 @@ +import { Routes } from '@angular/router'; +import { HomeComponent } from './home/home.component'; +import { BeerViewComponent } from './beer-view/beer-view.component'; +import { BreweryViewComponent } from './brewery-view/brewery-view.component'; +import { WholesalerViewComponent } from './wholesaler-view/wholesaler-view.component'; +import { BrewEditComponent } from './EditViews/brew-edit/brew-edit.component'; +import { WholesalerEditComponent } from './EditViews/wholesaler-edit/wholesaler-edit.component'; +import { BreweryEditComponent } from './EditViews/brewery-edit/brewery-edit.component'; +import { SalesViewComponent } from './views/sales-view/sales-view.component'; +import { SaleEditComponent } from './EditViews/sale-edit/sale-edit.component'; + +export const routes: Routes = [ + { + path: '', + component: HomeComponent + }, + { + path: 'Beers', + component: BeerViewComponent + }, + { + path: 'Breweries', + component: BreweryViewComponent + }, + { + path: 'Wholesalers', + component: WholesalerViewComponent + }, + { + path: 'Sales', + component: SalesViewComponent + }, + { + path: 'Beers/Add', + component: BrewEditComponent + }, + { + path: 'Beers/edit', + component: BrewEditComponent + }, + { + path: 'Wholesalers/Add', + component: WholesalerEditComponent + }, + { + path: 'Wholesalers/edit', + component: WholesalerEditComponent + }, + { + path: 'Breweries/Add', + component: BreweryEditComponent + }, + { + path: 'Breweries/edit', + component: BreweryEditComponent + }, + { + path: 'Sales/Add', + component: SaleEditComponent + }, +]; diff --git a/FrontEnd/BreweryAppAngular/src/app/header/header.component.css b/FrontEnd/BreweryAppAngular/src/app/header/header.component.css new file mode 100644 index 0000000..033b6a3 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/header/header.component.css @@ -0,0 +1,8 @@ +.spacer { + flex: 0.09; + } + +a { + text-decoration: none; + color: inherit; +} diff --git a/FrontEnd/BreweryAppAngular/src/app/header/header.component.html b/FrontEnd/BreweryAppAngular/src/app/header/header.component.html new file mode 100644 index 0000000..90244a0 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/header/header.component.html @@ -0,0 +1,13 @@ + + +
    BrewApi + + Beers + + Breweries + + Wholesalers + + Sales + + diff --git a/FrontEnd/BreweryAppAngular/src/app/header/header.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/header/header.component.spec.ts new file mode 100644 index 0000000..b370399 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/header/header.component.spec.ts @@ -0,0 +1,33 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HeaderComponent } from './header.component'; +import { ActivatedRoute, RouterLink, RouterOutlet } from '@angular/router'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; + +describe('HeaderComponent', () => { + let component: HeaderComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [HeaderComponent, HttpClientModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(HeaderComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/header/header.component.ts b/FrontEnd/BreweryAppAngular/src/app/header/header.component.ts new file mode 100644 index 0000000..dea3b68 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/header/header.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import {MatToolbarModule} from '@angular/material/toolbar'; +import { RouterLink, RouterOutlet } from '@angular/router'; + +@Component({ + selector: 'app-header', + standalone: true, + imports: [MatToolbarModule, RouterLink, RouterOutlet], + templateUrl: './header.component.html', + styleUrl: './header.component.css' +}) +export class HeaderComponent { + +} diff --git a/FrontEnd/BreweryAppAngular/src/app/home/home.component.css b/FrontEnd/BreweryAppAngular/src/app/home/home.component.css new file mode 100644 index 0000000..2670c87 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/home/home.component.css @@ -0,0 +1,11 @@ +html, body { + height: 100%; +} + +.card { + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); + } diff --git a/FrontEnd/BreweryAppAngular/src/app/home/home.component.html b/FrontEnd/BreweryAppAngular/src/app/home/home.component.html new file mode 100644 index 0000000..b49063a --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/home/home.component.html @@ -0,0 +1,4 @@ + +

    Welcome to BrewApi

    + Use the tabs at the top of the screen to manager beers, wholesalers and breweries! +
    diff --git a/FrontEnd/BreweryAppAngular/src/app/home/home.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/home/home.component.spec.ts new file mode 100644 index 0000000..60c47c4 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/home/home.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomeComponent } from './home.component'; + +describe('HomeComponent', () => { + let component: HomeComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [HomeComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/home/home.component.ts b/FrontEnd/BreweryAppAngular/src/app/home/home.component.ts new file mode 100644 index 0000000..b271650 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/home/home.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import {MatCardModule} from '@angular/material/card'; + +@Component({ + selector: 'app-home', + standalone: true, + imports: [MatCardModule], + templateUrl: './home.component.html', + styleUrl: './home.component.css' +}) +export class HomeComponent { + +} diff --git a/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.css b/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.css new file mode 100644 index 0000000..b479e83 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.css @@ -0,0 +1,21 @@ +.mat-mdc-row .mat-mdc-cell { + border-bottom: 1px solid transparent; + border-top: 1px solid transparent; + cursor: pointer; + } + + .mat-mdc-row:hover .mat-mdc-cell { + border-color: currentColor; + } + + .demo-row-is-clicked { + font-weight: bold; + } + + html, body { + height: 100%; +} + + button { + margin: 1px; + } diff --git a/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.html b/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.html new file mode 100644 index 0000000..c083f9d --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.html @@ -0,0 +1,51 @@ +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Id {{beer.id}} Name {{beer.name}} Flavour {{beer.flavour}} Age {{beer.age}} Price {{beer.breweryPrice}} Brewery {{beer.brewery.name}}
    +
    +
    + +
    +
    +
    + + + +
    +
    diff --git a/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.spec.ts new file mode 100644 index 0000000..cfb29a9 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.spec.ts @@ -0,0 +1,33 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BeerViewComponent } from './beer-view.component'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { ActivatedRoute } from '@angular/router'; + +describe('BeerViewComponent', () => { + let component: BeerViewComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [BeerViewComponent, HttpClientModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(BeerViewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create the component', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.ts b/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.ts new file mode 100644 index 0000000..444e6e5 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/beer-view/beer-view.component.ts @@ -0,0 +1,49 @@ +import { Component } from '@angular/core'; +import {MatTableModule} from '@angular/material/table'; +import {MatDividerModule} from '@angular/material/divider'; +import {MatButtonModule} from '@angular/material/button'; +import { Router, RouterLink, RouterOutlet } from '@angular/router'; +import { BeerClass } from '../../Models/BeersModel'; +import { BreweryInfoService } from '../../Services/brewery-info.service'; +import { BreweryPostService } from '../../Services/brewery-post.service'; + +@Component({ + selector: 'app-beer-view', + standalone: true, + imports: [MatTableModule, MatDividerModule, MatButtonModule, RouterLink, RouterOutlet], + templateUrl: './beer-view.component.html', + styleUrl: './beer-view.component.css' +}) +export class BeerViewComponent { + beers: BeerClass[] = []; + columnsToDisplay = ['id', 'name', 'flavour', 'age', 'breweryPrice', 'brewery']; + clickedBeer!: BeerClass; + + constructor(private breweryInfoService: BreweryInfoService, private breweryPostService: BreweryPostService, private router: Router) { + this.getBeers(); + } + + deleteBeer() { + + if (this.clickedBeer) { + this.breweryPostService.deleteRow(this.clickedBeer.id, 'Beers'); + this.beers = this.beers.filter(b => b.id !== this.clickedBeer.id) + } else { + + } + } + + editItem() { + if (this.clickedBeer) { + let beer = this.clickedBeer; + this.router.navigate([`Beers/edit`], { state: {beer}}); + } + + } + + getBeers() { + this.breweryInfoService.getInfo('Beers').subscribe((result) => { + this.beers = result; + }); + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.css b/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.css new file mode 100644 index 0000000..b479e83 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.css @@ -0,0 +1,21 @@ +.mat-mdc-row .mat-mdc-cell { + border-bottom: 1px solid transparent; + border-top: 1px solid transparent; + cursor: pointer; + } + + .mat-mdc-row:hover .mat-mdc-cell { + border-color: currentColor; + } + + .demo-row-is-clicked { + font-weight: bold; + } + + html, body { + height: 100%; +} + + button { + margin: 1px; + } diff --git a/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.html b/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.html new file mode 100644 index 0000000..5b8002c --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.html @@ -0,0 +1,32 @@ +
    + + + + + + + + + + + + + +
    Id {{brewery.id}} Name {{brewery.name}}
    +
    +
    + +
    +
    +
    + + + +
    +
    + + \ No newline at end of file diff --git a/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.spec.ts new file mode 100644 index 0000000..aee394f --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.spec.ts @@ -0,0 +1,33 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BreweryViewComponent } from './brewery-view.component'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { ActivatedRoute } from '@angular/router'; + +describe('BreweryViewComponent', () => { + let component: BreweryViewComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [BreweryViewComponent, HttpClientModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(BreweryViewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.ts b/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.ts new file mode 100644 index 0000000..877b413 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/brewery-view/brewery-view.component.ts @@ -0,0 +1,50 @@ +import { Component } from '@angular/core'; +import {MatTableModule} from '@angular/material/table'; +import {MatDividerModule} from '@angular/material/divider'; +import {MatButtonModule} from '@angular/material/button'; +import { Router, RouterLink, RouterOutlet } from '@angular/router'; +import { BreweryClass } from '../../Models/BreweryModel'; +import { BreweryInfoService } from '../../Services/brewery-info.service'; +import { BreweryPostService } from '../../Services/brewery-post.service'; + + +@Component({ + selector: 'app-brewery-view', + standalone: true, + imports: [MatTableModule, MatDividerModule, MatButtonModule, RouterLink, RouterOutlet], + templateUrl: './brewery-view.component.html', + styleUrl: './brewery-view.component.css' +}) +export class BreweryViewComponent { + breweries: BreweryClass[] = []; + columnsToDisplay = ['id', 'name']; + clickedBrewery!: BreweryClass; + + constructor(private breweryInfoService: BreweryInfoService, private breweryPostService: BreweryPostService, private router: Router) { + this.getBreweries(); + } + + deleteBrewery() { + + if (this.clickedBrewery) { + this.breweryPostService.deleteRow(this.clickedBrewery.id, 'Breweries'); + this.breweries = this.breweries.filter(b => b.id !== this.clickedBrewery.id) + } else { + + } + } + + editItem() { + if (this.clickedBrewery) { + let brewery = this.clickedBrewery; + this.router.navigate([`Breweries/edit`], { state: {brewery}}); + } + + } + + getBreweries() { + this.breweryInfoService.getInfo('Breweries').subscribe((result) => { + this.breweries = result; + }); + } +} diff --git a/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.css b/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.css new file mode 100644 index 0000000..e69de29 diff --git a/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.html b/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.html new file mode 100644 index 0000000..6d96d54 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.html @@ -0,0 +1,49 @@ +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Id {{sales.id}} Quantity {{sales.quantity}} Beer {{sales.beer.name}} Wholesaler {{sales.wholesaler.name}} Brewery {{sales.brewery.name}} Date {{sales.saleDate | date}}
    +
    +
    + +
    +
    +
    + +
    +
    + \ No newline at end of file diff --git a/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.spec.ts new file mode 100644 index 0000000..d951d0f --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.spec.ts @@ -0,0 +1,33 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SalesViewComponent } from './sales-view.component'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { ActivatedRoute } from '@angular/router'; + +describe('SalesViewComponent', () => { + let component: SalesViewComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [SalesViewComponent, HttpClientModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(SalesViewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.ts b/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.ts new file mode 100644 index 0000000..b43a869 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/sales-view/sales-view.component.ts @@ -0,0 +1,32 @@ +import { Component } from '@angular/core'; +import { SalesClass } from '../../Models/SalesModel'; +import {MatTableModule} from '@angular/material/table'; +import {MatDividerModule} from '@angular/material/divider'; +import {MatButtonModule} from '@angular/material/button'; +import { BreweryInfoService } from '../../Services/brewery-info.service'; +import { CommonModule } from '@angular/common'; +import { RouterLink, RouterOutlet } from '@angular/router'; + +@Component({ + selector: 'app-sales-view', + standalone: true, + imports: [MatButtonModule, MatDividerModule, MatTableModule, CommonModule, RouterLink, RouterOutlet], + templateUrl: './sales-view.component.html', + styleUrl: './sales-view.component.css' +}) +export class SalesViewComponent { + sales: SalesClass[] = []; + columnsToDisplay = ['id', 'quantity', 'beer', 'wholesaler', 'brewery', 'date',]; + clickedSale!: SalesClass; + + constructor(private breweryInfoService: BreweryInfoService) { + this.getSales(); + } + + getSales() { + this.breweryInfoService.getInfo('Sales').subscribe((result) => { + this.sales = result; + }); + } + +} diff --git a/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.css b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.css new file mode 100644 index 0000000..e69de29 diff --git a/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.html b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.html new file mode 100644 index 0000000..cd37aea --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.html @@ -0,0 +1,7 @@ +

    Current Stock

    + +
      + @for (stock of data; track stock) { +
    • {{stock.beerName}} - {{stock.quantity}}
    • + } +
    diff --git a/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.ts b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.ts new file mode 100644 index 0000000..5ed26d4 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/stock-view/stock-view.component.ts @@ -0,0 +1,13 @@ +import { Component, Inject } from '@angular/core'; +import {MAT_DIALOG_DATA} from '@angular/material/dialog'; + +@Component({ + selector: 'app-stock-view', + standalone: true, + imports: [], + templateUrl: './stock-view.component.html', + styleUrl: './stock-view.component.css' +}) +export class StockViewComponent { + constructor(@Inject(MAT_DIALOG_DATA) public data: any[]) {} +} diff --git a/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.css b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.css new file mode 100644 index 0000000..b479e83 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.css @@ -0,0 +1,21 @@ +.mat-mdc-row .mat-mdc-cell { + border-bottom: 1px solid transparent; + border-top: 1px solid transparent; + cursor: pointer; + } + + .mat-mdc-row:hover .mat-mdc-cell { + border-color: currentColor; + } + + .demo-row-is-clicked { + font-weight: bold; + } + + html, body { + height: 100%; +} + + button { + margin: 1px; + } diff --git a/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.html b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.html new file mode 100644 index 0000000..b03db3a --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.html @@ -0,0 +1,43 @@ +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Id {{wholesaler.id}} Name {{wholesaler.name}} Stock Limit {{getCurrentStock(wholesaler)}}/{{wholesaler.stockLimit}} Beers sold {{wholesaler.allowedBeersNames}}
    +
    +
    + +
    +
    +
    + + + + +
    +
    + + \ No newline at end of file diff --git a/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.spec.ts b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.spec.ts new file mode 100644 index 0000000..4afa545 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.spec.ts @@ -0,0 +1,33 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WholesalerViewComponent } from './wholesaler-view.component'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { ActivatedRoute } from '@angular/router'; + +describe('WholesalerViewComponent', () => { + let component: WholesalerViewComponent; + let fixture: ComponentFixture; + + const mockComponent = { + close: jasmine.createSpy('close') + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WholesalerViewComponent, HttpClientModule], + providers: [HttpClientModule, HttpClient, { + provide: ActivatedRoute, + useValue: mockComponent + }] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WholesalerViewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.ts b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.ts new file mode 100644 index 0000000..89ac77b --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/app/views/wholesaler-view/wholesaler-view.component.ts @@ -0,0 +1,73 @@ +import { Component } from '@angular/core'; +import {MatTableModule} from '@angular/material/table'; +import {MatDividerModule} from '@angular/material/divider'; +import {MatButtonModule} from '@angular/material/button'; +import { MatDialog } from '@angular/material/dialog'; +import { Router, RouterLink, RouterOutlet } from '@angular/router'; +import { StockViewComponent } from './stock-view/stock-view.component'; +import { WholesalerClass } from '../../Models/WholesalerModel'; +import { BreweryInfoService } from '../../Services/brewery-info.service'; +import { BreweryPostService } from '../../Services/brewery-post.service'; + +@Component({ + selector: 'app-wholesaler-view', + standalone: true, + imports: [RouterLink, RouterOutlet, MatTableModule, MatDividerModule, MatButtonModule], + templateUrl: './wholesaler-view.component.html', + styleUrl: './wholesaler-view.component.css' +}) +export class WholesalerViewComponent { + wholesalers: WholesalerClass[] = []; + columnsToDisplay = ['id', 'name', 'stock', 'beers']; + clickedWholesaler!: WholesalerClass; + + constructor(private breweryInfoService: BreweryInfoService, private breweryPostService: BreweryPostService, private router: Router, public dialog: MatDialog) { + this.getWholesalers(); + } + + deleteBrewery() { + + if (this.clickedWholesaler) { + this.breweryPostService.deleteRow(this.clickedWholesaler.id, 'Wholesalers'); + this.wholesalers = this.wholesalers.filter(b => b.id !== this.clickedWholesaler.id) + } + } + + editItem() { + if (this.clickedWholesaler) { + let wholesaler = this.clickedWholesaler; + this.router.navigate([`Wholesalers/edit`], { state: {wholesaler}}); + } + } + + getCurrentStock(wholesaler: WholesalerClass) { + return wholesaler.stocks?.reduce((total, stock) => total + stock.stockQuantity, 0) + } + + getWholesalers() { + this.breweryInfoService.getInfo('Wholesalers').subscribe((result) => { + this.wholesalers = result; + }); + } + + checkStock() { + let stocks: { beerName: any; quantity: number; }[] = []; + + if (this.clickedWholesaler) { + this.clickedWholesaler.stocks + ?.forEach(stock => { + this.breweryInfoService + .getInfo('Beers', stock.beerId) + .subscribe(beer => { + stocks.push( + { + beerName: beer.name, + quantity: stock.stockQuantity + } + ) + }) + }) + } + this.dialog.open(StockViewComponent, {data: stocks}) + } +} diff --git a/FrontEnd/BreweryAppAngular/src/assets/.gitkeep b/FrontEnd/BreweryAppAngular/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/FrontEnd/BreweryAppAngular/src/favicon.ico b/FrontEnd/BreweryAppAngular/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..57614f9c967596fad0a3989bec2b1deff33034f6 GIT binary patch literal 15086 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 Nr__JTFzvMr^FKp4S3v*( literal 0 HcmV?d00001 diff --git a/FrontEnd/BreweryAppAngular/src/index.html b/FrontEnd/BreweryAppAngular/src/index.html new file mode 100644 index 0000000..52061d3 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/index.html @@ -0,0 +1,15 @@ + + + + + BrewApi + + + + + + + + + + diff --git a/FrontEnd/BreweryAppAngular/src/main.ts b/FrontEnd/BreweryAppAngular/src/main.ts new file mode 100644 index 0000000..35b00f3 --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/FrontEnd/BreweryAppAngular/src/styles.css b/FrontEnd/BreweryAppAngular/src/styles.css new file mode 100644 index 0000000..6daa69b --- /dev/null +++ b/FrontEnd/BreweryAppAngular/src/styles.css @@ -0,0 +1,7 @@ +/* You can add global styles to this file, and also import other style files */ + +html, body { height: 100%; } +body { margin: 2; font-family: Roboto, "Helvetica Neue", sans-serif; } +body { + background-image: url("../ZqSbrg.jpg"); +} diff --git a/FrontEnd/BreweryAppAngular/tsconfig.app.json b/FrontEnd/BreweryAppAngular/tsconfig.app.json new file mode 100644 index 0000000..374cc9d --- /dev/null +++ b/FrontEnd/BreweryAppAngular/tsconfig.app.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/FrontEnd/BreweryAppAngular/tsconfig.json b/FrontEnd/BreweryAppAngular/tsconfig.json new file mode 100644 index 0000000..f37b67f --- /dev/null +++ b/FrontEnd/BreweryAppAngular/tsconfig.json @@ -0,0 +1,33 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": [ + "ES2022", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/FrontEnd/BreweryAppAngular/tsconfig.spec.json b/FrontEnd/BreweryAppAngular/tsconfig.spec.json new file mode 100644 index 0000000..be7e9da --- /dev/null +++ b/FrontEnd/BreweryAppAngular/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..45685e0 --- /dev/null +++ b/README.md @@ -0,0 +1,82 @@ +## Brewinpi + +Little API for the [challenge project](https://www.thecsharpacademy.com/project/64) at the C# Academy. + +These were the requisites + +- List all beers by brewery +- A brewer can add, delete and update beers +- Add the sale of an existing beer to an existing wholesaler +- Upon a sale, the quantity of a beer needs to be incremented in the wholesaler's inventory +- A client can request a quote from a wholesaler. +- If successful, the quote returns a price and a summary of the quote. A 10% discount is applied for orders above 10 units. A 20% discount is applied for orders above 20 drinks. +- If there is an error, it returns an exception and a message to explain the reason: order cannot be empty; wholesaler must exist; there can't be any duplicates in the order; the number of beers ordered cannot be greater than the wholesaler's stock; the beer must be sold by the wholesaler +- A brewer brews one or several beers +- A beer is always linked to a brewer +- A beer can be sold by several wholesalers +- A wholesaler sells a defined list of beers, from any brewer, and has only a limited stock of those beers +- The beers sold by the wholesaler have a fixed price imposed by the brewery +- For this assessment, it is considered that all sales are made without tax +- The database is pre-filled by you +- No front-end is needed, just the API +- Use REST architecture +- Use Entity Framework +- No migrations are needed; use Ensure Deleted and Ensure Created to facilitate development and code reviews. + +All requisites have been taken care off, the challenge requisites were also all completed. Those were: + +- Add unit tests to make sure business constraints are accurate. +- Include a Read me with your thought process, your challenges and instructions on how to run the app. +- Add integrations tests using a real test database. These will ensure data is still added corrected when the codebase changes. The test database must be created and deleted for each test. +- Create a separate project with a front-end of your choice. Provide instructions on how to run it. + +### The Api + +#### BackEnd and BackEnd Tests + +1. Clone the project, open the solution with visual studio and run the application. +2. You can also run the tests by right clicking the solution and choosing "run tests" + +#### FrontEnd and FrontEnd Tests + +1. Clone the project, go to *FrontEnd\BreweryAppAngular* and run "ng serve" +2. For the jasmine tests, go to the same folder and run "ng test" + + +### Challenges and what was learned + +This project was very fun to do! + +I feel the back end was very straightforward to do but i definetly slowed down when i got to the front end part. Its interesting but i don't really like doing all the setup of pages and CSS. +That said it was refreshing re-learning angular with their new update that came out a few weeks ago, so taking this project at this time was probably beneficial. +I will probably stick with angular for most thigns and just learn the necessary for react. + +Will still do projects with it but typescript and the way angular organizes things is really good, +especially with the new update where you don't need to have the central file for all your imports and now everything is component based. + +I tried to make the project use the repository pattern but i didn't really felt the need to add the service classes for the controllers at first, but when i was refactoring the tests and some of the controllers to have the functionality i need i realized why they are so necessary. +My controllers started getting bloated and was necessary to separate the functionality of validation and inserting. + +There was also some difficulty regarding the new way .NET API projects work, the new way is using the program.cs file instead of the old startup.cs file, so a lot of ways to add middleware and how to make the system recognize your injections took some googling. + +Figuring out how to organize the database took some time too but i feel i did a good job with it. +I also had to use DTO's to send especialized data to the API/frontEnd but i'm not sure they were used correctly or if my implementation is the best practice, definetly something that would probably begood to have someone more experienced to take a look at. + +#### Tests + +The main challenges i feel were actually writing tests? I feel that test documentation is something that is sorely lacking overall. Test documentantions and examples only do simple examples like "testing a calculator" +and most courses or tuorials for the language gloss over that topic a LOT. I believe tests and knolowdge about tests are something that everyone looks for in projects and new hires but the material is really lacking on that front. + +I did write tests to what i feel was encessary, but i'll definetly need to keep improving on that front for future projects. + + +#### Main takeaways + +Overall i feel this project was a good first challenge to do and a way to put some of my C# knowlowdge to the test. +I definetly feel i improved but there's still somethings i would like to work on more like delegates, didn't use that a lot here. +LINQ was very fun to use along with EF but i could definetly go deeper with both of these things. + +I worked with angular before so most of it was familiar, the new stuff definetly made it a better experience to use than before. +Testing took a while to grasp, but when i understood the framework better it was interesting to write some tests. Definetly something i also need to work a lot on though. + +Tahnks for reading! \ No newline at end of file diff --git a/Tests/BreweryTests/BreweryTests.csproj b/Tests/BreweryTests/BreweryTests.csproj new file mode 100644 index 0000000..05aa9ef --- /dev/null +++ b/Tests/BreweryTests/BreweryTests.csproj @@ -0,0 +1,31 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/Tests/BreweryTests/DatabaseControllerTests.cs b/Tests/BreweryTests/DatabaseControllerTests.cs new file mode 100644 index 0000000..0fe32ba --- /dev/null +++ b/Tests/BreweryTests/DatabaseControllerTests.cs @@ -0,0 +1,176 @@ +using BreweryApi.Controllers; +using BreweryApi.Models; +using BreweryApi.Repositories; +using BreweryApi.Services; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace BreweryTests +{ + [Collection("ControllerCollection")] + public class DatabaseControllerTests : IDisposable + { + private readonly BreweryContext _dbContext; + + private readonly WholesalerRepository _wholesalerRepository; + private readonly BeerRepository _beerRepository; + private readonly SalesRepository _salesRepository; + private readonly BreweryRepository _breweryRepository; + private readonly WholesalerStockRepository _wholesalerStockRepository; + + private readonly SalesService _salesService; + private readonly WholesalerService _wholesalerService; + + private readonly SalesController _saleController; + private readonly WholesalersController _wholesalerController; + + public DatabaseControllerTests() + { + var options = new DbContextOptionsBuilder() + .UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=BrewTesting;Trusted_Connection=True;MultipleActiveResultSets=true") + .Options; + + _dbContext = new BreweryContext(options); + + _wholesalerStockRepository = new WholesalerStockRepository(_dbContext); + _wholesalerRepository = new WholesalerRepository(_dbContext); + _beerRepository = new BeerRepository(_dbContext); + _salesRepository = new SalesRepository(_dbContext); + _breweryRepository = new BreweryRepository(_dbContext); + + _salesService = new SalesService(_salesRepository, _beerRepository, _breweryRepository, _wholesalerRepository); + _wholesalerService = new WholesalerService(_wholesalerRepository, _salesRepository, _beerRepository, _wholesalerStockRepository); + + _saleController = new SalesController(_salesService); + _wholesalerController = new WholesalersController(_wholesalerService); + + _dbContext.Database.EnsureDeleted(); + _dbContext.Database.EnsureCreated(); + } + + public void Dispose() + { + _dbContext.Dispose(); + } + + [Fact] + public async Task TestCase_Fail_If_WholesalerNotBuyingAssignedBeer() + { + + var sale = new Sales { BeerId = 2, BreweryId = 2, Quantity = 1, SaleDate = new DateTime(), WholeSalerId = 3 }; + + await _saleController.PostSales(sale); + + var updatedEntity = _dbContext.Sales.FirstOrDefault(e => e.Id == 5); + + Assert.Null(updatedEntity); + } + + [Fact] + public async Task TestCase_Fail_If_WholesalerBuyingOverStock() + { + + var sale = new Sales { BeerId = 1, BreweryId = 1, Quantity = 100000, SaleDate = new DateTime(), WholeSalerId = 1 }; + + await _saleController.PostSales(sale); + + var updatedEntity = _dbContext.Sales.FirstOrDefault(e => e.Id == 5); + + Assert.Null(updatedEntity); + } + + [Fact] + public async Task TestCase_Fail_If_WholesalerDontExist() + { + + var sale = new Sales { BeerId = 1, BreweryId = 1, Quantity = 1, SaleDate = new DateTime(), WholeSalerId = 5 }; + + await _saleController.PostSales(sale); + + var updatedEntity = _dbContext.Sales.FirstOrDefault(e => e.Id == 5); + + Assert.Null(updatedEntity); + } + + [Fact] + public async Task TestCase_Fail_If_BeerDontExist() + { + + var sale = new Sales { BeerId = 99, BreweryId = 1, Quantity = 1, SaleDate = new DateTime(), WholeSalerId = 1 }; + + await _saleController.PostSales(sale); + + var updatedEntity = _dbContext.Sales.FirstOrDefault(e => e.Id == 5); + + Assert.Null(updatedEntity); + } + + [Fact] + public async Task TestCase_Fail_If_BreweryDontExist() + { + + var sale = new Sales { BeerId = 1, BreweryId = 99, Quantity = 1, SaleDate = new DateTime(), WholeSalerId = 1 }; + + await _saleController.PostSales(sale); + + var updatedEntity = _dbContext.Sales.FirstOrDefault(e => e.Id == 5); + + Assert.Null(updatedEntity); + } + + [Fact] + public async Task TestCase_Fail_If_SaleWith0OrNoQuantity() + { + + var sale = new Sales { BeerId = 1, BreweryId = 1, Quantity = 0, SaleDate = new DateTime(), WholeSalerId = 1 }; + + await _saleController.PostSales(sale); + + var updatedEntity = _dbContext.Sales.FirstOrDefault(e => e.Id == 5); + + Assert.Null(updatedEntity); + } + + [Fact] + public async Task TestCase_Fail_If_WholesalerDosntExist() + { + + ActionResult quoteResult = await _wholesalerController.GetQuote(99, 1, 100); + BadRequestObjectResult q = (BadRequestObjectResult)quoteResult.Result; + + Assert.True(q.Value == "Beer or wholesaler don't exist"); + } + + [Fact] + public async Task TestCase_Fail_If_BeerDosntExist() + { + + ActionResult quoteResult = await _wholesalerController.GetQuote(1, 99, 100); + BadRequestObjectResult q = (BadRequestObjectResult)quoteResult.Result; + + Assert.True(q.Value == "Beer or wholesaler don't exist"); + } + + [Fact] + public async Task TestCase_Fail_If_WholesalerDosntSellBeer() + { + + ActionResult quoteResult = await _wholesalerController.GetQuote(1, 3, 100); + BadRequestObjectResult q = (BadRequestObjectResult)quoteResult.Result; + + Assert.True(q.Value == "Wholesaler can't sell this beer"); + } + + [Fact] + public async Task TestCase_Pass_If_QuoteValid() + { + + var quoteResult = await _wholesalerController.GetQuote(1, 1, 100); + ContentResult quote = (ContentResult)quoteResult.Result; + + string valid = "\"The price for the quoted order from Beer Dreams for 100 units of Malt will total at around 1500,00\""; + + Assert.True(quote.Content == valid); + } + } +} \ No newline at end of file diff --git a/Tests/BreweryTests/GlobalUsings.cs b/Tests/BreweryTests/GlobalUsings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/Tests/BreweryTests/GlobalUsings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file