From c85889a8c9669fc810b0ee35f0b37e5b0e2818c8 Mon Sep 17 00:00:00 2001 From: jmayer913 <72579603+jmayer913@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:14:38 -0400 Subject: [PATCH 1/3] Updated Version and Packages --- .../JMayer.Example.ASPReact.Server.csproj | 8 ++++---- TestProject/TestProject.csproj | 10 +++++----- jmayer.example.aspreact.client/package-lock.json | 4 ++-- jmayer.example.aspreact.client/package.json | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/JMayer.Example.ASPReact.Server/JMayer.Example.ASPReact.Server.csproj b/JMayer.Example.ASPReact.Server/JMayer.Example.ASPReact.Server.csproj index b575935..30d3702 100644 --- a/JMayer.Example.ASPReact.Server/JMayer.Example.ASPReact.Server.csproj +++ b/JMayer.Example.ASPReact.Server/JMayer.Example.ASPReact.Server.csproj @@ -7,18 +7,18 @@ ..\jmayer.example.aspreact.client npm run dev https://localhost:5173 - 9.0.1 + 9.1.0 jmayer913 jmayer913 https://github.com/jmayer913/JMayer-Example-ASPReact - + - 9.0.12 + 9.0.15 - + diff --git a/TestProject/TestProject.csproj b/TestProject/TestProject.csproj index dd51fa0..ac3673b 100644 --- a/TestProject/TestProject.csproj +++ b/TestProject/TestProject.csproj @@ -7,21 +7,21 @@ false true - 9.0.1 + 9.1.0 - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/jmayer.example.aspreact.client/package-lock.json b/jmayer.example.aspreact.client/package-lock.json index 042526a..6500c7b 100644 --- a/jmayer.example.aspreact.client/package-lock.json +++ b/jmayer.example.aspreact.client/package-lock.json @@ -1,12 +1,12 @@ { "name": "jmayer.example.aspreact.client", - "version": "9.0.1", + "version": "9.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "jmayer.example.aspreact.client", - "version": "9.0.1", + "version": "9.1.0", "dependencies": { "globals": "^16.2.0", "primeflex": "^4.0.0", diff --git a/jmayer.example.aspreact.client/package.json b/jmayer.example.aspreact.client/package.json index dff1ce0..54dba4e 100644 --- a/jmayer.example.aspreact.client/package.json +++ b/jmayer.example.aspreact.client/package.json @@ -1,7 +1,7 @@ { "name": "jmayer.example.aspreact.client", "private": true, - "version": "9.0.1", + "version": "9.1.0", "type": "module", "scripts": { "dev": "vite", From 512b6dd294e31281dd02d34bdeea0125fdfc2c8f Mon Sep 17 00:00:00 2001 From: jmayer913 <72579603+jmayer913@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:19:42 -0400 Subject: [PATCH 2/3] Added TestContext.Current.CancellationToken --- .../Airlines/AirlineWebRequestUnitTest.cs | 84 +++++++++---------- .../Flights/FlightWebRequestUnitTest.cs | 74 ++++++++-------- TestProject/Gates/GateWebRequestUnitTest.cs | 16 ++-- .../SortDestinationWebRequestUnitTest.cs | 16 ++-- 4 files changed, 95 insertions(+), 95 deletions(-) diff --git a/TestProject/Airlines/AirlineWebRequestUnitTest.cs b/TestProject/Airlines/AirlineWebRequestUnitTest.cs index 9344af4..dd5c5f3 100644 --- a/TestProject/Airlines/AirlineWebRequestUnitTest.cs +++ b/TestProject/Airlines/AirlineWebRequestUnitTest.cs @@ -72,7 +72,7 @@ public class AirlineWebRequestUnitTest : IClassFixture? sortDestinations = await dataLayer.GetAllAsync(); + List? sortDestinations = await dataLayer.GetAllAsync(TestContext.Current.CancellationToken); return sortDestinations?.FirstOrDefault(obj => obj.Name == name); } @@ -112,7 +112,7 @@ public async Task VerifyAddAirline(string name, string description, string iata, SortDestinationID = sortDestination.Integer64ID, SortDestinationName = sortDestination.Name ?? string.Empty, }; - OperationResult operationResult = await dataLayer.CreateAsync(airline); + OperationResult operationResult = await dataLayer.CreateAsync(airline, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "The operation should have been successful."); //The operation must have been successful. Assert.IsType(operationResult.DataObject); //An airline must have been returned. @@ -136,7 +136,7 @@ public async Task VerifyAddAirlineBadIATAFailure() NumberCode = Airline.ZeroNumberCode, Name = "Add Bad IATA Code Test", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -170,7 +170,7 @@ public async Task VerifyAddAirlineBadICAOFailure() NumberCode = Airline.ZeroNumberCode, Name = "Add Bad ICAO Code Test", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -204,7 +204,7 @@ public async Task VerifyAddAirlineBadNumberCodeFailure() NumberCode = BadFormattedNumberCode, Name = "Add Bad Number Code Test", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -238,7 +238,7 @@ public async Task VerifyAddDuplicateAirlineICAOFailure() NumberCode = Airline.ZeroNumberCode, Name = "Add Duplicate ICAO Test 1", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to create the first airline."); operationResult = await dataLayer.CreateAsync(new Airline() @@ -248,7 +248,7 @@ public async Task VerifyAddDuplicateAirlineICAOFailure() NumberCode = Airline.ZeroNumberCode, Name = "Add Duplicate ICAO Test New", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -282,7 +282,7 @@ public async Task VerifyAddDuplicateAirlineNameFailure() NumberCode = Airline.ZeroNumberCode, Name = "Add Duplicate Name Test", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to create the first airline."); operationResult = await dataLayer.CreateAsync(new Airline() @@ -292,7 +292,7 @@ public async Task VerifyAddDuplicateAirlineNameFailure() NumberCode = Airline.ZeroNumberCode, Name = "Add Duplicate Name Test", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -326,7 +326,7 @@ public async Task VerifyAddDuplicateAirlineNumberCodeFailure() NumberCode = "999", Name = "Add Duplicate Number Code Test 1", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to create the first airline."); operationResult = await dataLayer.CreateAsync(new Airline() @@ -336,7 +336,7 @@ public async Task VerifyAddDuplicateAirlineNumberCodeFailure() NumberCode = "999", Name = "Add Duplicate Number Code Test New", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -370,7 +370,7 @@ public async Task VerifyAddAirlineSortDestinationNotFoundFailure() NumberCode = "999", Name = "Add Airline Sort Destination Not Found Test", SortDestinationID = BadSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -397,7 +397,7 @@ public async Task VerifyCountAirines() HttpClient httpClient = _factory.CreateClient(); AirlineDataLayer dataLayer = new(httpClient); - long count = await dataLayer.CountAsync(); + long count = await dataLayer.CountAsync(TestContext.Current.CancellationToken); Assert.True(count > 0); } @@ -418,11 +418,11 @@ public async Task VerifyDeleteAirline() Name = "Delete Airline Test", NumberCode = Airline.ZeroNumberCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline airline) { - operationResult = await dataLayer.DeleteAsync(airline); + operationResult = await dataLayer.DeleteAsync(airline, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode); } else @@ -441,7 +441,7 @@ public async Task VerifyGetAllAirlines() HttpClient httpClient = _factory.CreateClient(); AirlineDataLayer dataLayer = new(httpClient); - List? airlines = await dataLayer.GetAllAsync(); + List? airlines = await dataLayer.GetAllAsync(TestContext.Current.CancellationToken); //Airlines must have been returned. Assert.NotNull(airlines); @@ -458,7 +458,7 @@ public async Task VerifyGetAllListViewAirlines() HttpClient httpClient = _factory.CreateClient(); AirlineDataLayer dataLayer = new(httpClient); - List? airlines = await dataLayer.GetAllListViewAsync(); + List? airlines = await dataLayer.GetAllListViewAsync(TestContext.Current.CancellationToken); //List view airlines must have been returned. Assert.NotNull(airlines); @@ -475,7 +475,7 @@ public async Task VerifyGetSingleAirline() HttpClient httpClient = _factory.CreateClient(); AirlineDataLayer dataLayer = new(httpClient); - Airline? airline = await dataLayer.GetSingleAsync(); + Airline? airline = await dataLayer.GetSingleAsync(TestContext.Current.CancellationToken); Assert.NotNull(airline); } @@ -497,11 +497,11 @@ public async Task VerifyGetSingleAirlineWithId() NumberCode = Airline.ZeroNumberCode, SortDestinationID = DefaultSortDestinationID, }; - OperationResult operationResult = await dataLayer.CreateAsync(airline); + OperationResult operationResult = await dataLayer.CreateAsync(airline, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline createdAirline) { - Airline? verifyAirline = await dataLayer.GetSingleAsync(createdAirline.Integer64ID); + Airline? verifyAirline = await dataLayer.GetSingleAsync(createdAirline.Integer64ID, TestContext.Current.CancellationToken); Assert.NotNull(verifyAirline); } else @@ -549,7 +549,7 @@ public async Task VerifyUpdateAirline(string originalName, string newName, strin Name = originalName, NumberCode = originalNumberCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline createdAirline) { @@ -563,7 +563,7 @@ public async Task VerifyUpdateAirline(string originalName, string newName, strin SortDestinationID = sortDestination.Integer64ID, SortDestinationName = sortDestination.Name ?? string.Empty, }; - operationResult = await dataLayer.UpdateAsync(updatedAirline); + operationResult = await dataLayer.UpdateAsync(updatedAirline, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "The operation should have been successful."); //The operation must have been successful. Assert.IsType(operationResult.DataObject); //An airline must have been returned. @@ -592,12 +592,12 @@ public async Task VerifyUpdateAirlineBadIATAFailure() NumberCode = Airline.ZeroNumberCode, Name = "Update Bad IATA Code Test", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline airline) { airline.IATA = BadFormattedIATACode; - operationResult = await dataLayer.UpdateAsync(airline); + operationResult = await dataLayer.UpdateAsync(airline, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -636,12 +636,12 @@ public async Task VerifyUpdateAirlineBadICAOFailure() NumberCode = Airline.ZeroNumberCode, Name = "Update Bad ICAO Code Test", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline airline) { airline.ICAO = BadFormattedICAOCode; - operationResult = await dataLayer.UpdateAsync(airline); + operationResult = await dataLayer.UpdateAsync(airline, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -680,12 +680,12 @@ public async Task VerifyUpdateAirlineBadNumberCodeFailure() NumberCode = Airline.ZeroNumberCode, Name = "Update Bad Number Code Test", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline airline) { airline.NumberCode = BadFormattedNumberCode; - operationResult = await dataLayer.UpdateAsync(airline); + operationResult = await dataLayer.UpdateAsync(airline, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -724,7 +724,7 @@ public async Task VerifyUpdateAirlineOldDataConflict() Name = "Old Data Airline Test", NumberCode = Airline.ZeroNumberCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline firstAirline) { @@ -732,7 +732,7 @@ public async Task VerifyUpdateAirlineOldDataConflict() firstAirline.Description = "A description"; - operationResult = await dataLayer.UpdateAsync(secondAirline); + operationResult = await dataLayer.UpdateAsync(secondAirline, TestContext.Current.CancellationToken); if (!operationResult.IsSuccessStatusCode) { @@ -740,7 +740,7 @@ public async Task VerifyUpdateAirlineOldDataConflict() return; } - operationResult = await dataLayer.UpdateAsync(firstAirline); + operationResult = await dataLayer.UpdateAsync(firstAirline, TestContext.Current.CancellationToken); Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); //The operation must have failed. Assert.Null(operationResult.DataObject); //No airline was returned. @@ -769,12 +769,12 @@ public async Task VerifyUpdateAirlineSortDestinationNotFoundFailure() Name = "Update Airline Sort Destination Not Found Test", NumberCode = Airline.ZeroNumberCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline airline) { airline.SortDestinationID = BadSortDestinationID; - operationResult = await dataLayer.UpdateAsync(airline); + operationResult = await dataLayer.UpdateAsync(airline, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -813,7 +813,7 @@ public async Task VerifyUpdateDuplicateAirlineICAOFailure() NumberCode = Airline.ZeroNumberCode, Name = "Update Duplicate ICAO Test 1", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to create the first airline."); operationResult = await dataLayer.CreateAsync(new Airline() @@ -823,12 +823,12 @@ public async Task VerifyUpdateDuplicateAirlineICAOFailure() NumberCode = Airline.ZeroNumberCode, Name = "Update Duplicate ICAO Test 2", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline airline) { airline.ICAO = "ZZN"; - operationResult = await dataLayer.UpdateAsync(airline); + operationResult = await dataLayer.UpdateAsync(airline, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -867,7 +867,7 @@ public async Task VerifyUpdateDuplicateAirlineNameFailure() NumberCode = Airline.ZeroNumberCode, Name = "Update Duplicate Name Test 1", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to create the first airline."); operationResult = await dataLayer.CreateAsync(new Airline() @@ -877,12 +877,12 @@ public async Task VerifyUpdateDuplicateAirlineNameFailure() NumberCode = Airline.ZeroNumberCode, Name = "Update Duplicate Name Test 2", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline airline) { airline.Name = "Update Duplicate Name Test 1"; - operationResult = await dataLayer.UpdateAsync(airline); + operationResult = await dataLayer.UpdateAsync(airline, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -921,7 +921,7 @@ public async Task VerifyUpdateDuplicateAirlineNumberCodeFailure() NumberCode = "997", Name = "Update Duplicate Number Code Test Test 1", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to create the first airline."); operationResult = await dataLayer.CreateAsync(new Airline() @@ -931,12 +931,12 @@ public async Task VerifyUpdateDuplicateAirlineNumberCodeFailure() NumberCode = "998", Name = "Update Duplicate Number Code Test 2", SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Airline airline) { airline.NumberCode = "997"; - operationResult = await dataLayer.UpdateAsync(airline); + operationResult = await dataLayer.UpdateAsync(airline, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); diff --git a/TestProject/Flights/FlightWebRequestUnitTest.cs b/TestProject/Flights/FlightWebRequestUnitTest.cs index cb5d420..cb64b26 100644 --- a/TestProject/Flights/FlightWebRequestUnitTest.cs +++ b/TestProject/Flights/FlightWebRequestUnitTest.cs @@ -170,7 +170,7 @@ public class FlightWebRequestUnitTest : IClassFixture(operationResult.DataObject); //A flight must have been returned. @@ -379,7 +379,7 @@ public async Task VerifyAddFlightAirlineNotFoundFailure() Name = "Add Flight Airline Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -415,7 +415,7 @@ public async Task VerifyAddFlightBadDestinationFailure() Name = "Add Bad Destination Test", Destination = BadFormatttedDestination, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -451,7 +451,7 @@ public async Task VerifyAddFlightBadFlightNumberFailure() Name = "Add Bad Flight Number Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -488,7 +488,7 @@ public async Task VerifyAddFlightCodeShareAirlineNotFoundFailure() Name = "Add Flight CodeShare Airline Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -524,7 +524,7 @@ public async Task VerifyAddFlightGateNotFoundFailure() Name = "Add Flight Gate Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -560,7 +560,7 @@ public async Task VerifyAddFlightSortDestinationNotFoundFailure() Name = "Add Flight Sort Destination Not Found Test", Destination = DefaultAirportCode, SortDestinationID = BadSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -587,7 +587,7 @@ public async Task VerifyCountFlights() HttpClient httpClient = _factory.CreateClient(); FlightDataLayer dataLayer = new(httpClient); - long count = await dataLayer.CountAsync(); + long count = await dataLayer.CountAsync(TestContext.Current.CancellationToken); Assert.True(count > 0); } @@ -617,13 +617,13 @@ public async Task VerifyDeleteAirlineCascade() Name = "Delete Airline Cascade Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to create the flight."); - operationResult = await new Airlines.AirlineDataLayer(httpClient).DeleteAsync(airline); + operationResult = await new Airlines.AirlineDataLayer(httpClient).DeleteAsync(airline, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to delete the airline."); - List? flights = await dataLayer.GetAllAsync(); + List? flights = await dataLayer.GetAllAsync(TestContext.Current.CancellationToken); if (flights is null) { @@ -653,11 +653,11 @@ public async Task VerifyDeleteFlight() Name = "Delete Flight Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight flight) { - operationResult = await dataLayer.DeleteAsync(flight); + operationResult = await dataLayer.DeleteAsync(flight, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode); } else @@ -675,7 +675,7 @@ public async Task VerifyGetAllFlights() { HttpClient httpClient = _factory.CreateClient(); FlightDataLayer dataLayer = new(httpClient); - List? flights = await dataLayer.GetAllAsync(); + List? flights = await dataLayer.GetAllAsync(TestContext.Current.CancellationToken); //Flights must have been returned. Assert.NotNull(flights); @@ -691,7 +691,7 @@ public async Task VerifyGetAllListViewFlights() { HttpClient httpClient = _factory.CreateClient(); FlightDataLayer dataLayer = new(httpClient); - List? flights = await dataLayer.GetAllListViewAsync(); + List? flights = await dataLayer.GetAllListViewAsync(TestContext.Current.CancellationToken); //List view flights must have been returned. Assert.NotNull(flights); @@ -708,7 +708,7 @@ public async Task VerifyGetSingleFlight() HttpClient httpClient = _factory.CreateClient(); FlightDataLayer dataLayer = new(httpClient); - Flight? flight = await dataLayer.GetSingleAsync(); + Flight? flight = await dataLayer.GetSingleAsync(TestContext.Current.CancellationToken); Assert.NotNull(flight); } @@ -722,7 +722,7 @@ public async Task VerifyGetSingleFlightWithId() HttpClient httpClient = _factory.CreateClient(); FlightDataLayer dataLayer = new(httpClient); - Flight? flight = await dataLayer.GetSingleAsync(1); + Flight? flight = await dataLayer.GetSingleAsync(1, TestContext.Current.CancellationToken); Assert.NotNull(flight); } @@ -745,7 +745,7 @@ public async Task VerifyUpdateDuplicateFlightFailure() Name = "Update Duplicate Flight Test 1", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "Failed to create the first flight."); operationResult = await dataLayer.CreateAsync(new Flight() @@ -757,7 +757,7 @@ public async Task VerifyUpdateDuplicateFlightFailure() Name = "Update Duplicate Flight Test New", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight secondFlight) { @@ -771,7 +771,7 @@ public async Task VerifyUpdateDuplicateFlightFailure() Name = "Update Duplicate Flight Test New", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -842,7 +842,7 @@ public async Task VerifyUpdateFlight(string gateName, string airlineIATA, string Name = $"{airline.IATA}{flightNumber}", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight createdFlight) { @@ -860,7 +860,7 @@ public async Task VerifyUpdateFlight(string gateName, string airlineIATA, string Destination = destination, SortDestinationID = sortDestination.Integer64ID, }; - operationResult = await dataLayer.UpdateAsync(flight); + operationResult = await dataLayer.UpdateAsync(flight, TestContext.Current.CancellationToken); Assert.True(operationResult.IsSuccessStatusCode, "The operation should have been successful."); //The operation must have been successful. Assert.IsType(operationResult.DataObject); //A flight must have been returned. @@ -891,7 +891,7 @@ public async Task VerifyUpdateFlightAirlineNotFoundFailure() Name = "Update Flight Airline Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight createdFlight) { @@ -905,7 +905,7 @@ public async Task VerifyUpdateFlightAirlineNotFoundFailure() Name = "Update Flight Airline Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -946,12 +946,12 @@ public async Task VerifyUpdateFlightBadDestinationFailure() Name = "Update Bad Destination Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight flight) { flight.Destination = BadFormatttedDestination; - operationResult = await dataLayer.UpdateAsync(flight); + operationResult = await dataLayer.UpdateAsync(flight, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -992,12 +992,12 @@ public async Task VerifyUpdateFlightBadFlightNumberFailure() Name = "Update Bad Flight Number Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight flight) { flight.FlightNumber = BadFormatttedFlightNumber; - operationResult = await dataLayer.UpdateAsync(flight); + operationResult = await dataLayer.UpdateAsync(flight, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -1038,7 +1038,7 @@ public async Task VerifyUpdateFlightCodeShareAirlineNotFoundFailure() Name = "Update Flight CodeShare Airline Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight createdFlight) { @@ -1053,7 +1053,7 @@ public async Task VerifyUpdateFlightCodeShareAirlineNotFoundFailure() Name = "Update Flight CodeShare Airline Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -1094,7 +1094,7 @@ public async Task VerifyUpdateFlightGateNotFoundFailure() Name = "Update Flight Gate Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight createdFlight) { @@ -1108,7 +1108,7 @@ public async Task VerifyUpdateFlightGateNotFoundFailure() Name = "Update Flight Gate Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -1149,7 +1149,7 @@ public async Task VerifyUpdateFlightSortDestinationNotFoundFailure() Name = "Update Flight Sort Destination Not Found Test", Destination = DefaultAirportCode, SortDestinationID = DefaultSortDestinationID, - }); + }, TestContext.Current.CancellationToken); if (operationResult.IsSuccessStatusCode && operationResult.DataObject is Flight createdFlight) { @@ -1163,7 +1163,7 @@ public async Task VerifyUpdateFlightSortDestinationNotFoundFailure() Name = "Update Flight Sort Destination Not Found Test", Destination = DefaultAirportCode, SortDestinationID = BadSortDestinationID, - }); + }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); diff --git a/TestProject/Gates/GateWebRequestUnitTest.cs b/TestProject/Gates/GateWebRequestUnitTest.cs index 4092271..e85498a 100644 --- a/TestProject/Gates/GateWebRequestUnitTest.cs +++ b/TestProject/Gates/GateWebRequestUnitTest.cs @@ -40,7 +40,7 @@ public async Task VerifyAddGateNotAllowed() HttpClient httpClient = _factory.CreateClient(); GateDataLyaer dataLayer = new(httpClient); - OperationResult operationResult = await dataLayer.CreateAsync(new Gate() { Name = DefaultGateName }); + OperationResult operationResult = await dataLayer.CreateAsync(new Gate() { Name = DefaultGateName }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -63,7 +63,7 @@ public async Task VerifyCountGates() HttpClient httpClient = _factory.CreateClient(); GateDataLyaer dataLayer = new(httpClient); - long count = await dataLayer.CountAsync(); + long count = await dataLayer.CountAsync(TestContext.Current.CancellationToken); Assert.True(count > 0); } @@ -76,7 +76,7 @@ public async Task VerifyDeleteGateNotAllowed() HttpClient httpClient = _factory.CreateClient(); GateDataLyaer dataLayer = new(httpClient); - OperationResult operationResult = await dataLayer.DeleteAsync(new Gate() { Name = DefaultGateName }); + OperationResult operationResult = await dataLayer.DeleteAsync(new Gate() { Name = DefaultGateName }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -99,7 +99,7 @@ public async Task VerifyGetAllGates() HttpClient httpClient = _factory.CreateClient(); GateDataLyaer dataLayer = new(httpClient); - List? gates = await dataLayer.GetAllAsync(); + List? gates = await dataLayer.GetAllAsync(TestContext.Current.CancellationToken); //Gates must have been returned. Assert.NotNull(gates); @@ -116,7 +116,7 @@ public async Task VerifyGetAllListViewGates() HttpClient httpClient = _factory.CreateClient(); GateDataLyaer dataLayer = new(httpClient); - List? gates = await dataLayer.GetAllListViewAsync(); + List? gates = await dataLayer.GetAllListViewAsync(TestContext.Current.CancellationToken); //List view gates must have been returned. Assert.NotNull(gates); @@ -133,7 +133,7 @@ public async Task VerifyGetSingleGate() HttpClient httpClient = _factory.CreateClient(); GateDataLyaer dataLayer = new(httpClient); - Gate? gate = await dataLayer.GetSingleAsync(); + Gate? gate = await dataLayer.GetSingleAsync(TestContext.Current.CancellationToken); Assert.NotNull(gate); } @@ -147,7 +147,7 @@ public async Task VerifyGetSingleGateWithId() HttpClient httpClient = _factory.CreateClient(); GateDataLyaer dataLayer = new(httpClient); - Gate? gate = await dataLayer.GetSingleAsync(1); + Gate? gate = await dataLayer.GetSingleAsync(1, TestContext.Current.CancellationToken); Assert.NotNull(gate); } @@ -160,7 +160,7 @@ public async Task VerifyUpdateGateNotAllowed() HttpClient httpClient = _factory.CreateClient(); GateDataLyaer dataLayer = new(httpClient); - OperationResult operationResult = await dataLayer.UpdateAsync(new Gate() { Name = DefaultGateName }); + OperationResult operationResult = await dataLayer.UpdateAsync(new Gate() { Name = DefaultGateName }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); diff --git a/TestProject/SortDestinations/SortDestinationWebRequestUnitTest.cs b/TestProject/SortDestinations/SortDestinationWebRequestUnitTest.cs index 38838b8..883cb24 100644 --- a/TestProject/SortDestinations/SortDestinationWebRequestUnitTest.cs +++ b/TestProject/SortDestinations/SortDestinationWebRequestUnitTest.cs @@ -40,7 +40,7 @@ public async Task VerifyAddSortDestinationNotAllowed() HttpClient httpClient = _factory.CreateClient(); SortDestinationDataLayer dataLayer = new(httpClient); - OperationResult operationResult = await dataLayer.CreateAsync(new SortDestination() { Name = DefaultSortDestinationName }); + OperationResult operationResult = await dataLayer.CreateAsync(new SortDestination() { Name = DefaultSortDestinationName }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -63,7 +63,7 @@ public async Task VerifyCountSortDestinations() HttpClient httpClient = _factory.CreateClient(); SortDestinationDataLayer dataLayer = new(httpClient); - long count = await dataLayer.CountAsync(); + long count = await dataLayer.CountAsync(TestContext.Current.CancellationToken); Assert.True(count > 0); } @@ -76,7 +76,7 @@ public async Task VerifyDeleteSortDestinationNotAllowed() HttpClient httpClient = _factory.CreateClient(); SortDestinationDataLayer dataLayer = new(httpClient); - OperationResult operationResult = await dataLayer.DeleteAsync(new SortDestination() { Name = DefaultSortDestinationName }); + OperationResult operationResult = await dataLayer.DeleteAsync(new SortDestination() { Name = DefaultSortDestinationName }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); @@ -99,7 +99,7 @@ public async Task VerifyGetAllSortDestinations() HttpClient httpClient = _factory.CreateClient(); SortDestinationDataLayer dataLayer = new(httpClient); - List? sortDestinations = await dataLayer.GetAllAsync(); + List? sortDestinations = await dataLayer.GetAllAsync(TestContext.Current.CancellationToken); //Sort destinations must have been returned. Assert.NotNull(sortDestinations); @@ -116,7 +116,7 @@ public async Task VerifyGetAllListViewSortDestinations() HttpClient httpClient = _factory.CreateClient(); SortDestinationDataLayer dataLayer = new(httpClient); - List? sortDestinations = await dataLayer.GetAllListViewAsync(); + List? sortDestinations = await dataLayer.GetAllListViewAsync(TestContext.Current.CancellationToken); //List view sort destinations must have been returned. Assert.NotNull(sortDestinations); @@ -133,7 +133,7 @@ public async Task VerifyGetSingleSortDestination() HttpClient httpClient = _factory.CreateClient(); SortDestinationDataLayer dataLayer = new(httpClient); - SortDestination? sortDestination = await dataLayer.GetSingleAsync(); + SortDestination? sortDestination = await dataLayer.GetSingleAsync(TestContext.Current.CancellationToken); Assert.NotNull(sortDestination); } @@ -147,7 +147,7 @@ public async Task VerifyGetSingleSortDestinationWithId() HttpClient httpClient = _factory.CreateClient(); SortDestinationDataLayer dataLayer = new(httpClient); - SortDestination? sortDestination = await dataLayer.GetSingleAsync(1); + SortDestination? sortDestination = await dataLayer.GetSingleAsync(1, TestContext.Current.CancellationToken); Assert.NotNull(sortDestination); } @@ -160,7 +160,7 @@ public async Task VerifyUpdateSortDestinationNotAllowed() HttpClient httpClient = _factory.CreateClient(); SortDestinationDataLayer dataLayer = new(httpClient); - OperationResult operationResult = await dataLayer.UpdateAsync(new SortDestination() { Name = DefaultSortDestinationName }); + OperationResult operationResult = await dataLayer.UpdateAsync(new SortDestination() { Name = DefaultSortDestinationName }, TestContext.Current.CancellationToken); //The operation must have failed. Assert.False(operationResult.IsSuccessStatusCode, "The operation should have failed."); From ddc30de888c1f3ff5bad1810dae394742d2ee30f Mon Sep 17 00:00:00 2001 From: jmayer913 <72579603+jmayer913@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:28:13 -0400 Subject: [PATCH 3/3] Updated npm packages --- .../package-lock.json | 152 +++++++++++------- 1 file changed, 92 insertions(+), 60 deletions(-) diff --git a/jmayer.example.aspreact.client/package-lock.json b/jmayer.example.aspreact.client/package-lock.json index 6500c7b..0a7c451 100644 --- a/jmayer.example.aspreact.client/package-lock.json +++ b/jmayer.example.aspreact.client/package-lock.json @@ -716,14 +716,15 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^3.1.5" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -754,19 +755,20 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "^6.12.4", + "ajv": "^6.14.0", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { @@ -781,6 +783,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -789,10 +792,11 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -805,6 +809,7 @@ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -1227,9 +1232,10 @@ "dev": true }, "node_modules/@types/react": { - "version": "19.2.9", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.9.tgz", - "integrity": "sha512-Lpo8kgb/igvMIPeNV2rsYKTgaORYdO1XGVZ4Qz3akwOj0ySGYMPlQWa8BaLn0G63D1aSaAQ5ldR06wCpChQCjA==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", "dependencies": { "csstype": "^3.2.2" } @@ -1272,10 +1278,11 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1288,15 +1295,17 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1327,7 +1336,8 @@ "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 + "dev": true, + "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", @@ -1584,6 +1594,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2060,24 +2071,25 @@ } }, "node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", + "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", + "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", @@ -2096,7 +2108,7 @@ "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -2192,6 +2204,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -2204,6 +2217,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", @@ -2262,13 +2276,15 @@ "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -2608,6 +2624,7 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -2617,6 +2634,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3043,10 +3061,11 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "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==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3076,7 +3095,8 @@ "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 + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3184,10 +3204,11 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3399,6 +3420,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -3543,33 +3565,37 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/react": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", - "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", + "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.3" + "react": "^19.2.5" } }, "node_modules/react-is": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz", - "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==" + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.5.tgz", + "integrity": "sha512-Dn0t8IQhCmeIT3wu+Apm1/YVsJXsGWi6k4sPdnBIdqMVtHtv0IGi6dcpNpNkNac0zB2uUAqNX3MHzN8c+z2rwQ==", + "license": "MIT" }, "node_modules/react-refresh": { "version": "0.17.0", @@ -3581,9 +3607,10 @@ } }, "node_modules/react-router": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz", - "integrity": "sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.14.2.tgz", + "integrity": "sha512-yCqNne6I8IB6rVCH7XUvlBK7/QKyqypBFGv+8dj4QBFJiiRX+FG7/nkdAvGElyvVZ/HQP5N19wzteuTARXi5Gw==", + "license": "MIT", "dependencies": { "cookie": "^1.0.1", "set-cookie-parser": "^2.6.0" @@ -3602,11 +3629,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.12.0.tgz", - "integrity": "sha512-pfO9fiBcpEfX4Tx+iTYKDtPbrSLLCbwJ5EqP+SPYQu1VYCXdy79GSj0wttR0U4cikVdlImZuEZ/9ZNCgoaxwBA==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.14.2.tgz", + "integrity": "sha512-YZcM5ES8jJSM+KrJ9BdvHHqlnGTg5tH3sC5ChFRj4inosKctdyzBDhOyyHdGk597q2OT6NTrCA1OvB/YDwfekQ==", + "license": "MIT", "dependencies": { - "react-router": "7.12.0" + "react-router": "7.14.2" }, "engines": { "node": ">=20.0.0" @@ -3695,6 +3723,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -4066,6 +4095,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -4251,14 +4281,16 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/vite": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", - "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz", + "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", + "license": "MIT", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4",