From 3abc7ec6d14bfec436e50e13c376ee4cc8d89065 Mon Sep 17 00:00:00 2001 From: Gunnar Johansson Date: Sun, 26 Jul 2026 10:14:27 +0000 Subject: [PATCH] Initial commit --- backend/.devcontainer/Dockerfile | 17 + backend/.devcontainer/devcontainer.json | 29 + backend/.editorconfig | 3 + backend/.gitattributes | 1 + backend/.gitignore | 51 + backend/PostNordLotteriet.sln | 39 + .../Controllers/ShipmentController.cs | 48 + .../Extensions/ApiVersioningExtensions.cs | 27 + .../Extensions/RateLimiterExtensions.cs | 93 + .../PostNordLotteriet.WebAPI.csproj | 16 + .../src/PostNordLotteriet.WebAPI/Program.cs | 20 + .../Properties/launchSettings.json | 23 + .../Services/IWorkDayService.cs | 10 + .../Services/WorkDayService.cs | 130 + .../src/PostNordLotteriet.WebAPI/Startup.cs | 60 + .../appsettings.Development.json | 8 + .../PostNordLotteriet.WebAPI/appsettings.json | 9 + docker-compose.yml | 34 + frontend/.devcontainer/Dockerfile | 15 + frontend/.devcontainer/devcontainer.json | 25 + frontend/.editorconfig | 17 + frontend/.gitignore | 49 + frontend/.postcssrc.json | 5 + frontend/.prettierrc | 14 + frontend/.vscode/extensions.json | 4 + frontend/.vscode/launch.json | 20 + frontend/.vscode/mcp.json | 9 + frontend/.vscode/tasks.json | 42 + frontend/README.md | 59 + frontend/angular.json | 114 + frontend/package-lock.json | 8400 +++++++++++++++++ frontend/package.json | 34 + frontend/proxy.conf.json | 8 + frontend/public/favicon.ico | Bin 0 -> 9662 bytes frontend/public/fonts/pn-sans-bold.woff2 | Bin 0 -> 27760 bytes frontend/public/fonts/pn-sans-medium.woff2 | Bin 0 -> 26340 bytes frontend/public/fonts/pn-sans-regular.woff2 | Bin 0 -> 25884 bytes frontend/src/app/app.component.css | 0 frontend/src/app/app.component.html | 311 + frontend/src/app/app.component.ts | 12 + frontend/src/app/app.config.ts | 8 + frontend/src/app/app.routes.ts | 3 + frontend/src/index.html | 13 + frontend/src/main.ts | 5 + frontend/src/styles.css | 37 + frontend/tsconfig.app.json | 11 + frontend/tsconfig.json | 30 + frontend/tsconfig.spec.json | 10 + 48 files changed, 9873 insertions(+) create mode 100644 backend/.devcontainer/Dockerfile create mode 100644 backend/.devcontainer/devcontainer.json create mode 100644 backend/.editorconfig create mode 100644 backend/.gitattributes create mode 100644 backend/.gitignore create mode 100644 backend/PostNordLotteriet.sln create mode 100644 backend/src/PostNordLotteriet.WebAPI/Controllers/ShipmentController.cs create mode 100644 backend/src/PostNordLotteriet.WebAPI/Extensions/ApiVersioningExtensions.cs create mode 100644 backend/src/PostNordLotteriet.WebAPI/Extensions/RateLimiterExtensions.cs create mode 100644 backend/src/PostNordLotteriet.WebAPI/PostNordLotteriet.WebAPI.csproj create mode 100644 backend/src/PostNordLotteriet.WebAPI/Program.cs create mode 100644 backend/src/PostNordLotteriet.WebAPI/Properties/launchSettings.json create mode 100644 backend/src/PostNordLotteriet.WebAPI/Services/IWorkDayService.cs create mode 100644 backend/src/PostNordLotteriet.WebAPI/Services/WorkDayService.cs create mode 100644 backend/src/PostNordLotteriet.WebAPI/Startup.cs create mode 100644 backend/src/PostNordLotteriet.WebAPI/appsettings.Development.json create mode 100644 backend/src/PostNordLotteriet.WebAPI/appsettings.json create mode 100644 docker-compose.yml create mode 100644 frontend/.devcontainer/Dockerfile create mode 100644 frontend/.devcontainer/devcontainer.json create mode 100644 frontend/.editorconfig create mode 100644 frontend/.gitignore create mode 100644 frontend/.postcssrc.json create mode 100644 frontend/.prettierrc create mode 100644 frontend/.vscode/extensions.json create mode 100644 frontend/.vscode/launch.json create mode 100644 frontend/.vscode/mcp.json create mode 100644 frontend/.vscode/tasks.json create mode 100644 frontend/README.md create mode 100644 frontend/angular.json create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/proxy.conf.json create mode 100644 frontend/public/favicon.ico create mode 100644 frontend/public/fonts/pn-sans-bold.woff2 create mode 100644 frontend/public/fonts/pn-sans-medium.woff2 create mode 100644 frontend/public/fonts/pn-sans-regular.woff2 create mode 100644 frontend/src/app/app.component.css create mode 100644 frontend/src/app/app.component.html create mode 100644 frontend/src/app/app.component.ts create mode 100644 frontend/src/app/app.config.ts create mode 100644 frontend/src/app/app.routes.ts create mode 100644 frontend/src/index.html create mode 100644 frontend/src/main.ts create mode 100644 frontend/src/styles.css create mode 100644 frontend/tsconfig.app.json create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.spec.json diff --git a/backend/.devcontainer/Dockerfile b/backend/.devcontainer/Dockerfile new file mode 100644 index 0000000..75f535b --- /dev/null +++ b/backend/.devcontainer/Dockerfile @@ -0,0 +1,17 @@ +FROM mcr.microsoft.com/devcontainers/base:ubuntu24.04 + +USER root + +ENV DOTNET_ROOT=/usr/share/dotnet \ + PATH=/usr/share/dotnet:$PATH + +ARG DOTNET_SDK_TOOLING_CHANNEL=10.0.3xx + +RUN set -eux; \ + curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh; \ + chmod +x /tmp/dotnet-install.sh; \ + /tmp/dotnet-install.sh --channel "$DOTNET_SDK_TOOLING_CHANNEL" --quality GA --install-dir /usr/share/dotnet; \ + rm -f /tmp/dotnet-install.sh + +USER vscode +WORKDIR /workspaces \ No newline at end of file diff --git a/backend/.devcontainer/devcontainer.json b/backend/.devcontainer/devcontainer.json new file mode 100644 index 0000000..6f606ed --- /dev/null +++ b/backend/.devcontainer/devcontainer.json @@ -0,0 +1,29 @@ +{ + "name": "Backend", + "dockerComposeFile": ["../../docker-compose.yml"], + "service": "backend", + "workspaceFolder": "/workspaces/backend", + "updateRemoteUserUID": false, + "customizations": { + "vscode": { + "extensions": ["esbenp.prettier-vscode", "mikeburgh.xml-format", "ms-dotnettools.csdevkit@3.10.14"], + "settings": { + "dotnetAcquisitionExtension.sharedExistingDotnetPath": "/usr/share/dotnet/dotnet", + "remote.autoForwardPorts": false, + "[csharp]": { + "editor.defaultFormatter": "ms-dotnettools.csharp" + }, + "[xml]": { + "editor.defaultFormatter": "mikeburgh.xml-format" + } + } + } + }, + "forwardPorts": [5000, 5001], + "portsAttributes": { + "5001": { + "protocol": "https" + } + }, + "remoteUser": "vscode" +} diff --git a/backend/.editorconfig b/backend/.editorconfig new file mode 100644 index 0000000..406890b --- /dev/null +++ b/backend/.editorconfig @@ -0,0 +1,3 @@ +root = true +[*] +end_of_line = lf diff --git a/backend/.gitattributes b/backend/.gitattributes new file mode 100644 index 0000000..176a458 --- /dev/null +++ b/backend/.gitattributes @@ -0,0 +1 @@ +* text=auto diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 0000000..7475b86 --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,51 @@ +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg + +# dotenv environment variables file +.env + +# Certificates +[.]certs/ + +# Others +~$* +*~ +CodeCoverage/ + +# MSBuild Binary and Structured Log +*.binlog + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml diff --git a/backend/PostNordLotteriet.sln b/backend/PostNordLotteriet.sln new file mode 100644 index 0000000..a376592 --- /dev/null +++ b/backend/PostNordLotteriet.sln @@ -0,0 +1,39 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostNordLotteriet.WebAPI", "src\PostNordLotteriet.WebAPI\PostNordLotteriet.WebAPI.csproj", "{AE85FFEC-CD86-4C18-8880-F56D01C1D44C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Debug|x64.ActiveCfg = Debug|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Debug|x64.Build.0 = Debug|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Debug|x86.ActiveCfg = Debug|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Debug|x86.Build.0 = Debug|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Release|Any CPU.Build.0 = Release|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Release|x64.ActiveCfg = Release|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Release|x64.Build.0 = Release|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Release|x86.ActiveCfg = Release|Any CPU + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {AE85FFEC-CD86-4C18-8880-F56D01C1D44C} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} + EndGlobalSection +EndGlobal diff --git a/backend/src/PostNordLotteriet.WebAPI/Controllers/ShipmentController.cs b/backend/src/PostNordLotteriet.WebAPI/Controllers/ShipmentController.cs new file mode 100644 index 0000000..7431ca6 --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/Controllers/ShipmentController.cs @@ -0,0 +1,48 @@ +using System; +using System.Globalization; +using Asp.Versioning; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.RateLimiting; +using PostNordLotteriet.WebAPI.Services; + +namespace PostNordLotteriet.WebAPI.Controllers +{ + [ApiVersion("1.0")] + [Route("rest/[controller]/v{v:apiVersion}")] + [ApiController] + [EnableRateLimiting("fixed")] + public class ShipmentController : ControllerBase + { + private readonly IWorkDayService _workDayService; + + public ShipmentController(IWorkDayService workDayService) + { + _workDayService = workDayService; + } + + [MapToApiVersion("1.0")] + [HttpGet("trackandtrace")] + public IActionResult Get() + { + DateTime currentDate = DateTime.Now; + + if (_workDayService.IsNonWorkDay(currentDate)) + { + DateTime nextWorkDay = _workDayService.GetNextWorkDay(currentDate); + + Response.Headers.RetryAfter = nextWorkDay + .ToUniversalTime() + .ToString("R", CultureInfo.InvariantCulture); + + return StatusCode( + StatusCodes.Status503ServiceUnavailable, + new { message = "Ingen postutdelning på arbetsfria dagar." }); + } + + return Random.Shared.NextDouble() < 0.4 + ? Ok(new { message = "Grattis! Försändelsen finns snart i en brevlåda nära dig." }) + : BadRequest(new { message = "Tyvärr, ingen post idag." }); + } + } +} \ No newline at end of file diff --git a/backend/src/PostNordLotteriet.WebAPI/Extensions/ApiVersioningExtensions.cs b/backend/src/PostNordLotteriet.WebAPI/Extensions/ApiVersioningExtensions.cs new file mode 100644 index 0000000..f3bea69 --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/Extensions/ApiVersioningExtensions.cs @@ -0,0 +1,27 @@ +using Asp.Versioning; +using Microsoft.Extensions.DependencyInjection; + +namespace PostNordLotteriet.WebAPI.Extensions +{ + public static class ApiVersioningExtensions + { + public static IServiceCollection AddUrlSegmentApiVersioning(this IServiceCollection services) + { + services.AddApiVersioning(options => + { + options.DefaultApiVersion = new ApiVersion(1, 0); + options.ReportApiVersions = true; + options.AssumeDefaultVersionWhenUnspecified = true; + options.ApiVersionReader = new UrlSegmentApiVersionReader(); + }) + .AddMvc() + .AddApiExplorer(options => + { + options.GroupNameFormat = "'v'V"; + options.SubstituteApiVersionInUrl = true; + }); + + return services; + } + } +} \ No newline at end of file diff --git a/backend/src/PostNordLotteriet.WebAPI/Extensions/RateLimiterExtensions.cs b/backend/src/PostNordLotteriet.WebAPI/Extensions/RateLimiterExtensions.cs new file mode 100644 index 0000000..80e905a --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/Extensions/RateLimiterExtensions.cs @@ -0,0 +1,93 @@ +using System; +using System.Globalization; +using System.Text.Json; +using System.Threading.RateLimiting; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; +using PostNordLotteriet.WebAPI.Services; + +namespace PostNordLotteriet.WebAPI.Extensions +{ + public static class RateLimiterExtensions + { + // Adds a rate limiter with a custom error message in JSON format. + public static IServiceCollection AddPostNordLotterietRateLimiter(this IServiceCollection services) + { + services.AddRateLimiter(options => + { + options.AddPolicy(policyName: "fixed", httpContext => + { + // Disable rate limiter if today is a non-work day. + if (httpContext.RequestServices.GetRequiredService().IsNonWorkDay(DateTime.Now)) + { + return RateLimitPartition.GetNoLimiter("NoLimiter"); + } + else + { + return RateLimitPartition.GetFixedWindowLimiter(partitionKey: httpContext.Connection.RemoteIpAddress?.ToString() + ?? "Unknown", + factory: _ => new FixedWindowRateLimiterOptions + { + Window = TimeSpan.FromDays(1), + PermitLimit = 1 + }); + } + }); + + options.RejectionStatusCode = StatusCodes.Status429TooManyRequests; + + options.OnRejected = async (context, cancellationToken) => + { + HttpContext httpContext = context.HttpContext; + + IWorkDayService workDayService = + httpContext.RequestServices.GetRequiredService(); + + DateTimeOffset now = DateTimeOffset.Now; + + DateTime nextWorkDay = workDayService.GetNextWorkDay(now.DateTime); + + // The next workday starts at midnight in the server's local time zone. + DateTimeOffset nextWorkDayStart = new( + nextWorkDay, + now.Offset); + + DateTimeOffset nextAttempt = nextWorkDayStart; + + // Get the rate limiter's actual remaining lockout duration. + if (context.Lease.TryGetMetadata( + MetadataName.RetryAfter, + out TimeSpan retryAfter)) + { + DateTimeOffset limiterReset = now.Add(retryAfter); + + if (limiterReset > nextAttempt) + { + nextAttempt = limiterReset; + } + } + + string formattedNextAttempt = nextAttempt.ToString( + "dddd d MMMM 'klockan' HH:mm", + CultureInfo.GetCultureInfo("sv-SE")); + + httpContext.Response.ContentType = "application/json"; + + httpContext.Response.Headers.RetryAfter = nextAttempt + .ToUniversalTime() + .ToString("R", CultureInfo.InvariantCulture); + + await httpContext.Response.WriteAsync( + JsonSerializer.Serialize(new + { + message = $"Posten delas ut en gång per arbetsdag. Gör ett nytt försök {formattedNextAttempt}." + }), + cancellationToken); + }; + }); + + return services; + } + } +} \ No newline at end of file diff --git a/backend/src/PostNordLotteriet.WebAPI/PostNordLotteriet.WebAPI.csproj b/backend/src/PostNordLotteriet.WebAPI/PostNordLotteriet.WebAPI.csproj new file mode 100644 index 0000000..9e2f220 --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/PostNordLotteriet.WebAPI.csproj @@ -0,0 +1,16 @@ + + + net10.0 + enable + disable + + + + + + + + + + + \ No newline at end of file diff --git a/backend/src/PostNordLotteriet.WebAPI/Program.cs b/backend/src/PostNordLotteriet.WebAPI/Program.cs new file mode 100644 index 0000000..1e82aca --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/Program.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; + +namespace PostNordLotteriet.WebAPI +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); + } +} \ No newline at end of file diff --git a/backend/src/PostNordLotteriet.WebAPI/Properties/launchSettings.json b/backend/src/PostNordLotteriet.WebAPI/Properties/launchSettings.json new file mode 100644 index 0000000..f4fdb0c --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/Properties/launchSettings.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "http://0.0.0.0:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://0.0.0.0:5001;http://0.0.0.0:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/backend/src/PostNordLotteriet.WebAPI/Services/IWorkDayService.cs b/backend/src/PostNordLotteriet.WebAPI/Services/IWorkDayService.cs new file mode 100644 index 0000000..bbba5f3 --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/Services/IWorkDayService.cs @@ -0,0 +1,10 @@ +using System; + +namespace PostNordLotteriet.WebAPI.Services +{ + public interface IWorkDayService + { + bool IsNonWorkDay(DateTime date); + DateTime GetNextWorkDay(DateTime date); + } +} \ No newline at end of file diff --git a/backend/src/PostNordLotteriet.WebAPI/Services/WorkDayService.cs b/backend/src/PostNordLotteriet.WebAPI/Services/WorkDayService.cs new file mode 100644 index 0000000..9c16299 --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/Services/WorkDayService.cs @@ -0,0 +1,130 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Threading; + +namespace PostNordLotteriet.WebAPI.Services +{ + public class WorkDayService : IWorkDayService + { + private static readonly ConcurrentDictionary> _nonWorkDayCache = new ConcurrentDictionary>(); + + private static readonly object _cacheLock = new object(); + private static int _cacheYear = DateTime.Today.Year; + + // Method to check if a given date is a non-working day. + public bool IsNonWorkDay(DateTime date) + { + if (date.DayOfWeek == DayOfWeek.Saturday || + date.DayOfWeek == DayOfWeek.Sunday) + { + return true; + } + + ClearCacheIfOutdated(); + + // Check if the date matches any fixed or moveable non-working days. + return _nonWorkDayCache.GetOrAdd( + date.Year, + year => GetFixedNonWorkDays(year) + .Concat(GetMoveableNonWorkDays(year)) + .Select(d => d.Date) + .ToHashSet()) + .Contains(date.Date); + } + + // Computes and returns the next working day after the given date. + public DateTime GetNextWorkDay(DateTime date) + { + DateTime nextDate = date.Date.AddDays(1); + + while (IsNonWorkDay(nextDate)) + { + nextDate = nextDate.AddDays(1); + } + + return nextDate; + } + + // Returns fixed non-working days for the given year. + private static IEnumerable GetFixedNonWorkDays(int year) + { + return new DateTime[] + { + new DateTime(year, 1, 1), + new DateTime(year, 1, 6), + new DateTime(year, 5, 1), + new DateTime(year, 6, 6) + } + .Concat( + new int[] { 24, 25, 26, 31 } + .Select(day => new DateTime(year, 12, day))); + } + + // Returns moveable non-working days for the given year. + private static DateTime[] GetMoveableNonWorkDays(int year) + { + DateTime easterSunday = GetEasterDate(year); + + return new DateTime[] + { + easterSunday.AddDays(-2), // Good Friday + easterSunday.AddDays(1), // Easter Monday + easterSunday.AddDays(39), // Ascension Day + GetMidsummerEve(year) // Midsummer Eve + }; + } + + private static DateTime GetMidsummerEve(int year) + { + return Enumerable.Range(19, 7) + .Select(day => new DateTime(year, 6, day)) + .First(date => date.DayOfWeek == DayOfWeek.Friday); + } + + // Computes and returns the date of Easter Sunday for the given year. + private static DateTime GetEasterDate(int year) + { + int a = year % 19; + int b = year / 100; + int c = year % 100; + int d = b / 4; + int e = b % 4; + int f = (b + 8) / 25; + int g = (b - f + 1) / 3; + int h = (19 * a + b - d - g + 15) % 30; + int i = c / 4; + int k = c % 4; + int l = (32 + 2 * e + 2 * i - h - k) % 7; + int m = (a + 11 * h + 22 * l) / 451; + + int value = h + l - 7 * m + 114; + int month = value / 31; + int day = value % 31 + 1; + + return new DateTime(year, month, day); + } + + private static void ClearCacheIfOutdated() + { + int currentYear = DateTime.Today.Year; + + if (Volatile.Read(ref _cacheYear) == currentYear) + { + return; + } + + lock (_cacheLock) + { + if (_cacheYear == currentYear) + { + return; + } + + _nonWorkDayCache.Clear(); + Volatile.Write(ref _cacheYear, currentYear); + } + } + } +} \ No newline at end of file diff --git a/backend/src/PostNordLotteriet.WebAPI/Startup.cs b/backend/src/PostNordLotteriet.WebAPI/Startup.cs new file mode 100644 index 0000000..cd3c382 --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/Startup.cs @@ -0,0 +1,60 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Routing; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using PostNordLotteriet.WebAPI.Extensions; +using PostNordLotteriet.WebAPI.Services; + +namespace PostNordLotteriet.WebAPI +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + services.AddScoped(); + + services.AddControllers(); + + services.AddUrlSegmentApiVersioning(); + + // Configures routing options to enforce lowercase formatting. + services.Configure(options => + { + options.LowercaseUrls = true; + options.LowercaseQueryStrings = true; + }); + + services.AddPostNordLotterietRateLimiter(); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseHttpsRedirection(); + + app.UseRouting(); + + app.UseRateLimiter(); + + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + }); + } + } +} \ No newline at end of file diff --git a/backend/src/PostNordLotteriet.WebAPI/appsettings.Development.json b/backend/src/PostNordLotteriet.WebAPI/appsettings.Development.json new file mode 100644 index 0000000..6ea7671 --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/backend/src/PostNordLotteriet.WebAPI/appsettings.json b/backend/src/PostNordLotteriet.WebAPI/appsettings.json new file mode 100644 index 0000000..9c3a5de --- /dev/null +++ b/backend/src/PostNordLotteriet.WebAPI/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c2a427b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +networks: + net: + +services: + backend: + build: + context: ./backend/.devcontainer + dockerfile: Dockerfile + image: devcontainers/dotnet:10.0 + env_file: + - ./backend/.env + environment: + ASPNETCORE_Kestrel__Certificates__Default__Path: /home/vscode/.aspnet/https/aspnetapp.pfx + TZ: Europe/Stockholm + networks: + - net + volumes: + - .:/workspaces:cached + - ./backend/.certs/aspnetapp.pfx:/home/vscode/.aspnet/https/aspnetapp.pfx:ro + command: sleep infinity + frontend: + build: + context: ./frontend/.devcontainer + dockerfile: Dockerfile + image: devcontainers/angular:21 + networks: + - net + volumes: + - .:/workspaces:cached + - ./frontend/.certs:/workspaces/frontend/.certs:ro + command: sleep infinity + depends_on: + backend: + condition: service_started diff --git a/frontend/.devcontainer/Dockerfile b/frontend/.devcontainer/Dockerfile new file mode 100644 index 0000000..7bf97e8 --- /dev/null +++ b/frontend/.devcontainer/Dockerfile @@ -0,0 +1,15 @@ +ARG VARIANT=24-bookworm +FROM mcr.microsoft.com/devcontainers/typescript-node:5-${VARIANT} + +ARG ANGULAR_CLI_VERSION=21 + +USER root + +RUN npm install \ + --global \ + --no-audit \ + --no-fund \ + "@angular/cli@${ANGULAR_CLI_VERSION}" \ + && npm cache clean --force + +USER node \ No newline at end of file diff --git a/frontend/.devcontainer/devcontainer.json b/frontend/.devcontainer/devcontainer.json new file mode 100644 index 0000000..1d45f80 --- /dev/null +++ b/frontend/.devcontainer/devcontainer.json @@ -0,0 +1,25 @@ +{ + "name": "Frontend", + "dockerComposeFile": ["../../docker-compose.yml"], + "service": "frontend", + "workspaceFolder": "/workspaces/frontend", + "updateRemoteUserUID": false, + "customizations": { + "vscode": { + "extensions": ["bradlc.vscode-tailwindcss", "esbenp.prettier-vscode"], + "settings": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "js/ts.tsdk.path": "./node_modules/typescript/lib", + "remote.autoForwardPorts": false + } + } + }, + "forwardPorts": [4200], + "portsAttributes": { + "4200": { + "label": "Angular HTTPS", + "protocol": "https" + } + }, + "remoteUser": "node" +} diff --git a/frontend/.editorconfig b/frontend/.editorconfig new file mode 100644 index 0000000..d92628d --- /dev/null +++ b/frontend/.editorconfig @@ -0,0 +1,17 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = tab +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single +ij_typescript_use_double_quotes = false + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..6f9bd93 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,49 @@ +# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/mcp.json +.history/* + +# Miscellaneous +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings +__screenshots__/ + +# System files +.DS_Store +Thumbs.db + +# Angular cache +/.angular/ + +# Certificates +[.]certs/ diff --git a/frontend/.postcssrc.json b/frontend/.postcssrc.json new file mode 100644 index 0000000..ee6a829 --- /dev/null +++ b/frontend/.postcssrc.json @@ -0,0 +1,5 @@ +{ + "plugins": { + "@tailwindcss/postcss": {} + } +} diff --git a/frontend/.prettierrc b/frontend/.prettierrc new file mode 100644 index 0000000..94f3ecd --- /dev/null +++ b/frontend/.prettierrc @@ -0,0 +1,14 @@ +{ + "printWidth": 140, + "singleQuote": true, + "tabWidth": 4, + "useTabs": true, + "overrides": [ + { + "files": "*.html", + "options": { + "parser": "angular" + } + } + ] +} diff --git a/frontend/.vscode/extensions.json b/frontend/.vscode/extensions.json new file mode 100644 index 0000000..37b790d --- /dev/null +++ b/frontend/.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/.vscode/launch.json b/frontend/.vscode/launch.json new file mode 100644 index 0000000..e18b494 --- /dev/null +++ b/frontend/.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/.vscode/mcp.json b/frontend/.vscode/mcp.json new file mode 100644 index 0000000..c53afe9 --- /dev/null +++ b/frontend/.vscode/mcp.json @@ -0,0 +1,9 @@ +{ + // For more information, visit: https://angular.dev/ai/mcp + "servers": { + "angular-cli": { + "command": "npx", + "args": ["-y", "@angular/cli", "mcp"] + } + } +} diff --git a/frontend/.vscode/tasks.json b/frontend/.vscode/tasks.json new file mode 100644 index 0000000..3fcbaa8 --- /dev/null +++ b/frontend/.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": "Changes detected" + }, + "endsPattern": { + "regexp": "bundle generation (complete|failed)" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "Changes detected" + }, + "endsPattern": { + "regexp": "bundle generation (complete|failed)" + } + } + } + } + ] +} diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..981fbf5 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,59 @@ +# PostNordLotteriet + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.2.19. + +## Development server + +To start a local development server, run: + +```bash +ng serve +``` + +Once the server is running, open your browser and navigate to `http://localhost:4200/`. The application will automatically reload whenever you modify any of the source files. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the project run: + +```bash +ng build +``` + +This will compile your project and store the build artifacts in the `dist/` directory. By default, the production build optimizes your application for performance and speed. + +## Running unit tests + +To execute unit tests with the [Vitest](https://vitest.dev/) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/frontend/angular.json b/frontend/angular.json new file mode 100644 index 0000000..9d3b49e --- /dev/null +++ b/frontend/angular.json @@ -0,0 +1,114 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "cli": { + "packageManager": "npm", + "analytics": false + }, + "newProjectRoot": "projects", + "projects": { + "postnordlotteriet": { + "projectType": "application", + "schematics": { + "@schematics/angular:class": { + "skipTests": true + }, + "@schematics/angular:component": { + "skipTests": true, + "type": "component", + "addTypeToClassName": false + }, + "@schematics/angular:directive": { + "skipTests": true, + "type": "directive", + "addTypeToClassName": false + }, + "@schematics/angular:guard": { + "skipTests": true, + "typeSeparator": "." + }, + "@schematics/angular:interceptor": { + "skipTests": true, + "typeSeparator": "." + }, + "@schematics/angular:pipe": { + "skipTests": true, + "typeSeparator": "." + }, + "@schematics/angular:resolver": { + "skipTests": true, + "typeSeparator": "." + }, + "@schematics/angular:service": { + "skipTests": true, + "type": "service", + "addTypeToClassName": false + }, + "@schematics/angular:module": { + "typeSeparator": "." + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular/build:application", + "options": { + "browser": "src/main.ts", + "tsConfig": "tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": ["src/styles.css"] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kB", + "maximumError": "1MB" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "4kB", + "maximumError": "8kB" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular/build:dev-server", + "options": { + "host": "0.0.0.0", + "ssl": true, + "sslCert": ".certs/cert.pem", + "sslKey": ".certs/key.pem", + "proxyConfig": "proxy.conf.json" + }, + "configurations": { + "production": { + "buildTarget": "postnordlotteriet:build:production" + }, + "development": { + "buildTarget": "postnordlotteriet:build:development" + } + }, + "defaultConfiguration": "development" + } + } + } + } +} diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..24b4493 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,8400 @@ +{ + "name": "postnordlotteriet", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "postnordlotteriet", + "version": "0.0.0", + "dependencies": { + "@angular/common": "^21.2.0", + "@angular/compiler": "^21.2.0", + "@angular/core": "^21.2.0", + "@angular/forms": "^21.2.0", + "@angular/platform-browser": "^21.2.0", + "@angular/router": "^21.2.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0" + }, + "devDependencies": { + "@angular/build": "^21.2.19", + "@angular/cli": "^21.2.19", + "@angular/compiler-cli": "^21.2.0", + "@tailwindcss/postcss": "^4.1.12", + "postcss": "^8.5.3", + "prettier": "^3.8.1", + "tailwindcss": "^4.1.12", + "typescript": "~5.9.2" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.14.1.tgz", + "integrity": "sha512-Dkj0BgPiLAaim9sbQ97UKDFHJE/880wgStAM18U++NaJ/2Cws34J5731ovJifr6E3Pv4T2CqvMXf8qLCC417Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.48.1.tgz", + "integrity": "sha512-LV5qCJdj+/m9I+Aj91o+glYszrzd7CX6NgKaYdTOj4+tUYfbS62pwYgUfZprYNayhkQpVFcrW8x8ZlIHpS23Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.48.1.tgz", + "integrity": "sha512-/AVoMqHhPm14CcHq7mwB+bUJbfCv+jrxlNvRjXAuO+TQa+V37N8k1b0ijaRBPdmSjULMd8KtJbQyUyabXOu6Kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.48.1.tgz", + "integrity": "sha512-VXO+qu2Ep6ota28ktvBm3sG53wUHS2n7bgLWmce5jTskdlCD0/JrV4tnBm1l7qpla1CeoQb8D7ShFhad+UoSOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.48.1.tgz", + "integrity": "sha512-zl+Qyb0nLg+Y5YvKp1Ij+u9OaPaKg2/EPzTwKNiVyOHnQJlFxmXyUZL1EInczAZsEY8hVpPCLtNfhMhfxluXKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.48.1.tgz", + "integrity": "sha512-r89Qf9Oo9mKWQXumRu/1LtvVJAmEDpn8mHZMc485pRfQUMAwSSrsnaw1tQ3sszqzEgAr1c7rw6fjBI+zrAXTOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.48.1.tgz", + "integrity": "sha512-TPKNPKfghKG/bMSc7mQYD9HxHRUkBZA4q1PEmHgICaSeHQscGqL4wBrKkhfPlDV1uYBKW02pbFMUhsOt7p4ZpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.48.1.tgz", + "integrity": "sha512-4Fu7dnzQyQmMFknYwTiN/HxPbH4DyxvQ1m+IxpPp5oslOgz8m6PG5qhiGbqJzH4HiT1I58ecDiCAC716UyVA8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/ingestion": { + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.48.1.tgz", + "integrity": "sha512-/RFq3TqtXDUUawwic/A9xylA2P3LDMO8dNhphHAUOU51b1ZLHrmZ6YYJm3df1APz7xLY1aht6okCQf+/vmrV9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.48.1.tgz", + "integrity": "sha512-Of0jTeAZRyRhC7XzDSjJef0aBkgRcvRAaw0ooYRlOw57APii7lZdq+layuNdeL72BRq1snaJhoMMwkmLIpJScw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.48.1.tgz", + "integrity": "sha512-bE7JcpFXzxF5zHwj/vkl2eiCBvyR1zQ7aoUdO+GDXxGp0DGw7nI0p8Xj6u8VmRQ+RDuPcICFQcCwRIJT5tDJFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.48.1.tgz", + "integrity": "sha512-MK3wZ2koLDnvH/AmqIF1EKbJlhRS5j74OZGkLpxI4rYvNi9Jn/C7vb5DytBnQ4KUWts7QsmbdwHkxY5txQHXVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.48.1.tgz", + "integrity": "sha512-2oDT43Y5HWRSIQMPQI4tA/W+TN/N2tjggZCUsqQV440kxzzoPGsvv9QP1GhQ4CoDa+yn6ygUsGp6Dr+a9sPPSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.48.1.tgz", + "integrity": "sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.2102.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.19.tgz", + "integrity": "sha512-cj4tzUMiloLTg5rNf17E8MsvIxCWYoBiBsaj7ns6dgXqT9XCeG+J0TA2t1M+N9uuqfeLd22U/rYoCkADmcircQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "21.2.19", + "rxjs": "7.8.2" + }, + "bin": { + "architect": "bin/cli.js" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "21.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.19.tgz", + "integrity": "sha512-dtpJMQBz5nhkcIogPmXP/aT2Ak8m/wLRPOSTI/g4vSJSuGiI53PgtWq4/wfQga6E6wdM2XWsblAE89d8w5heQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.18.0", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.4", + "rxjs": "7.8.2", + "source-map": "0.7.6" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^5.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "21.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.19.tgz", + "integrity": "sha512-AG3Fzh9wJCmKBfxUQOUWaEHMj5Gq2O+Msf1z52aDSxbVhs5/iSQcXGPv/DLdAXu7d4xmQhLouNe9Glaq2omDyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "21.2.19", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.21", + "ora": "9.3.0", + "rxjs": "7.8.2" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/build": { + "version": "21.2.19", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.2.19.tgz", + "integrity": "sha512-emy9mqrTXAwhZzcvx8MaHyz+cUR06PVGxnqy91+bpDxPP9S5x67sPoOkY9y/ETFFhRpB5ULlUxyq0eN/pi6QOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.2102.19", + "@babel/core": "7.29.7", + "@babel/helper-annotate-as-pure": "7.27.3", + "@babel/helper-split-export-declaration": "7.24.7", + "@inquirer/confirm": "5.1.21", + "@vitejs/plugin-basic-ssl": "2.1.4", + "beasties": "0.4.1", + "browserslist": "^4.26.0", + "esbuild": "0.28.1", + "https-proxy-agent": "7.0.6", + "istanbul-lib-instrument": "6.0.3", + "jsonc-parser": "3.3.1", + "listr2": "9.0.5", + "magic-string": "0.30.21", + "mrmime": "2.0.1", + "parse5-html-rewriting-stream": "8.0.0", + "picomatch": "4.0.4", + "piscina": "5.2.0", + "rolldown": "1.0.0-rc.4", + "sass": "1.97.3", + "semver": "7.7.4", + "source-map-support": "0.5.21", + "tinyglobby": "0.2.15", + "undici": "7.28.0", + "vite": "7.3.6", + "watchpack": "2.5.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "lmdb": "3.5.1" + }, + "peerDependencies": { + "@angular/compiler": "^21.0.0", + "@angular/compiler-cli": "^21.0.0", + "@angular/core": "^21.0.0", + "@angular/localize": "^21.0.0", + "@angular/platform-browser": "^21.0.0", + "@angular/platform-server": "^21.0.0", + "@angular/service-worker": "^21.0.0", + "@angular/ssr": "^21.2.19", + "karma": "^6.4.0", + "less": "^4.2.0", + "ng-packagr": "^21.0.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.9 <6.0", + "vitest": "^4.0.8" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + }, + "@angular/localize": { + "optional": true + }, + "@angular/platform-browser": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@angular/ssr": { + "optional": true + }, + "karma": { + "optional": true + }, + "less": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/@angular/cli": { + "version": "21.2.19", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.19.tgz", + "integrity": "sha512-i78NzvoNonAY17QgzSmqrYnXHmEfraLv4wZ/o/m3efxuz61ZJ+5X/PsCeAhbwBvQfRrPRQaJV2tK9vGjHa+U6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.2102.19", + "@angular-devkit/core": "21.2.19", + "@angular-devkit/schematics": "21.2.19", + "@inquirer/prompts": "7.10.1", + "@listr2/prompt-adapter-inquirer": "3.0.5", + "@modelcontextprotocol/sdk": "1.26.0", + "@schematics/angular": "21.2.19", + "@yarnpkg/lockfile": "1.1.0", + "algoliasearch": "5.48.1", + "ini": "6.0.0", + "jsonc-parser": "3.3.1", + "listr2": "9.0.5", + "npm-package-arg": "13.0.2", + "pacote": "21.5.1", + "parse5-html-rewriting-stream": "8.0.0", + "semver": "7.7.4", + "yargs": "18.0.0", + "zod": "4.3.6" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "21.2.18", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.2.18.tgz", + "integrity": "sha512-gZugZ8gX/KkACIZ3/ekoImLu5z8a0Iu9O5b84kh8e+++VUjmkmd19IygBsq/8/fF3vKf0UcIKcx3P6A/gb2DJw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/core": "21.2.18", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "21.2.18", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.2.18.tgz", + "integrity": "sha512-ccnDuKLuzIa0ayijR+alarsHNWIksuGV/lxGTZ0t6/0+B6J/RXupz6M2IO6ZHHEcg8r7pcrLCUBTyp3FoiRJrg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "21.2.18", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.2.18.tgz", + "integrity": "sha512-L5zbIp7YfTTB4I4xT33FgEBanzhppNejzZX0HJOEqKDyDL2jXq+flt83lE0XVuRJ6/zrG+UKj0B+y/CK6Ro7Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "7.29.7", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^5.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^18.0.0" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/compiler": "21.2.18", + "typescript": ">=5.9 <6.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@angular/core": { + "version": "21.2.18", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.18.tgz", + "integrity": "sha512-AG4bb6GU0+qp+vVBjc/IhSPjgcRX8QsCb8jzN8dDyhnjsyuuG/LlIiU0l6n65BI9SGKE9m6TfsJ1ObkkAiE5KQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/compiler": "21.2.18", + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.15.0 || ~0.16.0" + }, + "peerDependenciesMeta": { + "@angular/compiler": { + "optional": true + }, + "zone.js": { + "optional": true + } + } + }, + "node_modules/@angular/forms": { + "version": "21.2.18", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.2.18.tgz", + "integrity": "sha512-TrRuiNjIzrrNtQgpJVH5gultQrvBlawa+tTzIpxBfIqLpkHrTPZLtYu118EUk6jhWzgRhKYUorInjJe+sSxC+w==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/common": "21.2.18", + "@angular/core": "21.2.18", + "@angular/platform-browser": "21.2.18", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "21.2.18", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.2.18.tgz", + "integrity": "sha512-zltF+3HrlgtZbYg8U98LhG0dyGm1aHT3Px8//9wjqi/TUY8UlHsYKByL197QtVWDBjf/dekzXdz5c+iyVtanLQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/animations": "21.2.18", + "@angular/common": "21.2.18", + "@angular/core": "21.2.18" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/router": { + "version": "21.2.18", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.2.18.tgz", + "integrity": "sha512-Xix19uG1YthC8IslhWKSfPdhscVWREBGVJZW2OnRmLef8F7DvhF49S6vOywaBo+Uahe0egkmgWDNpEwxAzsgLw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/common": "21.2.18", + "@angular/core": "21.2.18", + "@angular/platform-browser": "21.2.18", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "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, + "license": "MIT" + }, + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", + "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@gar/promise-retry": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", + "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@harperfast/extended-iterable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@harperfast/extended-iterable/-/extended-iterable-1.0.3.tgz", + "integrity": "sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/@hono/node-server": { + "version": "1.19.15", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.15.tgz", + "integrity": "sha512-Za2ai6TLdKjUvnur+eenO6nuYYipVAEhyCAdaV8IRvmU9kK8crOZUSYvIXn72E4f8fJqyAbpcJuTsYYmZp9Deg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "hono": "^4" + } + }, + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.3.2", + "@inquirer/confirm": "^5.1.21", + "@inquirer/editor": "^4.2.23", + "@inquirer/expand": "^4.0.23", + "@inquirer/input": "^4.3.1", + "@inquirer/number": "^3.0.23", + "@inquirer/password": "^4.0.23", + "@inquirer/rawlist": "^4.1.11", + "@inquirer/search": "^3.2.2", + "@inquirer/select": "^4.4.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/search": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/select": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-3.0.5.tgz", + "integrity": "sha512-WELs+hj6xcilkloBXYf9XXK8tYEnKsgLj01Xl5ONUJpKjmT5hGVUzNUS5tooUxs7pGMrw+jFD/41WpqW4V3LDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/type": "^3.0.8" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 8", + "listr2": "9.0.5" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.1.tgz", + "integrity": "sha512-tpfN4kKrrMpQ+If1l8bhmoNkECJi0iOu6AEdrTJvWVC+32sLxTARX5Rsu579mPImRP9YFWfWgeRQ5oav7zApQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.1.tgz", + "integrity": "sha512-+a2tTfc3rmWhLAolFUWRgJtpSuu+Fw/yjn4rF406NMxhfjbMuiOUTDRvRlMFV+DzyjkwnokisskHbCWkS3Ly5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.1.tgz", + "integrity": "sha512-0EgcE6reYr8InjD7V37EgXcYrloqpxVPINy3ig1MwDSbl6LF/vXTYRH9OE1Ti1D8YZnB35ZH9aTcdfSb5lql2A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.1.tgz", + "integrity": "sha512-aoERa5B6ywXdyFeYGQ1gbQpkMkDbEo45qVoXE5QpIRavqjnyPwjOulMkmkypkmsbJ5z4Wi0TBztON8agCTG0Vg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.1.tgz", + "integrity": "sha512-SqNDY1+vpji7bh0sFH5wlWyFTOzjbDOl0/kB5RLLYDAFyd/uw3n7wyrmas3rYPpAW7z18lMOi1yKlTPv967E3g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-arm64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.1.tgz", + "integrity": "sha512-50v0O1Lt37cwrmR9vWZK5hRW0Aw+KEmxJJ75fge/zIYdvNKB/0bSMSVR5Uc2OV9JhosIUyklOmrEvavwNJ8D6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.1.tgz", + "integrity": "sha512-qwosvPyl+zpUlp3gRb7UcJ3H8S28XHCzkv0Y0EgQToXjQP91ZD67EHSCDmaLjtKhe+GVIW5om1KUpzVLA0l6pg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.26.0.tgz", + "integrity": "sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@hono/node-server": "^1.19.9", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "hono": "^4.11.4", + "jose": "^6.1.3", + "json-schema-typed": "^8.0.2", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.25 || ^4.0", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@cfworker/json-schema": "^4.1.1", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "@cfworker/json-schema": { + "optional": true + }, + "zod": { + "optional": false + } + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.4.tgz", + "integrity": "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.4.tgz", + "integrity": "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.4.tgz", + "integrity": "sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.4.tgz", + "integrity": "sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.4.tgz", + "integrity": "sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.4.tgz", + "integrity": "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@napi-rs/nice": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.1.1.tgz", + "integrity": "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/nice-android-arm-eabi": "1.1.1", + "@napi-rs/nice-android-arm64": "1.1.1", + "@napi-rs/nice-darwin-arm64": "1.1.1", + "@napi-rs/nice-darwin-x64": "1.1.1", + "@napi-rs/nice-freebsd-x64": "1.1.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", + "@napi-rs/nice-linux-arm64-gnu": "1.1.1", + "@napi-rs/nice-linux-arm64-musl": "1.1.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", + "@napi-rs/nice-linux-s390x-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-musl": "1.1.1", + "@napi-rs/nice-openharmony-arm64": "1.1.1", + "@napi-rs/nice-win32-arm64-msvc": "1.1.1", + "@napi-rs/nice-win32-ia32-msvc": "1.1.1", + "@napi-rs/nice-win32-x64-msvc": "1.1.1" + } + }, + "node_modules/@napi-rs/nice-android-arm-eabi": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", + "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-android-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", + "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", + "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-freebsd-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-ppc64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", + "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-riscv64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", + "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-s390x-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", + "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-x64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-x64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-openharmony-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", + "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-arm64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", + "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-ia32-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-x64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", + "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@npmcli/agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.2.tgz", + "integrity": "sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^11.2.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@npmcli/fs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", + "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/git": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", + "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gar/promise-retry": "^1.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "ini": "^6.0.0", + "lru-cache": "^11.2.1", + "npm-pick-manifest": "^11.0.1", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "which": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", + "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^5.0.0", + "npm-normalize-package-bin": "^5.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", + "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz", + "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^7.0.0", + "glob": "^13.0.0", + "hosted-git-info": "^9.0.0", + "json-parse-even-better-errors": "^5.0.0", + "proc-log": "^6.0.0", + "semver": "^7.5.3", + "spdx-expression-parse": "^4.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", + "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "which": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/redact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", + "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz", + "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^5.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "node-gyp": "^12.1.0", + "proc-log": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.113.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.113.0.tgz", + "integrity": "sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.4.tgz", + "integrity": "sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.4.tgz", + "integrity": "sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.4.tgz", + "integrity": "sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz", + "integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz", + "integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz", + "integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz", + "integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz", + "integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz", + "integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz", + "integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz", + "integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz", + "integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz", + "integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz", + "integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz", + "integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz", + "integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz", + "integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz", + "integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz", + "integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz", + "integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz", + "integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz", + "integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz", + "integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz", + "integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz", + "integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz", + "integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz", + "integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz", + "integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@schematics/angular": { + "version": "21.2.19", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.2.19.tgz", + "integrity": "sha512-eL+UU9eizoadhDB4YEctRmmo0A5iwrSmGzeuEa6akrq8nLGVWM8zO91HTJutkPqGQjelF+UOiOShsQSZAU9SIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "21.2.19", + "@angular-devkit/schematics": "21.2.19", + "jsonc-parser": "3.3.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", + "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.5.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/core": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.1.tgz", + "integrity": "sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.1.tgz", + "integrity": "sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", + "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@gar/promise-retry": "^1.0.2", + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.0", + "@sigstore/protobuf-specs": "^0.5.0", + "make-fetch-happen": "^15.0.4", + "proc-log": "^6.1.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", + "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.5.0", + "tuf-js": "^4.1.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.1.tgz", + "integrity": "sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.1", + "@sigstore/protobuf-specs": "^0.5.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.24.1", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.3.tgz", + "integrity": "sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "postcss": "^8.5.16", + "tailwindcss": "4.3.3" + } + }, + "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, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", + "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^10.1.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.4.tgz", + "integrity": "sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0" + } + }, + "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, + "license": "BSD-2-Clause" + }, + "node_modules/abbrev": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", + "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/algoliasearch": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.48.1.tgz", + "integrity": "sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.14.1", + "@algolia/client-abtesting": "5.48.1", + "@algolia/client-analytics": "5.48.1", + "@algolia/client-common": "5.48.1", + "@algolia/client-insights": "5.48.1", + "@algolia/client-personalization": "5.48.1", + "@algolia/client-query-suggestions": "5.48.1", + "@algolia/client-search": "5.48.1", + "@algolia/ingestion": "1.48.1", + "@algolia/monitoring": "1.48.1", + "@algolia/recommend": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.1.tgz", + "integrity": "sha512-HYXq73DDpCtNzOmrFsm9eSwCvWCql0RzqjpDzXN9EadiLJ4DNat0nsZ/Bzmy+Ud12mb4/zKDY0cQ805ZzN+i0A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/beasties": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.1.tgz", + "integrity": "sha512-2Imdcw3LznDuxAbJM26RHniOLAzE6WgrK8OuvVXCQtNBS8rsnD9zsSEa3fHl4hHpUY7BYTlrpvtPVbvu9G6neg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "css-select": "^6.0.0", + "css-what": "^7.0.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "htmlparser2": "^10.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.49", + "postcss-media-query-parser": "^0.2.3", + "postcss-safe-parser": "^7.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/body-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/body-parser/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "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, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz", + "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/browserslist": { + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz", + "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^5.0.0", + "fs-minipass": "^3.0.0", + "glob": "^13.0.0", + "lru-cache": "^11.1.0", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^13.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.2.0.tgz", + "integrity": "sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==", + "dev": true, + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.2.0.tgz", + "integrity": "sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^8.0.0", + "string-width": "^8.2.0" + }, + "engines": { + "node": ">=20" + }, + "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, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-6.0.0.tgz", + "integrity": "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^7.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "nth-check": "^2.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz", + "integrity": "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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" + } + ], + "license": "BSD-2-Clause" + }, + "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, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "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/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.396", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.396.tgz", + "integrity": "sha512-yHiw2Y3C3H9U6TMbOfoWK/BPreiOPXRfTWPBwQBoZG6/8TB6eOPnsy5oaRYuatR7Fw2SJ4kKforgufeo7fq0EQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.24.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.3.tgz", + "integrity": "sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.0.tgz", + "integrity": "sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.0.tgz", + "integrity": "sha512-XKJXDsASUOo0LLtFwW5hCcQGH0N4WQc/Rn8/Pvoia+TJFOkkFPvrtW9lZOeeNcxQJspvOIERMwiRLsVFlhHEkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "ip-address": "^10.2.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "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, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", + "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "license": "BSD-2-Clause" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "ISC" + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hono": { + "version": "4.12.32", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.32.tgz", + "integrity": "sha512-XcuyW9qE2kJn07PkecMOBd5Vq/hMy7mmGw+idz1yblbg9N17ijJODrvPkn7/dwL3Kulj8LcRJ69DLOWf91dRUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/hosted-git-info": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz", + "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^11.1.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ignore-walk": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", + "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^10.0.3" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/immutable": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "ISC" + }, + "node_modules/ini": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/ip-address": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.3.1.tgz", + "integrity": "sha512-1e9d3kb97NHJTIJDZW9rKqW2h6+dFa50Dy0fpPSMQp2ADje5gvKsXmdiK6dwY5t76TaTt5+P5N1Y/LoToIxP6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "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, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jose": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.4.tgz", + "integrity": "sha512-N8acGzVsQy6M/fjFcxtysNc4Q379TcM5dM/qKkNtsHFji88yANnXTr7BLeP75iPnFwBfQzM/jg2BZ9+HZrHCZA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "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, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", + "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "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, + "license": "MIT" + }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "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, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "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" + ], + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/listr2": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^5.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lmdb": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.1.tgz", + "integrity": "sha512-NYHA0MRPjvNX+vSw8Xxg6FLKxzAG+e7Pt8RqAQA/EehzHVXq9SxDqJIN3JL1hK0dweb884y8kIh6rkWvPyg9Wg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@harperfast/extended-iterable": "^1.0.3", + "msgpackr": "^1.11.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.5.3", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.5.1", + "@lmdb/lmdb-darwin-x64": "3.5.1", + "@lmdb/lmdb-linux-arm": "3.5.1", + "@lmdb/lmdb-linux-arm64": "3.5.1", + "@lmdb/lmdb-linux-x64": "3.5.1", + "@lmdb/lmdb-win32-arm64": "3.5.1", + "@lmdb/lmdb-win32-x64": "3.5.1" + } + }, + "node_modules/log-symbols": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-fetch-happen": { + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.6.tgz", + "integrity": "sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gar/promise-retry": "^1.0.0", + "@npmcli/agent": "^4.0.0", + "@npmcli/redact": "^4.0.0", + "cacache": "^20.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^5.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^6.0.0", + "ssri": "^13.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "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, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", + "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^2.0.0", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + }, + "optionalDependencies": { + "iconv-lite": "^0.7.2" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", + "dev": true, + "license": "BlueOak-1.0.0", + "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, + "license": "ISC", + "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, + "license": "ISC" + }, + "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, + "license": "ISC", + "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, + "license": "ISC", + "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, + "license": "ISC" + }, + "node_modules/minipass-sized": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", + "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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, + "license": "MIT" + }, + "node_modules/msgpackr": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.12.1.tgz", + "integrity": "sha512-4EUH9tQHnMmEgzW/MdAP0KIfa1T9AF+htl0ffe2n5vb2EKn9y2co8ccpgWko6S52Jy1PQZKwRnx5/KkYjtd9MQ==", + "dev": true, + "license": "MIT", + "optional": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.4.tgz", + "integrity": "sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.4" + } + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-gyp": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz", + "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "graceful-fs": "^4.2.6", + "nopt": "^9.0.0", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "tar": "^7.5.4", + "tinyglobby": "^0.2.12", + "undici": "^6.25.0", + "which": "^6.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" + } + }, + "node_modules/node-gyp/node_modules/undici": { + "version": "6.28.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.0.tgz", + "integrity": "sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/nopt": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", + "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^4.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-bundled": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", + "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^5.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-install-checks": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", + "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", + "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-package-arg": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz", + "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^9.0.0", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^7.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-packlist": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz", + "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==", + "dev": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^8.0.0", + "proc-log": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", + "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^8.0.0", + "npm-normalize-package-bin": "^5.0.0", + "npm-package-arg": "^13.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz", + "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^4.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^15.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^5.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^13.0.0", + "proc-log": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "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, + "license": "BSD-2-Clause", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "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, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.6.2", + "cli-cursor": "^5.0.0", + "cli-spinners": "^3.2.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ordered-binary": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.1.tgz", + "integrity": "sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/p-map": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.6.tgz", + "integrity": "sha512-I4Prw6ivkd6p8PiYR1tXASOAOBzIJwu0TB7fqaX0c/8c3QAehNYmX57EijyGGGBt3c/BIowGwV03RVBtXvHEVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pacote": { + "version": "21.5.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.1.tgz", + "integrity": "sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gar/promise-retry": "^1.0.0", + "@npmcli/git": "^7.0.0", + "@npmcli/installed-package-contents": "^4.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "@npmcli/run-script": "^10.0.0", + "cacache": "^20.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^13.0.0", + "npm-packlist": "^10.0.1", + "npm-pick-manifest": "^11.0.1", + "npm-registry-fetch": "^19.0.0", + "proc-log": "^6.0.0", + "sigstore": "^4.0.0", + "ssri": "^13.0.0", + "tar": "^7.4.3" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-8.0.0.tgz", + "integrity": "sha512-wzh11mj8KKkno1pZEu+l2EVeWsuKDfR5KNWZOTsslfUX8lPDZx77m9T0kIoAVkFtD1nx6YF8oh4BnPHvxMtNMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0", + "parse5": "^8.0.0", + "parse5-sax-parser": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-8.0.0.tgz", + "integrity": "sha512-/dQ8UzHZwnrzs3EvDj6IkKrD/jIZyTlB+8XrHJvcjNgRdmWruNdN9i9RK/JtxakmlUdPwKubKPTCqvbTgzGhrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?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, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/piscina": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-5.2.0.tgz", + "integrity": "sha512-DszUCKeVN/5G5QKo6jAVHL8fmKnkJvQ0ACiVgY7YGCq3TUB2oznAOayvZPIAdEThvhczkXR+qm3IHsNXpFCYfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.x" + }, + "optionalDependencies": { + "@napi-rs/nice": "^1.0.4" + } + }, + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/postcss": { + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/prettier": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.4.tgz", + "integrity": "sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.113.0", + "@rolldown/pluginutils": "1.0.0-rc.4" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-x64": "1.0.0-rc.4", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.4", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.4", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.4", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.4", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.4" + } + }, + "node_modules/rollup": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", + "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.62.2", + "@rollup/rollup-android-arm64": "4.62.2", + "@rollup/rollup-darwin-arm64": "4.62.2", + "@rollup/rollup-darwin-x64": "4.62.2", + "@rollup/rollup-freebsd-arm64": "4.62.2", + "@rollup/rollup-freebsd-x64": "4.62.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", + "@rollup/rollup-linux-arm-musleabihf": "4.62.2", + "@rollup/rollup-linux-arm64-gnu": "4.62.2", + "@rollup/rollup-linux-arm64-musl": "4.62.2", + "@rollup/rollup-linux-loong64-gnu": "4.62.2", + "@rollup/rollup-linux-loong64-musl": "4.62.2", + "@rollup/rollup-linux-ppc64-gnu": "4.62.2", + "@rollup/rollup-linux-ppc64-musl": "4.62.2", + "@rollup/rollup-linux-riscv64-gnu": "4.62.2", + "@rollup/rollup-linux-riscv64-musl": "4.62.2", + "@rollup/rollup-linux-s390x-gnu": "4.62.2", + "@rollup/rollup-linux-x64-gnu": "4.62.2", + "@rollup/rollup-linux-x64-musl": "4.62.2", + "@rollup/rollup-openbsd-x64": "4.62.2", + "@rollup/rollup-openharmony-arm64": "4.62.2", + "@rollup/rollup-win32-arm64-msvc": "4.62.2", + "@rollup/rollup-win32-ia32-msvc": "4.62.2", + "@rollup/rollup-win32-x64-gnu": "4.62.2", + "@rollup/rollup-win32-x64-msvc": "4.62.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "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, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sigstore": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.1.tgz", + "integrity": "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.1", + "@sigstore/protobuf-specs": "^0.5.0", + "@sigstore/sign": "^4.1.1", + "@sigstore/tuf": "^4.0.2", + "@sigstore/verify": "^3.1.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/slice-ansi": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz", + "integrity": "sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.3", + "is-fullwidth-code-point": "^5.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", + "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.1.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "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, + "license": "MIT", + "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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/ssri": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", + "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", + "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/tailwindcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.22", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", + "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tuf-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", + "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "4.1.0", + "debug": "^4.4.3", + "make-fetch-happen": "^15.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "dev": true, + "license": "MIT", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz", + "integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.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, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", + "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0 || ^0.28.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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/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, + "license": "MIT" + }, + "node_modules/wrap-ansi/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "ISC" + }, + "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, + "license": "ISC", + "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, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", + "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^9.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "string-width": "^7.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^22.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "zod": "^3.25.28 || ^4" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..b9fb4c4 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,34 @@ +{ + "name": "postnordlotteriet", + "version": "0.0.0", + "scripts": { + "format": "prettier --write .", + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "packageManager": "npm@11.16.0", + "dependencies": { + "@angular/common": "^21.2.0", + "@angular/compiler": "^21.2.0", + "@angular/core": "^21.2.0", + "@angular/forms": "^21.2.0", + "@angular/platform-browser": "^21.2.0", + "@angular/router": "^21.2.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0" + }, + "devDependencies": { + "@angular/build": "^21.2.19", + "@angular/cli": "^21.2.19", + "@angular/compiler-cli": "^21.2.0", + "@tailwindcss/postcss": "^4.1.12", + "postcss": "^8.5.3", + "prettier": "^3.8.1", + "tailwindcss": "^4.1.12", + "typescript": "~5.9.2" + } +} diff --git a/frontend/proxy.conf.json b/frontend/proxy.conf.json new file mode 100644 index 0000000..a1fb244 --- /dev/null +++ b/frontend/proxy.conf.json @@ -0,0 +1,8 @@ +{ + "/rest/**": { + "target": "https://backend:5001", + "secure": false, + "changeOrigin": true, + "logLevel": "debug" + } +} diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b9174db36e194e822cfdfe7455d60ff6a654a724 GIT binary patch literal 9662 zcmeI2%TE(g6vhWd!5EECVo>9gNYq54ER8NqT)1)J#)XM4^uI7BCML$jg)WUj9)i3? z1jM(-_=*XNJfu%bOAA$?r7f-Pw4L_z+)F!j(xwTLR)}}V=}hjO3*Witcg{UckfZ|o zsi=_XbEni)CP^idB$boVkaU5Jjq_{o>@D?EU$Y#-#2yF+1OtKr!GK^uFd!HZ3S8_1}iNBAA=Dz}#HQ&D6LV`r5*!@%^E?0G3DP2u^-M*lR@CXU2@J4aSCb zq@QB4*yB(wVWi^_6xoI36>@!r@xcb-NrEn6dh#>f7v^88<%sQUdzeZ8R1fFK(tZ%5 z&riVi^eD_N+Y|cdVq&OY%l%}&8XMLVb1UY2WY4LVO~XRwGU$&69Pm4yAR7FIxDrGx z>L<1gnC!hmdN)#B3Sg)$f_vx|WcPQ3T;C8Fe~ICTyLrrv^=sf7xDKDS1-_AHcuZ9^ zw}-DwkKqDimO+1#qqKWG29NPB45W|cJo7PmMMD#?v>)KSv3M{Bla~^nhPAVj`<74r zaYaTv7D>wBcQ!Wu{v2n+Z|_p)Sgb7V`?Kgjl0W@%1zt-%?5|E??A=)eCqAn>*@NHS z0VA=$SoMe8eK0kZLU)hq51H-Ram2zN)rYWGNBO*i^mnRbi)sJ;j&91&;@Mh4xjNjs z3z5L6sx{&t!Ejp{k3(`$N#Wl_IUaKNCZ{mVfByJkTCH7`oMl#PoFC3p9SW&>fUkgA$(&@hkd!oX+@t|Gs{bnpoJ&^O~Jasrj3bn(-EJzUKL!lYWHP z{|Zh2!1h}SO{QsyMFVt(U8dYvN%g;2Q~w!1k$|1n#5L;}J7aIp17$!4srTnE$5_mO;Xe!2wqK0Ak}`mR!+ag0BQTs@Gd z2QV}GnCFD1uUJU0kZmpb!F#mCo%L;OpG}RMxUqhLjcLwL{(V8aPG3{Vdm>X~3B_nt zZkW&JN7`Jnzno8>@;7Vd^ZUiS8jjLpCiX|{k6=JBAQ%t~2nGZLf`R{yfzb literal 0 HcmV?d00001 diff --git a/frontend/public/fonts/pn-sans-bold.woff2 b/frontend/public/fonts/pn-sans-bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..71d945abb5c98c730b397f887d3e3b638c0aa199 GIT binary patch literal 27760 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 + + + + + + + + + + +
+
+
+ +

Hello, {{ title() }}

+

Congratulations! Your app is running. 🎉

+
+ +
+
+ @for ( + item of [ + { title: 'Explore the Docs', link: 'https://angular.dev' }, + { title: 'Learn with Tutorials', link: 'https://angular.dev/tutorials' }, + { + title: 'Prompt and best practices for AI', + link: 'https://angular.dev/ai/develop-with-ai', + }, + { title: 'CLI Docs', link: 'https://angular.dev/tools/cli' }, + { + title: 'Angular Language Service', + link: 'https://angular.dev/tools/language-service', + }, + { title: 'Angular DevTools', link: 'https://angular.dev/tools/devtools' }, + ]; + track item.title + ) { + + {{ item.title }} + + + + + } +
+ +
+
+
+ + + + + + + + + + diff --git a/frontend/src/app/app.component.ts b/frontend/src/app/app.component.ts new file mode 100644 index 0000000..9f3623e --- /dev/null +++ b/frontend/src/app/app.component.ts @@ -0,0 +1,12 @@ +import { Component, signal } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; + +@Component({ + selector: 'app-root', + imports: [RouterOutlet], + templateUrl: './app.component.html', + styleUrl: './app.component.css', +}) +export class App { + protected readonly title = signal('PostNordLotteriet'); +} diff --git a/frontend/src/app/app.config.ts b/frontend/src/app/app.config.ts new file mode 100644 index 0000000..d33b031 --- /dev/null +++ b/frontend/src/app/app.config.ts @@ -0,0 +1,8 @@ +import { ApplicationConfig, provideBrowserGlobalErrorListeners } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { routes } from './app.routes'; + +export const appConfig: ApplicationConfig = { + providers: [provideBrowserGlobalErrorListeners(), provideRouter(routes)], +}; diff --git a/frontend/src/app/app.routes.ts b/frontend/src/app/app.routes.ts new file mode 100644 index 0000000..dc39edb --- /dev/null +++ b/frontend/src/app/app.routes.ts @@ -0,0 +1,3 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = []; diff --git a/frontend/src/index.html b/frontend/src/index.html new file mode 100644 index 0000000..6957a39 --- /dev/null +++ b/frontend/src/index.html @@ -0,0 +1,13 @@ + + + + + Postnordlotteriet + + + + + + + + diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000..88f4fde --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,5 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { App } from './app/app.component'; + +bootstrapApplication(App, appConfig).catch((err) => console.error(err)); diff --git a/frontend/src/styles.css b/frontend/src/styles.css new file mode 100644 index 0000000..a54854e --- /dev/null +++ b/frontend/src/styles.css @@ -0,0 +1,37 @@ +/* You can add global styles to this file, and also import other style files */ + +@import 'tailwindcss'; + +@font-face { + font-family: 'PN Sans'; + src: url('/fonts/pn-sans-regular.woff2') format('woff2'); + font-style: normal; + font-weight: 400; + font-display: swap; +} + +@font-face { + font-family: 'PN Sans'; + src: url('/fonts/pn-sans-medium.woff2') format('woff2'); + font-style: normal; + font-weight: 500; + font-display: swap; +} + +@font-face { + font-family: 'PN Sans'; + src: url('/fonts/pn-sans-bold.woff2') format('woff2'); + font-style: normal; + font-weight: 700; + font-display: swap; +} + +@theme { + /* Colors */ + --color-pn-blue-default: #00a0d6; + --color-pn-blue-dark: #005d92; + --color-pn-blue-darkest: #0d234b; + + /* Fonts */ + --font-pn: 'PN Sans', ui-sans-serif, system-ui, sans-serif; +} diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json new file mode 100644 index 0000000..f1f9d80 --- /dev/null +++ b/frontend/tsconfig.app.json @@ -0,0 +1,11 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "include": ["src/**/*.ts"], + "exclude": ["src/**/*.spec.ts"] +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..feadd43 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,30 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "compileOnSave": false, + "compilerOptions": { + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "isolatedModules": true, + "experimentalDecorators": true, + "importHelpers": true, + "target": "ES2022", + "module": "preserve" + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + }, + "files": [], + "references": [ + { + "path": "./tsconfig.app.json" + } + ] +} diff --git a/frontend/tsconfig.spec.json b/frontend/tsconfig.spec.json new file mode 100644 index 0000000..c4d7e71 --- /dev/null +++ b/frontend/tsconfig.spec.json @@ -0,0 +1,10 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["vitest/globals"] + }, + "include": ["src/**/*.d.ts", "src/**/*.spec.ts"] +}