From d2c9006459ee1109f65932f85d70a399cb9e5474 Mon Sep 17 00:00:00 2001 From: Manuel Martins Date: Thu, 29 Jan 2026 11:30:08 +0000 Subject: [PATCH 01/20] feat!: dotnet 10 migration --- .devcontainer/devcontainer.json | 5 ++- .github/workflows/npm-publish.yml | 4 +- .github/workflows/pr-tests.yml | 2 +- cmf-cli.sln | 42 ------------------- cmf-cli.slnx | 5 +++ cmf-cli/cmf.csproj | 4 +- .../Plugin.Template/src/%solutionName%.csproj | 2 +- core/Objects/TelemetryService.cs | 31 +++++++------- core/core.csproj | 4 +- tests/Specs/ValidateStartAndEndMethods.cs | 35 ++++++++++++++-- tests/tests.csproj | 4 +- 11 files changed, 68 insertions(+), 70 deletions(-) delete mode 100644 cmf-cli.sln create mode 100644 cmf-cli.slnx diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index bd85744c4..fc6cd3a95 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,10 +4,11 @@ "features": { "ghcr.io/devcontainers/features/dotnet": { "version": "10.0", - "additionalVersions": ["8.0"] + "additionalVersions": ["6.0","8.0"] }, "ghcr.io/devcontainers/features/node": { - "version": "12" + "version": "12", + "additionalVersions": ["18","20"] }, "ghcr.io/devcontainers/features/github-cli": {}, "ghcr.io/nils-geistmann/devcontainers-features/zsh": { diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index decc46894..eb30af967 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -21,8 +21,8 @@ jobs: registry-url: https://registry.npmjs.org/ - uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.0.x' - - name: Install zip + dotnet-version: '10.0.x' + - name: install zip uses: montudor/action-zip@v0.1.0 - run: npm ci - run: npm run build:prod diff --git a/.github/workflows/pr-tests.yml b/.github/workflows/pr-tests.yml index 66b60e905..245b9a889 100644 --- a/.github/workflows/pr-tests.yml +++ b/.github/workflows/pr-tests.yml @@ -40,8 +40,8 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: | - 6.0.x 8.0.x + 10.0.x - name: Setup node versions uses: actions/setup-node@v4 with: diff --git a/cmf-cli.sln b/cmf-cli.sln deleted file mode 100644 index 6619a5498..000000000 --- a/cmf-cli.sln +++ /dev/null @@ -1,42 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.3.32929.385 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "cmf", "cmf-cli\cmf.csproj", "{992E16A7-340F-42E4-9281-F3759D8E73FB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{81DA6013-EDAA-4629-B5CC-EC2989AE3613}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tests", "tests\tests.csproj", "{C9C222C5-6236-4991-B3CF-6289E2ACBF09}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "core", "core\core.csproj", "{BF10AAE5-ACB7-47FD-9C85-F0AAEF1A7820}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {992E16A7-340F-42E4-9281-F3759D8E73FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {992E16A7-340F-42E4-9281-F3759D8E73FB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {992E16A7-340F-42E4-9281-F3759D8E73FB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {992E16A7-340F-42E4-9281-F3759D8E73FB}.Release|Any CPU.Build.0 = Release|Any CPU - {C9C222C5-6236-4991-B3CF-6289E2ACBF09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C9C222C5-6236-4991-B3CF-6289E2ACBF09}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C9C222C5-6236-4991-B3CF-6289E2ACBF09}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C9C222C5-6236-4991-B3CF-6289E2ACBF09}.Release|Any CPU.Build.0 = Release|Any CPU - {BF10AAE5-ACB7-47FD-9C85-F0AAEF1A7820}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF10AAE5-ACB7-47FD-9C85-F0AAEF1A7820}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF10AAE5-ACB7-47FD-9C85-F0AAEF1A7820}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF10AAE5-ACB7-47FD-9C85-F0AAEF1A7820}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {992BC2A0-4206-4E1E-90FB-CD17A5897017} - EndGlobalSection -EndGlobal diff --git a/cmf-cli.slnx b/cmf-cli.slnx new file mode 100644 index 000000000..63f28fa6b --- /dev/null +++ b/cmf-cli.slnx @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/cmf-cli/cmf.csproj b/cmf-cli/cmf.csproj index 985d29ef8..a4388ca40 100644 --- a/cmf-cli/cmf.csproj +++ b/cmf-cli/cmf.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 cmf Cmf.CLI true @@ -33,6 +33,8 @@ + + diff --git a/cmf-cli/resources/template_feed/plugin/Plugin.Template/src/%solutionName%.csproj b/cmf-cli/resources/template_feed/plugin/Plugin.Template/src/%solutionName%.csproj index 4997c0034..4d4742ddb 100644 --- a/cmf-cli/resources/template_feed/plugin/Plugin.Template/src/%solutionName%.csproj +++ b/cmf-cli/resources/template_feed/plugin/Plugin.Template/src/%solutionName%.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net10.0 enable enable cmf-<%= $CLI_PARAM_PluginBinary %> diff --git a/core/Objects/TelemetryService.cs b/core/Objects/TelemetryService.cs index af8e7494b..9517b32ee 100644 --- a/core/Objects/TelemetryService.cs +++ b/core/Objects/TelemetryService.cs @@ -1,3 +1,4 @@ +#nullable enable using Cmf.CLI.Utilities; using OpenTelemetry; using OpenTelemetry.Exporter; @@ -14,12 +15,12 @@ namespace Cmf.CLI.Core.Objects; public interface ITelemetryService { - public TracerProvider Provider { get; } + public TracerProvider? Provider { get; } public string Name { get; } - TracerProvider InitializeTracerProvider(string version); + TracerProvider? InitializeTracerProvider(string version); - TracerProvider InitializeTracerProvider(string serviceName, string version); + TracerProvider? InitializeTracerProvider(string serviceName, string version); Task InitializeTracerProviderAsync(string serviceName, string version); @@ -27,11 +28,11 @@ public interface ITelemetryService ActivitySource InitializeActivitySource(string name); - Activity StartActivity(string name, ActivityKind kind = ActivityKind.Internal); + Activity? StartActivity(string name, ActivityKind kind = ActivityKind.Internal); - Activity StartBareActivity(string name, ActivityKind kind = ActivityKind.Internal); + Activity? StartBareActivity(string name, ActivityKind kind = ActivityKind.Internal); - Activity StartExtendedActivity(string name, ActivityKind kind = ActivityKind.Internal); + Activity? StartExtendedActivity(string name, ActivityKind kind = ActivityKind.Internal); void LogException(Exception exception); } @@ -42,8 +43,8 @@ public class TelemetryService : ITelemetryService private readonly string cmfCLIEnableExtendedTelemetryEnvVarName; private readonly string cmfCLITelemetryHostEnvVarName; private readonly string cmfCLITelemetryEnableConsoleExporterEnvVarName; - private ActivitySource activitySource = null; - public TracerProvider Provider { get; private set; } + private ActivitySource? activitySource; + public TracerProvider? Provider { get; private set; } internal Task? _initTask; public string Name { get; protected set; } @@ -73,12 +74,12 @@ public TelemetryService(string name) cmfCLITelemetryEnableConsoleExporterEnvVarName = $"{ExecutionContext.EnvVarPrefix ?? "cmf_cli"}_telemetry_enable_console_exporter"; } - public TracerProvider InitializeTracerProvider(string version) + public TracerProvider? InitializeTracerProvider(string version) { return InitializeTracerProvider(Name, version); } - public TracerProvider InitializeTracerProvider(string serviceName, string version) + public TracerProvider? InitializeTracerProvider(string serviceName, string version) { if (!GenericUtilities.IsEnvVarTruthy(cmfCLIEnableTelemetryEnvVarName)) { @@ -144,9 +145,9 @@ public ActivitySource InitializeActivitySource(string name) return activitySource; } - public Activity StartBareActivity(string name, ActivityKind kind = ActivityKind.Internal) + public Activity? StartBareActivity(string name, ActivityKind kind = ActivityKind.Internal) { - var activity = this.activitySource.StartActivity(name, kind); + var activity = this.activitySource?.StartActivity(name, kind); activity?.SetTag("version", ExecutionContext.CurrentVersion); if (ExecutionContext.IsDevVersion) { @@ -160,9 +161,9 @@ public Activity StartBareActivity(string name, ActivityKind kind = ActivityKind. return activity; } - public Activity StartExtendedActivity(string name, ActivityKind kind = ActivityKind.Internal) => GenericUtilities.IsEnvVarTruthy(cmfCLIEnableExtendedTelemetryEnvVarName) ? this.StartActivity(name, kind) : null; + public Activity? StartExtendedActivity(string name, ActivityKind kind = ActivityKind.Internal) => GenericUtilities.IsEnvVarTruthy(cmfCLIEnableExtendedTelemetryEnvVarName) ? this.StartActivity(name, kind) : null; - public Activity StartActivity(string name, ActivityKind kind = ActivityKind.Internal) + public Activity? StartActivity(string name, ActivityKind kind = ActivityKind.Internal) { var activity = this.StartBareActivity(name, kind); if (GenericUtilities.IsEnvVarTruthy(cmfCLIEnableExtendedTelemetryEnvVarName)) @@ -185,7 +186,7 @@ public void LogException(Exception exception) if (Provider != null) { - var tracer = Provider?.GetTracer(serviceName, serviceVersion); + var tracer = Provider.GetTracer(serviceName, serviceVersion); var span = tracer.StartSpan("Unhandled Exception"); span.SetAttribute("event", "error"); span.SetAttribute("exception", exception.Message); diff --git a/core/core.csproj b/core/core.csproj index 70f956a40..3e19971f5 100644 --- a/core/core.csproj +++ b/core/core.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 CriticalManufacturing.CLI.Core Cmf.CLI.Core 5.10.7 @@ -35,6 +35,8 @@ + + diff --git a/tests/Specs/ValidateStartAndEndMethods.cs b/tests/Specs/ValidateStartAndEndMethods.cs index e1b0d4d71..c4e56ca90 100644 --- a/tests/Specs/ValidateStartAndEndMethods.cs +++ b/tests/Specs/ValidateStartAndEndMethods.cs @@ -98,8 +98,23 @@ public void Process_MissingArgument_ShouldLogMissingParameterAndIncorrectNumberO processor.Process(); // Assert - logger.Verify(x => x.Warning(string.Format(ErrorMessages.MethodParameterMissingOrIncorrectlyNamed, "StartMethod", _baseClassName, _baseMethodName, "NewParameterType")), Times.Once); - logger.Verify(x => x.Warning(string.Format(ErrorMessages.MethodHasIncorrectNumberOfParameters, "StartMethod", _baseClassName, _baseMethodName, 3, 4)), Times.Once); + var missingParamMessage = string.Format( + ErrorMessages.MethodParameterMissingOrIncorrectlyNamed, + "StartMethod", + _baseClassName, + _baseMethodName, + "NewParameterType"); + + var incorrectCountMessage = string.Format( + ErrorMessages.MethodHasIncorrectNumberOfParameters, + "StartMethod", + _baseClassName, + _baseMethodName, + 3, + 4); + + logger.Verify(x => x.Warning(missingParamMessage), Times.Once); + logger.Verify(x => x.Warning(incorrectCountMessage), Times.Once); logger.Verify(x => x.Warning(It.IsAny()), Times.Exactly(2)); } @@ -125,8 +140,20 @@ public void Process_MethodNameWrongAndOutputNameWrong_ShouldLogInputObjectOutput processor.Process(); // Assert - logger.Verify(x => x.Warning(string.Format(ErrorMessages.InputOutputMethodDoNotCoincide, _baseClassName, wrongMethodName)), Times.Once); - logger.Verify(x => x.Warning(string.Format(ErrorMessages.MethodParameterMissingOrIncorrectlyNamed, "EndMethod", _baseClassName, wrongMethodName, _baseOutputType)), Times.Once); + var methodDontCoincideMessage = string.Format( + ErrorMessages.InputOutputMethodDoNotCoincide, + _baseClassName, + wrongMethodName); + + var missingParamMessage = string.Format( + ErrorMessages.MethodParameterMissingOrIncorrectlyNamed, + "EndMethod", + _baseClassName, + wrongMethodName, + _baseOutputType); + + logger.Verify(x => x.Warning(methodDontCoincideMessage), Times.Once); + logger.Verify(x => x.Warning(missingParamMessage), Times.Once); logger.Verify(x => x.Warning(It.IsAny()), Times.Exactly(2)); } diff --git a/tests/tests.csproj b/tests/tests.csproj index d39c4e756..12971134c 100644 --- a/tests/tests.csproj +++ b/tests/tests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 @@ -21,6 +21,8 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + + From 55b4a90e63d376e434345a732d9c14894cc3aa98 Mon Sep 17 00:00:00 2001 From: Manuel Martins Date: Thu, 5 Feb 2026 10:00:24 +0000 Subject: [PATCH 02/20] chore(core): bump core System.CommandLine to 2.0.2 --- core/Commands/BaseCommand.cs | 121 +++++++++++++++++++++++++++++++++-- core/LoggerHelpers.cs | 30 ++++----- core/StartupModule.cs | 27 ++------ core/core.csproj | 3 +- 4 files changed, 139 insertions(+), 42 deletions(-) diff --git a/core/Commands/BaseCommand.cs b/core/Commands/BaseCommand.cs index 65988a2d1..419921def 100644 --- a/core/Commands/BaseCommand.cs +++ b/core/Commands/BaseCommand.cs @@ -69,7 +69,7 @@ public static void AddChildCommands(Command command) foreach (var cmd in topmostCommands) { var childCmd = FindChildCommands(cmd, commandTypes); - command.AddCommand(childCmd); + command.Add(childCmd); } } @@ -85,7 +85,11 @@ private static Command FindChildCommands(Type cmd, List commandTypes) var cmdName = dec.Name; // Create command - var cmdInstance = new Command(cmdName) { IsHidden = dec.IsHidden, Description = dec.Description }; + var cmdInstance = new Command(cmdName) + { + Hidden = dec.IsHidden, + Description = dec.Description + }; // Call "Configure" method BaseCommand cmdHandler = Activator.CreateInstance(cmd) as BaseCommand; @@ -128,7 +132,7 @@ private static Command FindChildCommands(Type cmd, List commandTypes) foreach (var child in childCommands) { var childCmd = FindChildCommands(child, commandTypes); - cmdInstance.AddCommand(childCmd); + cmdInstance.Add(childCmd); } return cmdInstance; } @@ -144,7 +148,7 @@ private static Command FindChildCommands(Type cmd, List commandTypes) protected T Parse(ArgumentResult argResult, string @default = null) { var argValue = @default; - if (argResult.Tokens.Any()) + if (argResult?.Tokens?.Any() == true) { argValue = argResult.Tokens.First().Value; } @@ -162,5 +166,114 @@ protected T Parse(ArgumentResult argResult, string @default = null) _ => throw new ArgumentOutOfRangeException("This method only parses directories, file paths or strings") }; } + + /// + /// Parse URI from argument result, supporting both regular URIs and UNC paths/file paths + /// + /// the arguments to parse + /// Parsed URI or null if no valid value + protected Uri ParseUri(ArgumentResult argResult) + { + if (argResult?.Tokens?.Any() != true) + { + return null; + } + + var value = argResult.Tokens.First().Value; + return ParseUriFromString(value); + } + + /// + /// Parse URI array from argument result + /// + /// the arguments to parse + /// Array of parsed URIs or null if no tokens + protected Uri[] ParseUriArray(ArgumentResult argResult) + { + if (argResult?.Tokens?.Any() != true) + { + return null; + } + + var uris = new System.Collections.Generic.List(); + foreach (var token in argResult.Tokens) + { + var value = token.Value; + if (string.IsNullOrEmpty(value)) + { + continue; + } + + var parsedUri = ParseUriFromString(value); + if (parsedUri != null) + { + uris.Add(parsedUri); + } + } + + return uris.Count > 0 ? uris.ToArray() : null; + } + + /// + /// Parse URI from string value + /// + private Uri ParseUriFromString(string value) + { + if (string.IsNullOrEmpty(value)) + { + return null; + } + + // Try to create URI directly first + if (Uri.TryCreate(value, UriKind.Absolute, out var uri)) + { + return uri; + } + + // Handle UNC paths (\\server\share or \\share\path) + if (value.StartsWith("\\\\")) + { + var uncPath = value.Replace("\\", "/"); + if (Uri.TryCreate($"file:{uncPath}", UriKind.Absolute, out var uncUri)) + { + return uncUri; + } + } + + // Handle Windows drive paths (C:\path or d:\xpto) + if (value.Length >= 3 && value[1] == ':' && (value[2] == '\\' || value[2] == '/')) + { + var normalizedPath = value.Replace('\\', '/'); + if (Uri.TryCreate($"file:///{normalizedPath}", UriKind.Absolute, out var driveUri)) + { + return driveUri; + } + } + + // Check if it's a relative path - preserve it as a relative URI + if (Uri.TryCreate(value, UriKind.Relative, out var relativeUri)) + { + return relativeUri; + } + + // Handle other formats - try to make absolute + try + { + var fullPath = System.IO.Path.GetFullPath(value); + return new Uri(fullPath); + } + catch + { + // As a last resort, try to use the value as-is in a file URI + try + { + return new Uri($"file:///{value.Replace('\\', '/')}"); + } + catch + { + return null; + } + } + } } } \ No newline at end of file diff --git a/core/LoggerHelpers.cs b/core/LoggerHelpers.cs index f73ab57f4..5e8baed3a 100644 --- a/core/LoggerHelpers.cs +++ b/core/LoggerHelpers.cs @@ -1,22 +1,17 @@ using System; using System.CommandLine; using System.CommandLine.Parsing; -using System.Linq; using Cmf.CLI.Utilities; namespace Cmf.CLI.Core { public static class LoggerHelpers { - - /// - /// Parse log level based on input option or environment variables - /// - private static ParseArgument parseLogLevel = argResult => + private static LogLevel ParseLogLevel(ArgumentResult argResult = null) { - var loglevel = LogLevel.Verbose; string loglevelStr = "verbose"; - if (argResult.Tokens.Any()) + + if (argResult?.Tokens.Count > 0) { loglevelStr = argResult.Tokens[0].Value; } @@ -24,27 +19,30 @@ public static class LoggerHelpers { loglevelStr = Environment.GetEnvironmentVariable("cmf_cli_loglevel"); } + if (Environment.GetEnvironmentVariable("SYSTEM_DEBUG")?.ToBool() ?? false) { loglevelStr = "debug"; } + var loglevel = LogLevel.Verbose; if (Enum.TryParse(typeof(LogLevel), loglevelStr, ignoreCase: true, out var loglevelObj)) { - loglevel = (LogLevel)loglevelObj!; + loglevel = (LogLevel)loglevelObj; } + Log.Level = loglevel; return loglevel; - }; + } /// /// Log verbosity option that can be used in root commands /// - public static Option LogLevelOption = new Option( - aliases: new[] { "--loglevel", "-l" }, - description: "Log Verbosity", - parseArgument: parseLogLevel, - isDefault: true - ); + public static readonly Option LogLevelOption = new("--loglevel", "-l") + { + Description = "Log Verbosity", + DefaultValueFactory = _ => ParseLogLevel(), + CustomParser = argResult => ParseLogLevel(argResult) + }; } } \ No newline at end of file diff --git a/core/StartupModule.cs b/core/StartupModule.cs index 7b748112d..9ff71b2b6 100644 --- a/core/StartupModule.cs +++ b/core/StartupModule.cs @@ -1,11 +1,8 @@ using Cmf.CLI.Core.Commands; using Cmf.CLI.Core.Objects; -using Cmf.CLI.Utilities; using Microsoft.Extensions.DependencyInjection; using System; using System.CommandLine; -using System.CommandLine.Builder; -using System.CommandLine.Parsing; using System.Runtime.CompilerServices; using System.Threading.Tasks; @@ -26,7 +23,7 @@ public static class StartupModule /// ar /// The NPM client. if is not set, we assume NPMClient implementation by default /// function to add extra services to the ServiceProvider - public static async Task> Configure(string packageId, string envVarPrefix, string description, string[] args, INPMClient npmClient = null, Action registerExtraServices = null) + public static async Task Configure(string packageId, string envVarPrefix, string description, string[] args, INPMClient npmClient = null, Action registerExtraServices = null) { // in a scenario that cli is not running on a terminal, // the AnsiConsole.Profile.Width defaults to 80,which is a low value and causes unexpected break lines. @@ -81,23 +78,13 @@ public static async Task> Configure(string packageId, await VersionChecks(); // add LogLevelOption - rootCommand.AddOption(LoggerHelpers.LogLevelOption); + rootCommand.Add(LoggerHelpers.LogLevelOption); BaseCommand.AddChildCommands(rootCommand); - var parser = new CommandLineBuilder(rootCommand) - .UseVersionOption(new[] { "--version", "-v" }) - .UseHelp() - .UseEnvironmentVariableDirective() - .UseParseDirective() - .UseSuggestDirective() - .RegisterWithDotnetSuggest() - .UseTypoCorrections() - .UseParseErrorReporting() - .UseExceptionHandler((exception, context) => CliException.Handler(exception)) - .CancelOnProcessTermination() - .Build(); - + // Add environment variables directive + // Note: SuggestDirective is included by default in RootCommand.Directives + rootCommand.Directives.Add(new EnvironmentVariablesDirective()); // Only await if provider task is still running if (!telemetryProviderInitTask.IsCompleted) @@ -105,7 +92,7 @@ public static async Task> Configure(string packageId, telemetryProviderInitTask.GetAwaiter().GetResult(); } - return new(rootCommand, parser); + return rootCommand; } /// @@ -148,4 +135,4 @@ internal static async Task VersionChecks() } } } -} +} \ No newline at end of file diff --git a/core/core.csproj b/core/core.csproj index 3e19971f5..a562b0134 100644 --- a/core/core.csproj +++ b/core/core.csproj @@ -29,9 +29,8 @@ - - + From fc46e2277f64a8b337964751ecb6cd0e0331b4d4 Mon Sep 17 00:00:00 2001 From: Manuel Martins Date: Thu, 5 Feb 2026 10:04:48 +0000 Subject: [PATCH 03/20] chore(cmf-cli): bump cmf-cli System.CommandLine to 2.0.2 --- cmf-cli/Commands/BaseCommand.cs | 2 +- cmf-cli/Commands/LayerTemplateCommand.cs | 44 +- cmf-cli/Commands/assemble/AssembleCommand.cs | 64 ++- cmf-cli/Commands/build/BuildCommand.cs | 35 +- .../build/GenerateBasedOnTemplatesCommand.cs | 21 +- .../build/GenerateMenuItemsCommand.cs | 21 +- cmf-cli/Commands/build/IoTLibCommand.cs | 24 +- .../ValidateStartAndEndMethodsCommand.cs | 27 +- .../Commands/build/html/ExtractI18nCommand.cs | 22 +- .../Commands/build/html/LinkLBOsCommand.cs | 21 +- .../Commands/build/html/LocalizeCommand.cs | 21 +- cmf-cli/Commands/bump/BumpCommand.cs | 65 ++- .../bump/BumpIoTConfigurationCommand.cs | 176 +++++--- .../bump/BumpIoTCustomizationCommand.cs | 70 +-- cmf-cli/Commands/init/InitCommand.cs | 418 +++++++++++------- .../Commands/list/ListDependenciesCommand.cs | 37 +- cmf-cli/Commands/login/LoginCommand.cs | 124 ++++-- cmf-cli/Commands/login/SyncCommand.cs | 32 +- cmf-cli/Commands/new/BusinessCommand.cs | 24 +- cmf-cli/Commands/new/DataCommand.cs | 30 +- cmf-cli/Commands/new/FeatureCommand.cs | 47 +- cmf-cli/Commands/new/HTMLCommand.cs | 32 +- cmf-cli/Commands/new/HelpCommand.cs | 29 +- cmf-cli/Commands/new/IoTCommand.cs | 38 +- cmf-cli/Commands/new/NewCommand.cs | 25 +- cmf-cli/Commands/new/TestCommand.cs | 24 +- .../iot/GenerateBusinessScenarioCommand.cs | 24 +- .../new/iot/GenerateConverterCommand.cs | 22 +- .../new/iot/GenerateDotnetDriverCommand.cs | 22 +- .../GenerateDotnetFrameworkDriverCommand.cs | 22 +- .../Commands/new/iot/GenerateDriverCommand.cs | 22 +- .../Commands/new/iot/GenerateTaskCommand.cs | 22 +- .../new/iot/GenerateTaskLibraryCommand.cs | 23 +- cmf-cli/Commands/pack/PackCommand.cs | 58 ++- cmf-cli/Commands/plugin/NewPluginCommand.cs | 55 ++- cmf-cli/Commands/plugin/PluginCommand.cs | 18 +- cmf-cli/Commands/plugin/PluginsCommand.cs | 18 +- cmf-cli/Commands/publish/PublishCommand.cs | 65 +-- cmf-cli/Commands/restore/RestoreCommand.cs | 34 +- .../Commands/upgrade/UpgradeBaseCommand.cs | 62 +-- cmf-cli/Commands/upgrade/UpgradeCommand.cs | 57 --- cmf-cli/Program.cs | 27 +- cmf-cli/cmf.csproj | 3 +- .../Plugin.Template/src/%solutionName%.csproj | 2 +- 44 files changed, 1223 insertions(+), 806 deletions(-) delete mode 100644 cmf-cli/Commands/upgrade/UpgradeCommand.cs diff --git a/cmf-cli/Commands/BaseCommand.cs b/cmf-cli/Commands/BaseCommand.cs index 8b7742a8b..38a5f4e55 100644 --- a/cmf-cli/Commands/BaseCommand.cs +++ b/cmf-cli/Commands/BaseCommand.cs @@ -108,7 +108,7 @@ public static void AddPluginCommands(Command command) var cmdInstance = new Command(commandPlugin.Key); var commandHandler = new PluginCommand(commandPlugin.Key, commandPlugin.Value); commandHandler.Configure(cmdInstance); - command.AddCommand(cmdInstance); + command.Add(cmdInstance); } } } diff --git a/cmf-cli/Commands/LayerTemplateCommand.cs b/cmf-cli/Commands/LayerTemplateCommand.cs index 8f3d3290a..03b2b5abf 100644 --- a/cmf-cli/Commands/LayerTemplateCommand.cs +++ b/cmf-cli/Commands/LayerTemplateCommand.cs @@ -5,9 +5,9 @@ using Microsoft.Extensions.DependencyInjection; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; namespace Cmf.CLI.Commands { @@ -55,15 +55,24 @@ protected LayerTemplateCommand(string commandName, PackageType packageType, IFil /// base command public override void Configure(Command cmd) { - GetBaseCommandConfig(cmd); - cmd.Handler = CommandHandler.Create>(Execute); + var (workingDirArg, versionOpt) = GetBaseCommandConfig(cmd); + + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArg); + var version = parseResult.GetValue(versionOpt); + + Execute(workingDir, version, null); + return Task.FromResult(0); + }); } /// /// Injects the base arguments and options into the command, required for layer commands /// /// base command - protected void GetBaseCommandConfig(Command cmd) + /// Tuple with the workingDir argument and version option for use in SetAction + protected (Argument, Option) GetBaseCommandConfig(Command cmd) { var nearestRootPackage = FileSystemUtilities.GetPackageRootByType( this.fileSystem.Directory.GetCurrentDirectory(), @@ -71,19 +80,22 @@ protected void GetBaseCommandConfig(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestRootPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); - cmd.AddOption(new Option( - aliases: new[] { "--version" }, - description: "Package Version", - getDefaultValue: () => "1.0.0" - )); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestRootPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestRootPackage?.FullName) + }; + cmd.Add(workingDirArgument); + + var versionOption = new Option("--version") + { + Description = "Package Version", + DefaultValueFactory = _ => "1.0.0" + }; + cmd.Add(versionOption); + + return (workingDirArgument, versionOption); } protected (string, string) GetOrganizationAndProductFromProjectConfig() diff --git a/cmf-cli/Commands/assemble/AssembleCommand.cs b/cmf-cli/Commands/assemble/AssembleCommand.cs index 0f9a922f0..d2e361650 100644 --- a/cmf-cli/Commands/assemble/AssembleCommand.cs +++ b/cmf-cli/Commands/assemble/AssembleCommand.cs @@ -9,9 +9,9 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; namespace Cmf.CLI.Commands { @@ -54,34 +54,52 @@ public AssembleCommand(IFileSystem fileSystem) : base(fileSystem) { } /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, "."), - isDefault: true) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + DefaultValueFactory = _ => Parse(null, "."), + CustomParser = argResult => Parse(argResult, ".") + }; + cmd.Add(workingDirArgument); - cmd.AddOption(new Option( - aliases: new string[] { "-o", "--outputDir" }, - parseArgument: argResult => Parse(argResult, "Assemble"), - isDefault: true, - description: "Output directory for assembled package")); + var outputDirOption = new Option("--outputDir", "-o") + { + Description = "Output directory for assembled package", + DefaultValueFactory = _ => Parse(null, "Assemble"), + CustomParser = argResult => Parse(argResult, "Assemble") + }; + cmd.Add(outputDirOption); - cmd.AddOption(new Option( - aliases: new string[] { "--cirepo" }, - description: "Repository where Continuous Integration packages are located (url or folder)")); + var ciRepoOption = new Option("--cirepo") + { + Description = "Repository where Continuous Integration packages are located (url or folder)" + }; + cmd.Add(ciRepoOption); - cmd.AddOption(new Option( - aliases: new string[] { "-r", "--repos", "--repo" }, - description: "Repository or repositories where published dependencies are located (url or folder)")); + var reposOption = new Option("--repos", "-r", "--repo") + { + Description = "Repository or repositories where published dependencies are located (url or folder)" + }; + cmd.Add(reposOption); - cmd.AddOption(new Option( - aliases: new string[] { "--includeTestPackages" }, - description: "Include test packages on assemble")); + var includeTestPackagesOption = new Option("--includeTestPackages") + { + Description = "Include test packages on assemble" + }; + cmd.Add(includeTestPackagesOption); // Add the handler - cmd.Handler = CommandHandler.Create(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + var outputDir = parseResult.GetValue(outputDirOption); + var ciRepo = parseResult.GetValue(ciRepoOption); + var repos = parseResult.GetValue(reposOption); + var includeTestPackages = parseResult.GetValue(includeTestPackagesOption); + + Execute(workingDir, outputDir, ciRepo, repos, includeTestPackages); + return Task.FromResult(0); + }); } /// @@ -366,4 +384,4 @@ internal void HandleAppPkg(IDirectoryInfo outputDir, CmfPackage cmfPackage) #endregion } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/build/BuildCommand.cs b/cmf-cli/Commands/build/BuildCommand.cs index 84360400f..6668a762a 100644 --- a/cmf-cli/Commands/build/BuildCommand.cs +++ b/cmf-cli/Commands/build/BuildCommand.cs @@ -6,8 +6,8 @@ using Cmf.CLI.Utilities; using Microsoft.Extensions.DependencyInjection; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands { @@ -45,21 +45,30 @@ public override void Configure(Command cmd) { packagePath = this.fileSystem.Path.GetRelativePath(this.fileSystem.Directory.GetCurrentDirectory(), packageRoot.FullName); } - cmd.AddArgument(new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, packagePath), - isDefault: true) + + var packagePathArgument = new Argument("packagePath") { - Description = "Package Path" - }); + Description = "Package Path", + CustomParser = argResult => Parse(argResult, packagePath), + DefaultValueFactory = _ => Parse(null, packagePath) + }; + cmd.Add(packagePathArgument); + + var testOption = new Option("--test") + { + Description = "Build and Run Unit Tests", + DefaultValueFactory = _ => false + }; + cmd.Add(testOption); - cmd.AddOption(new Option( - aliases: new[] { "--test" }, - description: "Build and Run Unit Tests", - getDefaultValue: () => false - )); + cmd.SetAction((parseResult, cancellationToken) => + { + var pkgPath = parseResult.GetValue(packagePathArgument); + var test = parseResult.GetValue(testOption); - cmd.Handler = CommandHandler.Create(Execute); + Execute(pkgPath, test); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/build/GenerateBasedOnTemplatesCommand.cs b/cmf-cli/Commands/build/GenerateBasedOnTemplatesCommand.cs index a2da89e04..a50e21150 100644 --- a/cmf-cli/Commands/build/GenerateBasedOnTemplatesCommand.cs +++ b/cmf-cli/Commands/build/GenerateBasedOnTemplatesCommand.cs @@ -1,11 +1,11 @@ using System; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO; using System.IO.Abstractions; using System.Linq; using System.Text; using System.Text.RegularExpressions; +using System.Threading.Tasks; using Cmf.CLI.Constants; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; @@ -34,16 +34,21 @@ public override void Configure(Command cmd) { packagePath = this.fileSystem.Path.GetRelativePath(this.fileSystem.Directory.GetCurrentDirectory(), packageRoot.FullName); } - var arg = new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, packagePath), - isDefault: true) + + var packagePathArgument = new Argument("packagePath") { - Description = "Package Path" + Description = "Package Path", + CustomParser = argResult => Parse(argResult, packagePath), + DefaultValueFactory = _ => Parse(null, packagePath) }; + cmd.Add(packagePathArgument); - cmd.AddArgument(arg); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var pkgPath = parseResult.GetValue(packagePathArgument); + Execute(pkgPath); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/build/GenerateMenuItemsCommand.cs b/cmf-cli/Commands/build/GenerateMenuItemsCommand.cs index 6675e7184..c73ea0d04 100644 --- a/cmf-cli/Commands/build/GenerateMenuItemsCommand.cs +++ b/cmf-cli/Commands/build/GenerateMenuItemsCommand.cs @@ -1,12 +1,12 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO; using System.IO.Abstractions; using System.Linq; using System.Text.Json; using System.Text.RegularExpressions; +using System.Threading.Tasks; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Enums; @@ -43,16 +43,21 @@ public override void Configure(Command cmd) { packagePath = this.fileSystem.Path.GetRelativePath(this.fileSystem.Directory.GetCurrentDirectory(), packageRoot.FullName); } - var arg = new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, packagePath), - isDefault: true) + + var packagePathArgument = new Argument("packagePath") { - Description = "Package Path" + Description = "Package Path", + CustomParser = argResult => Parse(argResult, packagePath), + DefaultValueFactory = _ => Parse(null, packagePath) }; + cmd.Add(packagePathArgument); - cmd.AddArgument(arg); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var pkgPath = parseResult.GetValue(packagePathArgument); + Execute(pkgPath); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/build/IoTLibCommand.cs b/cmf-cli/Commands/build/IoTLibCommand.cs index 58d12366b..57a20a9bb 100644 --- a/cmf-cli/Commands/build/IoTLibCommand.cs +++ b/cmf-cli/Commands/build/IoTLibCommand.cs @@ -5,9 +5,9 @@ using Cmf.CLI.Core.Objects; using Cmf.CLI.Utilities; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New { @@ -40,16 +40,20 @@ public override void Configure(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestRootPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestRootPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestRootPackage?.FullName) + }; + cmd.Add(workingDirArgument); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + Execute(workingDir); + return Task.FromResult(0); + }); } /// @@ -92,4 +96,4 @@ public void Execute(IDirectoryInfo workingDir) } } } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/build/business/ValidateStartAndEndMethodsCommand.cs b/cmf-cli/Commands/build/business/ValidateStartAndEndMethodsCommand.cs index 25dafc685..166409820 100644 --- a/cmf-cli/Commands/build/business/ValidateStartAndEndMethodsCommand.cs +++ b/cmf-cli/Commands/build/business/ValidateStartAndEndMethodsCommand.cs @@ -4,9 +4,9 @@ using Cmf.CLI.Core.Attributes; using Microsoft.Extensions.DependencyInjection; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Text; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.build.business; @@ -31,22 +31,27 @@ public ValidateStartAndEndMethodsCommand(IFileSystem fileSystem) : base(fileSyst /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "solutionPath", - description: "The solution path" - )); + var solutionPathArgument = new Argument("solutionPath") + { + Description = "The solution path" + }; + cmd.Add(solutionPathArgument); - var filesArgument = new Argument( - name: "files", - description: "The files to validate" - ) + var filesArgument = new Argument("files") { + Description = "The files to validate", Arity = ArgumentArity.ZeroOrMore }; + cmd.Add(filesArgument); - cmd.AddArgument(filesArgument); + cmd.SetAction((parseResult, cancellationToken) => + { + var solutionPath = parseResult.GetValue(solutionPathArgument); + var files = parseResult.GetValue(filesArgument); - cmd.Handler = CommandHandler.Create(Execute); + Execute(solutionPath, files); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/build/html/ExtractI18nCommand.cs b/cmf-cli/Commands/build/html/ExtractI18nCommand.cs index d75149014..c678e5cb2 100644 --- a/cmf-cli/Commands/build/html/ExtractI18nCommand.cs +++ b/cmf-cli/Commands/build/html/ExtractI18nCommand.cs @@ -1,8 +1,7 @@ using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.Diagnostics; -using System.IO; using System.IO.Abstractions; +using System.Threading.Tasks; using Cmf.CLI.Builders; using Cmf.CLI.Constants; using Cmf.CLI.Core; @@ -52,16 +51,21 @@ public override void Configure(Command cmd) { packagePath = this.fileSystem.Path.GetRelativePath(this.fileSystem.Directory.GetCurrentDirectory(), packageRoot.FullName); } - var arg = new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, packagePath), - isDefault: true) + + var packagePathArgument = new Argument("packagePath") { - Description = "Package Path" + Description = "Package Path", + CustomParser = argResult => Parse(argResult, packagePath), + DefaultValueFactory = _ => Parse(null, packagePath) }; + cmd.Add(packagePathArgument); - cmd.AddArgument(arg); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var pkgPath = parseResult.GetValue(packagePathArgument); + Execute(pkgPath); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/build/html/LinkLBOsCommand.cs b/cmf-cli/Commands/build/html/LinkLBOsCommand.cs index 171cbe801..20b0c363b 100644 --- a/cmf-cli/Commands/build/html/LinkLBOsCommand.cs +++ b/cmf-cli/Commands/build/html/LinkLBOsCommand.cs @@ -1,7 +1,7 @@ using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.Diagnostics; using System.IO.Abstractions; +using System.Threading.Tasks; using Cmf.CLI.Builders; using Cmf.CLI.Constants; using Cmf.CLI.Core; @@ -25,16 +25,21 @@ public override void Configure(Command cmd) { packagePath = this.fileSystem.Path.GetRelativePath(this.fileSystem.Directory.GetCurrentDirectory(), packageRoot.FullName); } - var arg = new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, packagePath), - isDefault: true) + + var packagePathArgument = new Argument("packagePath") { - Description = "Package Path" + Description = "Package Path", + CustomParser = argResult => Parse(argResult, packagePath), + DefaultValueFactory = _ => Parse(null, packagePath) }; + cmd.Add(packagePathArgument); - cmd.AddArgument(arg); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var pkgPath = parseResult.GetValue(packagePathArgument); + Execute(pkgPath); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/build/html/LocalizeCommand.cs b/cmf-cli/Commands/build/html/LocalizeCommand.cs index fb2649217..f69e9c010 100644 --- a/cmf-cli/Commands/build/html/LocalizeCommand.cs +++ b/cmf-cli/Commands/build/html/LocalizeCommand.cs @@ -1,7 +1,7 @@ using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.Diagnostics; using System.IO.Abstractions; +using System.Threading.Tasks; using Cmf.CLI.Builders; using Cmf.CLI.Constants; using Cmf.CLI.Core.Attributes; @@ -31,16 +31,21 @@ public override void Configure(Command cmd) { packagePath = this.fileSystem.Path.GetRelativePath(this.fileSystem.Directory.GetCurrentDirectory(), packageRoot.FullName); } - var arg = new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, packagePath), - isDefault: true) + + var packagePathArgument = new Argument("packagePath") { - Description = "Package Path" + Description = "Package Path", + CustomParser = argResult => Parse(argResult, packagePath), + DefaultValueFactory = _ => Parse(null, packagePath) }; + cmd.Add(packagePathArgument); - cmd.AddArgument(arg); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var pkgPath = parseResult.GetValue(packagePathArgument); + Execute(pkgPath); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/bump/BumpCommand.cs b/cmf-cli/Commands/bump/BumpCommand.cs index 6dd2b47bb..4b87dff55 100644 --- a/cmf-cli/Commands/bump/BumpCommand.cs +++ b/cmf-cli/Commands/bump/BumpCommand.cs @@ -7,9 +7,9 @@ using Microsoft.Extensions.DependencyInjection; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO; using System.IO.Abstractions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands { @@ -26,29 +26,49 @@ public class BumpCommand : BaseCommand /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "packagePath", - getDefaultValue: () => { return new("."); }, - description: "Package path")); - - cmd.AddOption(new Option( - aliases: new string[] { "-v", "--version" }, - description: "Will bump all versions to the version specified")); - - cmd.AddOption(new Option( - aliases: new string[] { "-b", "--buildNr" }, - description: "Will add this version next to the version (v-b)")); - - cmd.AddOption(new Option( - aliases: new string[] { "-p", "--preRelease" }, - description: "Will add this version as pre-release version (v-p)")); - - cmd.AddOption(new Option( - aliases: new string[] { "-r", "--root" }, - description: "Will bump only versions under a specific root folder (i.e. 1.0.0)")); + var packagePathArgument = new Argument("packagePath") + { + Description = "Package path", + DefaultValueFactory = _ => new DirectoryInfo(".") + }; + cmd.Add(packagePathArgument); + + var versionOption = new Option("--version", "-v") + { + Description = "Will bump all versions to the version specified" + }; + cmd.Add(versionOption); + + var buildNrOption = new Option("--buildNr", "-b") + { + Description = "Will add this version next to the version (v-b)" + }; + cmd.Add(buildNrOption); + + var preReleaseOption = new Option("--preRelease", "-p") + { + Description = "Will add this version as pre-release version (v-p)" + }; + cmd.Add(preReleaseOption); + + var rootOption = new Option("--root", "-r") + { + Description = "Will bump only versions under a specific root folder (i.e. 1.0.0)" + }; + cmd.Add(rootOption); // Add the handler - cmd.Handler = CommandHandler.Create(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var packagePath = parseResult.GetValue(packagePathArgument); + var version = parseResult.GetValue(versionOption); + var buildNr = parseResult.GetValue(buildNrOption); + var preRelease = parseResult.GetValue(preReleaseOption); + var root = parseResult.GetValue(rootOption); + + Execute(packagePath, version, buildNr, preRelease, root); + return Task.FromResult(0); + }); } /// @@ -57,6 +77,7 @@ public override void Configure(Command cmd) /// The package path. /// The version. /// The version for build Nr. + /// The pre-release version. /// The root. /// /// diff --git a/cmf-cli/Commands/bump/BumpIoTConfigurationCommand.cs b/cmf-cli/Commands/bump/BumpIoTConfigurationCommand.cs index 0085e12f5..fd7cac25b 100644 --- a/cmf-cli/Commands/bump/BumpIoTConfigurationCommand.cs +++ b/cmf-cli/Commands/bump/BumpIoTConfigurationCommand.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Objects; @@ -26,65 +26,103 @@ public class BumpIoTConfigurationCommand : BumpCommand /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "path", - parse: (argResult) => Parse(argResult, "."), - isDefault: true - ) + var pathArgument = new Argument("path") { - Description = "Working Directory" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, "."), + DefaultValueFactory = _ => Parse(null, ".") + }; + cmd.Add(pathArgument); + + var versionOption = new Option("--version", "-v") + { + Description = "Will bump all versions to the version specified" + }; + cmd.Add(versionOption); + + var buildNrVersionOption = new Option("--buildNrVersion", "-b") + { + Description = "Will add this version next to the version (v-b)" + }; + cmd.Add(buildNrVersionOption); + + var preReleaseVersionOption = new Option("--preReleaseVersion", "-p") + { + Description = "Will add this version as pre-release version (v-p)" + }; + cmd.Add(preReleaseVersionOption); + + var masterDataOption = new Option("--masterData", "-md") + { + Description = "Will bump IoT MasterData version (only applies to .json)", + DefaultValueFactory = _ => false + }; + cmd.Add(masterDataOption); + + var iotOption = new Option("--iot", "-iot") + { + Description = "Will bump IoT Automation Workflows", + DefaultValueFactory = _ => true + }; + cmd.Add(iotOption); + + var packageNamesOption = new Option("--packageNames", "-pckNames") + { + Description = "Packages to be bumped" + }; + cmd.Add(packageNamesOption); + + var rootOption = new Option("--root", "-r") + { + Description = "Specify root to specify version where we want to apply the bump" + }; + cmd.Add(rootOption); + + var groupOption = new Option("--group", "-g") + { + Description = "Group of workflows to change, typically they are grouped by Automation Manager" + }; + cmd.Add(groupOption); + + var workflowNameOption = new Option("--workflowName", "-wkflName") + { + Description = "Specific workflow to be bumped" + }; + cmd.Add(workflowNameOption); + + var isToTagOption = new Option("--isToTag", "-isToTag") + { + Description = "Instead of replacing the version will add -$version", + DefaultValueFactory = _ => false + }; + cmd.Add(isToTagOption); - cmd.AddOption(new Option( - aliases: new string[] { "-v", "--version" }, - description: "Will bump all versions to the version specified")); - - cmd.AddOption(new Option( - aliases: new string[] { "-b", "--buildNrVersion" }, - description: "Will add this version next to the version (v-b)")); - - cmd.AddOption(new Option( - aliases: new string[] { "-p", "--preReleaseVersion" }, - description: "Will add this version as pre-release version (v-p)")); - - cmd.AddOption(new Option( - aliases: new string[] { "-md", "--masterData" }, - getDefaultValue: () => { return false; }, - description: "Will bump IoT MasterData version (only applies to .json)")); - - cmd.AddOption(new Option( - aliases: new string[] { "-iot", "--iot" }, - getDefaultValue: () => { return true; }, - description: "Will bump IoT Automation Workflows")); - - cmd.AddOption(new Option( - aliases: new string[] { "-pckNames", "--packageNames" }, - description: "Packages to be bumped")); - - cmd.AddOption(new Option( - aliases: new string[] { "-r", "--root" }, - description: "Specify root to specify version where we want to apply the bump")); - - cmd.AddOption(new Option( - aliases: new string[] { "-g", "--group" }, - description: "Group of workflows to change, typically they are grouped by Automation Manager")); - - cmd.AddOption(new Option( - aliases: new string[] { "-wkflName", "--workflowName" }, - description: "Specific workflow to be bumped")); - - cmd.AddOption(new Option( - aliases: new string[] { "-isToTag", "--isToTag" }, - getDefaultValue: () => { return false; }, - description: "Instead of replacing the version will add -$version")); - - cmd.AddOption(new Option( - aliases: new string[] { "-mdCustomization", "--mdCustomization" }, - getDefaultValue: () => { return false; }, - description: "Instead of replacing the version will add -$version")); + var mdCustomizationOption = new Option("--mdCustomization", "-mdCustomization") + { + Description = "Instead of replacing the version will add -$version", + DefaultValueFactory = _ => false + }; + cmd.Add(mdCustomizationOption); // Add the handler - cmd.Handler = CommandHandler.Create(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var path = parseResult.GetValue(pathArgument); + var version = parseResult.GetValue(versionOption); + var buildNr = parseResult.GetValue(buildNrVersionOption); + var preReleaseVersion = parseResult.GetValue(preReleaseVersionOption); + var isToBumpMasterdata = parseResult.GetValue(masterDataOption); + var isToBumpIoT = parseResult.GetValue(iotOption); + var packageNames = parseResult.GetValue(packageNamesOption); + var root = parseResult.GetValue(rootOption); + var group = parseResult.GetValue(groupOption); + var workflowName = parseResult.GetValue(workflowNameOption); + var isToTag = parseResult.GetValue(isToTagOption); + var onlyMdCustomization = parseResult.GetValue(mdCustomizationOption); + + Execute(path, version, buildNr, preReleaseVersion, isToBumpMasterdata, isToBumpIoT, packageNames, root, group, workflowName, isToTag, onlyMdCustomization); + return Task.FromResult(0); + }); } /// @@ -92,8 +130,8 @@ public override void Configure(Command cmd) /// /// The package directory. /// The version. - /// - /// + /// + /// /// if set to true [is to bump masterdata]. /// if set to true [is to bump io t]. /// The package names. @@ -102,9 +140,9 @@ public override void Configure(Command cmd) /// Name of the workflow. /// if set to true [is to tag]. /// if set to true [only md customization]. - /// + /// /// - public void Execute(IDirectoryInfo path, string version, string buildNrVersion, string preReleaseVersion, bool isToBumpMasterdata, bool isToBumpIoT, string packageNames, string root, string group, string workflowName, bool isToTag, bool onlyMdCustomization) + public void Execute(IDirectoryInfo path, string version, string buildNrVersion, string preReleaseVersion, bool isToBumpMasterdata, bool isToBumpIoT, string packageNames, string root, string group, string workflowName, bool isToTag, bool onlyMdCustomization) { using var activity = ExecutionContext.ServiceProvider?.GetService()?.StartExtendedActivity(this.GetType().Name); @@ -121,13 +159,13 @@ public void Execute(IDirectoryInfo path, string version, string buildNrVersion, automationWorkflowDirectories = automationWorkflowDirectories.Where(awf => awf.Contains(root))?.ToList(); } - if (!string.IsNullOrEmpty(buildNrVersion) && !string.IsNullOrEmpty(preReleaseVersion)) - { - throw new CliException(string.Format(CliMessages.MutuallyExclusiveProperties, "buildNrVersion, preReleaseVersion")); - } - - string versionSuffix = !string.IsNullOrEmpty(buildNrVersion) ? buildNrVersion : preReleaseVersion; - + if (!string.IsNullOrEmpty(buildNrVersion) && !string.IsNullOrEmpty(preReleaseVersion)) + { + throw new CliException(string.Format(CliMessages.MutuallyExclusiveProperties, "buildNrVersion, preReleaseVersion")); + } + + string versionSuffix = !string.IsNullOrEmpty(buildNrVersion) ? buildNrVersion : preReleaseVersion; + foreach (string automationWorkflowDirectory in automationWorkflowDirectories) { #region Bump AutomationWorkflow @@ -142,7 +180,7 @@ public void Execute(IDirectoryInfo path, string version, string buildNrVersion, groups = groups.Where(gr => gr.Contains(group)).ToList(); } - groups.ForEach(group => IoTUtilities.BumpWorkflowFiles(group, version, versionSuffix, workflowName, packageNames, this.fileSystem)); + groups.ForEach(group => IoTUtilities.BumpWorkflowFiles(group, version, versionSuffix, workflowName, packageNames, this.fileSystem)); } #endregion Bump AutomationWorkflow @@ -151,7 +189,7 @@ public void Execute(IDirectoryInfo path, string version, string buildNrVersion, if (isToBumpMasterdata) { - IoTUtilities.BumpIoTMasterData(automationWorkflowDirectory, version, versionSuffix, this.fileSystem, onlyCustomization: onlyMdCustomization); + IoTUtilities.BumpIoTMasterData(automationWorkflowDirectory, version, versionSuffix, this.fileSystem, onlyCustomization: onlyMdCustomization); } #endregion Bump IoT Masterdata diff --git a/cmf-cli/Commands/bump/BumpIoTCustomizationCommand.cs b/cmf-cli/Commands/bump/BumpIoTCustomizationCommand.cs index 931a9b9a3..d316f847e 100644 --- a/cmf-cli/Commands/bump/BumpIoTCustomizationCommand.cs +++ b/cmf-cli/Commands/bump/BumpIoTCustomizationCommand.cs @@ -1,5 +1,4 @@ using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using Cmf.CLI.Constants; using Cmf.CLI.Core.Attributes; @@ -7,6 +6,7 @@ using Cmf.CLI.Core.Objects; using Cmf.CLI.Utilities; using Microsoft.Extensions.DependencyInjection; +using System.Threading.Tasks; namespace Cmf.CLI.Commands { @@ -23,37 +23,57 @@ public class BumpIoTCustomizationCommand : BaseCommand /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, "."), - isDefault: true - ) + var pathArgument = new Argument("path") { - Description = "Package Path" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, "."), + DefaultValueFactory = _ => Parse(null, ".") + }; + cmd.Add(pathArgument); - cmd.AddOption(new Option( - aliases: new string[] { "-v", "--version" }, - description: "Will bump all versions to the version specified")); + var versionOption = new Option("--version", "-v") + { + Description = "Will bump all versions to the version specified" + }; + cmd.Add(versionOption); - cmd.AddOption(new Option( - aliases: new string[] { "-b", "--buildNrVersion" }, - description: "Will add this version next to the version (v-b)")); + var buildNrVersionOption = new Option("--buildNrVersion", "-b") + { + Description = "Will add this version next to the version (v-b)" + }; + cmd.Add(buildNrVersionOption); + + var preReleaseVersionOption = new Option("--preReleaseVersion", "-p") + { + Description = "Will add this version as pre-release version (v-p)" + }; + cmd.Add(preReleaseVersionOption); - cmd.AddOption(new Option( - aliases: new string[] { "-p", "--preReleaseVersion" }, - description: "Will add this version as pre-release version (v-p)")); + var packageNamesOption = new Option("--packageNames", "-pckNames") + { + Description = "Packages to be bumped" + }; + cmd.Add(packageNamesOption); - cmd.AddOption(new Option( - aliases: new string[] { "-pckNames", "--packageNames" }, - description: "Packages to be bumped")); + var isToTagOption = new Option("--isToTag", "-isToTag") + { + Description = "Instead of replacing the version will add -$version", + DefaultValueFactory = _ => false + }; + cmd.Add(isToTagOption); - cmd.AddOption(new Option( - aliases: new string[] { "-isToTag", "--isToTag" }, - getDefaultValue: () => { return false; }, - description: "Instead of replacing the version will add -$version")); + cmd.SetAction((parseResult, cancellationToken) => + { + var path = parseResult.GetValue(pathArgument); + var version = parseResult.GetValue(versionOption); + var buildNr = parseResult.GetValue(buildNrVersionOption); + var preReleaseVersion = parseResult.GetValue(preReleaseVersionOption); + var packageNames = parseResult.GetValue(packageNamesOption); + var isToTag = parseResult.GetValue(isToTagOption); - cmd.Handler = CommandHandler.Create(Execute); + Execute(path, version, buildNr, preReleaseVersion, packageNames, isToTag); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/init/InitCommand.cs b/cmf-cli/Commands/init/InitCommand.cs index 98d3c4e19..09dfe5bfd 100644 --- a/cmf-cli/Commands/init/InitCommand.cs +++ b/cmf-cli/Commands/init/InitCommand.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.CommandLine.Parsing; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; using Cmf.CLI.Constants; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; @@ -88,167 +88,266 @@ public InitCommand(IFileSystem fileSystem) : base("init", fileSystem) /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "projectName", - parse: (argResult) => ParseArgument(argResult) - )); - cmd.AddArgument(new Argument( - name: "rootPackageName", - parse: (argResult) => ParseArgument(argResult, "Cmf.Custom.Package"), - isDefault: true - )); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => ParseArgument(argResult, "."), - isDefault: true - ) - { - Description = "Working Directory" - }); - cmd.AddOption(new Option( - aliases: new[] { "--version" }, - description: "Package Version", - getDefaultValue: () => "1.0.0" - )); - cmd.AddOption(new Option( - aliases: new[] { "-c", "--config" }, - parseArgument: argResult => Parse(argResult), - isDefault: true, - description: "Configuration file exported from Setup" - ) { IsRequired = true }); - cmd.AddOption(new Option( - aliases: ["--appConfig"], - parseArgument: argResult => Parse(argResult), - isDefault: true, - description: "App Configuration file" - ) { IsRequired = false }); - cmd.AddOption(new Option( - aliases: new[] { "-t", "--repositoryType" }, - getDefaultValue: () => CliConstants.DefaultRepositoryType, - description: "The type of repository we should initialize. Are we customizing MES or creating a new Application?" - ) { IsRequired = true }); + var projectNameArgument = new Argument("projectName") + { + CustomParser = argResult => ParseArgument(argResult) + }; + cmd.Add(projectNameArgument); + + var rootPackageNameArgument = new Argument("rootPackageName") + { + CustomParser = argResult => ParseArgument(argResult, "Cmf.Custom.Package"), + DefaultValueFactory = _ => "Cmf.Custom.Package" + }; + cmd.Add(rootPackageNameArgument); + + var workingDirArgument = new Argument("workingDir") + { + Description = "Working Directory", + CustomParser = argResult => ParseArgument(argResult, "."), + DefaultValueFactory = _ => ParseArgument(null, ".") + }; + cmd.Add(workingDirArgument); + + var versionOption = new Option("--version") + { + Description = "Package Version", + DefaultValueFactory = _ => "1.0.0" + }; + cmd.Add(versionOption); + + var configOption = new Option("--config", "-c") + { + Description = "Configuration file exported from Setup", + Required = true, + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(configOption); + + var appConfigOption = new Option("--appConfig") + { + Description = "App Configuration file", + Required = false, + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(appConfigOption); + + var repositoryTypeOption = new Option("--repositoryType", "-t") + { + Description = "The type of repository we should initialize. Are we customizing MES or creating a new Application?", + DefaultValueFactory = _ => CliConstants.DefaultRepositoryType, + Required = true + }; + cmd.Add(repositoryTypeOption); // template-time options. These are all mandatory - cmd.AddOption(new Option( - aliases: new[] { "--baseVersion", "--MESVersion" }, - description: "Target CM framework/MES version" - ) { IsRequired = true }); - cmd.AddOption(new Option( - aliases: new[] { "--DevTasksVersion" }, - description: "Critical Manufacturing dev-tasks version. Only required if you are targeting a version lower than v10." - ) { IsRequired = false }); - cmd.AddOption(new Option( - aliases: new[] { "--HTMLStarterVersion" }, - description: "HTML Starter version. Only required if you are targeting a version lower than v10." - ) { IsRequired = false }); - cmd.AddOption(new Option( - aliases: new[] { "--yoGeneratorVersion" }, - description: "@criticalmanufacturing/html Yeoman generator version. Only required if you are targeting a version lower than v10." - ) { IsRequired = false }); - cmd.AddOption(new Option( - aliases: new[] { "--ngxSchematicsVersion" }, - description: "@criticalmanufacturing/ngx-schematics version. Only required if you are targeting a version equal or higher than v10." - ) { IsRequired = false }); - cmd.AddOption(new Option( - aliases: new[] { "--nugetVersion" }, - description: "NuGet versions to target. This is usually the MES version" - ) { IsRequired = true }); - // TODO: remove this one? - cmd.AddOption(new Option( - aliases: new[] { "--testScenariosNugetVersion" }, - description: "Test Scenarios Nuget Version" - ) { IsRequired = true }); + var baseVersionOption = new Option("--baseVersion", "--MESVersion") + { + Description = "Target CM framework/MES version", + Required = true + }; + cmd.Add(baseVersionOption); + + var devTasksVersionOption = new Option("--DevTasksVersion") + { + Description = "Critical Manufacturing dev-tasks version. Only required if you are targeting a version lower than v10.", + Required = false + }; + cmd.Add(devTasksVersionOption); + + var htmlStarterVersionOption = new Option("--HTMLStarterVersion") + { + Description = "HTML Starter version. Only required if you are targeting a version lower than v10.", + Required = false + }; + cmd.Add(htmlStarterVersionOption); + + var yoGeneratorVersionOption = new Option("--yoGeneratorVersion") + { + Description = "@criticalmanufacturing/html Yeoman generator version. Only required if you are targeting a version lower than v10.", + Required = false + }; + cmd.Add(yoGeneratorVersionOption); + + var ngxSchematicsVersionOption = new Option("--ngxSchematicsVersion") + { + Description = "@criticalmanufacturing/ngx-schematics version. Only required if you are targeting a version equal or higher than v10.", + Required = false + }; + cmd.Add(ngxSchematicsVersionOption); + + var nugetVersionOption = new Option("--nugetVersion") + { + Description = "NuGet versions to target. This is usually the MES version", + Required = true + }; + cmd.Add(nugetVersionOption); + + var testScenariosNugetVersionOption = new Option("--testScenariosNugetVersion") + { + Description = "Test Scenarios Nuget Version", + Required = true + }; + cmd.Add(testScenariosNugetVersionOption); // repositories - cmd.AddOption(new Option( - aliases: new[] { "--deploymentDir" }, - description: "Deployments directory. Deprecated, supports only file paths/network shares. When using NPM feeds, use --ciRepo and --releaseRepos instead." - ) { IsRequired = false }); - cmd.AddOption(new Option( - aliases: new[] { "--ciRepo" }, - description: "The repository (network share or NPM feed) where CI packages are published to. Must be passed only and only if --deploymentDir is not." - ) { IsRequired = false }); - cmd.AddOption(new Option>( - aliases: new[] { "--releaseRepos" }, - description: "The list of repositories (network shares and/or NPM feeds) where approved packages to be delivered are published to. Must be passed only and only if --deploymentDir is not." - ) + var deploymentDirOption = new Option("--deploymentDir") + { + Description = "Deployments directory. Deprecated, supports only file paths/network shares. When using NPM feeds, use --ciRepo and --releaseRepos instead.", + Required = false, + CustomParser = argResult => ParseUri(argResult) + }; + cmd.Add(deploymentDirOption); + + var ciRepoOption = new Option("--ciRepo") + { + Description = "The repository (network share or NPM feed) where CI packages are published to. Must be passed only and only if --deploymentDir is not.", + Required = false, + CustomParser = argResult => ParseUri(argResult) + }; + cmd.Add(ciRepoOption); + + var releaseReposOption = new Option>("--releaseRepos") { + Description = "The list of repositories (network shares and/or NPM feeds) where approved packages to be delivered are published to. Must be passed only and only if --deploymentDir is not.", Arity = ArgumentArity.ZeroOrMore, - AllowMultipleArgumentsPerToken = true - }); + AllowMultipleArgumentsPerToken = true, + CustomParser = argResult => ParseUriList(argResult) + }; + cmd.Add(releaseReposOption); - cmd.AddOption(new Option( - aliases: new[] { "--tenant" }, - description: "MES Tenant Name" - ) { IsRequired = false }); + var tenantOption = new Option("--tenant") + { + Description = "MES Tenant Name", + Required = false + }; + cmd.Add(tenantOption); // infra options - cmd.AddOption(new Option( - aliases: new[] { "--infra", "--infrastructure" }, - parseArgument: argResult => Parse(argResult), - isDefault: true, - description: "Infrastructure JSON file" - )); - cmd.AddOption(new Option( - aliases: new[] { "--nugetRegistry" }, - description: "NuGet registry that contains the MES packages" - )); - cmd.AddOption(new Option( - aliases: new[] { "--npmRegistry" }, - description: "NPM registry that contains the MES packages" - )); - - cmd.AddOption(new Option( - aliases: new[] { "--ISOLocation" }, - parseArgument: argResult => Parse(argResult), - isDefault: true, - description: "MES ISO file" - )); - cmd.AddOption(new Option( - aliases: new[] { "--nugetRegistryUsername" }, - description: "NuGet registry username" - )); - cmd.AddOption(new Option( - aliases: new[] { "--nugetRegistryPassword" }, - description: "NuGet registry password" - )); + var infrastructureOption = new Option("--infrastructure", "--infra") + { + Description = "Infrastructure JSON file", + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(infrastructureOption); + + var nugetRegistryOption = new Option("--nugetRegistry") + { + Description = "NuGet registry that contains the MES packages", + CustomParser = argResult => ParseUri(argResult) + }; + cmd.Add(nugetRegistryOption); + + var npmRegistryOption = new Option("--npmRegistry") + { + Description = "NPM registry that contains the MES packages", + CustomParser = argResult => ParseUri(argResult) + }; + cmd.Add(npmRegistryOption); + + var isoLocationOption = new Option("--ISOLocation") + { + Description = "MES ISO file", + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(isoLocationOption); + + var nugetRegistryUsernameOption = new Option("--nugetRegistryUsername") + { + Description = "NuGet registry username" + }; + cmd.Add(nugetRegistryUsernameOption); + + var nugetRegistryPasswordOption = new Option("--nugetRegistryPassword") + { + Description = "NuGet registry password" + }; + cmd.Add(nugetRegistryPasswordOption); const string OnlyIfTypeAppWarning = "Use only if repository type is App."; - cmd.AddOption(new Option( - aliases: new[] { "--appId" }, - description: $"Application identifier. {OnlyIfTypeAppWarning}" - ) { IsRequired = false }); - - cmd.AddOption(new Option( - aliases: new[] { "--appName" }, - description: $"Application name. {OnlyIfTypeAppWarning}" - ) { IsRequired = false }); - - cmd.AddOption(new Option( - aliases: new[] { "--appAuthor" }, - description: $"Application author. {OnlyIfTypeAppWarning}" - ) { IsRequired = false }); - - cmd.AddOption(new Option( - aliases: new[] { "--appDescription" }, - description: $"Application description. {OnlyIfTypeAppWarning}" - ) { IsRequired = false }); - - cmd.AddOption(new Option( - aliases: new[] { "--appLicensedApplication" }, - description: $"License for new application. {OnlyIfTypeAppWarning}" - ) { IsRequired = false }); - - cmd.AddOption(new Option( - aliases: new[] { "--appIcon" }, - parseArgument: argResult => Parse(argResult), - description: $"Application icon. {OnlyIfTypeAppWarning}" - ) { IsRequired = false }); + + var appIdOption = new Option("--appId") + { + Description = $"Application identifier. {OnlyIfTypeAppWarning}", + Required = false + }; + cmd.Add(appIdOption); + + var appNameOption = new Option("--appName") + { + Description = $"Application name. {OnlyIfTypeAppWarning}", + Required = false + }; + cmd.Add(appNameOption); + + var appAuthorOption = new Option("--appAuthor") + { + Description = $"Application author. {OnlyIfTypeAppWarning}", + Required = false + }; + cmd.Add(appAuthorOption); + + var appDescriptionOption = new Option("--appDescription") + { + Description = $"Application description. {OnlyIfTypeAppWarning}", + Required = false + }; + cmd.Add(appDescriptionOption); + + var appLicensedApplicationOption = new Option("--appLicensedApplication") + { + Description = $"License for new application. {OnlyIfTypeAppWarning}", + Required = false + }; + cmd.Add(appLicensedApplicationOption); + + var appIconOption = new Option("--appIcon") + { + Description = $"Application icon. {OnlyIfTypeAppWarning}", + Required = false, + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(appIconOption); // Add the handler - cmd.Handler = CommandHandler.Create((InitArguments args) => + cmd.SetAction((parseResult, cancellationToken) => { - this.Execute(args); + var args = new InitArguments + { + projectName = parseResult.GetValue(projectNameArgument), + rootPackageName = parseResult.GetValue(rootPackageNameArgument), + workingDir = parseResult.GetValue(workingDirArgument), + version = parseResult.GetValue(versionOption), + config = parseResult.GetValue(configOption), + appConfig = parseResult.GetValue(appConfigOption), + repositoryType = parseResult.GetValue(repositoryTypeOption), + BaseVersion = parseResult.GetValue(baseVersionOption), + DevTasksVersion = parseResult.GetValue(devTasksVersionOption), + HTMLStarterVersion = parseResult.GetValue(htmlStarterVersionOption), + yoGeneratorVersion = parseResult.GetValue(yoGeneratorVersionOption), + ngxSchematicsVersion = parseResult.GetValue(ngxSchematicsVersionOption), + nugetVersion = parseResult.GetValue(nugetVersionOption), + testScenariosNugetVersion = parseResult.GetValue(testScenariosNugetVersionOption), + deploymentDir = parseResult.GetValue(deploymentDirOption), + ciRepo = parseResult.GetValue(ciRepoOption), + releaseRepos = parseResult.GetValue(releaseReposOption), + Tenant = parseResult.GetValue(tenantOption), + infrastructure = parseResult.GetValue(infrastructureOption), + nugetRegistry = parseResult.GetValue(nugetRegistryOption), + npmRegistry = parseResult.GetValue(npmRegistryOption), + ISOLocation = parseResult.GetValue(isoLocationOption), + nugetRegistryUsername = parseResult.GetValue(nugetRegistryUsernameOption), + nugetRegistryPassword = parseResult.GetValue(nugetRegistryPasswordOption), + appId = parseResult.GetValue(appIdOption), + appName = parseResult.GetValue(appNameOption), + appAuthor = parseResult.GetValue(appAuthorOption), + appDescription = parseResult.GetValue(appDescriptionOption), + appLicensedApplication = parseResult.GetValue(appLicensedApplicationOption), + appIcon = parseResult.GetValue(appIconOption) + }; + + Execute(args); + return Task.FromResult(0); }); } @@ -326,7 +425,7 @@ internal void Execute(InitArguments x) { throw new CliException("Invalid option `--ciRepo` when also using `--deploymentDir`. Use one or the other, but not both."); } - if (x.releaseRepos != null) + if (x.releaseRepos != null && x.releaseRepos.Count > 0) { throw new CliException("Invalid option `--releaseRepos` when also using `--deploymentDir`. Use one or the other, but not both."); } @@ -380,7 +479,7 @@ internal void Execute(InitArguments x) { throw new CliException("Missing option `--ciRepo` or `--deploymentDir`. Please specify one or the other (but not both)."); } - if (x.releaseRepos == null) + if (x.releaseRepos == null || x.releaseRepos.Count == 0) { throw new CliException("Missing option `--releaseRepos` or `--deploymentDir`. Please specify one or the other (but not both)."); } @@ -555,6 +654,18 @@ internal void Execute(InitArguments x) } bool isToIgnoreOptionToken = false; + + /// + /// Parse list of URIs from argument result + /// + /// the arguments to parse + /// List of parsed URIs or null if no tokens + private List ParseUriList(ArgumentResult argResult) + { + var array = ParseUriArray(argResult); + return array != null ? new List(array) : null; + } + /// /// parse argument specific for InitCommand /// This is needed until this issue is not fixed: @@ -571,9 +682,10 @@ private T ParseArgument(ArgumentResult argResult, string @default = null) { var argValue = @default; - if (!isToIgnoreOptionToken && argResult.Tokens.Any()) + if (!isToIgnoreOptionToken && argResult != null && argResult.Tokens.Any()) { - var isOptionAndShouldBeIgnored = isToIgnoreOptionToken || (bool)argResult.Tokens?.FirstOrDefault()?.Value.StartsWith("-"); + var firstTokenValue = argResult.Tokens?.FirstOrDefault()?.Value; + var isOptionAndShouldBeIgnored = firstTokenValue?.StartsWith("-") ?? false; if (isOptionAndShouldBeIgnored) { isToIgnoreOptionToken = true; @@ -603,4 +715,4 @@ private T ParseArgument(ArgumentResult argResult, string @default = null) }; } } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/list/ListDependenciesCommand.cs b/cmf-cli/Commands/list/ListDependenciesCommand.cs index 111c6181d..6f82ce7dc 100644 --- a/cmf-cli/Commands/list/ListDependenciesCommand.cs +++ b/cmf-cli/Commands/list/ListDependenciesCommand.cs @@ -1,6 +1,5 @@ using System; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Threading; using System.Threading.Tasks; @@ -43,21 +42,30 @@ public ListDependenciesCommand(IFileSystem fileSystem) : base(fileSystem) /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, "."), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, "."), + DefaultValueFactory = _ => Parse(null, ".") + }; + cmd.Add(workingDirArgument); - cmd.AddOption(new Option( - aliases: new string[] { "-r", "--repos", "--repo" }, - description: "Repositories where dependencies are located (folder)")); + var reposOption = new Option("--repos", "-r", "--repo") + { + Description = "Repositories where dependencies are located (folder)", + CustomParser = argResult => ParseUriArray(argResult) + }; + cmd.Add(reposOption); // Add the handler - cmd.Handler = CommandHandler.Create(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + var repos = parseResult.GetValue(reposOption); + + Execute(workingDir, repos); + return Task.FromResult(0); + }); } /// @@ -115,9 +123,6 @@ public void Execute(IDirectoryInfo workingDir, Uri[] repos) Log.Render(tree); }); } - - - } } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/login/LoginCommand.cs b/cmf-cli/Commands/login/LoginCommand.cs index a1e64de02..d4f876dbc 100644 --- a/cmf-cli/Commands/login/LoginCommand.cs +++ b/cmf-cli/Commands/login/LoginCommand.cs @@ -1,6 +1,4 @@ -using Cmf.CLI.Core; -using Cmf.CLI.Core.Attributes; -using Cmf.CLI.Core.Commands; +using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Constants; using Cmf.CLI.Core.Enums; using Cmf.CLI.Core.Interfaces; @@ -10,7 +8,6 @@ using Microsoft.Extensions.DependencyInjection; using System; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; using System.Threading.Tasks; @@ -45,48 +42,85 @@ public LoginCommand(IFileSystem fileSystem) : base(fileSystem) /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "repositoryType", description: "Type of repository for login" - ) { Arity = ArgumentArity.ZeroOrOne }); - cmd.AddArgument(new Argument( - name: "repository", description: "URL of repository for login" - ) { Arity = ArgumentArity.ZeroOrOne }); - - cmd.AddOption(new Option( - aliases: new[] { "-T", "--auth-type" }, - description: "Type of authentication type to use (only needed if the repository type supports more than one)" - )); - cmd.AddOption(new Option( - aliases: new[] { "-t", "--token" }, - description: "Token used for this, used when the auth type is Bearer" - )); - cmd.AddOption(new Option( - aliases: new[] { "-u", "--username" }, - description: "Account username, used when the auth type is Basic" - )); - cmd.AddOption(new Option( - aliases: new[] { "-p", "--password" }, - description: "Account password, used when the auth type is Basic" - )); - cmd.AddOption(new Option( - aliases: new[] { "-d", "--domain" }, - description: "For repositories that support it, the domain to use when logging in." - )); - cmd.AddOption(new Option( - aliases: new[] { "-k", "--key" }, - description: "For repositories that support it, the key under which we should store the credential" - )); - cmd.AddOption(new Option( - aliases: new[] { "--store-only" }, - description: "If true, the credentials are stord on the .cmf-auth.json file, but are not applied to the credentials file of the tool (NPM, NuGet, Docker, etc...)" - )); - cmd.AddOption(new Option( - aliases: new[] { "--no-prompt" }, - description: "Do not display any interactive prompts. If a prompt was needed, an error will be raised instead" - )); + var repositoryTypeArgument = new Argument("repositoryType") + { + Description = "Type of repository for login", + Arity = ArgumentArity.ZeroOrOne + }; + cmd.Add(repositoryTypeArgument); + + var repositoryArgument = new Argument("repository") + { + Description = "URL of repository for login", + Arity = ArgumentArity.ZeroOrOne + }; + cmd.Add(repositoryArgument); + + var authTypeOption = new Option("--auth-type", "-T") + { + Description = "Type of authentication type to use (only needed if the repository type supports more than one)" + }; + cmd.Add(authTypeOption); + + var tokenOption = new Option("--token", "-t") + { + Description = "Token used for this, used when the auth type is Bearer" + }; + cmd.Add(tokenOption); + + var usernameOption = new Option("--username", "-u") + { + Description = "Account username, used when the auth type is Basic" + }; + cmd.Add(usernameOption); + + var passwordOption = new Option("--password", "-p") + { + Description = "Account password, used when the auth type is Basic" + }; + cmd.Add(passwordOption); + + var domainOption = new Option("--domain", "-d") + { + Description = "For repositories that support it, the domain to use when logging in." + }; + cmd.Add(domainOption); + + var keyOption = new Option("--key", "-k") + { + Description = "For repositories that support it, the key under which we should store the credential" + }; + cmd.Add(keyOption); + + var storeOnlyOption = new Option("--store-only") + { + Description = "If true, the credentials are stord on the .cmf-auth.json file, but are not applied to the credentials file of the tool (NPM, NuGet, Docker, etc...)" + }; + cmd.Add(storeOnlyOption); + + var noPromptOption = new Option("--no-prompt") + { + Description = "Do not display any interactive prompts. If a prompt was needed, an error will be raised instead" + }; + cmd.Add(noPromptOption); // Add the handler - cmd.Handler = CommandHandler.Create(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var repositoryType = parseResult.GetValue(repositoryTypeArgument); + var repository = parseResult.GetValue(repositoryArgument); + var authType = parseResult.GetValue(authTypeOption); + var token = parseResult.GetValue(tokenOption); + var username = parseResult.GetValue(usernameOption); + var password = parseResult.GetValue(passwordOption); + var domain = parseResult.GetValue(domainOption); + var key = parseResult.GetValue(keyOption); + var storeOnly = parseResult.GetValue(storeOnlyOption); + var noPrompt = parseResult.GetValue(noPromptOption); + + Execute(repositoryType, repository, authType, token, username, password, domain, key, storeOnly, noPrompt); + return Task.FromResult(0); + }); } /// @@ -212,4 +246,4 @@ internal string Prompt(string label, bool noPrompt) return Console.ReadLine(); } } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/login/SyncCommand.cs b/cmf-cli/Commands/login/SyncCommand.cs index ab8b43165..3c99efde5 100644 --- a/cmf-cli/Commands/login/SyncCommand.cs +++ b/cmf-cli/Commands/login/SyncCommand.cs @@ -1,18 +1,12 @@ using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; -using Cmf.CLI.Core.Commands; -using Cmf.CLI.Core.Constants; -using Cmf.CLI.Core.Enums; using Cmf.CLI.Core.Interfaces; using Cmf.CLI.Core.Objects; using Cmf.CLI.Core.Repository.Credentials; -using Cmf.CLI.Utilities; using Microsoft.Extensions.DependencyInjection; using System; -using System.Collections; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; using System.Threading.Tasks; @@ -47,7 +41,29 @@ public SyncCommand(IFileSystem fileSystem) : base(fileSystem) public override void Configure(Command cmd) { // Add the handler - cmd.Handler = CommandHandler.Create(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + // Get parent command arguments + RepositoryCredentialsType? repositoryType = null; + string repository = null; + + // In beta5, we need to access parent command arguments through the parse result + // The parent command is "login" which has repositoryType and repository arguments + if (cmd.Parents.FirstOrDefault() is Command parentCommand) + { + if (parentCommand.Arguments.FirstOrDefault(a => a.Name == "repositoryType") is Argument repositoryTypeArg) + { + repositoryType = parseResult.GetValue(repositoryTypeArg); + } + if (parentCommand.Arguments.FirstOrDefault(a => a.Name == "repository") is Argument repositoryArg) + { + repository = parseResult.GetValue(repositoryArg); + } + } + + Execute(repositoryType, repository); + return Task.FromResult(0); + }); } /// @@ -134,4 +150,4 @@ internal async Task ExecuteAsync(RepositoryCredentialsType? repositoryType, stri } } } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/new/BusinessCommand.cs b/cmf-cli/Commands/new/BusinessCommand.cs index cd2e2ae44..5d4ac7993 100644 --- a/cmf-cli/Commands/new/BusinessCommand.cs +++ b/cmf-cli/Commands/new/BusinessCommand.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; using Cmf.CLI.Constants; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; @@ -40,13 +40,23 @@ public BusinessCommand(IFileSystem fileSystem) : base("business", PackageType.Bu /// public override void Configure(Command cmd) { - cmd.AddOption(new Option( - aliases: new[] { "--addApplicationVersionAssembly", "-av" }, - description: "Will add application version project to the final solution if project is an app" - )); - base.GetBaseCommandConfig(cmd); + var addApplicationVersionAssemblyOption = new Option("--addApplicationVersionAssembly", "-av") + { + Description = "Will add application version project to the final solution if project is an app" + }; + cmd.Add(addApplicationVersionAssemblyOption); + + var (workingDirArg, versionOpt) = base.GetBaseCommandConfig(cmd); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArg); + var version = parseResult.GetValue(versionOpt); + var addApplicationVersionAssembly = parseResult.GetValue(addApplicationVersionAssemblyOption); + + Execute(workingDir, version, addApplicationVersionAssembly); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/DataCommand.cs b/cmf-cli/Commands/new/DataCommand.cs index 175a341b2..7003f5146 100644 --- a/cmf-cli/Commands/new/DataCommand.cs +++ b/cmf-cli/Commands/new/DataCommand.cs @@ -1,10 +1,8 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; -using System.Linq; -using System.Text.Json; +using System.Threading.Tasks; using Cmf.CLI.Builders; using Cmf.CLI.Constants; using Cmf.CLI.Core; @@ -34,14 +32,24 @@ public DataCommand(IFileSystem fileSystem) : base("data", PackageType.Data, file /// public override void Configure(Command cmd) { - base.GetBaseCommandConfig(cmd); - cmd.AddOption(new Option( - aliases: new[] { "--businessPackage" }, - parseArgument: argResult => Parse(argResult), - isDefault: true, - description: "Business package where the Process Rules project should be built" - )); - cmd.Handler = CommandHandler.Create(this.Execute); + var (workingDirArg, versionOpt) = GetBaseCommandConfig(cmd); + + var businessPackageOption = new Option("--businessPackage") + { + Description = "Business package where the Process Rules project should be built", + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(businessPackageOption); + + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArg); + var version = parseResult.GetValue(versionOpt); + var businessPackage = parseResult.GetValue(businessPackageOption); + + Execute(workingDir, version, businessPackage); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/FeatureCommand.cs b/cmf-cli/Commands/new/FeatureCommand.cs index 2685c9649..88b98fcc5 100644 --- a/cmf-cli/Commands/new/FeatureCommand.cs +++ b/cmf-cli/Commands/new/FeatureCommand.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Commands; using Cmf.CLI.Core.Objects; @@ -38,24 +38,37 @@ public FeatureCommand(IFileSystem fileSystem) : base("feature", fileSystem) public override void Configure(Command cmd) { var root = FileSystemUtilities.GetProjectRoot(this.fileSystem); - cmd.AddArgument(new Argument( - name: "packageName", - description: "The Feature package name" - )); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, root?.FullName), - isDefault: true - ) + + var packageNameArgument = new Argument("packageName") + { + Description = "The Feature package name" + }; + cmd.Add(packageNameArgument); + + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, root?.FullName), + DefaultValueFactory = _ => Parse(null, root?.FullName) + }; + cmd.Add(workingDirArgument); + + var versionOption = new Option("--version") + { + Description = "Package Version", + DefaultValueFactory = _ => "1.0.0" + }; + cmd.Add(versionOption); + + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + var packageName = parseResult.GetValue(packageNameArgument); + var version = parseResult.GetValue(versionOption); + + Execute(workingDir, packageName, version); + return Task.FromResult(0); }); - cmd.AddOption(new Option( - aliases: new[] { "--version" }, - description: "Package Version", - getDefaultValue: () => "1.0.0" - )); - cmd.Handler = CommandHandler.Create(Execute); } /// diff --git a/cmf-cli/Commands/new/HTMLCommand.cs b/cmf-cli/Commands/new/HTMLCommand.cs index dbbdf083d..3b657ab26 100644 --- a/cmf-cli/Commands/new/HTMLCommand.cs +++ b/cmf-cli/Commands/new/HTMLCommand.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; using System.Text.RegularExpressions; +using System.Threading.Tasks; using Cmf.CLI.Builders; using Cmf.CLI.Constants; using Cmf.CLI.Core; @@ -40,15 +40,25 @@ public HTMLCommand(IFileSystem fileSystem) : base("html", PackageType.HTML, file /// public override void Configure(Command cmd) { - base.GetBaseCommandConfig(cmd); - cmd.AddOption(new Option( - aliases: new[] { "--htmlPkg", "--htmlPackage" }, - description: "Path to the MES Presentation HTML package (required for MES versions up to 9.x)", - isDefault: false, - parseArgument: argResult => Parse(argResult) - ) - { IsRequired = false }); - cmd.Handler = CommandHandler.Create(this.Execute); + var (workingDirArg, versionOpt) = base.GetBaseCommandConfig(cmd); + + var htmlPkgOption = new Option("--htmlPackage", "--htmlPkg") + { + Description = "Path to the MES Presentation HTML package (required for MES versions up to 9.x)", + Required = false, + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(htmlPkgOption); + + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArg); + var version = parseResult.GetValue(versionOpt); + var htmlPackage = parseResult.GetValue(htmlPkgOption); + + Execute(workingDir, version, htmlPackage); + return Task.FromResult(0); + }); } /// @@ -485,4 +495,4 @@ public void ExecuteV10(IDirectoryInfo workingDir, string version) Log.Verbose("Updated config.json"); } } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/new/HelpCommand.cs b/cmf-cli/Commands/new/HelpCommand.cs index 1517f222e..dacddf8f6 100644 --- a/cmf-cli/Commands/new/HelpCommand.cs +++ b/cmf-cli/Commands/new/HelpCommand.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; using System.Text.RegularExpressions; +using System.Threading.Tasks; using Cmf.CLI.Builders; using Cmf.CLI.Constants; using Cmf.CLI.Core; @@ -42,14 +42,25 @@ public HelpCommand(IFileSystem fileSystem) : base("help", PackageType.Help, file /// public override void Configure(Command cmd) { - base.GetBaseCommandConfig(cmd); - cmd.AddOption(new Option( - aliases: new[] { "--docPkg", "--documentationPackage" }, - description: "Path to the MES documentation package (required for MES versions up to 9.x)", - parseArgument: argResult => Parse(argResult) - ) - { IsRequired = false }); - cmd.Handler = CommandHandler.Create(this.Execute); + var (workingDirArg, versionOpt) = base.GetBaseCommandConfig(cmd); + + var docPkgOption = new Option("--documentationPackage", "--docPkg") + { + Description = "Path to the MES documentation package (required for MES versions up to 9.x)", + Required = false, + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(docPkgOption); + + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArg); + var version = parseResult.GetValue(versionOpt); + var documentationPackage = parseResult.GetValue(docPkgOption); + + Execute(workingDir, version, documentationPackage); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/IoTCommand.cs b/cmf-cli/Commands/new/IoTCommand.cs index f1e0f2de2..acfb612df 100644 --- a/cmf-cli/Commands/new/IoTCommand.cs +++ b/cmf-cli/Commands/new/IoTCommand.cs @@ -10,9 +10,9 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New { @@ -41,18 +41,30 @@ public IoTCommand(IFileSystem fileSystem) : base("iot", PackageType.IoT, fileSys public override void Configure(Command cmd) { - base.GetBaseCommandConfig(cmd); - - cmd.AddOption(new Option( - aliases: new[] { "--htmlPackageLocation" }, - description: "Location of the HTML Package" - )); - - cmd.AddOption(new Option( - aliases: new[] { "--isAngularPackage" }, - description: "Customization package with angular" - )); - cmd.Handler = CommandHandler.Create(this.Execute); + var (workingDirArg, versionOpt) = base.GetBaseCommandConfig(cmd); + + var htmlPackageLocationOption = new Option("--htmlPackageLocation") + { + Description = "Location of the HTML Package" + }; + cmd.Add(htmlPackageLocationOption); + + var isAngularPackageOption = new Option("--isAngularPackage") + { + Description = "Customization package with angular" + }; + cmd.Add(isAngularPackageOption); + + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArg); + var version = parseResult.GetValue(versionOpt); + var htmlPackageLocation = parseResult.GetValue(htmlPackageLocationOption); + var isAngularPackage = parseResult.GetValue(isAngularPackageOption); + + Execute(workingDir, version, htmlPackageLocation, isAngularPackage); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/NewCommand.cs b/cmf-cli/Commands/new/NewCommand.cs index e91eae81e..356ebf2dd 100644 --- a/cmf-cli/Commands/new/NewCommand.cs +++ b/cmf-cli/Commands/new/NewCommand.cs @@ -1,6 +1,6 @@ using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Commands; @@ -13,6 +13,7 @@ namespace Cmf.CLI.Commands public class NewCommand : TemplateCommand { private Command _cmd; + /// /// Configure command /// @@ -20,11 +21,19 @@ public class NewCommand : TemplateCommand public override void Configure(Command cmd) { this._cmd = cmd; - cmd.AddOption(new Option( - aliases: new[] { "--reset" }, - description: "Reset template engine. Use this if after an upgrade the templates are not working correctly." - )); - cmd.Handler = CommandHandler.Create(Execute); + + var resetOption = new Option("--reset") + { + Description = "Reset template engine. Use this if after an upgrade the templates are not working correctly." + }; + cmd.Add(resetOption); + + cmd.SetAction((parseResult, cancellationToken) => + { + var reset = parseResult.GetValue(resetOption); + Execute(reset); + return Task.FromResult(0); + }); } /// @@ -39,7 +48,9 @@ public void Execute(bool reset) } else { - this._cmd.Invoke(new[] { "-h" }); + // In beta5, use Parse and Invoke pattern instead of direct Invoke + var parseResult = this._cmd.Parse(new[] { "-h" }); + parseResult.Invoke(); } } diff --git a/cmf-cli/Commands/new/TestCommand.cs b/cmf-cli/Commands/new/TestCommand.cs index b9bf9f99e..417a3acd3 100644 --- a/cmf-cli/Commands/new/TestCommand.cs +++ b/cmf-cli/Commands/new/TestCommand.cs @@ -5,10 +5,9 @@ using Cmf.CLI.Utilities; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; -using System.Linq; using System; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New { @@ -31,12 +30,19 @@ public TestCommand(IFileSystem fileSystem) : base("tests", PackageType.Tests, fi /// public override void Configure(Command cmd) { - cmd.AddOption(new Option( - aliases: new[] { "--version" }, - description: "Package Version", - getDefaultValue: () => "1.0.0" - )); - cmd.Handler = CommandHandler.Create(Execute); + var versionOption = new Option("--version") + { + Description = "Package Version", + DefaultValueFactory = _ => "1.0.0" + }; + cmd.Add(versionOption); + + cmd.SetAction((parseResult, cancellationToken) => + { + var version = parseResult.GetValue(versionOption); + Execute(version); + return Task.FromResult(0); + }); } /// @@ -112,4 +118,4 @@ public void Execute(string version) base.RegisterAsDependencyInParent("Cmf.Custom.Tests.MasterData", version, projectRoot.FullName, isTestPackage: true); } } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/new/iot/GenerateBusinessScenarioCommand.cs b/cmf-cli/Commands/new/iot/GenerateBusinessScenarioCommand.cs index f117aefd6..2bd722bd7 100644 --- a/cmf-cli/Commands/new/iot/GenerateBusinessScenarioCommand.cs +++ b/cmf-cli/Commands/new/iot/GenerateBusinessScenarioCommand.cs @@ -8,8 +8,8 @@ using Spectre.Console; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New.IoT { @@ -43,17 +43,20 @@ public override void Configure(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestIoTPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); - + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestIoTPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestIoTPackage?.FullName) + }; + cmd.Add(workingDirArgument); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + Execute(workingDir); + return Task.FromResult(0); + }); } /// @@ -92,7 +95,6 @@ private List GenerateArgs( string packageVersion, string identifier) { - var mesVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; Log.Debug($"Creating IoT Task Library Package at {workingDir}"); var args = new List(); diff --git a/cmf-cli/Commands/new/iot/GenerateConverterCommand.cs b/cmf-cli/Commands/new/iot/GenerateConverterCommand.cs index 129b86498..a39ef1461 100644 --- a/cmf-cli/Commands/new/iot/GenerateConverterCommand.cs +++ b/cmf-cli/Commands/new/iot/GenerateConverterCommand.cs @@ -10,9 +10,9 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Text; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New.IoT { @@ -45,16 +45,20 @@ public override void Configure(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestIoTPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestIoTPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestIoTPackage?.FullName) + }; + cmd.Add(workingDirArgument); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + Execute(workingDir); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/iot/GenerateDotnetDriverCommand.cs b/cmf-cli/Commands/new/iot/GenerateDotnetDriverCommand.cs index 1798d5d6f..83cf0791f 100644 --- a/cmf-cli/Commands/new/iot/GenerateDotnetDriverCommand.cs +++ b/cmf-cli/Commands/new/iot/GenerateDotnetDriverCommand.cs @@ -8,8 +8,8 @@ using Spectre.Console; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New.IoT { @@ -42,16 +42,20 @@ public override void Configure(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestIoTPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestIoTPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestIoTPackage?.FullName) + }; + cmd.Add(workingDirArgument); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + Execute(workingDir); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/iot/GenerateDotnetFrameworkDriverCommand.cs b/cmf-cli/Commands/new/iot/GenerateDotnetFrameworkDriverCommand.cs index 53d279a65..4570a9f68 100644 --- a/cmf-cli/Commands/new/iot/GenerateDotnetFrameworkDriverCommand.cs +++ b/cmf-cli/Commands/new/iot/GenerateDotnetFrameworkDriverCommand.cs @@ -8,8 +8,8 @@ using Spectre.Console; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New.IoT { @@ -42,16 +42,20 @@ public override void Configure(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestIoTPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestIoTPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestIoTPackage?.FullName) + }; + cmd.Add(workingDirArgument); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + Execute(workingDir); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/iot/GenerateDriverCommand.cs b/cmf-cli/Commands/new/iot/GenerateDriverCommand.cs index a881c12f0..067963f14 100644 --- a/cmf-cli/Commands/new/iot/GenerateDriverCommand.cs +++ b/cmf-cli/Commands/new/iot/GenerateDriverCommand.cs @@ -8,8 +8,8 @@ using Spectre.Console; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New.IoT { @@ -42,16 +42,20 @@ public override void Configure(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestIoTPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestIoTPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestIoTPackage?.FullName) + }; + cmd.Add(workingDirArgument); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + Execute(workingDir); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/iot/GenerateTaskCommand.cs b/cmf-cli/Commands/new/iot/GenerateTaskCommand.cs index f1b8053cc..b5a58cb2e 100644 --- a/cmf-cli/Commands/new/iot/GenerateTaskCommand.cs +++ b/cmf-cli/Commands/new/iot/GenerateTaskCommand.cs @@ -11,9 +11,9 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New.IoT { @@ -50,16 +50,20 @@ public override void Configure(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestIoTPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestIoTPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestIoTPackage?.FullName) + }; + cmd.Add(workingDirArgument); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + Execute(workingDir); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/new/iot/GenerateTaskLibraryCommand.cs b/cmf-cli/Commands/new/iot/GenerateTaskLibraryCommand.cs index 36da973d3..6dff59428 100644 --- a/cmf-cli/Commands/new/iot/GenerateTaskLibraryCommand.cs +++ b/cmf-cli/Commands/new/iot/GenerateTaskLibraryCommand.cs @@ -10,9 +10,9 @@ using Spectre.Console; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.New.IoT { @@ -46,17 +46,20 @@ public override void Configure(Command cmd) this.fileSystem ); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, nearestIoTPackage?.FullName), - isDefault: true - ) + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); - + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, nearestIoTPackage?.FullName), + DefaultValueFactory = _ => Parse(null, nearestIoTPackage?.FullName) + }; + cmd.Add(workingDirArgument); - cmd.Handler = CommandHandler.Create(this.Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workingDir = parseResult.GetValue(workingDirArgument); + Execute(workingDir); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/pack/PackCommand.cs b/cmf-cli/Commands/pack/PackCommand.cs index b363bff0b..687e55664 100644 --- a/cmf-cli/Commands/pack/PackCommand.cs +++ b/cmf-cli/Commands/pack/PackCommand.cs @@ -1,4 +1,3 @@ - using Cmf.CLI.Constants; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Interfaces; @@ -8,8 +7,8 @@ using Microsoft.Extensions.DependencyInjection; using System; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands { @@ -47,31 +46,46 @@ public override void Configure(Command cmd) { workingDir = this.fileSystem.Path.GetRelativePath(this.fileSystem.Directory.GetCurrentDirectory(), packageRoot.FullName); } - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, workingDir), - isDefault: true - ) + + var workingDirArgument = new Argument("workingDir") { - Description = "Working Directory" - }); + Description = "Working Directory", + DefaultValueFactory = _ => Parse(null, workingDir), + CustomParser = argResult => Parse(argResult, workingDir) + }; + cmd.Add(workingDirArgument); - cmd.AddOption(new Option( - aliases: new string[] { "-o", "--outputDir" }, - parseArgument: argResult => Parse(argResult, $"{workingDir}/Package"), - isDefault: true, - description: "Output directory for created package")); + var outputDirOption = new Option("--outputDir", "-o") + { + Description = "Output directory for created package", + DefaultValueFactory = _ => Parse(null, $"{workingDir}/Package"), + CustomParser = argResult => Parse(argResult, $"{workingDir}/Package") + }; + cmd.Add(outputDirOption); - cmd.AddOption(new Option( - aliases: new string[] { "-f", "--force" }, - description: "Overwrite all packages even if they already exists")); + var forceOption = new Option("--force", "-f") + { + Description = "Overwrite all packages even if they already exists" + }; + cmd.Add(forceOption); - cmd.AddOption(new Option( - aliases: new string[] { "--dry-run" }, - description: "List the final structure of the package without creating files")); + var dryRunOption = new Option("--dry-run") + { + Description = "List the final structure of the package without creating files" + }; + cmd.Add(dryRunOption); // Add the handler - cmd.Handler = CommandHandler.Create(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var workDir = parseResult.GetValue(workingDirArgument); + var outputDir = parseResult.GetValue(outputDirOption); + var force = parseResult.GetValue(forceOption); + var dryRun = parseResult.GetValue(dryRunOption); + + Execute(workDir, outputDir, force); + return Task.FromResult(0); + }); } /// @@ -146,4 +160,4 @@ public void Execute(CmfPackage cmfPackage, IDirectoryInfo outputDir, bool force, } } } -} +} \ No newline at end of file diff --git a/cmf-cli/Commands/plugin/NewPluginCommand.cs b/cmf-cli/Commands/plugin/NewPluginCommand.cs index 81c08ab8d..e2ee96bc4 100644 --- a/cmf-cli/Commands/plugin/NewPluginCommand.cs +++ b/cmf-cli/Commands/plugin/NewPluginCommand.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Commands; @@ -23,27 +23,42 @@ public NewPluginCommand(IFileSystem fileSystem) : base("plugin", fileSystem) public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "name", - description: "The name of the plugin. Will also be used as NPM package id, so make sure it is valid for this purpose. If you are scoping the package, you need to escape the organization name, e.g. \\@org/package." - )); - cmd.AddArgument(new Argument( - name: "binary", - description: "The name of the plugin binary. This name will be prefixed with 'cmf-' to be handled by the CLI, e.g. examplePlugin will generate the cmf-examplePlugin binary in the path" - )); - cmd.AddArgument(new Argument( - name: "description", - description: "The command description, e.g. \"My amazing plugin\"" - )); - cmd.AddArgument(new Argument( - name: "workingDir", - parse: (argResult) => Parse(argResult, "."), - isDefault: true - ) + var nameArgument = new Argument("name") { - Description = "Working Directory" + Description = "The name of the plugin. Will also be used as NPM package id, so make sure it is valid for this purpose. If you are scoping the package, you need to escape the organization name, e.g. \\@org/package." + }; + cmd.Add(nameArgument); + + var binaryArgument = new Argument("binary") + { + Description = "The name of the plugin binary. This name will be prefixed with 'cmf-' to be handled by the CLI, e.g. examplePlugin will generate the cmf-examplePlugin binary in the path" + }; + cmd.Add(binaryArgument); + + var descriptionArgument = new Argument("description") + { + Description = "The command description, e.g. \"My amazing plugin\"" + }; + cmd.Add(descriptionArgument); + + var workingDirArgument = new Argument("workingDir") + { + Description = "Working Directory", + CustomParser = argResult => Parse(argResult, "."), + DefaultValueFactory = _ => Parse(null, ".") + }; + cmd.Add(workingDirArgument); + + cmd.SetAction((parseResult, cancellationToken) => + { + var name = parseResult.GetValue(nameArgument); + var binary = parseResult.GetValue(binaryArgument); + var description = parseResult.GetValue(descriptionArgument); + var workingDir = parseResult.GetValue(workingDirArgument); + + Execute(name, binary, description, workingDir); + return Task.FromResult(0); }); - cmd.Handler = CommandHandler.Create(this.Execute); } public void Execute(string name, string binary, string description, IDirectoryInfo workingDir) diff --git a/cmf-cli/Commands/plugin/PluginCommand.cs b/cmf-cli/Commands/plugin/PluginCommand.cs index e835d76e4..29af2a2e0 100644 --- a/cmf-cli/Commands/plugin/PluginCommand.cs +++ b/cmf-cli/Commands/plugin/PluginCommand.cs @@ -2,9 +2,8 @@ using System.Linq; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; -using System.CommandLine.Parsing; using System.Diagnostics; +using System.Threading.Tasks; using Cmf.CLI.Core; using Cmf.CLI.Core.Enums; using Cmf.CLI.Utilities; @@ -43,15 +42,14 @@ public PluginCommand(string commandName, string commandPath) /// /// public override void Configure(Command cmd) - { - cmd.TreatUnmatchedTokensAsErrors = false; + { // Add the handler - cmd.Handler = CommandHandler.Create( - (ParseResult parseResult, IConsole console) => - { - // console.Out.WriteLine($"{parseResult}"); - this.Execute(parseResult.UnparsedTokens); - }); + cmd.SetAction((parseResult, cancellationToken) => + { + // Get unmatched tokens from parseResult + this.Execute(parseResult.UnmatchedTokens); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/plugin/PluginsCommand.cs b/cmf-cli/Commands/plugin/PluginsCommand.cs index 501dd35a0..2127f21aa 100644 --- a/cmf-cli/Commands/plugin/PluginsCommand.cs +++ b/cmf-cli/Commands/plugin/PluginsCommand.cs @@ -1,6 +1,6 @@ using System; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; +using System.Threading.Tasks; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Objects; @@ -14,10 +14,18 @@ public class PluginsCommand : BaseCommand { public override void Configure(Command cmd) { - cmd.AddOption(new Option( - aliases: new [] { "-r", "--registry" }, - description: "Registries to query for plugins. If unspecified, uses the default NPMJS registry.")); - cmd.Handler = CommandHandler.Create(Execute); + var registryOption = new Option("--registry", "-r") + { + Description = "Registries to query for plugins. If unspecified, uses the default NPMJS registry." + }; + cmd.Add(registryOption); + + cmd.SetAction((parseResult, cancellationToken) => + { + var registry = parseResult.GetValue(registryOption); + Execute(registry); + return Task.FromResult(0); + }); } public void Execute(Uri[] registry) diff --git a/cmf-cli/Commands/publish/PublishCommand.cs b/cmf-cli/Commands/publish/PublishCommand.cs index 2c320e82c..209decc49 100644 --- a/cmf-cli/Commands/publish/PublishCommand.cs +++ b/cmf-cli/Commands/publish/PublishCommand.cs @@ -1,8 +1,8 @@ using System; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; using System.Linq; +using System.Threading.Tasks; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Interfaces; @@ -34,44 +34,46 @@ public PublishCommand(IFileSystem fileSystem) : base(fileSystem) { } public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "file", - parse: (argResult) => Parse(argResult), - isDefault: false) + var fileArgument = new Argument("file") { - Description = "Package file" - }); + Description = "Package file", + CustomParser = argResult => Parse(argResult) + }; + cmd.Add(fileArgument); - cmd.AddOption(new Option( - aliases: new string[] { "--ci" }, - description: "Use the Continuous Integration repository URL from the repositories file" - )); + var ciOption = new Option("--ci") + { + Description = "Use the Continuous Integration repository URL from the repositories file" + }; + cmd.Add(ciOption); - cmd.AddOption(new Option( - aliases: new string[] { "--release" }, - description: "Use the first non-CI repository URL from the repositories file" - )); + var releaseOption = new Option("--release") + { + Description = "Use the first non-CI repository URL from the repositories file" + }; + cmd.Add(releaseOption); - cmd.AddOption(new Option( - aliases: new string[] { "--repository" }, - description: "Repository the package should be published to", - parseArgument: result => - { - var value = result.Tokens[0].Value; - if (!Uri.TryCreate(value, UriKind.Absolute, out var uri)) - { - result.ErrorMessage = "The repository must be a valid absolute URI."; - return null; - } - return uri; - } - )); + var repositoryOption = new Option("--repository") + { + Description = "Repository the package should be published to", + CustomParser = argResult => ParseUri(argResult) + }; + cmd.Add(repositoryOption); - cmd.IsHidden = + cmd.Hidden = !(ExecutionContext.ServiceProvider?.GetService()?.UseRepositoryClients ?? false); // Add the handler - cmd.Handler = CommandHandler.Create(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var file = parseResult.GetValue(fileArgument); + var repository = parseResult.GetValue(repositoryOption); + var ci = parseResult.GetValue(ciOption); + var release = parseResult.GetValue(releaseOption); + + Execute(file, repository, ci, release); + return Task.FromResult(0); + }); } public void Execute(IFileInfo file, Uri repository, bool ci, bool release) @@ -102,7 +104,6 @@ public void Execute(IFileInfo file, Uri repository, bool ci, bool release) $"The `--{(ci ? "ci" : "release")}` flag can only be used when no explicit `--repository is passed`."); } - var repositoryLocator = ExecutionContext.ServiceProvider?.GetService(); if (ci) { diff --git a/cmf-cli/Commands/restore/RestoreCommand.cs b/cmf-cli/Commands/restore/RestoreCommand.cs index cd1761df0..c03cd1eef 100644 --- a/cmf-cli/Commands/restore/RestoreCommand.cs +++ b/cmf-cli/Commands/restore/RestoreCommand.cs @@ -7,8 +7,8 @@ using Microsoft.Extensions.DependencyInjection; using System; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO.Abstractions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands.restore { @@ -39,9 +39,11 @@ public RestoreCommand(IFileSystem fileSystem) : base(fileSystem) { } /// public override void Configure(Command cmd) { - cmd.AddOption(new Option( - aliases: new string[] { "-r", "--repos", "--repo" }, - description: "Repositories where dependencies are located (folder)")); + var reposOption = new Option("--repos", "-r", "--repo") + { + Description = "Repositories where dependencies are located (folder)" + }; + cmd.Add(reposOption); var packageRoot = FileSystemUtilities.GetPackageRoot(this.fileSystem); var packagePath = "."; @@ -49,13 +51,23 @@ public override void Configure(Command cmd) { packagePath = this.fileSystem.Path.GetRelativePath(this.fileSystem.Directory.GetCurrentDirectory(), packageRoot.FullName); } - var arg = new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, packagePath), - isDefault: true, - description: "Package path"); - cmd.AddArgument(arg); - cmd.Handler = CommandHandler.Create(Execute); + + var packagePathArgument = new Argument("packagePath") + { + Description = "Package path", + CustomParser = argResult => Parse(argResult, packagePath), + DefaultValueFactory = _ => Parse(null, packagePath) + }; + cmd.Add(packagePathArgument); + + cmd.SetAction((parseResult, cancellationToken) => + { + var pkgPath = parseResult.GetValue(packagePathArgument); + var repos = parseResult.GetValue(reposOption); + + Execute(pkgPath, repos); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/upgrade/UpgradeBaseCommand.cs b/cmf-cli/Commands/upgrade/UpgradeBaseCommand.cs index 9785a0dea..eff96cb4c 100644 --- a/cmf-cli/Commands/upgrade/UpgradeBaseCommand.cs +++ b/cmf-cli/Commands/upgrade/UpgradeBaseCommand.cs @@ -1,4 +1,3 @@ -using Cmf.CLI.Constants; using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Constants; @@ -7,15 +6,12 @@ using Cmf.CLI.Factories; using Cmf.CLI.Utilities; using Microsoft.Extensions.DependencyInjection; -using SharpCompress.Common; using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; using System.IO; using System.IO.Abstractions; -using System.Linq; -using System.Text.RegularExpressions; +using System.Threading.Tasks; namespace Cmf.CLI.Commands { @@ -48,31 +44,43 @@ public UpgradeBaseCommand(IFileSystem fileSystem) : base(fileSystem) /// public override void Configure(Command cmd) { - cmd.AddArgument(new Argument( - name: "packagePath", - parse: (argResult) => Parse(argResult, "."), - description: "Package path")); - - cmd.AddArgument(new Argument( - name: "BaseVersion", - description: "New framework/MES Version" - )); - - cmd.AddOption(new Option( - aliases: new string[] { "-iot", "--iotVersion" }, - description: "New MES version for the IoT workflows & masterdatas." - )); - - cmd.AddOption(new Option>( - aliases: new string[] { "-ignore", "--iotPackagesToIgnore" }, - description: "IoT packages to ignore when updating the MES version of the tasks in IoT workflows" - ) + var packagePathArgument = new Argument("packagePath") { - AllowMultipleArgumentsPerToken = true, - }); + Description = "Package path", + CustomParser = argResult => Parse(argResult, ".") + }; + cmd.Add(packagePathArgument); + + var baseVersionArgument = new Argument("BaseVersion") + { + Description = "New framework/MES Version" + }; + cmd.Add(baseVersionArgument); + + var iotVersionOption = new Option("--iotVersion", "-iot") + { + Description = "New MES version for the IoT workflows & masterdatas." + }; + cmd.Add(iotVersionOption); + + var iotPackagesToIgnoreOption = new Option>("--iotPackagesToIgnore", "-ignore") + { + Description = "IoT packages to ignore when updating the MES version of the tasks in IoT workflows", + AllowMultipleArgumentsPerToken = true + }; + cmd.Add(iotPackagesToIgnoreOption); // Add the handler - cmd.Handler = CommandHandler.Create>(Execute); + cmd.SetAction((parseResult, cancellationToken) => + { + var packagePath = parseResult.GetValue(packagePathArgument); + var baseVersion = parseResult.GetValue(baseVersionArgument); + var iotVersion = parseResult.GetValue(iotVersionOption); + var iotPackagesToIgnore = parseResult.GetValue(iotPackagesToIgnoreOption); + + Execute(packagePath, baseVersion, iotVersion, iotPackagesToIgnore); + return Task.FromResult(0); + }); } /// diff --git a/cmf-cli/Commands/upgrade/UpgradeCommand.cs b/cmf-cli/Commands/upgrade/UpgradeCommand.cs deleted file mode 100644 index ab1832199..000000000 --- a/cmf-cli/Commands/upgrade/UpgradeCommand.cs +++ /dev/null @@ -1,57 +0,0 @@ -using Cmf.CLI.Constants; -using Cmf.CLI.Core; -using Cmf.CLI.Core.Attributes; -using Cmf.CLI.Core.Constants; -using Cmf.CLI.Core.Interfaces; -using Cmf.CLI.Core.Objects; -using Cmf.CLI.Factories; -using Cmf.CLI.Utilities; -using Microsoft.Extensions.DependencyInjection; -using SharpCompress.Common; -using System; -using System.Collections.Generic; -using System.CommandLine; -using System.CommandLine.NamingConventionBinder; -using System.IO; -using System.IO.Abstractions; -using System.Linq; -using System.Text.RegularExpressions; - -namespace Cmf.CLI.Commands -{ - /// - /// Dummy upgrade command (only here to make "cmf upgrade base" work) - /// - /// - [CmfCommand("upgrade", Id = "upgrade", Description = "Project upgrade utilities")] - public class UpgradeCommand : BaseCommand - { - - /// - /// constructor for System.IO filesystem - /// - public UpgradeCommand() : base() - { - } - - /// - /// constructor - /// - /// - public UpgradeCommand(IFileSystem fileSystem) : base(fileSystem) - { - } - - /// - /// Configure command - /// - /// - public override void Configure(Command cmd) - { - // Add the handler - cmd.Handler = CommandHandler.Create(Execute); - } - - public void Execute(IDirectoryInfo packagePath) {} - } -} \ No newline at end of file diff --git a/cmf-cli/Program.cs b/cmf-cli/Program.cs index 77fa5c523..4050ba60c 100644 --- a/cmf-cli/Program.cs +++ b/cmf-cli/Program.cs @@ -7,10 +7,8 @@ using Cmf.CLI.Core.Objects; using Microsoft.Extensions.DependencyInjection; using Cmf.CLI.Core.Enums; -using System.CommandLine.Parsing; using System.IO.Abstractions; using System.Linq; -using System.Reflection; using Cmf.CLI.Constants; using Cmf.CLI.Core.Interfaces; using Cmf.CLI.Core.Services; @@ -36,7 +34,7 @@ public static async Task Main(string[] args) { var fileSystem = new FileSystem(); - var (rootCommand, parser) = await StartupModule.Configure( + var rootCommand = await StartupModule.Configure( packageId: CliConstants.PackageName, envVarPrefix: "cmf_cli", description: "Critical Manufacturing CLI", @@ -60,30 +58,27 @@ public static async Task Main(string[] args) if (rootCommand != null) { - var nonPluginCommands = rootCommand.Children.Where(symbol => symbol is Command).ToList(); + var nonPluginCommands = rootCommand.Subcommands.ToList(); BaseCommand.AddPluginCommands(rootCommand); var pluginCommands = - rootCommand.Children.Where(cmd => cmd is Command && nonPluginCommands.All(np => np.Name != cmd.Name)).ToList(); + rootCommand.Subcommands.Where(cmd => nonPluginCommands.All(np => np.Name != cmd.Name)).ToList(); if (args.Length > 0 && pluginCommands.FirstOrDefault(pc => pc.Name == args[0]) is Command pluginMatch) { - // we are executing a plugin. we should forward all arguments (except the first) to the plugin - var pluginArgs = args[1..]; - - // we should invoke this through the System.CommandLine API but right now we'd have to generate a new pipeline. We'll revisit this in a next version, as it's expected the pipeline instantiation gets more flexible. - var type = pluginMatch!.Handler!.GetType(); - var method = type.GetField("_handlerDelegate", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static)!; - var del = method.GetValue(pluginMatch.Handler) as Delegate; - var pluginCommand = del!.Target as PluginCommand; - pluginCommand!.Execute(pluginArgs); - result = 0; + // we are executing a plugin: parse and invoke through System.CommandLine + // which will trigger the Action set by PluginCommand.Configure() + var parseResult = rootCommand.Parse(args); + result = await parseResult.InvokeAsync(); } else { ExecutionContext.Initialize(fileSystem); ExecutionContext.ServiceProvider.GetService()! .InitializeClientsForRepositories(ExecutionContext.Instance.FileSystem); - result = await parser.InvokeAsync(args); + + // Parse and invoke using beta5 pattern + ParseResult parseResult = rootCommand.Parse(args); + result = await parseResult.InvokeAsync(); } } diff --git a/cmf-cli/cmf.csproj b/cmf-cli/cmf.csproj index a4388ca40..a138fb3fa 100644 --- a/cmf-cli/cmf.csproj +++ b/cmf-cli/cmf.csproj @@ -29,8 +29,7 @@ - - + diff --git a/cmf-cli/resources/template_feed/plugin/Plugin.Template/src/%solutionName%.csproj b/cmf-cli/resources/template_feed/plugin/Plugin.Template/src/%solutionName%.csproj index 4d4742ddb..685aeb934 100644 --- a/cmf-cli/resources/template_feed/plugin/Plugin.Template/src/%solutionName%.csproj +++ b/cmf-cli/resources/template_feed/plugin/Plugin.Template/src/%solutionName%.csproj @@ -16,7 +16,7 @@ - + From e4bb4a3da1786d0976aec269a1f020b8b1eb2f1e Mon Sep 17 00:00:00 2001 From: Manuel Martins Date: Thu, 5 Feb 2026 10:05:25 +0000 Subject: [PATCH 04/20] chore(tests): bump cmf-cli System.CommandLine to 2.0.2 --- tests/Specs/Assemble.cs | 21 +-- tests/Specs/BaseCommand.cs | 213 +++++++++++++++++++++++++++++++ tests/Specs/DEEValidator.cs | 28 ++-- tests/Specs/Init.cs | 9 +- tests/Specs/JsonValidator.cs | 57 +++++---- tests/Specs/ListDependencies.cs | 92 +++++++------ tests/Specs/Logging.cs | 18 ++- tests/Specs/New.cs | 8 +- tests/Specs/Pack.cs | 103 +++++++++------ tests/Specs/Publish.cs | 25 ++-- tests/Specs/Telemetry.cs | 3 +- tests/TestConsole.cs | 93 ++++++++++++++ tests/Utilities/TestUtilities.cs | 40 +++--- tests/tests.csproj | 1 + 14 files changed, 538 insertions(+), 173 deletions(-) create mode 100644 tests/Specs/BaseCommand.cs create mode 100644 tests/TestConsole.cs diff --git a/tests/Specs/Assemble.cs b/tests/Specs/Assemble.cs index 88ad6b2bd..8df83122a 100644 --- a/tests/Specs/Assemble.cs +++ b/tests/Specs/Assemble.cs @@ -771,19 +771,24 @@ public void Assemble_ConfigureCommand() var parseResult = cmd.Parse("dir --outputDir output"); cmd.Options.Should().HaveCount(4); - cmd.Options.Should().Contain(o => o.Aliases.Contains("--cirepo")); - cmd.Options.Should().Contain(o => o.Aliases.Contains("--repo")); - cmd.Options.Should().Contain(o => o.Aliases.Contains("--includeTestPackages")); - cmd.Options.Should().Contain(o => o.Aliases.Contains("--outputDir")); + cmd.Options.Should().Contain(o => o.Name == "--outputDir" || o.Aliases.Any(a => a == "--outputDir")); + cmd.Options.Should().Contain(o => o.Name == "--cirepo" || o.Aliases.Any(a => a == "--cirepo")); + cmd.Options.Should().Contain(o => o.Name == "--repo" || o.Aliases.Any(a => a == "--repo" || a == "--repos")); + cmd.Options.Should().Contain(o => o.Name == "--includeTestPackages" || o.Aliases.Any(a => a == "--includeTestPackages")); cmd.Arguments.Should().HaveCount(1); cmd.Arguments.Should().Contain(a => a.Name == "workingDir"); - cmd.Handler.Should().NotBeNull(); - + // In beta5, Command.Handler property was removed - handlers are managed differently + // The handler is set internally via SetHandler, but there's no public Handler property to check + // cmd.Handler.Should().NotBeNull(); // Removed in beta5 + parseResult.Should().NotBeNull(); - parseResult.GetValueForArgument(cmd.Arguments.ElementAt(0)).ToString().Should().Be("dir"); - parseResult.GetValueForOption(cmd.Options.First(o=> o.Aliases.Contains("--outputDir"))).ToString().Should().Be("output"); + // In beta5, GetValueForArgument/GetValueForOption signatures changed - use GetValue() with explicit type + var workingDirArg = cmd.Arguments.ElementAt(0) as Argument; + var outputDirOption = cmd.Options.First(o=> o.Name == "--outputDir" || o.Aliases.Any(a => a == "--outputDir")) as Option; + parseResult.GetValue(workingDirArg)?.Name.Should().Be("dir"); + parseResult.GetValue(outputDirOption)?.Name.Should().Be("output"); } [Fact] diff --git a/tests/Specs/BaseCommand.cs b/tests/Specs/BaseCommand.cs new file mode 100644 index 000000000..f70a9b589 --- /dev/null +++ b/tests/Specs/BaseCommand.cs @@ -0,0 +1,213 @@ +using Cmf.CLI.Core.Commands; +using FluentAssertions; +using System; +using System.CommandLine; +using System.IO.Abstractions.TestingHelpers; +using Xunit; + +namespace tests.Specs; + +public class BaseCommandTests +{ + /// + /// Minimal concrete subclass that exposes ParseUri and ParseUriArray + /// through options, so they can be triggered via command parsing. + /// + private class TestableBaseCommand : BaseCommand + { + public Option UriOption { get; } = new Option("--uri") { Required = false }; + public Option UriArrayOption { get; } = new Option("--uris") + { + Arity = ArgumentArity.ZeroOrMore, + AllowMultipleArgumentsPerToken = true, + Required = false + }; + + public TestableBaseCommand() : base(new MockFileSystem()) { } + + public override void Configure(Command cmd) + { + UriOption.CustomParser = argResult => ParseUri(argResult); + UriArrayOption.CustomParser = argResult => ParseUriArray(argResult); + cmd.Add(UriOption); + cmd.Add(UriArrayOption); + } + + /// Parse a single --uri value and return the result. + public Uri InvokeParseUri(string value) + { + var root = new Command("test"); + Configure(root); + var parseResult = root.Parse(value != null ? new[] { "--uri", value } : Array.Empty()); + return parseResult.GetValue(UriOption); + } + + /// Parse one or more --uris values and return the result. + public Uri[] InvokeParseUriArray(params string[] values) + { + var root = new Command("test"); + Configure(root); + var args = new System.Collections.Generic.List { "--uris" }; + args.AddRange(values); + var parseResult = root.Parse(args.ToArray()); + return parseResult.GetValue(UriArrayOption); + } + } + + // ------------------------------------------------------------------------- + // ParseUri — no token + // ------------------------------------------------------------------------- + + [Fact] + public void ParseUri_NoToken_ReturnsNull() + { + var sut = new TestableBaseCommand(); + var result = sut.InvokeParseUri(null); + result.Should().BeNull(); + } + + // ------------------------------------------------------------------------- + // ParseUri — standard absolute URIs + // ------------------------------------------------------------------------- + + [Theory] + [InlineData("https://example.com", "https://example.com/")] + [InlineData("https://example.com/path/to/feed", "https://example.com/path/to/feed")] + [InlineData("http://registry.example.com:4873/", "http://registry.example.com:4873/")] + public void ParseUri_AbsoluteUrl_ReturnsAbsoluteUri(string input, string expected) + { + var sut = new TestableBaseCommand(); + var result = sut.InvokeParseUri(input); + result.Should().NotBeNull(); + result.IsAbsoluteUri.Should().BeTrue(); + result.ToString().Should().Be(expected); + } + + // ------------------------------------------------------------------------- + // ParseUri — UNC paths + // ------------------------------------------------------------------------- + + [Theory] + [InlineData(@"\\server\share", "file://server/share")] + [InlineData(@"\\server\share\sub", "file://server/share/sub")] + public void ParseUri_UncPath_ReturnsFileUri(string input, string expected) + { + var sut = new TestableBaseCommand(); + var result = sut.InvokeParseUri(input); + result.Should().NotBeNull(); + result.IsAbsoluteUri.Should().BeTrue(); + result.Scheme.Should().Be("file"); + result.ToString().Should().Be(expected); + } + + // ------------------------------------------------------------------------- + // ParseUri — Windows drive paths + // ------------------------------------------------------------------------- + + [Theory] + [InlineData(@"C:\path\to\dir", "file:///C:/path/to/dir")] + [InlineData(@"D:\packages", "file:///D:/packages")] + public void ParseUri_WindowsDrivePath_ReturnsFileUri(string input, string expected) + { + var sut = new TestableBaseCommand(); + var result = sut.InvokeParseUri(input); + result.Should().NotBeNull(); + result.IsAbsoluteUri.Should().BeTrue(); + result.Scheme.Should().Be("file"); + result.ToString().Should().Be(expected); + } + + // ------------------------------------------------------------------------- + // ParseUri — relative paths + // ------------------------------------------------------------------------- + + [Theory] + [InlineData("./relative/path")] + [InlineData("relative/path")] + public void ParseUri_RelativePath_ReturnsRelativeUri(string input) + { + var sut = new TestableBaseCommand(); + var result = sut.InvokeParseUri(input); + result.Should().NotBeNull(); + result.IsAbsoluteUri.Should().BeFalse(); + } + + // ------------------------------------------------------------------------- + // ParseUriArray — no tokens + // ------------------------------------------------------------------------- + + [Fact] + public void ParseUriArray_OptionNotProvided_ReturnsEmpty() + { + // When the option is absent entirely, CustomParser is not invoked; + // the framework returns the type default (empty array). + var root = new Command("test"); + var sut = new TestableBaseCommand(); + sut.Configure(root); + var parseResult = root.Parse(Array.Empty()); + var result = parseResult.GetValue(sut.UriArrayOption); + result.Should().BeNullOrEmpty(); + } + + // ------------------------------------------------------------------------- + // ParseUriArray — single token + // ------------------------------------------------------------------------- + + [Fact] + public void ParseUriArray_SingleUrl_ReturnsSingleElementArray() + { + var sut = new TestableBaseCommand(); + var result = sut.InvokeParseUriArray("https://example.com"); + result.Should().NotBeNull(); + result.Should().HaveCount(1); + result[0].ToString().Should().Be("https://example.com/"); + } + + // ------------------------------------------------------------------------- + // ParseUriArray — multiple tokens + // ------------------------------------------------------------------------- + + [Fact] + public void ParseUriArray_MultipleUrls_ReturnsAllUris() + { + var sut = new TestableBaseCommand(); + var result = sut.InvokeParseUriArray("https://feed1.example.com", "https://feed2.example.com"); + result.Should().NotBeNull(); + result.Should().HaveCount(2); + result[0].ToString().Should().Be("https://feed1.example.com/"); + result[1].ToString().Should().Be("https://feed2.example.com/"); + } + + // ------------------------------------------------------------------------- + // ParseUriArray — multiple tokens with some empty + // ------------------------------------------------------------------------- + + [Fact] + public void ParseUriArray_MultipleUrlsWithEmptyToken_IsIgnored() + { + var sut = new TestableBaseCommand(); + var inputs = new[] { "https://example.com", "", "https://example.org" }; + var result = sut.InvokeParseUriArray(inputs); + + result.Should().NotBeNull(); + result.Should().HaveCount(2); + result[0].ToString().Should().Be("https://example.com/"); + result[1].ToString().Should().Be("https://example.org/"); + } + + + // ------------------------------------------------------------------------- + // ParseUriArray — mixed absolute and UNC + // ------------------------------------------------------------------------- + + [Fact] + public void ParseUriArray_MixedInputs_ParsesAll() + { + var sut = new TestableBaseCommand(); + var result = sut.InvokeParseUriArray("https://example.com", @"\\server\share"); + result.Should().NotBeNull(); + result.Should().HaveCount(2); + result[0].Scheme.Should().Be("https"); + result[1].Scheme.Should().Be("file"); + } +} diff --git a/tests/Specs/DEEValidator.cs b/tests/Specs/DEEValidator.cs index a8353e2ed..1aadb3428 100644 --- a/tests/Specs/DEEValidator.cs +++ b/tests/Specs/DEEValidator.cs @@ -1,7 +1,6 @@ using Cmf.CLI.Commands; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.IO; using System.IO.Abstractions.TestingHelpers; using tests.Objects; using Xunit; @@ -142,9 +141,10 @@ public void Data_DEEValidator_HappyPath() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(console.Error == null || string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed {console.Error.ToString()}"); } @@ -215,9 +215,10 @@ public void Data_DEEValidator_AlternateTags(string startConditionTag, string end buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(string.IsNullOrEmpty(console.Error.ToString()) == !shouldError, $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); Assert.True(console.Error.ToString().Contains("Missing indicators:") == shouldError, $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); @@ -297,9 +298,10 @@ public void Data_DEEValidator_FailPath_Indicators(bool noStartCondition, bool no buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(!string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); Assert.True(console.Error.ToString().Contains("Missing indicators:"), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); @@ -355,9 +357,10 @@ public void Data_DEEValidator_FailPath_UseReference() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(!string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); Assert.True(console.Error.ToString().Contains("UseReference contains a whitespace, please refer to the valid format UseReference"), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); @@ -417,9 +420,10 @@ public void Data_DEEValidator_DetailedMissingIndicators() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); var errorOutput = console.Error.ToString(); @@ -432,4 +436,4 @@ public void Data_DEEValidator_DetailedMissingIndicators() "Error message should specify the missing end code indicator"); } } -} +} \ No newline at end of file diff --git a/tests/Specs/Init.cs b/tests/Specs/Init.cs index b138ec0f7..a42b2c30d 100644 --- a/tests/Specs/Init.cs +++ b/tests/Specs/Init.cs @@ -8,8 +8,6 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.IO; -using System.CommandLine.Parsing; using System.IO; using System.Linq; using Cmf.CLI.Services; @@ -33,9 +31,10 @@ public Init() newCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new[] { + var parseResult = cmd.Parse(new[] { "--reset" - }, console); + }); + parseResult.Invoke(console); } [Theory] @@ -1251,4 +1250,4 @@ public void Init_TenantCommandLineOverridesConfigFile_NoDuplicateKeyError() } } } -} +} \ No newline at end of file diff --git a/tests/Specs/JsonValidator.cs b/tests/Specs/JsonValidator.cs index 0ec7f01a4..8da5d79e0 100644 --- a/tests/Specs/JsonValidator.cs +++ b/tests/Specs/JsonValidator.cs @@ -1,7 +1,6 @@ using Cmf.CLI.Commands; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.IO; using System.IO.Abstractions.TestingHelpers; using tests.Objects; using Xunit; @@ -72,10 +71,10 @@ public void Data_JsonValidator_HappyPath() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); - + }); + parseResult.Invoke(console); Assert.True(console.Error == null || string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed {console.Error.ToString()}"); } @@ -141,9 +140,10 @@ public void Data_JsonValidator_FailData() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(console.Error != null && !string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed for Data Package: {console.Error.ToString()}"); } @@ -248,9 +248,10 @@ public void IoTData_JsonValidator_FailData() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(console.Error != null && !string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed for IoT Data Package: {console.Error.ToString()}"); } @@ -355,9 +356,10 @@ public void IoTData_Workflow_JsonValidator_FailData() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(!string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed for IoT Data Workflow Package: {console.Error.ToString()}"); } @@ -434,9 +436,10 @@ public void Data_JsonValidator_HappyPath_Workflow() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(console.Error == null || string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed {console.Error.ToString()}"); } @@ -513,9 +516,10 @@ public void Data_JsonValidator_Fail_BackSlash() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(!string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); Assert.True(console.Error.ToString().Contains("Please normalize all slashes to be forward slashes"), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); @@ -1021,9 +1025,10 @@ public void Data_JsonValidator_HappyPath_SubWorkflow() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(console.Error == null || string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed {console.Error.ToString()}"); } @@ -1528,9 +1533,10 @@ public void Data_JsonValidator_FailPath_SubWorkflow_NotFoundFile() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(!string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); Assert.True(console.Error.ToString().Contains("Could not find the path Error for the Workflow"), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); @@ -2036,9 +2042,10 @@ public void Data_JsonValidator_FailPath_SubWorkflow_NotFoundWorkflow() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(!string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); Assert.True(console.Error.ToString().Contains("The subworkflow Error is mentioned but there is no workflow declared with that name"), $"Json Validator did not fail for IoT Data Workflow Package: {console.Error.ToString()}"); @@ -2114,9 +2121,10 @@ public void Data_JsonValidator_HappyPath_EmptyIsFile() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/Data/" - }, console); + }); + parseResult.Invoke(console); Assert.True(console.Error == null || string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed with empty IsFile: {console.Error?.ToString()}"); } @@ -2250,9 +2258,10 @@ public void Data_JsonValidator_Repeated_Keys_IoT_Event_Definition() buildCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new string[] { + var parseResult = cmd.Parse(new string[] { "test/" - }, console); + }); + parseResult.Invoke(console); Assert.True(console.Error == null || string.IsNullOrEmpty(console.Error.ToString()), $"Json Validator failed with repeated keys on different levels in arrays: {console.Error?.ToString()}"); } diff --git a/tests/Specs/ListDependencies.cs b/tests/Specs/ListDependencies.cs index ca21834cf..5f58ae2bd 100644 --- a/tests/Specs/ListDependencies.cs +++ b/tests/Specs/ListDependencies.cs @@ -2,9 +2,7 @@ using System.IO.Abstractions.TestingHelpers; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.NamingConventionBinder; -using System.CommandLine.IO; -using System.CommandLine.Parsing; +using System.Threading.Tasks; using System.IO; using System.IO.Abstractions; using System.Linq; @@ -13,7 +11,6 @@ using Cmf.CLI.Commands; using Cmf.CLI.Utilities; -using Cmf.Common.Cli.TestUtilities; using tests.Objects; using Assert = tests.AssertWithMessage; using Xunit; @@ -227,17 +224,21 @@ public void Args_MultiRepo() var cmd = new Command("ls"); listDependenciesCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, repos) => - { - _workingDir = workingDir.Name; - _repos = repos?.Select(uri => uri.OriginalString).ToArray(); - }); + var workingDirArg = cmd.Arguments.FirstOrDefault(a => a.Name == "workingDir") as Argument; + var reposOpt = cmd.Options.FirstOrDefault(o => o.Name == "repos" || o.Aliases.Any(a => a == "--repos" || a == "-r")) as Option; + + cmd.SetAction((parseResult, cancellationToken) => + { + _workingDir = parseResult.GetValue(workingDirArg)?.Name; + _repos = parseResult.GetValue(reposOpt)?.Select(uri => uri.OriginalString).ToArray(); + return Task.FromResult(0); + }); var console = new TestConsole(); - cmd.Invoke(new[] { - "-r", "d:\\xpto", "-r", "e:\\packages" - }, console); + var parseResult = cmd.Parse(new string[] { + "-r", "d:\\xpto", "-r", "e:\\packages" + }); + parseResult.Invoke(console); var curDir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory()); Assert.Equal(curDir.Name, _workingDir, "working dir does not match expected"); @@ -256,17 +257,22 @@ public void Args_MultiRepo_UrlLocalMix() var cmd = new Command("ls"); listDependenciesCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, repos) => - { - _workingDir = workingDir.Name; - _repos = repos; - }); + var workingDirArg = cmd.Arguments.FirstOrDefault(a => a.Name == "workingDir") as Argument; + var reposOpt = cmd.Options.FirstOrDefault(o => o.Name == "repos" || o.Aliases.Any(a => a == "--repos" || a == "-r")) as Option; + + cmd.SetAction((parseResult, cancellationToken) => + { + _workingDir = parseResult.GetValue(workingDirArg)?.Name; + _repos = parseResult.GetValue(reposOpt); + return Task.FromResult(0); + }); var console = new TestConsole(); - cmd.Invoke(new[] { - "-r", "d:\\xpto", "-r", "http://repository.example" - }, console); + + var parseResult = cmd.Parse(new string[] { + "-r", "d:\\xpto", "-r", "http://repository.example" + }); + parseResult.Invoke(console); var curDir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory()); Assert.Equal(curDir.Name, _workingDir, "working dir does not match expected"); @@ -287,18 +293,21 @@ public void Args_MultiRepo_RelativeDirectory() var cmd = new Command("ls"); listDependenciesCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, repos) => - { - _workingDir = workingDir.Name; - _repos = repos; - }); + var workingDirArg = cmd.Arguments.FirstOrDefault(a => a.Name == "workingDir") as Argument; + var reposOpt = cmd.Options.FirstOrDefault(o => o.Name == "repos" || o.Aliases.Any(a => a == "--repos" || a == "-r")) as Option; + + cmd.SetAction((parseResult, cancellationToken) => + { + _workingDir = parseResult.GetValue(workingDirArg)?.Name; + _repos = parseResult.GetValue(reposOpt); + return Task.FromResult(0); + }); var console = new TestConsole(); - cmd.Invoke(new[] { + var parseResult = cmd.Parse(new string[] { "-r", "..\\xpto", "-r", "\\root_dir" - }, console); - + }); + parseResult.Invoke(console); var curDir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory()); Assert.Equal(curDir.Name, _workingDir, "working dir does not match expected"); Assert.Equal(2, _repos.Length, "Expecting 2 repositories"); @@ -317,18 +326,21 @@ public void Args_SingleRepo() var cmd = new Command("ls"); listDependenciesCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, repos) => - { - _workingDir = workingDir.Name; - _repos = repos?.Select(uri => uri.OriginalString).ToArray(); - }); + var workingDirArg = cmd.Arguments.FirstOrDefault(a => a.Name == "workingDir") as Argument; + var reposOpt = cmd.Options.FirstOrDefault(o => o.Name == "repos" || o.Aliases.Any(a => a == "--repos" || a == "-r")) as Option; + + cmd.SetAction((parseResult, cancellationToken) => + { + _workingDir = parseResult.GetValue(workingDirArg)?.Name; + _repos = parseResult.GetValue(reposOpt)?.Select(uri => uri.OriginalString).ToArray(); + return Task.FromResult(0); + }); var console = new TestConsole(); - cmd.Invoke(new[] { + var parseResult = cmd.Parse(new string[] { "-r", "d:\\xpto" - }, console); - + }); + parseResult.Invoke(console); var curDir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory()); Assert.Equal(curDir.Name, _workingDir, "working dir does not match expected"); Assert.Equal(1, _repos.Length, "Expecting 2 repositories"); diff --git a/tests/Specs/Logging.cs b/tests/Specs/Logging.cs index f8c905fab..2d1647bb5 100644 --- a/tests/Specs/Logging.cs +++ b/tests/Specs/Logging.cs @@ -28,7 +28,11 @@ public StringWriter GetLogStringWriter() _writer = new StringWriter(); Environment.SetEnvironmentVariable("cmf_cli_loglevel", null); - LoggerHelpers.LogLevelOption.Parse(""); // reset to default log level + // In beta5, Option.Parse() doesn't exist - use a temporary command to parse and trigger default value + var tempCmd = new Command("temp"); + tempCmd.Add(LoggerHelpers.LogLevelOption); + tempCmd.Parse(Array.Empty()); + Log.AnsiConsole = AnsiConsole.Create(new AnsiConsoleSettings { Ansi = AnsiSupport.Yes, @@ -72,7 +76,11 @@ public void LogDebug_WhenDebug_Assign() public void LogDebug_WhenDebug_Option() { // System.Environment.SetEnvironmentVariable("cmf:cli:loglevel", "debug"); - LoggerHelpers.LogLevelOption.Parse("--loglevel debug"); + // In beta5, Option.Parse() doesn't exist - use a temporary command to parse + var tempCmd = new Command("temp"); + tempCmd.Add(LoggerHelpers.LogLevelOption); + var parseResult = tempCmd.Parse(new[] { "--loglevel", "debug" }); + parseResult.GetValue(LoggerHelpers.LogLevelOption); // trigger the custom parser // Log.Level = LogLevel.Debug; // var root = Program.Main(new string[] { "--loglevel", "debug", "ls" }); @@ -86,7 +94,11 @@ public void LogDebug_WhenDebug_Option() public void LogDebug_WhenDebug_Environment() { System.Environment.SetEnvironmentVariable("cmf_cli_loglevel", "debug"); - LoggerHelpers.LogLevelOption.Parse(""); // invoke rootCommand option parser to set environment value + // In beta5, Option.Parse() doesn't exist - use a temporary command to parse and trigger default value + var tempCmd = new Command("temp"); + tempCmd.Add(LoggerHelpers.LogLevelOption); + var parseResult = tempCmd.Parse(Array.Empty()); + parseResult.GetValue(LoggerHelpers.LogLevelOption); // trigger the custom parser to read env var // --loglevel debug // Log.Level = LogLevel.Debug; diff --git a/tests/Specs/New.cs b/tests/Specs/New.cs index 147f1213f..b07790e33 100644 --- a/tests/Specs/New.cs +++ b/tests/Specs/New.cs @@ -11,8 +11,6 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.IO; -using System.CommandLine.Parsing; using System.IO; using System.IO.Abstractions; using System.IO.Abstractions.TestingHelpers; @@ -103,9 +101,11 @@ public New(NpmLoginFixture npmLoginFixture) newCommand.Configure(cmd); var console = new TestConsole(); - cmd.Invoke(new[] { + var parseResult = cmd.Parse(new string[] { "--reset" - }, console); + }); + parseResult.Invoke(console); + } [Theory, Trait("TestCategory", "Integration")] diff --git a/tests/Specs/Pack.cs b/tests/Specs/Pack.cs index f4a5cd633..d8c2767c0 100644 --- a/tests/Specs/Pack.cs +++ b/tests/Specs/Pack.cs @@ -16,8 +16,7 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.IO; -using System.CommandLine.NamingConventionBinder; +using System.Threading.Tasks; using System.IO; using System.IO.Abstractions; using System.IO.Abstractions.TestingHelpers; @@ -29,6 +28,7 @@ using tests.Objects; using Xunit; + namespace tests.Specs { public class Pack @@ -55,18 +55,24 @@ public void Args_Paths_BothSpecified() var cmd = new Command("pack"); packCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, outputDir, repo, force, skipDependencies) => + // Get the arguments/options that were configured + var workingDirArg = cmd.Arguments.FirstOrDefault(a => a.Name == "workingDir") as Argument; + var outputDirOpt = cmd.Options.FirstOrDefault(o => o.Name == "outputDir" || o.Aliases.Any(a => a == "--outputDir" || a == "-o")) as Option; + var forceOpt = cmd.Options.FirstOrDefault(o => o.Name == "force" || o.Aliases.Any(a => a == "--force" || a == "-f")) as Option; + + cmd.SetAction((parseResult, cancellationToken) => { - _workingDir = workingDir.Name; - _outputDir = outputDir.Name; - _force = force; + _workingDir = parseResult.GetValue(workingDirArg)?.Name; + _outputDir = parseResult.GetValue(outputDirOpt)?.Name; + _force = parseResult.GetValue(forceOpt); + return Task.FromResult(0); }); var console = new TestConsole(); - cmd.Invoke(new[] { + var parseResult = cmd.Parse(new string[] { "-o", "test_package_dir", "working_dir" - }, console); + }); + parseResult.Invoke(console); Assert.Equal("working_dir", _workingDir); Assert.Equal("test_package_dir", _outputDir); @@ -85,18 +91,23 @@ public void Args_Paths_WorkDirSpecified() var cmd = new Command("pack"); packCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, outputDir, repo, force, skipDependencies) => + var workingDirArg = cmd.Arguments.FirstOrDefault(a => a.Name == "workingDir") as Argument; + var outputDirOpt = cmd.Options.FirstOrDefault(o => o.Name == "outputDir" || o.Aliases.Any(a => a == "--outputDir" || a == "-o")) as Option; + var forceOpt = cmd.Options.FirstOrDefault(o => o.Name == "force" || o.Aliases.Any(a => a == "--force" || a == "-f")) as Option; + + cmd.SetAction((parseResult, cancellationToken) => { - _workingDir = workingDir.Name; - _outputDir = outputDir.Name; - _force = force; + _workingDir = parseResult.GetValue(workingDirArg)?.Name; + _outputDir = parseResult.GetValue(outputDirOpt)?.Name; + _force = parseResult.GetValue(forceOpt); + return Task.FromResult(0); }); var console = new TestConsole(); - cmd.Invoke(new[] { - "working_dir" - }, console); + var parseResult = cmd.Parse(new string[] { + "working_dir" + }); + parseResult.Invoke(console); Assert.Equal("working_dir", _workingDir); Assert.Equal("Package", _outputDir); @@ -115,18 +126,23 @@ public void Args_Paths_OutDirSpecified() var cmd = new Command("pack"); packCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, outputDir, repo, force, skipDependencies) => + var workingDirArg = cmd.Arguments.FirstOrDefault(a => a.Name == "workingDir") as Argument; + var outputDirOpt = cmd.Options.FirstOrDefault(o => o.Name == "outputDir" || o.Aliases.Any(a => a == "--outputDir" || a == "-o")) as Option; + var forceOpt = cmd.Options.FirstOrDefault(o => o.Name == "force" || o.Aliases.Any(a => a == "--force" || a == "-f")) as Option; + + cmd.SetAction((parseResult, cancellationToken) => { - _workingDir = workingDir.Name; - _outputDir = outputDir.Name; - _force = force; + _workingDir = parseResult.GetValue(workingDirArg)?.Name; + _outputDir = parseResult.GetValue(outputDirOpt)?.Name; + _force = parseResult.GetValue(forceOpt); + return Task.FromResult(0); }); var console = new TestConsole(); - cmd.Invoke(new[] { - "-o", "test_package_dir" - }, console); + var parseResult = cmd.Parse(new string[] { + "-o", "test_package_dir" + }); + parseResult.Invoke(console); var curDir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory()); Assert.Equal(curDir.Name, _workingDir); @@ -146,18 +162,22 @@ public void Args_Paths_NoneSpecified() var cmd = new Command("pack"); packCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, outputDir, repo, force, skipDependencies) => + var workingDirArg = cmd.Arguments.FirstOrDefault(a => a.Name == "workingDir") as Argument; + var outputDirOpt = cmd.Options.FirstOrDefault(o => o.Name == "outputDir" || o.Aliases.Any(a => a == "--outputDir" || a == "-o")) as Option; + var forceOpt = cmd.Options.FirstOrDefault(o => o.Name == "force" || o.Aliases.Any(a => a == "--force" || a == "-f")) as Option; + + cmd.SetAction((parseResult, cancellationToken) => { - _workingDir = workingDir.Name; - _outputDir = outputDir.Name; - _force = force; + _workingDir = parseResult.GetValue(workingDirArg)?.Name; + _outputDir = parseResult.GetValue(outputDirOpt)?.Name; + _force = parseResult.GetValue(forceOpt); + return Task.FromResult(0); }); - var console = new TestConsole(); - cmd.Invoke(new string[] { - }, console); + var console = new TestConsole(); + var parseResult = cmd.Parse(new string[]{}); + parseResult.Invoke(console); var curDir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory()); Assert.Equal(curDir.Name, _workingDir); @@ -392,9 +412,8 @@ public void Pack_SecurityPortal() packCommand.Configure(cmd); TestConsole console = new TestConsole(); - cmd.Invoke(new string[] { - }, console); - + var parseResult = cmd.Parse(new string[]{}); + parseResult.Invoke(console); DirectoryInfo curDir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory()); Assert.True(Directory.Exists($"{dir}/Package"), "Package folder is missing"); @@ -440,8 +459,8 @@ public void Pack_App() packCommand.Configure(cmd); TestConsole console = new(); - cmd.Invoke(Array.Empty(), console); - + var parseResult = cmd.Parse(Array.Empty()); + parseResult.Invoke(console); DirectoryInfo curDir = new(System.IO.Directory.GetCurrentDirectory()); Assert.True(Directory.Exists($"{dir}/Package"), "Package folder is missing"); @@ -528,7 +547,8 @@ public void Pack_AppFeature() packCommand.Configure(cmd); TestConsole console = new(); - cmd.Invoke(Array.Empty(), console); + var parseResult = cmd.Parse(Array.Empty()); + parseResult.Invoke(console); DirectoryInfo curDir = new(System.IO.Directory.GetCurrentDirectory()); @@ -577,8 +597,9 @@ public void Pack_SecurityPortalV2() packCommand.Configure(cmd); TestConsole console = new TestConsole(); - cmd.Invoke(new string[] { - }, console); + + var parseResult = cmd.Parse(new string[] {}); + parseResult.Invoke(console); DirectoryInfo curDir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory()); diff --git a/tests/Specs/Publish.cs b/tests/Specs/Publish.cs index a61fb17b4..4d8fef040 100644 --- a/tests/Specs/Publish.cs +++ b/tests/Specs/Publish.cs @@ -1,12 +1,10 @@ using System; using Xunit; using System.CommandLine; -using System.CommandLine.Invocation; using System.IO.Abstractions; using Moq; using Cmf.CLI.Commands; -using System.CommandLine.NamingConventionBinder; -using System.CommandLine.IO; +using System.Threading.Tasks; using System.Collections.Generic; using System.Formats.Tar; using System.IO.Abstractions.TestingHelpers; @@ -23,6 +21,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using tests.Mocks; +using System.Linq; namespace tests.Specs; @@ -40,20 +39,24 @@ public void Repository_Arg_ParsedCorrectly(string expectedHost, string inputRepo var cmd = new Command("publish"); publishCommand.Configure(cmd); + var fileArg = cmd.Arguments.FirstOrDefault(a => a.Name == "file") as Argument; + var repositoryOpt = cmd.Options.OfType>().FirstOrDefault(); + IFileInfo _file = null; Uri _repository = null; - cmd.Handler = CommandHandler.Create(( - file, repository) => + + cmd.SetAction((parseResult, cancellationToken) => { - _file = file; - _repository = repository; - } - ); + _file = parseResult.GetValue(fileArg); + _repository = parseResult.GetValue(repositoryOpt); + return Task.FromResult(0); + }); var console = new TestConsole(); - cmd.Invoke(new[] { + var parseResult = cmd.Parse(new[] { inputFile, "--repository", inputRepository - }, console); + }); + parseResult.Invoke(console); Assert.Equal(inputFile, _file.FullName); Assert.Equal(inputRepository, _repository.OriginalString); diff --git a/tests/Specs/Telemetry.cs b/tests/Specs/Telemetry.cs index 87c455d7e..a7cbdceee 100644 --- a/tests/Specs/Telemetry.cs +++ b/tests/Specs/Telemetry.cs @@ -175,7 +175,8 @@ public async Task SimulatePluginTelemetryBehavior() mockNpmClient.Setup(c => c.GetLatestVersion(false)).Returns(() => Task.FromResult("2.0.0")); // Call Configure to initialize DI and telemetry - var (rootCommand, parser) = await StartupModule.Configure( + // In beta5, Configure returns just RootCommand (not a tuple) + var rootCommand = await StartupModule.Configure( packageId: "plugin-test", envVarPrefix: "plugin_test", description: "Plugin Test", diff --git a/tests/TestConsole.cs b/tests/TestConsole.cs new file mode 100644 index 000000000..199962af9 --- /dev/null +++ b/tests/TestConsole.cs @@ -0,0 +1,93 @@ +using System.CommandLine; +using System.IO; + +namespace tests +{ + /// + /// Test console implementation for System.CommandLine beta5+ + /// Replaces the removed IConsole/TestConsole from beta4 + /// + public class TestConsole + { + private readonly StringWriter _out; + private readonly StringWriter _error; + + public TestConsole() + { + _out = new StringWriter(); + _error = new StringWriter(); + } + + public StringWriter Out => _out; + public StringWriter Error => _error; + } + + /// + /// Command wrapper to support beta4-style Invoke(args, console) pattern + /// + public class CommandWrapper + { + private readonly Command _command; + + public CommandWrapper(Command command) + { + _command = command; + } + + public int Invoke(string[] args, TestConsole console) + { + var parseResult = _command.Parse(args); + return parseResult.Invoke(console); + } + + public async System.Threading.Tasks.Task InvokeAsync(string[] args, TestConsole console) + { + var parseResult = _command.Parse(args); + return await parseResult.InvokeAsync(console); + } + } + + /// + /// Extension methods for ParseResult to support TestConsole + /// + public static class ParseResultExtensions + { + public static int Invoke(this ParseResult parseResult, TestConsole console) + { + // In beta5, we need to redirect Console.Out and Console.Error temporarily + var originalOut = System.Console.Out; + var originalError = System.Console.Error; + + try + { + System.Console.SetOut(console.Out); + System.Console.SetError(console.Error); + return parseResult.Invoke(); + } + finally + { + System.Console.SetOut(originalOut); + System.Console.SetError(originalError); + } + } + + public static async System.Threading.Tasks.Task InvokeAsync(this ParseResult parseResult, TestConsole console) + { + // In beta5, we need to redirect Console.Out and Console.Error temporarily + var originalOut = System.Console.Out; + var originalError = System.Console.Error; + + try + { + System.Console.SetOut(console.Out); + System.Console.SetError(console.Error); + return await parseResult.InvokeAsync(); + } + finally + { + System.Console.SetOut(originalOut); + System.Console.SetError(originalError); + } + } + } +} diff --git a/tests/Utilities/TestUtilities.cs b/tests/Utilities/TestUtilities.cs index a86611899..ba2537243 100644 --- a/tests/Utilities/TestUtilities.cs +++ b/tests/Utilities/TestUtilities.cs @@ -1,22 +1,18 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.Builder; -using System.CommandLine.IO; -using System.CommandLine.Parsing; using System.Diagnostics; using System.IO; using System.IO.Abstractions; using System.IO.Compression; using System.Linq; using System.Reflection; -using System.Runtime.CompilerServices; using System.Text.Json; using System.Threading.Tasks; using Cmf.CLI.Commands; using Cmf.CLI.Core.Attributes; using FluentAssertions; -using Xunit; +using tests; namespace Cmf.Common.Cli.TestUtilities { @@ -147,25 +143,18 @@ public static List GetFileEntriesFromZip(string packageFile) } /// - /// Create a minimal parser to invoke commands with - /// The default parser brings a lot of extras that we don't require in the tests + /// Returns a CommandWrapper that supports beta4-style Invoke(args, console) pattern /// /// /// - public static Parser GetParser(Command cmd) + public static CommandWrapper GetParser(Command cmd) { - return new CommandLineBuilder(cmd) - .UseEnvironmentVariableDirective() - .UseParseDirective() - .UseParseErrorReporting() - .UseExceptionHandler() - .CancelOnProcessTermination() - .Build(); + // In beta5, wrap the command to support the old Parser.Invoke(args, console) pattern + return new CommandWrapper(cmd); } /// - /// Create a minimal parser to invoke commands with - /// The default parser brings a lot of extras that we don't require in the tests + /// Invoke command with test console /// /// /// @@ -177,7 +166,8 @@ public static void TestInvoke(T cmd, string[] args) var root = new Command("cmf"); cmd.Configure(root); - var result = GetParser(root).Invoke(args, console); + var parseResult = root.Parse(args); + var result = parseResult.Invoke(console); if (result != 0) { @@ -186,8 +176,7 @@ public static void TestInvoke(T cmd, string[] args) } /// - /// Create a minimal parser to invoke commands with - /// The default parser brings a lot of extras that we don't require in the tests + /// Invoke command asynchronously with test console /// /// /// @@ -197,7 +186,8 @@ public static async Task TestInvokeAsync(T cmd, string[] args, bool setupPare var console = new TestConsole(); var attr = cmd.GetType().GetCustomAttributes(false).First(); - var root= new Command(attr.Name) { IsHidden = attr.IsHidden, Description = attr.Description }; + var root= new Command(attr.Name) { Description = attr.Description }; + // Note: IsHidden property was removed in System.CommandLine beta5 cmd.Configure(root); if (setupParents) @@ -217,8 +207,9 @@ public static async Task TestInvokeAsync(T cmd, string[] args, bool setupPare currentCmd = parentCmd; // Create command - var cmdInstance = new Command(parentCmd.attribute.Name) { IsHidden = parentCmd.attribute.IsHidden, Description = parentCmd.attribute.Description }; - cmdInstance.AddCommand(root); + var cmdInstance = new Command(parentCmd.attribute.Name) { Description = parentCmd.attribute.Description }; + // Note: IsHidden property was removed in System.CommandLine beta5 + cmdInstance.Add(root); root = cmdInstance; // Call "Configure" method @@ -228,7 +219,8 @@ public static async Task TestInvokeAsync(T cmd, string[] args, bool setupPare } } - var result = await GetParser(root).InvokeAsync(args, console); + var parseResult = root.Parse(args); + var result = await parseResult.InvokeAsync(console); if (result != 0) { diff --git a/tests/tests.csproj b/tests/tests.csproj index 12971134c..74c50094d 100644 --- a/tests/tests.csproj +++ b/tests/tests.csproj @@ -14,6 +14,7 @@ + From fbbfc4a8866d48bc9c94478ea92f9dde8ccec564 Mon Sep 17 00:00:00 2001 From: Skidz0r <61596013+Skidz0r@users.noreply.github.com> Date: Mon, 2 Mar 2026 11:37:12 +0000 Subject: [PATCH 05/20] chore: removing support for datapackage v1 (#656) * chore: removing support for datapackage v1 * chore: improving package factory condition * chore: removing additional installdependencies references --------- Co-authored-by: Rui Jorge --- cmf-cli/Constants/CliConstants.cs | 5 - cmf-cli/Factories/PackageTypeFactory.cs | 6 +- .../PackageType/DataPackageTypeHandler.cs | 84 - .../PackageType/IoTDataPackageTypeHandler.cs | 104 - .../PackageType/IoTPackageTypeHandler.cs | 9 - .../PackageType/PackageTypeHandler.cs | 15 - cmf-cli/cmf.csproj | 10 - .../CMFInstallActions/CMFDatabaseActions.psm1 | 1363 ----- .../CMFInstallActions/CMFInstallActions.psd1 | Bin 7996 -> 0 bytes .../CMFInstallActions/CMFInstallActions.psm1 | 5391 ----------------- .../CustomizationInstall.ps1 | 639 -- .../Data/CMFInstallActions/DownTimeConfig.xdt | 6 - .../EnvironmentConfigParser.ps1 | 194 - .../CMFInstallActions/InvokeMasterData.ps1 | 122 - .../References/Cmf.Encrypt.Utils.dll | Bin 6656 -> 0 bytes .../Microsoft.SqlServer.BatchParserClient.dll | Bin 76888 -> 0 bytes .../Microsoft.SqlServer.ConnectionInfo.dll | Bin 171504 -> 0 bytes ...Microsoft.SqlServer.Management.Sdk.Sfc.dll | Bin 507376 -> 0 bytes .../References/Microsoft.SqlServer.Smo.dll | Bin 3644928 -> 0 bytes .../Microsoft.SqlServer.SmoExtended.dll | Bin 232960 -> 0 bytes .../Microsoft.SqlServer.SqlClrProvider.dll | Bin 31936 -> 0 bytes .../Microsoft.SqlServer.SqlEnum.dll | Bin 1334784 -> 0 bytes .../References/Microsoft.Web.XmlTransform.dll | Bin 81584 -> 0 bytes .../CMFInstallActions/References/appSettings | 13 - .../microsoft.sqlserver.batchparser.dll | Bin 553048 -> 0 bytes .../Data/CMFInstallActions/UpTimeConfig.xdt | 6 - .../Data/EnvironmentConfigs/DF.json | 0 .../EnvironmentConfigs/GlobalVariables.yml | 2 - .../installDependencies/Data/GenerateLBOs.ps1 | 31 - .../Data/RunCustomizationInstallDF.ps1 | 73 - .../runtimePackages/PublishToDirectory.ps1 | 38 - .../runtimePackages/PublishToRepository.bat | 17 - .../runtimePackages/PublishToRepository.ps1 | 71 - .../runtimePackages/ValidateIoTInstall.ps1 | 12 - cmf-cli/installDependencies/readme.md | 2 - core/Constants/CoreConstants.cs | 9 - core/Utilities/FileSystemUtilities.cs | 12 - 37 files changed, 2 insertions(+), 8232 deletions(-) delete mode 100644 cmf-cli/Handlers/PackageType/DataPackageTypeHandler.cs delete mode 100644 cmf-cli/Handlers/PackageType/IoTDataPackageTypeHandler.cs delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/CMFDatabaseActions.psm1 delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/CMFInstallActions.psd1 delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/CMFInstallActions.psm1 delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/CustomizationInstall.ps1 delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/DownTimeConfig.xdt delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/EnvironmentConfigParser.ps1 delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/InvokeMasterData.ps1 delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Cmf.Encrypt.Utils.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.BatchParserClient.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.ConnectionInfo.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.Management.Sdk.Sfc.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.Smo.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.SmoExtended.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.SqlClrProvider.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.SqlEnum.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.Web.XmlTransform.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/appSettings delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/References/microsoft.sqlserver.batchparser.dll delete mode 100644 cmf-cli/installDependencies/Data/CMFInstallActions/UpTimeConfig.xdt delete mode 100644 cmf-cli/installDependencies/Data/EnvironmentConfigs/DF.json delete mode 100644 cmf-cli/installDependencies/Data/EnvironmentConfigs/GlobalVariables.yml delete mode 100644 cmf-cli/installDependencies/Data/GenerateLBOs.ps1 delete mode 100644 cmf-cli/installDependencies/Data/RunCustomizationInstallDF.ps1 delete mode 100644 cmf-cli/installDependencies/IoT/runtimePackages/PublishToDirectory.ps1 delete mode 100644 cmf-cli/installDependencies/IoT/runtimePackages/PublishToRepository.bat delete mode 100644 cmf-cli/installDependencies/IoT/runtimePackages/PublishToRepository.ps1 delete mode 100644 cmf-cli/installDependencies/IoT/runtimePackages/ValidateIoTInstall.ps1 delete mode 100644 cmf-cli/installDependencies/readme.md diff --git a/cmf-cli/Constants/CliConstants.cs b/cmf-cli/Constants/CliConstants.cs index c0c059d7d..038cfee4a 100644 --- a/cmf-cli/Constants/CliConstants.cs +++ b/cmf-cli/Constants/CliConstants.cs @@ -14,11 +14,6 @@ public static class CliConstants /// public const string FolderTemplates = "templateFiles"; - /// - /// The folder install dependencies - /// - public const string FolderInstallDependencies = "installDependencies"; - /// /// Tests Folder /// diff --git a/cmf-cli/Factories/PackageTypeFactory.cs b/cmf-cli/Factories/PackageTypeFactory.cs index 642b6559a..7640986be 100644 --- a/cmf-cli/Factories/PackageTypeFactory.cs +++ b/cmf-cli/Factories/PackageTypeFactory.cs @@ -50,14 +50,12 @@ public static IPackageTypeHandler GetPackageTypeHandler(CmfPackage cmfPackage, b PackageType.IoT => new IoTPackageTypeHandler(cmfPackage), PackageType.IoTData => cmfPackage.HandlerVersion switch { - 2 => new IoTDataPackageTypeHandlerV2(cmfPackage), - 1 => new IoTDataPackageTypeHandler(cmfPackage), + 1 => throw new CliException("Support for V1 Data packages was removed in CLI 6.0.0"), _ => new IoTDataPackageTypeHandlerV2(cmfPackage) }, PackageType.Data => cmfPackage.HandlerVersion switch { - 2 => new DataPackageTypeHandlerV2(cmfPackage), - 1 => new DataPackageTypeHandler(cmfPackage), + 1 => throw new CliException("Support for V1 Data packages was removed in CLI 6.0.0"), _ => new DataPackageTypeHandlerV2(cmfPackage) }, PackageType.Reporting => new ReportingPackageTypeHandler(cmfPackage), diff --git a/cmf-cli/Handlers/PackageType/DataPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/DataPackageTypeHandler.cs deleted file mode 100644 index 3e960193c..000000000 --- a/cmf-cli/Handlers/PackageType/DataPackageTypeHandler.cs +++ /dev/null @@ -1,84 +0,0 @@ - -using System; -using System.Collections.Generic; -using System.IO; -using System.IO.Abstractions; -using Cmf.CLI.Builders; -using Cmf.CLI.Constants; -using Cmf.CLI.Core; -using Cmf.CLI.Core.Enums; -using Cmf.CLI.Core.Objects; -using Cmf.CLI.Utilities; - -namespace Cmf.CLI.Handlers -{ - /// - /// - /// - /// - public class DataPackageTypeHandler : PackageTypeHandler - { - /// - /// Initializes a new instance of the class. - /// - /// The CMF package. - public DataPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) - { - Log.Debug("Using Data Handler v1"); - // TargetDirectory with DateTimeStamp to avoid wrong files installation - cmfPackage.SetDefaultValues - ( - isUniqueInstall: - true, - targetDirectory: - $"installPackages/{cmfPackage.PackageId}.{cmfPackage.Version}-{DateTime.Now.ToString("yyyyMMddHHmmss")}", - steps: - new List() - { - new Step(StepType.DeployFiles) - { - ContentPath = "**/**" - }, - new Step(StepType.Generic) - { - OnExecute = $"$(Package[{cmfPackage.PackageId}].TargetDirectory)/RunCustomizationInstallDF.ps1" - } - } - ); - - BuildSteps = new IBuildCommand[] - { - new JSONValidatorCommand() - { - DisplayName = "JSON Validator Command", - FilesToValidate = GetContentToPack(this.fileSystem.DirectoryInfo.New(".")) - } - }; - - cmfPackage.DFPackageType = PackageType.Business; - } - - /// - /// Copies the install dependencies. - /// - /// The package output dir. - protected override void CopyInstallDependencies(IDirectoryInfo packageOutputDir) - { - FileSystemUtilities.CopyInstallDependenciesFiles(packageOutputDir, PackageType.Data, this.fileSystem); - - string globalVariablesPath = this.fileSystem.Path.Join(packageOutputDir.FullName, "Builds/.vars", "global.yml"); - - string globalVariablesFile = this.fileSystem.File.ReadAllText(globalVariablesPath); - globalVariablesFile = globalVariablesFile.Replace(CliConstants.TokenVersion, CmfPackage.Version); - this.fileSystem.File.WriteAllText(globalVariablesPath, globalVariablesFile); - - IFileInfo runCustomizationInstallDF = this.fileSystem.FileInfo.New(this.fileSystem.Path.Join(packageOutputDir.FullName, "RunCustomizationInstallDF.ps1")); - - string fileContent = runCustomizationInstallDF.ReadToString(); - - fileContent = fileContent.Replace(CliConstants.TokenPackageId, CmfPackage.PackageId); - - this.fileSystem.File.WriteAllText(runCustomizationInstallDF.FullName, fileContent); - } - } -} \ No newline at end of file diff --git a/cmf-cli/Handlers/PackageType/IoTDataPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/IoTDataPackageTypeHandler.cs deleted file mode 100644 index 818f79fec..000000000 --- a/cmf-cli/Handlers/PackageType/IoTDataPackageTypeHandler.cs +++ /dev/null @@ -1,104 +0,0 @@ - -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.IO; -using System.IO.Abstractions; -using System.Linq; -using Cmf.CLI.Core; -using Cmf.CLI.Core.Enums; -using Cmf.CLI.Core.Objects; -using Cmf.CLI.Utilities; -using Utils = Cmf.CLI.Utilities.FileSystemUtilities; - -namespace Cmf.CLI.Handlers -{ - /// - /// - /// - /// - public class IoTDataPackageTypeHandler : DataPackageTypeHandler - { - /// - /// Initializes a new instance of the class. - /// - /// The CMF package. - public IoTDataPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) - { - cmfPackage.DFPackageType = PackageType.Business; - } - - /// - /// Bumps the specified CMF package. - /// - /// The version. - /// The version suffix. - /// The bump information. - public override void Bump(string version, string versionSuffix, Dictionary bumpInformation = null) - { - base.Bump(version, versionSuffix, bumpInformation); - // Get All AutomationWorkflowFiles Folders - List automationWorkflowDirectory = this.fileSystem.Directory.GetDirectories(CmfPackage.GetFileInfo().DirectoryName, "AutomationWorkflowFiles", SearchOption.AllDirectories).ToList(); - - // Get Parent Root - IDirectoryInfo parentRootDirectory = FileSystemUtilities.GetPackageRootByType(CmfPackage.GetFileInfo().DirectoryName, PackageType.Root, this.fileSystem); - CmfPackageCollection cmfPackageIoT = parentRootDirectory.LoadCmfPackagesFromSubDirectories(packageType: PackageType.IoT); - - #region GetCustomPackages - - // Get Dev Tasks - string packageNames = null; - string devTasksJson = null; - dynamic devTasksJsonObject; - foreach (CmfPackage iotPackage in cmfPackageIoT) - { - string devTasksFile = this.fileSystem.Directory.GetFiles(iotPackage.GetFileInfo().DirectoryName, ".dev-tasks.json")[0]; - - devTasksJson = this.fileSystem.File.ReadAllText(devTasksFile); - devTasksJsonObject = JsonConvert.DeserializeObject(devTasksJson); - - packageNames += devTasksJsonObject["packagesBuildBump"]?.ToString(); - - if (string.IsNullOrEmpty(packageNames)) - { - packageNames += devTasksJsonObject["packages"]?.ToString(); - } - } - - #endregion GetCustomPackages - - #region Filter by Root - - if (bumpInformation.ContainsKey("root") && !String.IsNullOrEmpty(bumpInformation["root"] as string)) - { - string root = bumpInformation["root"] as string; - if (!automationWorkflowDirectory.Any()) - { - Log.Warning($"No AutomationWorkflowFiles found in root {root}"); - } - // Get All AutomationWorkflowFiles Folders that are under root - automationWorkflowDirectory = automationWorkflowDirectory.Where(awf => awf.Contains(root))?.ToList() ?? new(); - } - - #endregion Filter by Root - - foreach (string automationWorkflowFileGroup in automationWorkflowDirectory) - { - #region Bump AutomationWorkflow - - // Get All Group Folders - List groups = this.fileSystem.Directory.GetDirectories(automationWorkflowFileGroup, "*").ToList(); - - groups.ForEach(group => IoTUtilities.BumpWorkflowFiles(group, version, versionSuffix, null, packageNames, this.fileSystem)); - - #endregion Bump AutomationWorkflow - - #region Bump IoT Masterdata - - IoTUtilities.BumpIoTMasterData(automationWorkflowFileGroup, version, versionSuffix, this.fileSystem, packageNames, onlyCustomization: true); - - #endregion Bump IoT Masterdata - } - } - } -} \ No newline at end of file diff --git a/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs index 45960df3e..7c6f65b03 100644 --- a/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs +++ b/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs @@ -237,15 +237,6 @@ public IoTPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) cmfPackage.DFPackageType = PackageType.Presentation; } - /// - /// Copies the install dependencies. - /// - /// The package output dir. - protected override void CopyInstallDependencies(IDirectoryInfo packageOutputDir) - { - FileSystemUtilities.CopyInstallDependenciesFiles(packageOutputDir, PackageType.IoT, this.fileSystem); - } - /// /// Bumps the specified CMF package. /// diff --git a/cmf-cli/Handlers/PackageType/PackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/PackageTypeHandler.cs index ddc7e036f..4e4763db6 100644 --- a/cmf-cli/Handlers/PackageType/PackageTypeHandler.cs +++ b/cmf-cli/Handlers/PackageType/PackageTypeHandler.cs @@ -474,18 +474,6 @@ internal virtual List GetContentToPack(IDirectoryInfo packageOutputD #endregion Private Methods - #region Protected Methods - - /// - /// Copies the install dependencies. - /// - /// The package output dir. - protected virtual void CopyInstallDependencies(IDirectoryInfo packageOutputDir) - { - } - - #endregion Protected Methods - #region Public Methods /// @@ -632,9 +620,6 @@ public virtual void Pack(IDirectoryInfo packageOutputDir, IDirectoryInfo outputD // Only perform actual packing operations if not in dry-run mode if (!dryRun) { - // TODO: To be removed? Install dependencies - CopyInstallDependencies(packageOutputDir); - GenerateDeploymentFrameworkManifest(packageOutputDir); FinalArchive(packageOutputDir, outputDir); diff --git a/cmf-cli/cmf.csproj b/cmf-cli/cmf.csproj index a138fb3fa..b75a0eade 100644 --- a/cmf-cli/cmf.csproj +++ b/cmf-cli/cmf.csproj @@ -75,16 +75,6 @@ - - - - - - - Always - - - diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/CMFDatabaseActions.psm1 b/cmf-cli/installDependencies/Data/CMFInstallActions/CMFDatabaseActions.psm1 deleted file mode 100644 index e56c78576..000000000 --- a/cmf-cli/installDependencies/Data/CMFInstallActions/CMFDatabaseActions.psm1 +++ /dev/null @@ -1,1363 +0,0 @@ -# -# CMFDatabaseActions.psm1 -# - -$ModulePath = Split-Path $MyInvocation.MyCommand.Path - -<# - .SYNOPSIS - Run an SQL command on any SQL Server database. - - .DESCRIPTION - Executes an SQL command on an SQL Server database specified using its instance name and database name. - - .PARAMETER dataSource - Data source name (i.e. instance name) to be used when connecting to the database. - - .PARAMETER database - Default database name on which command will be ran. - - .PARAMETER sqlCommand - String containing the SQL Command to be ran on the database. - - .PARAMETER username - Username to use to connect to the database if SQL Authentication is used. If not specified, windows authentication will - be used. - - .PARAMETER password - Password to use to connect to the database if SQL Authentication is used. - - .PARAMETER timeOut - the wait time before terminating the attempt to execute a command and generating an error. - - .EXAMPLE - Invoke-SQL -dataSource 'CMF-VM-TEST\ONLINE' -database 'cmNavigoODS' -sqlCommand $command - - .EXAMPLE - Invoke-SQL -dataSource 'CMF-VM-TEST\ONLINE' -database 'cmNavigoODS' -sqlCommand $command -username 'TestUser' -password 'TestPassword' - - .NOTES - Query results are not returned. - GO batch separators are supported, provided they are in separate lines on the sqlCommand string. -#> -function Invoke-SQL -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $dataSource, - - [Parameter(Mandatory=$True)] - [string] $database, - - [Parameter(Mandatory=$True)] - [string] $sqlCommand, - - [Parameter(Mandatory=$False)] - [string] $username, - - [Parameter(Mandatory=$False)] - [string] $password, - - [Parameter(Mandatory=$False)] - $timeOut = $null, - - [Parameter(Mandatory=$False)] - [switch]$returnScalar - ) - - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ModulePath\References\Microsoft.SqlServer.BatchParser.dll)) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ModulePath\References\Microsoft.SqlServer.SqlClrProvider.dll)) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ModulePath\References\Microsoft.SqlServer.Smo.dll)) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ModulePath\References\Microsoft.SqlServer.ConnectionInfo.dll)) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ModulePath\References\Microsoft.SqlServer.Management.Sdk.Sfc.dll)) | Out-Null - - $srv = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $dataSource - $srv.ConnectionContext.DatabaseName = $database - if ($username) - { - $srv.ConnectionContext.LoginSecure = $False - $srv.ConnectionContext.Login = $username - $srv.ConnectionContext.Password = $password - } - - try - { - if( $timeOut ) - { - LogWrite " Timeout $timeOut secs" - $srv.ConnectionContext.StatementTimeout = $timeOut - } - if ( $returnScalar ) - { - $result = $srv.ConnectionContext.ExecuteScalar($sqlCommand) - } - else - { - $result = $srv.ConnectionContext.ExecuteNonQuery($sqlCommand) - } - } - catch [Exception] - { - throw $_.Exception.InnerException - } - finally - { - $srv.ConnectionContext.Disconnect() - } - - return $result -} - -<# - .SYNOPSIS - Run an SQL Script file on a cmNavigo database. - - .DESCRIPTION - Runs a set of SQL statements from a file on one of the environment databases. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER database - Database that the script should be ran on. Possible values include 'Online', 'ODS' and 'DWH' - - .PARAMETER scriptPath - Absolute path to the script file to run - - .PARAMETER username - Username to use to connect to the database if SQL Authentication is used. If not specified, windows authentication will - be used. - - .PARAMETER password - Password to use to connect to the database if SQL Authentication is used. - - .EXAMPLE - Invoke-SQLScript $env -database 'Online' -scriptPath '.\Analytics\Release 015.1.sql' -username 'CMFUser' -password 'CMFUser' - - .NOTES - Assumes SQL Script file is saved with UTF8 encoding. - GO batch separators are supported, assuming they are placed in separate lines. -#> -function Invoke-SQLScript -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject] $env, - - # Database - [Parameter(Mandatory=$True)] - [CMFDatabase] $database, - - # Script path - [Parameter(Mandatory=$True)] - [string] $scriptPath, - - # TimeoutScript path - [Parameter(Mandatory=$False)] - $timeOut = $null - ) - - $username = "" - $password = "" - - switch ($database) - { - "Online" - { - $databaseName = $env.OnlineDBName - $databaseServer = $env.OnlineClusterInstance - - if ($env.SQLOnlineWindowsAuthentication -eq $false) - { - $username = $env.SQLOnlineUser - $password = Get-ClearTextFromEncryptedString $env.SQLOnlinePassword - } - } - "ODS" - { - $databaseName = $env.ODSDBName - $databaseServer = $env.ODSClusterInstance - - if ($env.SQLODSWindowsAuthentication -eq $false) - { - $username = $env.SQLODSUser - $password = Get-ClearTextFromEncryptedString $env.SQLODSPassword - } - } - "DWH" - { - $databaseName = $env.DWHDBName - $databaseServer = $env.DWHClusterInstance - - if ($env.SQLDWHWindowsAuthentication -eq $false) - { - $username = $env.SQLDWHUser - $password = Get-ClearTextFromEncryptedString $env.SQLDWHPassword - } - } - } - - [string] $commandText = (Get-Content -Path $scriptPath -Encoding UTF8 | Out-String) - $commandText = $commandText.replace('$(DatabaseName)', $databaseName); - $commandText = $commandText.replace('$(OnlineDatabaseName)', $env.OnlineDBName); - $commandText = $commandText.replace('$(ODSDatabaseName)', $env.ODSDBName); - $commandText = $commandText.replace('$(DWHDatabaseName)', $env.DWHDBName); - - $scriptName = Split-Path $scriptPath -leaf - LogWrite " > Running SQL script $scriptName on $database database..." - $result = Invoke-SQL $databaseServer $databaseName $commandText $username $password $timeOut - LogWrite " * Executed SQL script $scriptName" -foregroundColor Green -} - -<# - .SYNOPSIS - Backup cmNavigo databases - - .DESCRIPTION - Backup one or all cmNavigo databases to a predefined folder (according to environment configuration). The backup folder is - created if it doesn't exist, as long as it is a network shared folder. - - Online database backups are stored on the path specified on the $env.OnlineBackupLocation property. - ODS database backups are stored on the path specified on the $env.ODSBackupLocation property. - DWH database backups are stored on the path specified on the $env.DWHBackupLocation property. - If the specific backup folder for a given database is null or not defined, the standard backup location will be used, - specified on the $env.BackupLocation property. - - Backups are identified by a backupIdentifier token which can later be used to restore the backup. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER backupIdentifier - Token used to identify the backups that will be taken. Backup files will be named according to this token. - If not specified, the file will be named using the current date/time in the format "yyyy.mm.dd-HHmmss". - - .PARAMETER database - Database to be backed up. Possible values include 'Online', 'ODS' and 'DWH'. - If not specified, all databases are backed up. - - .PARAMETER username - Username to use to connect to the database if SQL Authentication is used. If not specified, windows authentication will - be used. - - .PARAMETER password - Password to use to connect to the database if SQL Authentication is used. - - .PARAMETER useCompression - Flag to enable compression of backups - - .PARAMETER useParallelJob - Flag to enable parallel jobs. Useful when backing up several large databases - - .EXAMPLE - Backup-CMFDatabase $env - - .EXAMPLE - Backup-CMFDatabase $env -backupIdentifier 'Before4.2' - - .EXAMPLE - Backup-CMFDatabase $env -backupIdentifier 'Before4.2' -useParallelJob - - .EXAMPLE - Backup-CMFDatabase $env -backupIdentifier 'Before4.2' -database 'Online' - - .EXAMPLE - Backup-CMFDatabase $env -backupIdentifier 'Before4.2' -username 'CMFTest' -password 'CMFPassword' - - .NOTES - Local backup folders are local on the DB server and are not recommended. If the local folder does not exist, an error will - be thrown. - Backups are taken by SQL Server BACKUP DATABASE statement with the NOFORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, COPY_ONLY - and STATS = 10 options. - Backup file names follow the naming convention: -.bak - - Requires permissions to write and create directories on the specified backup locations. -#> -function Backup-CMFDatabase -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # BackupID - [Parameter(Mandatory=$False)] - $backupIdentifier =$null, - - # Database - [Parameter(Mandatory=$False)] - [CMFDatabase] $database, - - # Username - [Parameter(Mandatory=$False)] - [string] $username, - - # Password - [Parameter(Mandatory=$False)] - [string] $password, - - # UseCompression - [Parameter(Mandatory=$False)] - $useCompression = $null, - - # Parallel backups - [Parameter(Mandatory=$False)] - [switch]$useParallelJob, - - [Parameter(Mandatory=$False)] - [int] $timeout = 600 - - ) - - LogWrite " > Starting database backup..." - - [CMFDatabase[]] $dbsToBackup = @() - if($database -ne $null) - { - $dbsToBackup += $database - } - else - { - $dbsTobackup = @('Online', 'ODS', 'DWH') - } - - $bgJobs = @() - - foreach($dbToBackup in $dbsToBackup) - { - $activityDescription = "Backing up " + $dbToBackup + " database" - LogWrite (" " + $activityDescription) - - $username = "" - $password = "" - - switch ($dbToBackup) - { - "Online" - { - $databaseName = $env.OnlineDBName - $databaseServer = $env.OnlineClusterInstance - $backupLocation = $env.OnlineBackupLocation - if ($env.SQLOnlineWindowsAuthentication -eq $false) - { - - $username = $env.SQLOnlineUser - $password = Get-ClearTextFromEncryptedString $env.SQLOnlinePassword - } - } - "ODS" - { - $databaseName = $env.ODSDBName - $databaseServer = $env.ODSClusterInstance - $backupLocation = $env.ODSBackupLocation - if ($env.SQLODSWindowsAuthentication -eq $false) - { - $username = $env.SQLODSUser - $password = Get-ClearTextFromEncryptedString $env.SQLODSPassword - } - } - "DWH" - { - $databaseName = $env.DWHDBName - $databaseServer = $env.DWHClusterInstance - $backupLocation = $env.DWHBackupLocation - - if ($env.SQLDWHWindowsAuthentication -eq $false) - { - $username = $env.SQLDWHUser - $password = Get-ClearTextFromEncryptedString $env.SQLDWHPassword - } - } - } - - if( $useCompression -eq $null ) - { - $useCompression = $env.SQLBackupCompression - } - - $compressionOption = "" - if($useCompression) - { - $compressionOption = ", COMPRESSION " - } - - # Prepare scripts - if ($backupIdentifier -eq $null) - { - $backupIdentifier = (Get-Date -Format "yyyy.MM.dd-HHmmss") - } - - # Get default backup location if specific is null - if ($backupLocation -eq $null) - { - $backupLocation = $env.BackupLocation - } - - # Check if folder is a network path - if ( ($backupLocation.StartsWith('\\'))) - { - # create backup folder if it doesn't exist - if (-not (Test-Path $backupLocation)) - { - $result = New-Item -ItemType Directory -Force -Path $backupLocation | Out-Null - } - - $backupFileName = $backupLocation+'\'+$backupIdentifier+'\'+$databaseName+"-"+$backupIdentifier+".bak" - $continueBackup = OverwriteBackupFile $backupFileName - } - else - { - # check if folder exists inside SQL Server instance - $sqlScript = "DECLARE @BackupDestination nvarchar(500) = N'$backupLocation'; - DECLARE @DirectoryExists int; EXEC master.dbo.xp_fileexist @BackupDestination, @DirectoryExists OUT; - IF @DirectoryExists = 0 EXEC master.sys.xp_create_subdir @BackupDestination;" - - $result = Invoke-SQL $databaseServer $databaseName $sqlScript -username $username -password $password - $backupFileName = $backupLocation+'\'+$backupIdentifier+'\'+$databaseName+"-"+$backupIdentifier+".bak" - $continueBackup = $true - } - - # create backup folder if it doesn't exist - New-Item -ItemType Directory -Force -Path (Split-Path -parent $backupFileName) | Out-Null - - if ($continueBackup -eq $True) - { - - $backupScript = "BACKUP DATABASE ["+$databaseName+"] TO DISK = N'"+$backupFileName+"' WITH COPY_ONLY, NOFORMAT, INIT, NAME = N'"+$databaseName+"-Full Database Backup', SKIP, NOREWIND, NOUNLOAD "+ $compressionOption +", STATS = 10" - - if( -not($useParallelJob) ) - { - Write-Progress -Activity ($activityDescription) -Status "Please wait..." - $result = Invoke-SQL $databaseServer $databaseName $backupScript -username $username -password $password -timeOut $timeout - Write-Progress -Activity $activityDescription -Completed -Status (" " + $dbToBackup + " Backed Up") - LogWrite (" " + $dbToBackup + " Backed Up") - } - else - { - LogWrite "$activityDescription started" - $sc = { - param($databaseServer, $databaseName, $backupScript, $username, $password, $timeOut) - $result = Invoke-SQL $databaseServer $databaseName $backupScript -username $username -password $password -timeOut $timeOut - } - - $initscript= [scriptblock]::create(@" - [Environment]::SetEnvironmentVariable("CMFInstallActionsPreventClear", "true") -import-module -name "$ModulePath\CMFInstallActions.psd1" -"@) - - $bgJobs += Start-Job -Name $activityDescription -ScriptBlock $sc -ArgumentList @($databaseServer, $databaseName, $backupScript, $username, $password, $timeOut) -InitializationScript $initscript - } - } - else - { - LogWrite (" Backup of database " + $dbToBackup + " was bypassed due to previous backup file...") -foregroundColor Yellow - } - } - if( $useParallelJob ){ - Wait-Job -Job $bgJobs | Out-Null - - foreach ($job in $bgJobs) { - $RemoteErr = $null - $output = Receive-Job $job -Keep -ErrorVariable RemoteErr - if( $RemoteErr -ne $null ) - { - throw $RemoteErr - } else { - LogWrite (" " + $job.Name + " finished") - } - } - } - - LogWrite " * Finished database backup!" -foregroundColor Green -} - -<# - .SYNOPSIS - Restore cmNavigo databases - - .DESCRIPTION - Restore one or all cmNavigo databases from a predefined folder (according to environment configuration). - - Online database backups are stored on the path specified on the $env.OnlineBackupLocation property. - ODS database backups are stored on the path specified on the $env.ODSBackupLocation property. - DWH database backups are stored on the path specified on the $env.DWHBackupLocation property. - If the specific backup folder for a given database is null or not defined, the standard backup location will be used, - specified on the $env.BackupLocation property. - - Backups are identified by a backupIdentifier token which should correspond to a previously taken backup. - - AlwaysOn High-Availability Groups are supported. Make sure to set the $env.OnlineClusterAlwaysOn, - $env.ODSClusterAlwaysOn and $env.DWHClusterAlwaysOn to $true. - The definition of the replicas included in the HADR cluster is also required, using: - - $env.OnlineReplicas += 'CMF-VM-CLT-DB1\ONLINE2014' - $env.OnlineReplicas += 'CMF-VM-CLT-DB2\ONLINE2014' - $env.ODSReplicas = $env.OnlineReplicas - $env.DWHReplicas = $env.OnlineReplicas - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER backupIdentifier - Token used to identify the backup files to be restored. - - .PARAMETER database - Database to be restored. Possible values include 'Online', 'ODS' and 'DWH'. - If not specified, all databases are restored, in the following order: Online, ODS, DWH. - - .PARAMETER requireConfirmation - Set this flag to force an interactive confirmation from the user before restoring the database. - - .EXAMPLE - Restore-CMFDatabase $env - - .EXAMPLE - Restore-CMFDatabase $env -backupIdentifier 'Before4.2' - - .EXAMPLE - Restore-CMFDatabase $env -backupIdentifier 'Before4.2' -database 'Online' - - .NOTES - Backup file names are assumed to follow the naming convention: -.bak - Before restore, existing database is set to single user mode with immediate rollback. Database is restored to multi-user mode after - restore is complete. - After completion of the restore procedure, database is set as TRUSTWORTHY and the dbowner is changed to 'sa'. - - cmNavigo application hosts must be stopped during the restore procedure. -#> -function Restore-CMFDatabase -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # BackupID - [Parameter(Mandatory=$True)] - [string]$backupIdentifier, - - # Database - [Parameter(Mandatory=$False)] - $database, - - # Require Confirmation - [Parameter(Mandatory=$False)] - [switch]$requireConfirmation, - - [Parameter(Mandatory=$False)] - [int]$timeout = 600 - ) - - LogWrite " > Starting database restore..." - - [CMFDatabase[]] $dbsToBackup = @() - if($database) - { - $dbsToBackup += $database - } - else - { - $dbsTobackup = @('Online', 'ODS', 'DWH') - } - - foreach($dbToBackup in $dbsToBackup) - { - $activityDescription = "Restoring $dbToBackup database" - LogWrite (" " + $activityDescription) - Write-Progress -Activity ($activityDescription) -Status "Please wait..." - - $username = "" - $password = "" - - switch ($dbToBackup) - { - "Online" - { - $databaseName = $env.OnlineDBName - $databaseServer = $env.OnlineClusterInstance - $backupLocation = $env.OnlineBackupLocation - $replicas = $env.OnlineReplicas - - if ($env.SQLOnlineWindowsAuthentication -eq $false) - { - $username = $env.SQLOnlineUser - $password = Get-ClearTextFromEncryptedString $env.SQLOnlinePassword - } - - $isAlwaysOn = $env.OnlineClusterAlwaysOn - } - "ODS" - { - $databaseName = $env.ODSDBName - $databaseServer = $env.ODSClusterInstance - $backupLocation = $env.ODSBackupLocation - $replicas = $env.ODSReplicas - - if ($env.SQLODSWindowsAuthentication -eq $false) - { - $username = $env.SQLODSUser - $password = Get-ClearTextFromEncryptedString $env.SQLODSPassword - } - - $isAlwaysOn = $env.ODSClusterAlwaysOn - } - "DWH" - { - $databaseName = $env.DWHDBName - $databaseServer = $env.DWHClusterInstance - $backupLocation = $env.DWHBackupLocation - $replicas = $env.DWHReplicas - - if ($env.SQLDWHWindowsAuthentication -eq $false) - { - $username = $env.SQLDWHUser - $password = Get-ClearTextFromEncryptedString $env.SQLDWHPassword - } - - $isAlwaysOn = $env.DWHClusterAlwaysOn - } - } - - if ($requireConfirmation) - { - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-host " Please confirm if you want to proceed with Restore operation for $dbToBackup database" - Write-Host " Do not restore [n]" -ForegroundColor Yellow -NoNewline - Write-Host " Proceed with restore [y]: " -NoNewline - } - - $confirmation = Read-Host - if ($confirmation -ne 'y') - { - # If the user does not confirm the restore, proceed to the next database - LogWrite (" Restore of database $dbToBackup was not performed due to user selection.") -foregroundColor Yellow - continue - } - } - - # Get default backup location if specific is null - if ($null -eq $backupLocation) - { - $backupLocation = $env.BackupLocation - } - - # Prepare scripts - if ($null -eq $backupIdentifier) - { - $backupIdentifier = (Get-Date -Format "yyyy.MM.dd-HHmmss") - } - - $backupFileName = $backupLocation + "\" + $backupIdentifier + "\" + $databaseName + "-" + $backupIdentifier + ".bak" - - if ($isAlwaysOn -ne $true) - { - # No AlwaysOn - single server or windows failover clustering - use regular restore scripts - Restore-SqlDatabase -instanceName $databaseServer ` - -databaseName $databaseName ` - -backupFilename $backupFileName ` - -username $username ` - -password $password ` - -timeout $timeout - } - else - { - # AlwaysOn Logic - $availabilityGroupName = Get-AvailabilityGroupNameFromListenerAddress -instanceName $databaseServer ` - -username $username ` - -password $password - - # Determine what server is acting as primary - $primaryServer = Get-PrimaryForAvailabilityGroup ` - -replicas $replicas ` - -database $databaseName ` - -username $username -password $password - - # Remove DB from AG and drop from secondary - Write-Progress -Activity $activityDescription -Status "Removing $dbtoBackup database from Availability Group..." - Remove-DatabaseFromAvailabilityGroup ` - -database $databaseName ` - -availabilityGroup $availabilityGroupName ` - -replicas $replicas ` - -primary $primaryServer ` - -DropFromSecondary ` - -username $username -password $password - - # Restore on primary server - Write-Progress -Activity $activityDescription -Status "Restoring $dbtoBackup database on primary replica..." - Restore-SqlDatabase ` - -databaseName $databaseName ` - -instanceName $primaryServer ` - -backupFilename $backupFileName ` - -username $username -password $password ` - -timeout $timeout - - # Re-add to availability group - $backupLocation = $env.BackupLocation - Write-Progress -Activity $activityDescription -Status "Joining $dbtoBackup database to Availability Group..." - Add-DatabaseToAvailabilityGroup ` - -database $databaseName ` - -availabilityGroupInstanceName $databaseServer ` - -primary $primaryServer ` - -replicas $replicas ` - -backupLocation $backupLocation ` - -username $username -password $password - - } - - Write-Progress -Activity $activityDescription -Completed -Status "Restore of $dbToBackup database has been completed." - } - - LogWrite " * Finished database restore!" -foregroundColor Green -} - -<# - .SYNOPSIS - Restores an SQL database - - .DESCRIPTION - Executes a simple restore command for an SQL database - - .PARAMETER instanceName - SQL Server instance name against which the RESTORE statement will be ran - - .PARAMETER databaseName - Name of the database to be backed up - - .PARAMETER backupFilename - Path to the backup file to restore - - .PARAMETER username - Username to be used to connect to the database. If $null, Windows Authentication will be used. - - .PARAMETER password - Password used to connect to the database. If $username is not set, Windows Authentication will be used. - - .PARAMETER restoreOnly - If set, no operation will be performed on the existing database before restoring (not set to single_user) - - .PARAMETER norecovery - If set, the NORECOVERY option is used. Required for restoring database replicas for AlwaysOn. - - .EXAMPLE - Restore-SQLDatabase 'MSSQL\ONLINE' 'Development' 'C:\Backup.bak' -#> -function Restore-SQLDatabase -{ - param - ( - # Instance name - [Parameter(Mandatory=$True)] - [string] $instanceName, - - # Database Name - [Parameter(Mandatory=$True)] - $databaseName, - - # Backup file name - [Parameter(Mandatory=$True)] - [string] $backupFilename, - - # Username - [Parameter(Mandatory=$False)] - [string] $username, - - # Password - [Parameter(Mandatory=$False)] - [string] $password, - - # Restore only - [Parameter(Mandatory=$False)] - [switch] $restoreOnly, - - # Use NORECOVERY option - [Parameter(Mandatory=$False)] - [switch] $norecovery, - - [Parameter(Mandatory=$False)] - [string] $TargetLocation, - - [Parameter(Mandatory=$False)] - [int] $timeout = 600 - - ) - - $restoreScript = "" - if (!$restoreOnly) - { - $restoreScript += "ALTER DATABASE [" + $databaseName + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE `n" - } - if ($norecovery) - { - $restoreScript += "RESTORE DATABASE [" + $databaseName + "] FROM DISK = N'" + $backupFileName + "' WITH NORECOVERY, FILE = 1, NOUNLOAD, REPLACE, STATS = 5 `n" - } - else - { - $restoreScript += "RESTORE DATABASE [" + $databaseName + "] FROM DISK = N'" + $backupFileName + "' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5 `n" - $restoreScript += "ALTER DATABASE [" + $databaseName + "] SET MULTI_USER `n" - $restoreScript += "GO `n" - $restoreScript += "USE [" + $databaseName + "] `n" - $restoreScript += "GO `n" - $restoreScript += "ALTER DATABASE CURRENT SET TRUSTWORTHY ON `n" - $restoreScript += "EXEC sp_changedbowner 'sa'" - } - $result = Invoke-SQL $instanceName 'master' $restoreScript -username $username -password $password -timeout $timeout - -} - -<# - .SYNOPSIS - Executes scripts of a entire folder - - .DESCRIPTION - Executes all scripts ( *.sql ) against a database - - .PARAMETER dataSource - Data source name (i.e. instance name) to be used when connecting to the database. - - .PARAMETER folderPath - Folder containing the scripts to be executed - - .EXAMPLE - Invoke-PackageSqlScripts $env 'Online' 'c:\package\database\online' -#> -function Invoke-PackageSqlScripts -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # CMFDataBase - [Parameter(Mandatory=$True)] - $dataBase, - - #directory to enumerate the files - [Parameter(Mandatory=$True)] - $folderPath, - - [Parameter(Mandatory=$False)] - $timeOut = $null - ) - - if( Test-Path $folderPath ) - { - foreach($file in ( Get-ChildItem $folderPath -Filter '*.sql') ) - { - Invoke-SQLScript $env -database $database -scriptPath $file.FullName -timeout $timeOut - } - } -} - -<# - .SYNOPSIS - Removes a database from an availability group - - .DESCRIPTION - Removes a given system database from the respective HADR availability group. - Optionally, the database can be dropped from all secondary replicas, which is useful for a restore operation. - - .PARAMETER availabilityGroup - Instance name for the Availability Group - - .PARAMETER replicas - List of replicas in the availability group - - .PARAMETER database - database to be removed from the availability group - - .PARAMETER primary - Primary server for the availability group - - .PARAMETER username - Username to be used to connect to the database. If $null, Windows Authentication will be used. - - .PARAMETER password - Password used to connect to the database. If $username is not set, Windows Authentication will be used. - - .PARAMETER DropFromSecondary - Set to true to enable dropping the database from the secondary servers - - .EXAMPLE - $replicas += 'CMF-VM-CLT-DB1\ONLINE2012' - $replicas += 'CMF-VM-CLT-DB2\ONLINE2012' - Remove-DatabaseFromAvailabilityGroup -availability 'AG2012\ONLINE' -replicas $replicas -database 'Development' - - .EXAMPLE - $replicas += 'CMF-VM-CLT-DB1\ONLINE2012' - $replicas += 'CMF-VM-CLT-DB2\ONLINE2012' - $primary = 'CMF-VM-CLT-DB2\ONLINE2012' - Remove-DatabaseFromAvailabilityGroup -availability 'AG2012\ONLINE' -replicas $replicas -database 'Development' -primary $primary -DropFromSecondary -#> -function Remove-DatabaseFromAvailabilityGroup -{ - param - ( - # availability Group name - [Parameter(Mandatory=$True)] - [string] $availabilityGroup, - - # Availability group replicas - [Parameter(Mandatory=$True)] - $replicas, - - # Database - [Parameter(Mandatory=$True)] - [string] $database, - - # primary server - [Parameter(Mandatory=$False)] - $primary, - - # Username - [Parameter(Mandatory=$False)] - [string] $username, - - # Password - [Parameter(Mandatory=$False)] - [string] $password, - - # Drop from secondary servers - [Parameter(Mandatory=$False)] - [switch] $DropFromSecondary = $False - ) - - # Check which server is primary - if ($null -eq $primary) - { - $primary = Get-PrimaryForAvailabilityGroup -replicas $replicas -database $database -username $username -password $password - } - - - # Remove database from availability group - $sql = "ALTER AVAILABILITY GROUP [$availabilityGroup] REMOVE DATABASE [$database]; " - $result = Invoke-SQL $primary 'master' $sql -username $username -password $password - - # Drop database from all secondary servers - if ($DropFromSecondary) - { - foreach($server in $replicas) - { - if ($server -ne $primary) - { - # Wait for database to be in restoring state before continuing -- otherwise DROP DATABASE will fail - $sql = "WHILE ((select DATABASEPROPERTYEX('$database', 'Status')) <> 'RESTORING') WAITFOR DELAY '00:00:01'" - $result = Invoke-SQL $server 'master' $sql -username $username -password $password -timeOut 120 - - # Drop it. - $sql = "DROP DATABASE [$database];" - $result = Invoke-SQL $server 'master' $sql -username $username -password $password - } - } - } - -} - -<# - .SYNOPSIS - Adds a database to an availability group - - .DESCRIPTION - Adds a given system database the an respective availability group. - - Assumes that the secondary replica does not contain a database with the same name. Script will perform full - backups and log backups from the primary replica and apply them to the secondary replicas before joining the availability group. - - .PARAMETER availabilityGroupInstanceName - Instance name for the Availability Group - - .PARAMETER replicas - List of replicas in availability group in the availability group - - .PARAMETER database - Database to be added to the availability group - - .PARAMETER backupLocation - Path to store temporary database and log backups required for adding databases to HADR cluster - - .PARAMETER primary - Primary server for the availability group - - .PARAMETER username - Username to be used to connect to the database. If $null, Windows Authentication will be used. - - .PARAMETER password - Password used to connect to the database. If $username is not set, Windows Authentication will be used. - - .EXAMPLE - $replicas += 'CMF-VM-CLT-DB1\ONLINE2012' - $replicas += 'CMF-VM-CLT-DB2\ONLINE2012' - $primary = 'CMF-VM-CLT-DB2\ONLINE2012' - Remove-DatabaseFromAvailabilityGroup 'AG2012\ONLINE' -replicas $replicas -database 'Development' -primary $primary -#> -function Add-DatabaseToAvailabilityGroup -{ - param - ( - # availability Group instance name - [Parameter(Mandatory=$True)] - [string] $availabilityGroupInstanceName, - - # Availability group nodes - [Parameter(Mandatory=$True)] - $replicas, - - # Database - [Parameter(Mandatory=$True)] - [string] $database, - - # Backup location - [Parameter(Mandatory=$True)] - [string] $backupLocation, - - # primary server - [Parameter(Mandatory=$True)] - $primary, - - # Username - [Parameter(Mandatory=$False)] - [string] $username, - - # Password - [Parameter(Mandatory=$False)] - [string] $password - ) - - $availabilityGroup = $availabilityGroupInstanceName.Split("\")[0] - - # Add database to availability group - $sql = "ALTER AVAILABILITY GROUP [" + $availabilityGroup + "] ADD DATABASE ["+ $database + "]" - $result = Invoke-SQL $availabilityGroupInstanceName 'master' $sql -username $username -password $password - - # Create primary full backup and log backup - $timestamp = Get-Date -format yyyymmddhhmmss - $fullbackupPath = Join-Path $backupLocation "$databaseName_$timestamp.bak" - $logbackupPath = Join-Path $backupLocation "$databaseName_$timestamp.trn" - - $sql = "BACKUP DATABASE [$database] TO DISK = N'$fullbackupPath' WITH COPY_ONLY, FORMAT, INIT, SKIP, REWIND, NOUNLOAD, COMPRESSION, STATS = 5" - $result = Invoke-SQL $availabilityGroupInstanceName 'master' $sql -username $username -password $password - - $sql = "BACKUP LOG [$database] TO DISK = N'$logbackupPath' WITH COPY_ONLY, NOFORMAT, NOINIT, NOSKIP, REWIND, NOUNLOAD, COMPRESSION, STATS = 5" - $result = Invoke-SQL $availabilityGroupInstanceName 'master' $sql -username $username -password $password - - # Restore database on secondary replicas - foreach($server in $replicas) - { - if ($server -ne $primary) - { - # Ensure replica has privileges to create databases - $sql = "ALTER AVAILABILITY GROUP $availabilityGroup GRANT CREATE ANY DATABASE;" - $result = Invoke-SQL $server 'master' $sql -username $username -password $password - - # Get seeding mode to determine if restore is to be made or not... - $sql = "DECLARE @ReturnValue NVARCHAR(512) = N'MANUAL' - DECLARE @DBVersion INT - DECLARE @StringVersion NVARCHAR(512) = CONVERT(NVARCHAR, SERVERPROPERTY('productversion')) - DECLARE @FinalChar INTEGER = CHARINDEX('.', @StringVersion, 1) - - IF( @FinalChar > 1) - BEGIN - SET @StringVersion = SUBSTRING(@StringVersion, 1, @FinalChar - 1) - END - - SET @DBVersion = CONVERT(INTEGER, @StringVersion) - IF(@DBVersion >= 13) - BEGIN - - SELECT @ReturnValue = AR.[seeding_mode_desc] - from [sys].[availability_replicas] AR - INNER JOIN [sys].[availability_groups] AG ON AG.[group_id] = AR.[group_id] - WHERE AG.[name] = '$availabilityGroup' AND AR.[replica_server_name] = '$server' - - END - - SELECT @ReturnValue SeedingMode" - $seedingMode = Invoke-SQL $server 'master' $sql -username $username -password $password -returnScalar - - # If we're dealing with a manual seeding mode, restore database in secondary replica along with the log - if($seedingMode -eq "MANUAL") { - - # Restore Full backup - $sql = "RESTORE DATABASE [$database] FROM DISK = N'$fullbackupPath' WITH NORECOVERY, NOUNLOAD, STATS = 5" - $result = Invoke-SQL $server 'master' $sql -username $username -password $password - - # Restore log - $sql = "RESTORE LOG [$database] FROM DISK = N'$logbackupPath' WITH NORECOVERY, NOUNLOAD, STATS = 5" - $result = Invoke-SQL $server 'master' $sql -username $username -password $password - - # Wait for replica to become online and add to availability group - $sql = @' - begin try - declare @conn bit - declare @count int - declare @replica_id uniqueidentifier - declare @group_id uniqueidentifier - set @conn = 0 - set @count = 30 -- wait for 5 minutes - - if (serverproperty('IsHadrEnabled') = 1) - and (isnull((select member_state from master.sys.dm_hadr_cluster_members where upper(member_name) = upper(cast(serverproperty('ComputerNamePhysicalNetBIOS') as nvarchar(256)))), 0) <> 0) - and (isnull((select state from master.sys.database_mirroring_endpoints), 1) = 0) - begin - select @group_id = ags.group_id from master.sys.availability_groups as ags where name = N'$(AVAILABILITYGROUPNAME)' - select @replica_id = replicas.replica_id from master.sys.availability_replicas as replicas where upper(replicas.replica_server_name) = upper(@@SERVERNAME) and group_id = @group_id - while @conn <> 1 and @count > 0 - begin - set @conn = isnull((select connected_state from master.sys.dm_hadr_availability_replica_states as states where states.replica_id = @replica_id), 1) - if @conn = 1 - begin - -- exit loop when the replica is connected, or if the query cannot find the replica status - break - end - waitfor delay '00:00:10' - set @count = @count - 1 - end - end - end try - begin catch - -- If the wait loop fails, do not stop execution of the alter database statement - end catch - ALTER DATABASE [$(DATABASE)] SET HADR AVAILABILITY GROUP = [$(AVAILABILITYGROUPNAME)]; -'@ - - $sql = $sql.Replace('$(AVAILABILITYGROUPNAME)', $availabilityGroup) - $sql = $sql.Replace('$(DATABASE)', $database) - - $result = Invoke-SQL $server 'master' $sql -username $username -password $password - - } - } - } - - try { - Remove-Item $fullbackupPath -ErrorAction Stop - } - catch { - LogWrite " > Error while removing $fullbackupPath" -foreGroundColor Red - } - - try { - Remove-Item $logbackupPath -ErrorAction Stop - } - catch { - LogWrite " > Error while removing $logbackupPath" -foreGroundColor Red - } -} - -<# - .SYNOPSIS - Returns the primary server for an availability group - - .DESCRIPTION - Returns the name of the primary SQL server instance on a given availability group - - .PARAMETER Replicas - List of all replicas in availability group - - .PARAMETER database - Name of the database to be checked - - .PARAMETER username - Username to be used to connect to the database. If $null, Windows Authentication will be used. - - .PARAMETER password - Password used to connect to the database. If $username is not set, Windows Authentication will be used. - - .EXAMPLE - Get-PrimaryForAvailabilityGroup -replicas $nodes -database $databaseName -username $username -password $password -#> -function Get-PrimaryForAvailabilityGroup -{ - param - ( - # Availability group nodes - [Parameter(Mandatory=$True)] - $replicas, - - # Database - [Parameter(Mandatory=$True)] - [string] $database, - - # Username - [Parameter(Mandatory=$False)] - [string] $username, - - # Password - [Parameter(Mandatory=$False)] - [string] $password - ) - - $sql = "select role_desc " - $sql += "from sys.dm_hadr_availability_replica_states states " - $sql += "inner join sys.databases dbs on dbs.replica_id = states.replica_id " - $sql += "where is_local = 1 and name = '" + $database + "'" - foreach($server in $replicas) - { - $result = Invoke-SQL $server 'master' $sql -username $username -password $password -returnScalar - if ($result -eq "PRIMARY") - { - $primaryServer = $server - break - } - } - - if ($null -eq $primaryServer) - { - throw "Database is not part of any availability group" - } - - return $primaryServer -} - -<# - .SYNOPSIS - Returns the availability group name from the listener address - - .DESCRIPTION - Returns the availability group name from the listener address - - .PARAMETER instanceName - Address of the availability group instance - - .PARAMETER username - Username to be used to connect to the database. If $null, Windows Authentication will be used. - - .PARAMETER password - Password used to connect to the database. If $username is not set, Windows Authentication will be used. - - .EXAMPLE - Get-AvailabilityGroupNameFromListenerAddress -instanceName 'AG2016' -database $databaseName -username $username -password $password -#> -function Get-AvailabilityGroupNameFromListenerAddress -{ - param - ( - # Availability group instance - [Parameter(Mandatory=$True)] - $instanceName, - - # Username - [Parameter(Mandatory=$False)] - [string] $username, - - # Password - [Parameter(Mandatory=$False)] - [string] $password - ) - - $listenerAddress = $instanceName.Split("\")[0] - - $sql = "SELECT ags.name FROM sys.availability_groups ags " - $sql += "INNER JOIN sys.availability_group_listeners agsl " - $sql += "ON ags.group_id = agsl.group_id AND agsl.dns_name = '" + $listenerAddress + "'" - - $agName = Invoke-SQL $instanceName 'master' $sql -username $username -password $password -returnScalar - - if ($null -eq $agName) - { - throw "Could not determine Availability Group name for listener address " + $listenerAddress - } - - return $agName -} - -<# - .SYNOPSIS - Prompts the interactive user for a password and test against a data source. - - .DESCRIPTION - Prompts the interactive user for a password and test against a data source. - - .PARAMETER dataSource - Data source name (i.e. instance name) to be used when connecting to the database. - - .PARAMETER username - Username to use to connect to the sql server if SQL Authentication is used. - be used. - - .OUTPUTS - A password, in CLEAR TEXT, validated against the datasource specified - - .EXAMPLE - Read-SQLPassword -dataSource 'CMF-VM-TEST\ONLINE' -username SQLUser -#> -function Read-SQLPassword -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $dataSource, - - [Parameter(Mandatory=$True)] - [string] $username - ) - - $securePassword = Read-Host "Enter password for user $username at $dataSource" -AsSecureString - $psCred = New-Object System.Management.Automation.PSCredential $username, $securePassword - [string] $clearPassword = $psCred.GetNetworkCredential().Password - - - try - { - $dummy = Invoke-SQL -dataSource $dataSource -database 'master' -sqlCommand "SELECT GETUTCDATE()" -username $username -password $clearPassword - } - catch [Exception] - { - LogWrite $_.Exception.Message -ForegroundColor Red - throw "Invalid password for $username" - } - - return $clearPassword -} - -<# - .SYNOPSIS - Prompt message asking if should overwrite a existing backup - - .DESCRIPTION - Returns the result if should overwrite a existing backup - - .PARAMETER $backupPath - The location of the backup path - - .EXAMPLE - OverwriteBackupFile 'c:\filename.zip' - - -#> -function OverwriteBackupFile -{ - Param - ( - [string]$backupPath - ) - - if (Test-Path $backupPath) - { - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-host " Backup file " $backupPath "already exists!!" - Write-Host " Ignore Backup [i]" -ForegroundColor Yellow -NoNewline - Write-Host " or Overwrite [o]: " -NoNewline - - - $confirmation = Read-Host - } - else - { - $confirmation = 'o' - } - - if ($confirmation -ne 'o') - { - return $false - } - } - - return $true - -} \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/CMFInstallActions.psd1 b/cmf-cli/installDependencies/Data/CMFInstallActions/CMFInstallActions.psd1 deleted file mode 100644 index 2e474df14dfc4be0a4c27f3e57374478f6256974..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7996 zcmeI1YfoE85Qg`2rTzy?e1KGigiF$kR4EpO1c}gyOWLo-#;zM|Tmyk9%3p8$K06-v ztj{@MT+&umW%*opXWzNc?D^yOh45wgA}oYPcpc6{CtQZpaH6|GXoX?uhpz6(8NDEvbxzzftNcA#~7=~W>TH_DGidI{hVFj?T!diG59*5QNM8`E9SHrWyY%o3# zALA3pd!TheH4-i)Q{>-da;&#Q;TwyK=@DJMGnuv|i*wCx>q+ALN_Q9G7tQ0?*NC$8 zjlX@(J=3UMQ$J|@ELvC*{&S&Uo#?~4dmA-zu9cBcBg%RpeW0I)o^^FBB1_yGsv??c zT83>^`k7w!KpGwChy2_I-bkA-WDTZ&vmHmdsgVPXM{a$gL!wpV8-X>Sho$f+)8S6o z((_A6!0hcp^ti{yf7AIy6wzH@>tmg)(v455c?Z|aa3s5juJO4MHl*9G>}ys3Z^Lp} zmu+=~c3E%M^<-UF-|2U(=gS(oA%33fx273S!Z-SJG=Fi(K=WOG_woHQwvkZ5XHT-iPc0f@TdaXbQw*!uDF~-2 znG~0#+ef0|F=PH%wIV7_+1shk2{C>@7E&y99FS{Aev|XL72l_5-mU8e|4 zOvb0M?~!PqiMrXjN8UOQcN?r**Cdl;d@b5|)j%i)S`kjh;;I_!PjNK%bEPp2`7~F| zIFKIkN~DDTdT}KDAtijaAFpQRp^9>Kyvq4WR+>wBHstuN<S|WQ?H?jKa8ld$%ZltQQ)1Z5R0(>VooF{4@L3AP1VB;>ViFuyr|&s;Uw$0+gfj+ zpH&Q};t>D5)VUY=8pjAk4z>8cq`Gc5?8o?-B*oQT-uv&9wQ(|wOy9^VsP@n%mPkEC zjo6O1gN+cQsb{f;CFu`&p2WKLXH^T&;#E^J?C5%94(WOPE+c8y;;4=#sp`X~u>&eG zDphJKuBaHXd8#yc^{S3+VAYmePfyl+rt$cN#dh)$vKmHvv0RN`ku#8*%`ei1YA?P? zHFLt~eD4cWF;f(4Rrr9{a;?~m`l4>2&g_fE?L5OxOFA-Z{v5cg5mlqlyA|&~;9yA+ zgC1ZtT2j&>Hi_=cYtbQnfNRV8FzW5GsuAdrjUQTL-oeq)rTXSvarR76vgk*3T02xk z97R5=dA^oDPbZvH`Z>qzqHpY)8W~^n&Ob?q{SB`euvUw+NMt;D zZo4#O7{*dXBW>j3y>3I*H2V)7NfAHqhzfcc>S}rh5ez@K>c#!vdM9=^Si?GKqd+7e z+FNGdyZO?6gWyD{<-F)b4ziBsJbGZFT}-eX%` zne{kC&+47q6u%u|G0&vcs^e99pQ9<(2J<7?j=A7Oy%^aBo~uz%arI;8YPp~zuG!mn zO@V-(#_v5>6lM0%**ot9$$VrQw1qV_q#ODNP+ElmT6Ty%i#KA=a;_s|EE*McNCjW) zv!R?@0e56aM!G!Gjxt{`sylk~oLr^}m1!V-acGDNzZ`qrC?CC`8HYmEi&|;PT1Ud~ zHPc0uP<55za>akh(6;NwzC*I_T(3w8pJN}9{B9Yasu>NiDivQtSj?9gV_lRc0>bS>CowA=<0Ut?pjv^1fQ=N7QeTJWJ z$A;CKb+X5KEQG#SR7Oc3c@}=vIO?Q&$ys;g>Oy)S^CgSb;4s_3yFg#xch{rb znb5osK4LocsAVN~M~Fs5ozydwtL8d=)>Fgc77Nva>++MHqt6%OnRsuj=6=aONFGyI zpMTx#Vq{HGpq>s0UPVca;#XEI#cY4)22-_dgQ99Se#6{pz8TBjBVSti4orS9?UQ}3 zb>~*<`+wF)ppjx{V}06P-3@W)$4LZ1CUhV8vh9p=SC50J>z25qsO&pV%UK85&^I=` b14`gG>nwA*DT%V1Y1|ZNlx6hk=BwhL);Ae_ diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/CMFInstallActions.psm1 b/cmf-cli/installDependencies/Data/CMFInstallActions/CMFInstallActions.psm1 deleted file mode 100644 index 8d20a637f..000000000 --- a/cmf-cli/installDependencies/Data/CMFInstallActions/CMFInstallActions.psm1 +++ /dev/null @@ -1,5391 +0,0 @@ -$ModulePath = Split-Path $MyInvocation.MyCommand.Path -$Logfile = "$(gc env:computername)" + "_" + (Get-Date).ToString("yyyyMMddHH.mm.ss") + ".log" -$GenericLogFile = $true -$ShowProgressBar = $false - -Add-Type -TypeDefinition "public enum CMFDatabase { Online, ODS, DWH, Replication }" - -#clear screen when this module is called - -if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - if( -not($env:CMFInstallActionsPreventClear )) - { - clear - } -} - -# Set Global Variables for CMF Folders -if( !($CMFFoldersLoaded)) -{ - Set-Variable CMFFoldersLoaded -Value $true -scope global - if( !($CMFBusinessTier)) - { - Set-Variable CMFBusinessTier -Value 'BusinessTier' -scope global - } - if( !($CMFDiscoveryService)) - { - Set-Variable CMFDiscoveryService -Value 'DiscoveryService' -scope global - } - if( !($CMFHelp)) - { - Set-Variable CMFHelp -Value 'UI\Help' -scope global - } - if( !($CMFHTML)) - { - Set-Variable CMFHTML -Value 'UI\Html' -scope global - } - if( !($CMFLBOGenerator)) - { - Set-Variable CMFLBOGenerator -Value 'LBOGenerator' -scope global - } - if( !($CMFLBOGeneratorWCF)) - { - Set-Variable CMFLBOGeneratorWCF -Value 'LBOGeneratorWCF' -scope global - } - if( !($CMFMasterDataLoader)) - { - Set-Variable CMFMasterDataLoader -Value 'MasterDataLoader' -scope global - } - if( !($CMFMessageBusGateway)) - { - Set-Variable CMFMessageBusGateway -Value 'MessageBusGateway' -scope global - } - if( !($CMFPresentationTier)) - { - Set-Variable CMFPresentationTier -Value 'UI\Silverlight' -scope global - } - if( !($CMFProtectUnprotectConfigFile)) - { - Set-Variable CMFProtectUnprotectConfigFile -Value 'ProtectUnprotectConfigFile' -scope global - } -} - -<# - .SYNOPSIS - Creates a new object to represent a cmNavigo environment - - .DESCRIPTION - Returns a new custom object which contains all the required information to run the installation scripts. - - .PARAMETER SystemName - cmNavigo environment name selected during installation. This is usually part of the website address. - - .EXAMPLE - $env = New-CMFEnvironment 'Staging' - $env.NLBAddress = 'cmf-vm-test' - $env.ServicePort = 9050 - $env.ReadPasswordToSignGeneratedLBOs = $true - $env.ApplicationServers += New-CMFServer 'cmf-vm-test' - $env.OnlineClusterInstance = 'cmf-vm-test\ONLINE' - $env.ODSClusterInstance = 'cmf-vm-test\ONLINE' - $env.DWHClusterInstance = 'cmf-vm-test\ONLINE' - $env.NavigoServiceName = 'cmFoundationSrv' + $env.SystemName + 'Host' - $env.BackupLocation = '\\CMF-VM-test\'+$env.SystemName+'Shares\Backups\Test' - $env.OnlineBackupLocation = '\\CMF-VM-test\'+$env.SystemName+'Shares\Backups\Test\Online' - $env.ODSBackupLocation = '\\CMF-VM-test\'+$env.SystemName+'Shares\Backups\Test\ODS' - $env.DWHBackupLocation = '\\CMF-VM-test\'+$env.SystemName+'Shares\Backups\Test\DWH' - $env.SQLOnlineWindowsAuthentication = $true - $env.SQLOnlineUser = 'user' - $env.SQLOnlinePassword = 'pass' #Read-SQLPassword '«DataSource»' '«UserName»' - $env.SQLODSWindowsAuthentication = $true - $env.SQLODSUser = 'user' - $env.SQLODSPassword = 'pass' #Read-SQLPassword '«DataSource»' '«UserName»' - $env.SQLDWHWindowsAuthentication = $false - $env.SQLDWHUser = 'user' - $env.SQLDWHPassword = 'pass' #Read-SQLPassword '«DataSource»' '«UserName»' - $env.SQLBackupCompression = $true - $env.ReportServerUri = 'http://cmf-vm-atsh/ReportServer_Online' - $env.ReportUseDefaultCredential = $true - $env.ReportServerUser = '«CMFUser»' - $env.ReportServerPassword = '«CMFUser»' - $env.ReportsOnlineDataSource = '/Datasources/StagingAS' - $env.ReportsODSDataSouce = '/Datasources/StagingODS' - $env.ReportsDWHDataSource = '/Datasources/StagingDWH' - - .OUTPUTS - A custom object representing the cmNavigo environment. The object contains the following properties: - - NLBAddress: address of the NLB cluster in use (or the single app server if NLB is not in use) - - ServicePort: port used for WCF services exposed by the application host - - ReadPasswordToSignGeneratedLBOs: Flag to read password to GenerateLBOs. Required when certificate is encrypted with password. - - ApplicationServers: list of application servers. Should be objects created with the New-CMFServer function. - - OnlineClusterInstance:instance name for the ONLINE database - - ODSClusterInstance: instance name for the ODS database - - DWHClusterInstance: instance name for the DWH database - - OnlineClusterAlwaysOn set to $true if ONLINE cluster is an AlwaysOn Availability Group - - ODSClusterInstanceAlwaysOn set to $true if ODS cluster is an AlwaysOn Availability Group - - DWHClusterInstanceAlwaysOn set to $true if DWH cluster is an AlwaysOn Availability Group - - OnlineReplicas list of database replicas used in HADR cluster for Online database - - ODSReplicas list of database replicas used in HADR cluster for ODS database - - DWHReplicas list of database replicas used in HADR cluster for DWH database - - NavigoServiceName name of the windows service running the application hosts in each app server - - BackupLocation location of the database backups (can be overridden by specific locations per database) - - OnlineBackupLocation: location of the database backups for the online database - - ODSBackupLocation: location of the ODS database backups - - DWHBackupLocation: location of the DWH database backups - - SQLOnlineWindowsAuthentication: Set if the SQL Connection to Online Database is using Windows Authentication - - SQLOnlineUser: The SQL Online Username - - SQLOnlinePassword: The SQL Online Password for selected user - - SQLODSWindowsAuthentication: Set if the SQL Connection to ODS Database is using Windows Authentication - - SQLODSUser: The SQL ODS Username - - SQLODSPassword: The SQL ODS Password for selected user - - SQLDWHWindowsAuthentication: Set if the SQL Connection to DataWareHouse Database is using Windows Authentication - - SQLDWHUser: The SQL DataWareHouse Username - - SQLDWHPassword: The SQL DataWareHouse Password for selected user - - SQLBackupCompression Flag to compress database backups - - ReportServerUri: The ReportServer Uri of Reports - - ReportUseDefaultCredential: Set if the connection to the Report Server is using the default credentials, or if need to set credentials - - ReportServerUser: The Username to access to reportserver - - ReportServerPassword: The password to access to reportserver for selected user - - ReportsOnlineDataSource: The name (and path) of the ReportServer Datasource to database Online - - ReportsODSDataSouce: The name (and path) of the ReportServer Datasource to database ODS - - ReportsDWHDataSource: The name (and path) of the ReportServer Datasource to database DataWareHouse - - .NOTES - The ApplicationServers properties of the returned object are lists which should be filled - with objects created using the New-CMFServer function. Check the corresponding help entry for additional - information. -#> -function New-CMFEnvironment() -{ - param - ( - [string] $SystemName - ) - - $NavigoServiceName = 'cmHostService' + $SystemName - $ODSDBName = $SystemName + 'ODS' - $DWHDBName = $SystemName + 'DWH' - $ReportsOnlineDataSource = '/Datasources/'+$SystemName - $ReportsASDataSource = '/Datasources/'+$SystemName+'AS' - $ReportsODSDataSouce = '/Datasources/'+$SystemName+'ODS' - $ReportsDWHDataSource = '/Datasources/'+$SystemName+'DWH' - - $environment = new-object PSObject - - $environment | add-member -type NoteProperty -Name SystemName -Value $SystemName - - $environment | add-member -type NoteProperty -Name NavigoServiceName -Value $NavigoServiceName - - # derived database names - $environment | add-member -type NoteProperty -Name OnlineDBName -Value $SystemName - $environment | add-member -type NoteProperty -Name ODSDBName -Value $ODSDBName - $environment | add-member -type NoteProperty -Name DWHDBName -Value $DWHDBName - - # database instances - $environment | add-member -type NoteProperty -Name OnlineClusterInstance -Value $null - $environment | add-member -type NoteProperty -Name ODSClusterInstance -Value $null - $environment | add-member -type NoteProperty -Name DWHClusterInstance -Value $null - $environment | add-member -type NoteProperty -Name OnlineClusterAlwaysOn -Value $false - $environment | add-member -type NoteProperty -Name ODSClusterAlwaysOn -Value $false - $environment | add-member -type NoteProperty -Name DWHClusterAlwaysOn -Value $false - $environment | add-member -type NoteProperty -Name OnlineReplicas -Value @() - $environment | add-member -type NoteProperty -Name ODSReplicas -Value @() - $environment | add-member -type NoteProperty -Name DWHReplicas -Value @() - - # server names - $environment | add-member -type NoteProperty -Name ApplicationServers -Value @() - $environment | add-member -type NoteProperty -Name NLBAddress -Value $null - $environment | add-member -type NoteProperty -Name ServicePort -Value $null - $environment | add-member -type NoteProperty -Name ReadPasswordToSignGeneratedLBOs -Value $false - - # backup locations - $environment | add-member -type NoteProperty -Name BackupLocation -Value $null - $environment | add-member -type NoteProperty -Name OnlineBackupLocation -Value $null - $environment | add-member -type NoteProperty -Name ODSBackupLocation -Value $null - $environment | add-member -type NoteProperty -Name DWHBackupLocation -Value $null - - #backup option - $environment | add-member -type NoteProperty -Name SQLBackupCompression -Value $null - - - # user / password for SQL Online - $environment | add-member -type NoteProperty -Name SQLOnlineWindowsAuthentication -Value $null - $environment | add-member -type NoteProperty -Name SQLOnlineUser -Value $null - $environment | add-member -type NoteProperty -Name SQLOnlinePassword -Value $null - - # user / password for SQL ODS - $environment | add-member -type NoteProperty -Name SQLODSWindowsAuthentication -Value $null - $environment | add-member -type NoteProperty -Name SQLODSUser -Value $null - $environment | add-member -type NoteProperty -Name SQLODSPassword -Value $null - - # user / password for SQL DWH - $environment | add-member -type NoteProperty -Name SQLDWHWindowsAuthentication -Value $null - $environment | add-member -type NoteProperty -Name SQLDWHUser -Value $null - $environment | add-member -type NoteProperty -Name SQLDWHPassword -Value $null - - #report server configuration - $environment | add-member -type NoteProperty -Name ReportServerUri -Value $null - $environment | add-member -type NoteProperty -Name ReportUseDefaultCredential -Value $null - $environment | add-member -type NoteProperty -Name ReportServerUser -Value $null - $environment | add-member -type NoteProperty -Name ReportServerPassword -Value $null - $environment | add-member -type NoteProperty -Name ReportsOnlineDataSource -Value $ReportsOnlineDataSource - $environment | add-member -type NoteProperty -Name ReportsODSDataSouce -Value $ReportsODSDataSouce - $environment | add-member -type NoteProperty -Name ReportsDWHDataSource -Value $ReportsDWHDataSource - $environment | add-member -type NoteProperty -Name ReportsASDataSource -Value $ReportsASDataSource - - #erp generation - $environment | add-member -type NoteProperty -Name GenerateErpCustomManagement -Value $true - - # TemporaryFileShare information - $environment | add-member -type NoteProperty -Name TemporaryFileShare -Value $null - - # user / password for HOST - $environment | add-member -type NoteProperty -Name AdminUser -Value $null - $environment | add-member -type NoteProperty -Name AdminPass -Value $null - - # tenant information - $environment | add-member -type NoteProperty -Name ClientTenantName -Value $null - - # UseSSL information - $environment | add-member -type NoteProperty -Name UseSSL -Value $null - - return $environment -} - -<# - .SYNOPSIS - Creates a new object to represent a server that's part of a cmNavigo installation. - - .DESCRIPTION - Returns a new custom object which contains all the required configuration properties for a server that's part of - a cmNavigo installation. Some of the properties on the returned object are only applicable to application servers. - - .PARAMETER ServerName - Machine name used to identify the server. - - .EXAMPLE - $appServer = New-CMFServer 'cmf-vm-test' - $appServer.BusinessInstallationPath = 'C:\'+$env.SystemName+'\Business Tier' - $appServer.GUIInstallationPath = 'C:\inetpub\wwwroot\' + $env.SystemName - $appServer.XAPUpdaterPath = 'C:\'+$env.SystemName+'\cmNavigo Tools\XapUpdater' - - .EXAMPLE - $env = New-CMFEnvironment 'Staging' - $env.ApplicationServers += New-CMFServer 'cmf-vm-test' - - # Installation Paths on App Servers - foreach($appServer in $env.ApplicationServers) - { - $appServer.BusinessInstallationPath = 'C:\'+$env.SystemName+'\Business Tier' - $appServer.GUIInstallationPath = 'C:\inetpub\wwwroot\' + $env.SystemName - $appServer.XAPUpdaterPath = 'C:\'+$env.SystemName+'\cmNavigo Tools\XapUpdater' - } - - .OUTPUTS - A custom object representing the cmNavigo server. The object contains the following properties: - - BusinessInstallationPath: Local path to the business tier installation folder - - GUIInstallationPath: Local path to the presentation tier installation folder (website) - - XAPUpdaterPath: Local path to the XAPUpdated tool, used to generate LBOs on the server -#> -function New-CMFServer() -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $ServerName, - [Parameter(Mandatory=$False)] - [string] $InstallationPath = $null - ) - - # Version dependent - $appServerBusinessInstallationPath = $InstallationPath + "\$CMFBusinessTier" - $appServerXAPUpdaterPath = $InstallationPath + "\$CMFLBOGeneratorWCF\XapUpdater" - $appServerGUIInstallationPath = $InstallationPath + "\$CMFPresentationTier" - $appServerHTMLPath = $InstallationPath + "\$CMFHTML" - $appServerHelpPath = $InstallationPath + "\$CMFHelp" - $appServerLBOGeneratorPath = $InstallationPath + "\$CMFLBOGenerator" - $appServerMasterDataLoaderPath = $InstallationPath + "\$CMFMasterDataLoader" - $appServerProtectUnprotectConfigFilePath = $InstallationPath + "\$CMFProtectUnprotectConfigFile" - - $server = new-object PSObject - - # Main Properties - $server | add-member -type NoteProperty -Name ServerName -Value $ServerName - $server | add-member -type NoteProperty -Name InstallationPath -Value $InstallationPath - - # Business and GUIs - $server | add-member -type NoteProperty -Name BusinessInstallationPath -Value $appServerBusinessInstallationPath - $server | add-member -type NoteProperty -Name GUIInstallationPath -Value $appServerGUIInstallationPath - $server | add-member -type NoteProperty -Name HTMLPath -Value $appServerHTMLPath - $server | add-member -type NoteProperty -Name HelpPath -Value $appServerHelpPath - - # Tools - $server | add-member -type NoteProperty -Name XAPUpdaterPath -Value $appServerXAPUpdaterPath - $server | add-member -type NoteProperty -Name LBOGeneratorPath -Value $appServerLBOGeneratorPath - $server | add-member -type NoteProperty -Name MasterDataLoaderPath -Value $appServerMasterDataLoaderPath - $server | add-member -type NoteProperty -Name ProtectUnprotectConfigFilePath -Value $appServerProtectUnprotectConfigFilePath - - return $server -} - -<# - .SYNOPSIS - Creates a new object to represent a cmNavigo custom service. - - .DESCRIPTION - Returns a new custom object which contains all the required configuration properties to load a custom service assembly to - cmNavigo. Should be used in conjunction with Install-CMFCustomServices function. - - .PARAMETER AssemblyName - Assembly file name to be loaded - - .PARAMETER ServiceName - Name of the service to be registered in cmNavigo - - .PARAMETER InterfaceName - Interface name to be loaded - - .EXAMPLE - New-CMFService -AssemblyName 'Cmf.Custom.Services.BackEnd.BackEndManagement.dll' -ServiceName 'BEBurnInResultsManagement' -InterfaceName 'IBEBurnInResultsManagement' - - .OUTPUTS - A custom object representing the cmNavigo service. The object contains the following properties: - - AssemblyName: Assembly file name to be loaded - - ServiceName: Name of the service to be registered in cmNavigo - - InterfaceName: Interface name to be loaded -#> -function New-CMFService() -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $AssemblyName, - - [Parameter(Mandatory=$True)] - [string] $ServiceName, - - [Parameter(Mandatory=$True)] - [string] $InterfaceName - ) - - $service = new-object PSObject - - $service | add-member -type NoteProperty -Name AssemblyName -Value $AssemblyName - $service | add-member -type NoteProperty -Name ServiceName -Value $ServiceName - $service | add-member -type NoteProperty -Name InterfaceName -Value $InterfaceName - - return $service -} - -<# - .SYNOPSIS - Prepares the current powershell session to call cmNavigo WCF services using LBOs - - .DESCRIPTION - Configures and loads the app.config file and Light Business Objects (LBOs) assembly to allow calling cmNavigo WCF services. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .EXAMPLE - Use-LightBusinessObjects $env - - .NOTES - The LBOs assembly loaded should be placed on the References folder, with the standard name - (Cmf.Proxy.LightBusinessObjects.Assembly.dll). - All service calls are synchronous. -#> -function Use-LightBusinessObjects() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env - ) - - $config_path = (Resolve-Path $ModulePath'\References\MasterData.Exe.config').Path - - sp $config_path IsReadOnly $false - - # Adjust endpoints - Add-Type -AssemblyName ('System.configuration, version=4.0.0.0, '+ 'Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')#System.Configuration - - [Configuration.ConfigurationManager].GetField("s_initState", "NonPublic, Static").SetValue($null, 0) - [Configuration.ConfigurationManager].GetField("s_configSystem", "NonPublic, Static").SetValue($null, $null) - ([Configuration.ConfigurationManager].Assembly.GetTypes() | where {$_.FullName -eq "System.Configuration.ClientConfigPaths"})[0].GetField("s_current", "NonPublic, Static").SetValue($null, $null) - - [System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $null) - [System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $config_path) - #endregion - - # Load LBOs assembly - $candidateAssembly = (Resolve-Path "$ModulePath\References\Cmf.LightBusinessObjects.dll") - - # Load your target version of the assembly - [System.Reflection.Assembly]::LoadFrom((Resolve-Path "$ModulePath\References\Cmf.LoadBalancing.dll")) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path "$ModulePath\References\Cmf.MessageBus.Client.dll")) | Out-Null - if ( Test-Path ("$ModulePath\References\System.Net.Http.dll") ) { - [System.Reflection.Assembly]::LoadFrom((Resolve-Path "$ModulePath\References\System.Net.Http.dll")) | Out-Null - } - - # Method to intercept resolution of binaries - $onAssemblyResolveEventHandler = [System.ResolveEventHandler] { - param($sender, $e) - - # Write-Host "ResolveEventHandler: Attempting FullName resolution of $($e.Name)" - foreach($assembly in [System.AppDomain]::CurrentDomain.GetAssemblies()) { - if ($assembly.FullName -eq $e.Name) { - # Write-Host "Successful FullName resolution of $($e.Name)" - return $assembly - } - } - - # Write-Host "ResolveEventHandler: Attempting name-only resolution of $($e.Name)" - foreach($assembly in [System.AppDomain]::CurrentDomain.GetAssemblies()) { - # Get just the name from the FullName (no version) - $assemblyName = $assembly.FullName.Substring(0, $assembly.FullName.IndexOf(", ")) - - if ($e.Name.StartsWith($($assemblyName + ","))) { - - # Write-Host "Successful name-only (no version) resolution of $assemblyName" - return $assembly - } - } - - # Write-Host "Unable to resolve $($e.Name)" - return $null - } - - # Wire-up event handler - [System.AppDomain]::CurrentDomain.add_AssemblyResolve($onAssemblyResolveEventHandler) - - # Load into app domain - $assembly = [System.Reflection.Assembly]::LoadFrom($candidateAssembly) | Out-Null -} - -<# - .SYNOPSIS - Installs customization assemblies into the business tier directory of application servers. - - .DESCRIPTION - Copies customization assemblies to the business tier folder on one or all application servers. - All copied files will be overwritten if already existing. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER filesPath - Absolute Path to the items to copy. Should be a string ending in \* to copy all files in a given directory or - \*.dll to copy only assemblies. - - .PARAMETER applicationServer - If defined, files will only be copied to the specified application server. - - .EXAMPLE - Install-CMFBusinessAssemblies $env -filesPath .\Business\* - - .NOTES - Application hosts should be stopped for the copy to succeed. - Requires administrative privileges on the application servers. -#> -function Install-CMFBusinessAssemblies() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Path of the business assemblies to install - [Parameter(Mandatory=$True)] - [string]$filesPath, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - LogWrite (" > Starting installation of business assemblies...") - - $source = $filesPath - foreach($appServer in $serversToUse) - { - LogWrite (" Copying assemblies to " + $appServer.ServerName + " ...") - $target = '\\' + $appServer.ServerName + '\' + $appServer.BusinessInstallationPath -replace ':', '$' - - try - { - Copy-Item $source $target -recurse -force - } - catch [Exception] - { - # locked files? - $randomDir = [System.IO.Path]::GetRandomFileName(); - $currentDate = (Get-Date).AddDays(-1).ToString('yyyy-MM-dd') - $lockedPath = Join-Path -Path (Split-Path -parent $target) -ChildPath ("\Backups\Locked-$currentDate-$randomDir") - - LogWrite ("Error Copying "+ $_.Exception.Message) -ForeGroundColor Red - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Host $_.Exception -ForegroundColor Red|format-list -force - } - - LogWrite "Creating locked folder $lockedPath" -ForeGroundColor Yellow - mkdir $lockedPath |out-null - gci -path $source -filter *.dll | ForEach-Object { - $fi = join-path $target $_.Name; - if (Test-Path $fi ){ - move -path $fi -destination $lockedPath - } - } - LogWrite "Trying to copy again... " -ForeGroundColor Yellow - Copy-Item $source $target -recurse -force - } - - } - - LogWrite (" * Completed installation of business assemblies!") -foregroundColor Green -} - -<# - .SYNOPSIS - - -<# - .SYNOPSIS - Copies files to a CMF Folder [on testings] - - .DESCRIPTION - Copies files to a CMF Folder on one or all application servers. - All copied files will be overwritten if already existing. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER folder - Destination folder inside the CMF environment. - - .PARAMETER filesPath - Absolute Path to the items to copy. Should be a string ending in \* to copy all files in a given directory or - \*.dll to copy only assemblies. - - .PARAMETER applicationServer - If defined, files will only be copied to the specified application server. - - .EXAMPLE - Publish-CMFFolder $env -folder BusinessTier -filesPath .\Business\* - - .NOTES - Application hosts should be stopped for the copy to succeed. - Requires administrative privileges on the application servers. -#> -function Publish-CMFFolder() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Folder - [Parameter(Mandatory=$True)] - [string] $folder, - - # Path of the business assemblies to install - [Parameter(Mandatory=$True)] - [string]$filesPath, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - LogWrite (" > Copying files to $folder...") - - $source = $filesPath - foreach($appServer in $serversToUse) - { - LogWrite (" Copying files to " + $appServer.ServerName + " ...") - $target = '\\' + $appServer.ServerName + '\' + ($appServer.InstallationPath -replace ':', '$') - $target = (Join-Path -Path $target -ChildPath ("\" + $folder)) - - try - { - Copy-Item $source $target -recurse -force - } - catch [Exception] - { - # locked fuiles? - $randomDir = [System.IO.Path]::GetRandomFileName(); - $currentDate = (Get-Date).AddDays(-1).ToString('yyyy-MM-dd') - $lockedPath = Join-Path -Path (Split-Path -parent $target) -ChildPath ("\Backups\Locked-$currentDate-$randomDir") - - LogWrite ("Error Copying "+ $_.Exception.Message) -ForeGroundColor Red - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Host $_.Exception -ForegroundColor Red|format-list -force - } - - LogWrite "Creating locked folder $lockedPath" -ForeGroundColor Yellow - mkdir $lockedPath |out-nll - gci -path $source -filter *.dll | ForEach-Object { - $fi = join-path $target $_.Name; - if (Test-Path $fi ){ - move -path $fi -destination $lockedPath - } - } - LogWrite "Trying to copy again... " -ForeGroundColor Yellow - Copy-Item $source $target -recurse -force - } - - } - - LogWrite (" * Completed copying files to $folder!") -foregroundColor Green -} - -<# - .SYNOPSIS - Installs customization assemblies and addins into the presentation tier directory of application servers. - - .DESCRIPTION - Copies customization assemblies and addin files to the presentation tier folder on one or all application servers. - All copied files will be overwritten if already existing. - All files are copied to the ClientBin subfolder. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER filesPath - Absolute Path to the items to copy. Should be a string ending in \* to copy all files in a given directory or - \*.dll to copy only assemblies. - - .PARAMETER applicationServer - If defined, files will only be copied to the specified application server. - - .PARAMETER copyToWebRoot - If defined, copy to web root folder (GUIInstallationPath) instead of ClientBin - - .EXAMPLE - Install-CMFPresentationAssemblies $env -filesPath .\Presentation\* - - .NOTES - Requires administrative privileges on the application servers. -#> -function Install-CMFPresentationAssemblies() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Path of the presentation assemblies to install - [Parameter(Mandatory=$True)] - [string]$filesPath, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer, - - # switch to copy to webroot - [Parameter(Mandatory=$False)] - [switch] $copyToWebRoot - - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - LogWrite (" > Starting installation of presentation assemblies...") - - $source = $filesPath - foreach($appServer in $serversToUse) - { - LogWrite (" Copying assemblies to " + $appServer.ServerName + " ...") - - if( $copyToWebRoot) - { - $target = '\\' + $appServer.ServerName + '\' + $appServer.GUIInstallationPath -replace ':', '$' - } - else - { - $target = '\\' + $appServer.ServerName + '\' + $appServer.GUIInstallationPath + '\ClientBin' -replace ':', '$' - } - - Copy-Item $source $target -recurse -force - } - LogWrite ' * Completed installation of presentation assemblies!' -foregroundColor Green -} - -<# - .SYNOPSIS - Register new addin extensions on the ApplicationRoster.xml file - - .DESCRIPTION - Register a specified addin on the ApplicationRoster.xml file on one or all application servers. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER addinsToRegister - Array containing the names of all addins to be registered. - - .PARAMETER applicationServer - If defined, addins will only be registered on the specified application server. - - .EXAMPLE - Register-CMFAddins $env -addinsToRegister @('MyCustomGUIS') - - .NOTES - If the addins are already registered, they won't be added again. - Requires administrative privileges on the application servers. -#> -function Register-CMFAddins() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # List of addins to register - [Parameter(Mandatory=$True)] - [string[]]$addinsToRegister, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer - - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - $password = Get-SecureStringFromEncryptedString $env.AdminPass - $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $env.AdminUser, $password - - LogWrite(' > Registering addins in application servers...') - # Prepare script to run on each app server - $sc = - { - param($appServer, $addinsToRegister) - - # get xml content - $applicationRosterPath = $appServer.GUIInstallationPath + '\ApplicationRoster.xml' - [xml] $appRosterXml = Get-Content $applicationRosterPath - - # register each addin - foreach($addin in $addinsToRegister) - { - $node = $appRosterXml.App.Addins.Addin | where {$_.name -eq $addin} - if ($node -eq $null) - { - # node does not exist, we need to add it - $node = $appRosterXml.App.Addins.Addin[0].Clone() - $node.name = $addin - $node.source = $addin + '.addin' - $node = $appRosterXml.App.Addins.AppendChild($node) - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Host ' Registering addin' + $addin + 'on app server ' + $appserver.ServerName + '...' - } - } - else - { - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Host ' Addin was already registered on app server ' + $appserver.ServerName -foregroundColor Yellow - } - } - } - - $appRosterXml.Save($applicationRosterPath) - } - - # Execute script on each app server - foreach($appServer in $serversToUse) - { - Invoke-Command -ComputerName $appServer.ServerName -ScriptBlock $sc -ArgumentList $appServer,$addinsToRegister -Credential $cred - LogWrite (" Addins inserted/updated in server " + $appserver.ServerName) - } - LogWrite ' * Addins registered!' -foregroundColor Green -} - -<# - .SYNOPSIS - Stop cmNavigo application hosts. - - .DESCRIPTION - Stops cmNavigo application hosts on one or all application servers and manages their inclusion on the NLB cluster - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER applicationServer - If defined, addins will only be registered on the specified application server. - - .PARAMETER disableNLBManagement - If set, hosts will not be removed from the NLB cluster. To be used when third-party NLB solutions are in use. - - .EXAMPLE - Stop-NavigoHosts $env - - .EXAMPLE - Stop-NavigoHosts $env -applicationServer $env.ApplicationServers[0] -disableNLBManagement - - .NOTES - Host will only be removed from the NLB cluster if there is more than one application server registered on the $env object - passed as argument. Connections to the host are drained for a maximum of 2 minutes before the host is stopped and removed - from the NLB cluster (drainstop). - Requires administrative privileges on the application servers. -#> -function Stop-NavigoHosts() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer, - - # Disable manage NLBs - [Parameter(Mandatory=$False)] - [switch]$disableNLBManagement - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - $password = Get-SecureStringFromEncryptedString $env.AdminPass - $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $env.AdminUser, $password - - LogWrite ' > Stopping application hosts...' - foreach($appServer in $serversToUse) - { - if (-not ($disableNLBManagement)) - { - # before stopping, remove host from NLB, if NLB is in use - if ($env.ApplicationServers.Length -gt 1) - { - LogWrite (" Removing host " + $appServer.ServerName + " from NLB...") - Invoke-Command -ComputerName $appServer.ServerName -Credential $cred -ScriptBlock { Stop-NlbClusterNode -Drain -Timeout 2 } - } - } - - # stop service - # Create a new session remotely to wait for process - $sess = New-PSSession -ComputerName $appServer.ServerName -Credential $cred - Enter-PSSession -Session $sess - - try - { - # request stop service - $service = Get-Service -computername $appServer.ServerName -Name $env.NavigoServiceName - if ($service.Status -eq 'Stopped') - { - LogWrite (" Service was already stopped on " + $appServer.ServerName) -foregroundColor Yellow - } - else - { - LogWrite (" Stopping MES host on " + $appServer.ServerName + "...") - - $service.Stop() - - $service.WaitForStatus('Stopped','00:01:00') - - if ($service.Status -ne 'Stopped') - { - throw 'Service termination timed out!' - } - } - - $processId = gwmi Win32_Service -Filter ("Name LIKE '" + $env.NavigoServiceName + "'") | select -expand ProcessId - - if ($processId -and $processId -ne "0") - { - # Wait 10 seconds to process die, if not process continue but notification is done - $retries = 11 - - $activityDescription = "Killing process" - Write-Progress -Activity ($activityDescription) -Status "Please wait..." - $processKilled = $False - for($i=1; $i -le $retries ; $i++) - { - $processActive = Get-Process -Id $processId -ErrorAction SilentlyContinue - if($processActive -eq $null) - { - $processKilled = $True - break - } - else - { - kill $processId -Force - } - - SLEEP 1 - Write-Progress -Activity ($activityDescription) -CurrentOperation ("Tentative n " + $i ) -Status ("Please wait...") - } - - if($processKilled -eq $True) - { - Write-Progress -Activity $activityDescription -Completed -Status "Process was killed with success." - } - else - { - Write-Progress -Activity $activityDescription -Completed -Status "Killing process failed." - LogWrite (" Killing process failed") -ForeGroundColor Yellow - } - } - else - { - #hack sometimes process id is not found in the process. - #because of that we force a sleep. - - $totalTimeToWait = 5 - LogWrite (" No process id found. Wait " + $totalTimeToWait.ToString() + " seconds to process end") - - $processStopDescription = "Wait " + $totalTimeToWait.ToString() + " seconds to process stop" - Write-Progress -Activity ($processStopDescription) -Status "Please wait..." - for($i=0; $i -le $totalTimeToWait ; $i++) - { - SLEEP 1 - Write-Progress -Activity ($processStopDescription) -CurrentOperation (($i + 1).ToString() + " of " + $totalTimeToWait.ToString()) -Status ("Please wait...") - } - - Write-Progress -Activity $processStopDescription -Completed -Status "Sleep time for Process stop ended." - LogWrite (" End of wait till the process end") - - } - } - finally - { - Remove-PSSession -Session $sess - Exit-PSSession - } - } - LogWrite ' * Application services stopped!' -foregroundColor Green -} - -<# - .SYNOPSIS - Start cmNavigo application hosts. - - .DESCRIPTION - Starts cmNavigo application hosts on one or all application servers and manages their inclusion on the NLB cluster - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER applicationServer - If defined, addins will only be registered on the specified application server. - - .PARAMETER disableNLBManagement - If set, hosts will not be added to the NLB cluster. To be used when third-party NLB solutions are in use. - - .EXAMPLE - Start-NavigoHosts $env - - .EXAMPLE - Start-NavigoHosts $env -applicationServer $env.ApplicationServers[0] -disableNLBManagement - - .NOTES - Host will only be added to the NLB cluster if there is more than one application server registered on the $env object - passed as argument. - Requires administrative privileges on the application servers. -#> -function Start-NavigoHosts() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer, - - # Disable manage NLBs - [Parameter(Mandatory=$False)] - [switch]$disableNLBManagement - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - LogWrite ' > Starting application hosts...' - foreach($appServer in $env.ApplicationServers) - { - $service = Get-Service -computername $appServer.ServerName -Name $env.NavigoServiceName - if ($service.Status -eq 'Running') - { - LogWrite (" Service is already started on " + $appServer.ServerName) -foregroundColor Yellow - } - else - { - LogWrite (" Starting MES host on " + $appServer.ServerName + " ...") - $service.Start() - $service.WaitForStatus('Running', '00:02:00') - } - - if (-not ($disableNLBManagement)) - { - # after starting, start host in NLB, if NLB is in use - if ($env.ApplicationServers.Length -gt 1) - { - Invoke-Command -ComputerName $appServer.ServerName -ScriptBlock { Start-NlbClusterNode } - } - } - } - LogWrite ' * Application services started!' -foregroundColor Green -} - - -<# - .SYNOPSIS - Stop a specific service on all application services. - - .DESCRIPTION - Stops any service on one or all application servers - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER applicationServer - If defined, addins will only be registered on the specified application server. - - .PARAMETER serviceName - Service name to be stopped - - .EXAMPLE - Stop-SpecificService $env -serviceName $env.NavigoRemoteImportExportGatewayServiceName - - .EXAMPLE - Stop-SpecificService $env -applicationServer $env.ApplicationServers[0] -serviceName $env.NavigoRemoteImportExportGatewayServiceName - - .NOTES - Requires administrative privileges on the application servers. -#> -function Stop-SpecificService() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer, - - #Service Name - [Parameter(Mandatory=$True)] - [string]$serviceName - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - - LogWrite " > Stopping service $serviceName..." - foreach($appServer in $serversToUse) - { - # stop service - # Create a new session remotely to wait for process - $password = Get-SecureStringFromEncryptedString $env.AdminPass - $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $env.AdminUser, $password - - $sess = New-PSSession -ComputerName $appServer.ServerName -Credential $cred - Enter-PSSession -Session $sess - - try - { - # request stop service - $service = Get-Service -computername $appServer.ServerName -Name $serviceName - if ($service) - { - if ($service.Status -eq 'Stopped') - { - LogWrite (" Service was already stopped on " + $appServer.ServerName) -foregroundColor Yellow - } - else - { - LogWrite (" Stopping service on " + $appServer.ServerName + "...") - - $service.Stop() - - $service.WaitForStatus('Stopped','00:01:00') - - if ($service.Status -ne 'Stopped') - { - throw 'Service termination timed out!' - } - } - } - - $processId = gwmi Win32_Service -Filter ("Name LIKE '" + $service + "'") | select -expand ProcessId - - if ($processId -and $processId -ne "0") - { - # Wait 10 seconds to process die, if not process continue but notification is done - $retries = 11 - - $activityDescription = "Killing process" - Write-Progress -Activity ($activityDescription) -Status "Please wait..." - $processKilled = $False - for($i=1; $i -le $retries ; $i++) - { - $processActive = Get-Process -Id $processId -ErrorAction SilentlyContinue - if($processActive -eq $null) - { - $processKilled = $True - break - } - else - { - kill $processId -Force - } - - SLEEP 1 - Write-Progress -Activity ($activityDescription) -CurrentOperation ("Tentative n� " + $i ) -Status ("Please wait...") - } - - if($processKilled -eq $True) - { - Write-Progress -Activity $activityDescription -Completed -Status "Process was killed with success." - } - else - { - Write-Progress -Activity $activityDescription -Completed -Status "Killing process failed." - LogWrite (" Killing process failed") -ForeGroundColor Yellow - } - } - else - { - #hack sometimes process id is not found in the process. - #because of that we force a sleep. - - $totalTimeToWait = 5 - LogWrite (" No process id found. Wait " + $totalTimeToWait.ToString() + " seconds to process end") - - $processStopDescription = "Wait " + $totalTimeToWait.ToString() + " seconds to process stop" - Write-Progress -Activity ($processStopDescription) -Status "Please wait..." - for($i=0; $i -le $totalTimeToWait ; $i++) - { - SLEEP 1 - Write-Progress -Activity ($processStopDescription) -CurrentOperation (($i + 1).ToString() + " of " + $totalTimeToWait.ToString()) -Status ("Please wait...") - } - - Write-Progress -Activity $processStopDescription -Completed -Status "Sleep time for Process stop ended." - LogWrite (" End of wait till the process end") - - } - } - finally - { - Remove-PSSession -Session $sess - Exit-PSSession - } - } - LogWrite " * Service $serviceName stopped!" -foregroundColor Green -} - -<# - .SYNOPSIS - Start a specific service on all application services. - - .DESCRIPTION - Starts any service on one or all application servers - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER applicationServer - If defined, addins will only be registered on the specified application server. - - .PARAMETER serviceName - Service name to be started - - .EXAMPLE - Start-SpecificService $env -serviceName $env.NavigoRemoteImportExportGatewayServiceName - - .EXAMPLE - Start-SpecificService $env -applicationServer $env.ApplicationServers[0] -serviceName $env.NavigoRemoteImportExportGatewayServiceName - - .NOTES - Requires administrative privileges on the application servers. -#> -function Start-SpecificService() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer, - - #Service Name - [Parameter(Mandatory=$True)] - [string]$serviceName - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - LogWrite " > Starting service $serviceName..." - foreach($appServer in $env.ApplicationServers) - { - $service = Get-Service -computername $appServer.ServerName -Name $serviceName - if ($service) - { - if ($service.Status -eq 'Running') - { - LogWrite (" Service is already started on " + $appServer.ServerName) -foregroundColor Yellow - } - else - { - LogWrite (" Starting service on " + $appServer.ServerName + " ...") - $service.Start() - $service.WaitForStatus('Running', '00:02:00') - } - } - } - LogWrite " * Service $serviceName started!" -foregroundColor Green -} - -<# - .SYNOPSIS - Installs cmNavigo custom services - - .DESCRIPTION - Install one or more cmNavigo custom services. If already existing, the services are removed and re-added. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER services - Array containing the services to be added. Each service should be a custom object created with the New-CMFService - function. - Each individual interface must be registered as a different service. - - .PARAMETER assembliesPath - Absolute path to the directory containing the specified service assemblies. - - .EXAMPLE - Invoke-SQLScript $env -database 'Online' -scriptPath '.\Analytics\Release 015.1.sql' -username 'CMFUser' -password 'CMFUser' - - .NOTES - Assumes SQL Script file is saved with UTF8 encoding. - GO batch separators are supported, assuming they are placed in separate lines. -#> -function Install-CMFCustomServices() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Services to Install - [Parameter(Mandatory=$True)] - [Object[]]$services, - - [Parameter(Mandatory=$True)] - [string] $assembliesPath - ) - - LogWrite " > Starting deploy of custom services to database..." - - Use-LightBusinessObjects $env - - #region Try to remove the service if it already exists - try - { - [Cmf.Foundation.BusinessOrchestration.WCFServiceManagement.InputObjects.GetAllServicesInput] $getServiceInput = New-Object Cmf.Foundation.BusinessOrchestration.WCFServiceManagement.InputObjects.GetAllServicesInput - $getServiceInput.Filter = New-Object Cmf.Foundation.BusinessObjects.QueryObject.FilterCollection - [Cmf.Foundation.BusinessObjects.ServiceIntegrator.ServiceContractCollection] $existingServices = $getServiceInput.GetAllServicesSync().Services - #Write-Host $existingServices.Count - foreach($service in $services) - { - $existingService = $existingServices | Where-Object { $service.ServiceName -eq $_.Name }# | Select -First 1 - if($existingService) - { - LogWrite (" Service " + $service.InterfaceName + " already exists and will be removed...") -foregroundColor Yellow - - [Cmf.Foundation.BusinessOrchestration.WCFServiceManagement.InputObjects.RemoveServiceInput] $removeServiceInput = New-Object Cmf.Foundation.BusinessOrchestration.WCFServiceManagement.InputObjects.RemoveServiceInput - $removeServiceInput.Service = $existingService - $removeServiceInput.RemoveServiceSync() | Out-Null - - } - - - } - } - catch [Exception] - { - LogWrite $_.Exception.Message - } - #endregion - - foreach($service in $services) - { - #region Read assembly and compute checksum - LogWrite (" Adding service " + $service.InterfaceName + " ...") - - $sha = New-Object System.Security.Cryptography.SHA256CryptoServiceProvider - $assemblyPath = Join-Path $assembliesPath $service.AssemblyName - [byte[]] $assemblyBytes = [System.IO.File]::ReadAllBytes($assemblyPath) - [byte[]] $checksum = $sha.ComputeHash($assemblyBytes) - - [Cmf.Foundation.BusinessOrchestration.WCFServiceManagement.InputObjects.GetExportedTypesForAssemblyInput] $getTypesInput = New-Object Cmf.Foundation.BusinessOrchestration.WCFServiceManagement.InputObjects.GetExportedTypesForAssemblyInput - $getTypesInput.Assembly = New-Object Cmf.Foundation.BusinessObjects.ServiceIntegrator.ServiceAssembly - $getTypesInput.Assembly.Assembly = $assemblyBytes - $fullAssemblyName = $getTypesInput.GetExportedTypesForAssemblySync().FullAssemblyName - #endregion - - #region Prepare Service Contract - [Cmf.Foundation.BusinessObjects.ServiceIntegrator.ServiceContract] $serviceContract = New-Object Cmf.Foundation.BusinessObjects.ServiceIntegrator.ServiceContract - $serviceContract.Name = $service.ServiceName - $serviceContract.IsSystem = $false - $serviceContract.Active = $true - $serviceContract.Description = $service.ServiceName - $serviceContract.ServiceInterface = $service.InterfaceName - $serviceContract.ServiceAssembly = New-Object Cmf.Foundation.BusinessObjects.ServiceIntegrator.ServiceAssembly - $serviceContract.ServiceAssembly.IsSystem = $false - $serviceContract.ServiceAssembly.Name = $fullAssemblyName - $serviceContract.ServiceAssembly.Assembly = $assemblyBytes - $serviceContract.ServiceAssembly.Checksum = $checksum - #endregion - - # Call Service - [Cmf.Foundation.BusinessOrchestration.WCFServiceManagement.InputObjects.CreateServiceInput] $createServiceInput = New-Object Cmf.Foundation.BusinessOrchestration.WCFServiceManagement.InputObjects.CreateServiceInput - $createServiceInput.Service = $serviceContract - $return = $createServiceInput.CreateServiceSync() - } - - LogWrite " * Finished deploy of custom services to database!" -foregroundColor Green -} - -<# - .SYNOPSIS - Generates LBOs - - .DESCRIPTION - Generate LBOs and update XAP files on one or all application servers. Assumes LBO generator is correctly configured on - each application server. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER applicationServer - If defined, LBOs will be generated only in the specified application server. - - .EXAMPLE - Update-LightBusinessObjects $env - - .NOTES - Requires admininstrative permissions on the application servers. -#> -function Update-LightBusinessObjects() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$isToGenerateWCF = $false - - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - LogWrite ' > Generating LBOs in application servers...' - - - $certPassword = $null - - $password = Get-SecureStringFromEncryptedString $env.AdminPass - $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $env.AdminUser, $password - - if( $env.ReadPasswordToSignGeneratedLBOs -eq $true ) - { - $secureCertPassword = Read-Host "Enter certificate password:" -AsSecureString - $psCred = New-Object System.Management.Automation.PSCredential ("dummyUser", $secureCertPassword) - $certPassword = $psCred.GetNetworkCredential().Password; - } - - - # Prepare script to runon each app server - $sc = - { - param($XAPUpdaterPath, $certPassword) - - if( -not($certPassword -eq $null)) - { - $tmpFile = [System.IO.Path]::GetTempFileName()+'.cmd' - - try - { - Set-Content $tmpFile "echo $certPassword | ""$XAPUpdaterPath\GenerateLBOsAndUpdateXapFile.bat""" - - Start-Process $tmpFile -Wait -WorkingDirectory $XAPUpdaterPath | Out-Host - } - finally - { - if( Test-Path $tmpFile ){ - Set-Content $tmpFile ' ' # clear the contents - Remove-Item $tmpFile - } - } - } - else - { - Set-Location -Path $XAPUpdaterPath - .\GenerateLBOsAndUpdateXapFile.bat - } - } - # Prepare script to runon each app server - $puhfc = - { - param($protectUnprotectConfigFilePath, $mode, $businessInstallationPath) - - $arguments = "/Mode:$mode /InstallPath:""$businessInstallationPath""" - - Write-Host "Deal with host config file" - Set-Location -Path $protectUnprotectConfigFilePath - Start-Process Cmf.Tools.ProtectUnprotectConfigFile.exe $arguments -Wait - } - - # Prepare script to runon each app server - $restlboc = - { - param($lboGeneratorPath) - - Set-Location -Path $lboGeneratorPath - .\LBOUpdater.ps1 - } - - # Execute batch script on each app server - foreach($appServer in $serversToUse) - { - LogWrite( ' Starting LBO Generation on '+ $appserver.ServerName +' ...') - - if($isToGenerateWCF) - { - #WCF LBOs - Invoke-Command -ScriptBlock $sc -ArgumentList @($appServer.XAPUpdaterPath, $certPassword) -ComputerName $appServer.ServerName -Credential $cred - } - - #Unprotect HostConfigFile - Invoke-Command -ScriptBlock $puhfc -ArgumentList @($appServer.ProtectUnprotectConfigFilePath, 2, $appServer.BusinessInstallationPath) -ComputerName $appServer.ServerName -Credential $cred - - #REST LBOs - Invoke-Command -ScriptBlock $restlboc -ArgumentList @($appServer.LBOGeneratorPath) -ComputerName $appServer.ServerName -Credential $cred - - #Protect HostConfigFile - Invoke-Command -ScriptBlock $puhfc -ArgumentList @($appServer.ProtectUnprotectConfigFilePath, 1, $appServer.BusinessInstallationPath) -ComputerName $appServer.ServerName -Credential $cred - - LogWrite (' Finished LBO Generation on ' +$appserver.ServerName +' ...') - } - - LogWrite ' * LBOs generated!' -foregroundColor Green -} - -<# - .SYNOPSIS - Gets the Available Types of a given Master Data file - - .DESCRIPTION - Uses the master data loader application logic to get the available types of the master data file. - This function uses the same logic as the standard Master Data Loader in Navigo. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER excelFile - Absolute to the Excel file to be loaded. - - .PARAMETER TypesToExclude - String array containing the types to be excluded. - If TypesToLoad is defined, this parameter is ignored. - - .EXAMPLE - Get-MasterDataAvailableTypes $env -excelFile 'C:\MasterData.xlsx' - - .EXAMPLE - Get-MasterDataAvailableTypes $env -excelFile 'C:\MasterData.xlsx' -typesToExclude @('Document') - - .NOTES - Master data logic uses LBOs to load data into cmNavigo. The LBOs assenmbly used is located on the References folder. -#> -function Get-MasterDataAvailableTypes() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - #Excel file - [Parameter(Mandatory=$True)] - [string] $excelFile, - - #Exclude Types - [Parameter(Mandatory=$False)] - [string[]] $TypesToExclude - ) - - Use-LightBusinessObjects $env - - # Prepare config arguments - # Load master data logic assembly - [Reflection.Assembly]::LoadFrom((Resolve-Path "$ModulePath\References\MasterData.Logic.dll")) | Out-Null - - $configArguments = [MasterData.Logic.ConfigArguments]::Singleton - $configArguments.UploadedFile = $excelFile - - # Get available types - [MasterData.Logic.Runner]::GetAvailableTypes() - - # Prepare types to load - $TypesToLoad = @() - foreach($typeToLoad in $configArguments.AvailableTypes) - { - if (-not ($TypesToExclude -ne $null -and $TypesToExclude.Contains($typeToLoad.UserObjectType))) - { - $TypesToLoad += $typeToLoad.UserObjectType - } - } - - return $TypesToLoad -} - -<# - .SYNOPSIS - Load Master Data file - - .DESCRIPTION - Uses the master data loader application logic to load a master data file into cmNavigo. - This function uses the same logic as the standard Master Data Loader in Navigo. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER excelFile - Absolute to the Excel file to be loaded. - - .PARAMETER typesToLoad - String array containing the types to be loaded. - If not defined, all types on the excel file will be loaded. - - .PARAMETER deeBasePath - Absolute path to the folder containing the code files for DEE rules to be imported. - Required if DEE rules are to be imported. - - .PARAMETER documentsBasePath - Absolute path to the folder containint the documents to be uploaded. - Required if Documents are to be imported. - - .PARAMETER createInCollection - Set this flag if objects are to be loaded in collection. If not set, objects are loaded individually. - - .PARAMETER TypesToExclude - String array containing the types to be excluded. - If TypesToLoad is defined, this parameter is ignored. - - .EXAMPLE - Invoke-MasterDataLoader $env -excelFile 'C:\MasterData.xlsx' - - .EXAMPLE - Invoke-MasterDataLoader $env -excelFile 'C:\MasterData.xlsx' -typesToLoad @('Parameter', 'DataCollection') - - .EXAMPLE - Invoke-MasterDataLoader $env -excelFile 'C:\MasterData.xlsx' -typesToLoad @('DEEAction') -deeBasePath 'C:\DEE' - - .EXAMPLE - Invoke-MasterDataLoader $env -excelFile 'C:\MasterData.xlsx' -typesToLoad @('Document') -documentsBasePath 'C:\Documents' - - .EXAMPLE - Invoke-MasterDataLoader $env -excelFile 'C:\MasterData.xlsx' -deeBasePath 'C:\DEE' -createInCollection - - .NOTES - Master data logic uses LBOs to load data into cmNavigo. The LBOs assenmbly used is located on the References folder. - Master data loading errors are shown on the console but not actually treated as execution errors or exceptions, - since they are a common occurrence in deployment procedures. -#> -function Invoke-MasterDataLoader() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - #Excel file - [Parameter(Mandatory=$True)] - [string] $excelFile, - - #Types to load - [Parameter(Mandatory=$False)] - [string[]] $TypesToLoad, - - #Dee base path - [Parameter(Mandatory=$False)] - [string] $deeBasePath, - - #Document base path - [Parameter(Mandatory=$False)] - [string] $documentsBasePath, - - #Mapping Files base path - [Parameter(Mandatory=$False)] - [string] $mappingFilesBasePath, - - #Automation Workflow Files base path - [Parameter(Mandatory=$False)] - [string] $automationWorkflowFilesBasePath, - - #Checklist Image base path - [Parameter(Mandatory=$False)] - [string] $checklistImageBasePath, - - #ImportObjects base path - [Parameter(Mandatory=$False)] - [string] $importObjectBasePath, - - #create in collection - [Parameter(Mandatory=$False)] - [switch] $createInCollection, - - #Exclude Types - [Parameter(Mandatory=$False)] - [string[]] $TypesToExclude - ) - - LogWrite " > Starting master data installation..." - LogWrite " $excelFile" - - Use-LightBusinessObjects $env - - # Prepare config arguments - # Load master data logic assembly - [Reflection.Assembly]::LoadFrom((Resolve-Path "$ModulePath\References\MasterData.Logic.dll")) | Out-Null - - $configArguments = [MasterData.Logic.ConfigArguments]::Singleton - $configArguments.UploadedFile = $excelFile - $configArguments.CreateInCollection = $createInCollection - if ($deeBasePath) { $configArguments.DeeActionBasePath = (Resolve-Path $deeBasePath).Path } - if ($documentsBasePath) { $configArguments.DocumentFilesBasePath = (Resolve-Path $documentsBasePath).Path } - if ($automationWorkflowFilesBasePath) { $configArguments.AutomationWorkflowFilesBasePath = (Resolve-Path $automationWorkflowFilesBasePath).Path } - if ($mappingFilesBasePath) { $configArguments.MappingFilesBasePath = (Resolve-Path $mappingFilesBasePath).Path } - if ($checklistImageBasePath) { $configArguments.ChecklistImagePath = (Resolve-Path $checklistImageBasePath).Path } - if ($importObjectBasePath) { $configArguments.ImportObjectBasePath = (Resolve-Path $importObjectBasePath).Path } - - # Get available types - [MasterData.Logic.Runner]::GetAvailableTypes() - # Prepare types to load - if($TypesToLoad -eq $null) - { - $TypesToLoad = @() - foreach($typeToLoad in $configArguments.AvailableTypes) - { - if (-not ($TypesToExclude -ne $null -and $TypesToExclude.Contains($typeToLoad.UserObjectType))) - { - $TypesToLoad += $typeToLoad.UserObjectType - } - } - } - - if ( $TypesToLoad.length -gt 0 ) { - LogWrite " Loading types: " - foreach($type in $TypesToLoad) - { - LogWrite (" - " + $type) - } - $TypesToLoad = $TypesToLoad | % { $_.ToLower() } - $configArguments.ObjectsToLoad = $TypesToLoad - - $global:hasErrors = 0 - - # register for logger events - $logger = [MasterData.Logic.Logger] - $eventJob = Register-ObjectEvent -InputObject $logger -EventName OnLog -Action { - if($event.SourceArgs[0].LogType -eq [MasterData.Logic.LogType]::Error) - { - LogWrite (" " + $event.SourceArgs[0].LogMessage) -ForegroundColor Red - - $global:hasErrors = 1 - - if($global:InteractiveMode -eq $false -and $setPartiallySucceeded ) - { - # Assuming this is running as part of a TFS build, set the build task to partially succeeded - Write-Host "##vso[task.complete result=SucceededWithIssues;] There was at least one error during master data loading. Please check the master data log for details." - } - } - else - { - LogWrite (" "+$event.SourceArgs[0].LogMessage) - } - } - - # Run master data - try - { - $activityDescription = "Uploading master data to MES..." - Write-Progress -Activity ($activityDescription) -Status "Please wait..." - [MasterData.Logic.Runner]::Run([MasterData.Logic.Runner+RunnerMode]::Upload) - Write-Progress -Activity $activityDescription -Completed -Status "Master data has finished." - } - finally - { - [System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $null) - Unregister-Event -SourceIdentifier $eventJob.Name - } - - LogWrite " * Finished running master data ($excelFile)!" -foregroundColor Green - } - else { - LogWrite " * No types to load on master data ($excelFile)!" -foregroundColor Green - } - - return $global:hasErrors -} - -<# - .SYNOPSIS - Load Master Data files by folder - - .DESCRIPTION - Uses the master data loader application logic to load master data files within a folder into cmNavigo. - This function uses the same logic as the standard Master Data Loader in Navigo. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER excelFolder - Absolute to the Excel file to be loaded. - - .PARAMETER typesToLoad - String array containing the types to be loaded. - If not defined, all types on the excel file will be loaded. - - .PARAMETER deeBasePath - Absolute path to the folder containing the code files for DEE rules to be imported. - Required if DEE rules are to be imported. - - .PARAMETER documentsBasePath - Absolute path to the folder containint the documents to be uploaded. - Required if Documents are to be imported. - - .PARAMETER createInCollection - Set this flag if objects are to be loaded in collection. If not set, objects are loaded individually. - - .PARAMETER TypesToExclude - String array containing the types to be excluded. - If TypesToLoad is defined, this parameter is ignored. - - .PARAMETER stopOnError - Stop loading if it finds error in loading onne master data - - .EXAMPLE - Invoke-MasterDataLoaderByFolder $env -excelFolder 'C:\MasterData' - - .EXAMPLE - Invoke-MasterDataLoaderByFolder $env -excelFolder 'C:\MasterData' -typesToLoad @('Parameter', 'DataCollection') - - .EXAMPLE - Invoke-MasterDataLoaderByFolder $env -excelFolder 'C:\MasterData' -typesToLoad @('DEEAction') -deeBasePath 'C:\DEE' - - .EXAMPLE - Invoke-MasterDataLoaderByFolder $env -excelFolder 'C:\MasterData' -typesToLoad @('Document') -documentsBasePath 'C:\Documents' - - .EXAMPLE - Invoke-MasterDataLoaderByFolder $env -excelFolder 'C:\MasterData' -deeBasePath 'C:\DEE' -createInCollection - - .NOTES - Master data logic uses LBOs to load data into cmNavigo. The LBOs assenmbly used is located on the References folder. - Master data loading errors are shown on the console but not actually treated as execution errors or exceptions, - since they are a common occurrence in deployment procedures. -#> -function Invoke-MasterDataLoaderByFolder() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - #Excel file - [Parameter(Mandatory=$True)] - [string] $excelFolder, - - #Types to load - [Parameter(Mandatory=$False)] - [string[]] $TypesToLoad, - - #Dee base path - [Parameter(Mandatory=$False)] - [string] $deeBasePath, - - #Document base path - [Parameter(Mandatory=$False)] - [string] $documentsBasePath, - - #Mapping Files base path - [Parameter(Mandatory=$False)] - [string] $mappingFilesBasePath, - - #Automation Workflow Files base path - [Parameter(Mandatory=$False)] - [string] $automationWorkflowFilesBasePath, - - #Checklist Image base path - [Parameter(Mandatory=$False)] - [string] $checklistImageBasePath, - - #ImportObjects base path - [Parameter(Mandatory=$False)] - [string] $importObjectBasePath, - - #create in collection - [Parameter(Mandatory=$False)] - [switch] $createInCollection, - - #Exclude Types - [Parameter(Mandatory=$False)] - [string[]] $TypesToExclude, - - #Stop on Error - [Parameter(Mandatory=$False)] - [bool] $stopOnError - ) - - Use-LightBusinessObjects $env - # Prepare config arguments - - if (Test-Path $excelFolder) - { - $excelFolder = "$(Resolve-Path $excelFolder)" - # Master Data Files in folder - $excelFiles = Get-ChildItem ($excelFolder) -File -Include '*.xlsx','*.xml','*.json' -recurse | Where {$_.FullName -notlike "*\AutomationWorkflowFiles\*"} | Sort-Object Name - LogWrite (" * Loading $($excelFiles.Count) MasterData files from folder ($excelFolder)...") - $OriginalTypesToLoad = $TypesToLoad - $OriginalTypesToExclude = $TypesToExclude - - foreach ($file in $excelFiles ) - { - # Get available types - # Prepare types to load - if ( $TypesToLoad -eq $null ) - { - $TypesToLoad = Get-MasterDataAvailableTypes $env $file $TypesToExclude - } - - if (!($TypesToExclude -contains 'LookupTableValues') -and - (!$TypesToLoad -or ($TypesToLoad -contains 'LookupTableValues'))) - { - for ($i=0; $i -lt 10; $i++) { - $hasErrors = Invoke-MasterDataLoader $env ` - -excelFile $file ` - -typesToLoad @('LookupTableValues') - if(! $hasErrors) - { - break - } - } - } - - if (!($TypesToExclude -contains 'EntityTypeProperty') -and - (!$TypesToLoad -or ($TypesToLoad -contains 'EntityTypeProperty'))) - { - for ($i=0; $i -lt 10; $i++) { - $hasErrors = Invoke-MasterDataLoader $env ` - -excelFile $file ` - -typesToLoad @('EntityTypeProperty') - if(! $hasErrors) - { - break - } - } - } - - if (!($TypesToExclude -contains 'Config') -and - (!$TypesToLoad -or ($TypesToLoad -contains 'Config'))) - { - for ($i=0; $i -lt 10; $i++) { - $hasErrors = Invoke-MasterDataLoader $env ` - -excelFile $file ` - -typesToLoad @('Config') - if(! $hasErrors) - { - break - } - } - } - - $TypesToExclude += 'Config' - $TypesToExclude += 'EntityTypeProperty' - $TypesToExclude += 'LookupTableValues' - - # Identify the Actual Types to be loaded (TypesToLoad - TypesToExclude) - $ActualTypesToLoad = @() - foreach ( $typeToLoad in $TypesToLoad ) { - if (-not ( $TypesToExclude.Contains($typeToLoad) )) - { - $ActualTypesToLoad += $typeToLoad - } - } - - if ( $ActualTypesToLoad.length -gt 0 ) { - $hasErrors = Invoke-MasterDataLoader $env ` - -excelFile $file ` - -deeBasePath $deeBasePath ` - -documentsBasePath $documentsBasePath ` - -mappingFilesBasePath $mappingFilesBasePath ` - -automationWorkflowFilesBasePath $automationWorkflowFilesBasePath ` - -checklistImageBasePath $checklistImageBasePath ` - -importObjectBasePath $importObjectBasePath ` - -createInCollection:$createInCollection ` - -typesToLoad $ActualTypesToLoad ` - -TypesToExclude $TypesToExclude - } - - $TypesToLoad = $OriginalTypesToLoad - $TypesToExclude = $OriginalTypesToExclude - - if($stopOnError -and $hasErrors ) - { - break - } - } - } - else { - LogWrite ("No MasterData found in folder ($excelFolder)...") -foregroundColor Yellow - } - - return $global:hasErrors -} - -<# - .SYNOPSIS - Import cmNavigo objects - - .DESCRIPTION - Imports objects to cmNavigo exported to xml using the native Export functionality. - Supports versioned and non-versioned entity types. For versioned objects, a new change set is created and approved. The imported - object is set effective. - Static model objects that have import/export support in cmNavigo are also supported. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER fileName - Path to the xml file to be imported. - - .EXAMPLE - Import-NavigoObject $env 'C:\DataCollection1.xml' -#> -function Import-NavigoObject -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # file - [Parameter(Mandatory=$True)] - [string]$filename - ) - - LogWrite " > Starting object import..." - - Use-LightBusinessObjects $env - - #region Get entity type to find if it's versionable - [xml] $xml = Get-Content $filename - [string] $fullTypeName = $xml.'CMF.ExportFile'.Object.type - $entityTypeName = $fullTypeName.Split(", ")[0].Split(".")[-1] - - # use try block to deal with objects from static model (not entity types) - try - { - [Cmf.Foundation.BusinessOrchestration.EntityTypeManagement.InputObjects.GetEntityTypeByNameInput]$getETinput = New-Object Cmf.Foundation.BusinessOrchestration.EntityTypeManagement.InputObjects.GetEntityTypeByNameInput - $getETinput.Name = $entityTypeName - $isVersioned = $getETinput.GetEntityTypeByNameSync().EntityType.IsVersioned - } - catch [Exception] { $isVersioned = $false } - #endregion - - # create change set - if ($isVersioned) - { - [Cmf.Foundation.BusinessOrchestration.ChangeSetManagement.InputObjects.CreateChangeSetInput] $createCSInput = New-Object Cmf.Foundation.BusinessOrchestration.ChangeSetManagement.InputObjects.CreateChangeSetInput - [Cmf.Foundation.BusinessObjects.ChangeSet] $changeSet = New-Object Cmf.Foundation.BusinessObjects.ChangeSet - $changeSet.Name = [guid]::NewGuid() - $createCSInput.ChangeSet = $changeSet - $changeSet.Type = 'General' - $changeSet.MakeEffectiveOnApproval = $true - $changeSet = $createCSInput.CreateChangeSetSync().ChangeSet - } - - # Call service for import - [Cmf.Foundation.BusinessOrchestration.ImportExportManagement.InputObjects.ImportObjectsInput] $inputObj = New-Object Cmf.Foundation.BusinessOrchestration.ImportExportManagement.InputObjects.ImportObjectsInput - $inputObj.Xml = Get-Content $filename -Encoding UTF8 - $inputObj.ChangeSet = $changeSet - - $return = $inputObj.ImportObjectsSync() - - $object = $return.Objects[0] - - if ($isVersioned) - { - # Approve Change set - [Cmf.Foundation.BusinessOrchestration.ChangeSetManagement.InputObjects.RequestChangeSetApprovalInput] $requestApprovalInput = New-Object Cmf.Foundation.BusinessOrchestration.ChangeSetManagement.InputObjects.RequestChangeSetApprovalInput - $requestApprovalInput.ChangeSet = $changeSet - $requestApprovalInput.IgnoreLastServiceId = $true - $return = $requestApprovalInput.RequestChangeSetApprovalSync() - } - - LogWrite (" Imported object " + $object.Name + "of type " + $object.GetType().Name + " ...") - - LogWrite " * Finished importing object!" -foregroundColor Green -} - -<# - .SYNOPSIS - Import cmNavigo objects - - .DESCRIPTION - Imports objects to cmNavigo exported to xml using the native Export functionality. - Supports versioned and non-versioned entity types. For versioned objects, a new change set is created and approved. The imported - object is set effective. - Static model objects that have import/export support in cmNavigo are also supported. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER objectsPath - Path of XML files to be imported. - - .EXAMPLE - Import-NavigoObjects $env $listObjectsToImport -securityToken "uipagesimportdf" -#> -function Import-NavigoObjects -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # objectsPath - [Parameter(Mandatory=$True)] - [string]$objectsPath, - - # securityToken - [Parameter(Mandatory=$False)] - [string]$securityToken - - ) - - LogWrite " > Importing objects from folder $($objectsPath)..." - if (Test-Path ($objectsPath)) { - Use-LightBusinessObjects $env - - if ($securityToken) - { - #Insert import token in table - $InsertQuery = "INSERT INTO [Control].[T_ImportToken] (SecurityToken, IsTokenActive) - VALUES ('$securityToken', 1);" - - $filePath = '.\InsertImportToken.sql'; - - Set-Content -path $filePath -value $InsertQuery - try{ - Invoke-SQLScript $env -database 'Online' -scriptPath $filePath - }finally{ - Remove-Item $filePath - } - } - - # Extract ZIP files to be imported - $archivesToDecompress = Get-ChildItem ("$objectsPath\*") -Include *.zip| Sort-Object Name - foreach($archive in $archivesToDecompress) - { - LogWrite (" > Extracting archive " + (Resolve-Path $archive | Split-Path -Leaf) + "...") - $filesExpanded = Expand-Archive $archive -Destination (Resolve-Path $archive | Split-Path -Parent) -Force - } - - $filesToImport = Get-ChildItem ("$objectsPath\*") -Include *.xml,*.cmf| Sort-Object Name - - if($filesToImport.Count -gt 0){ - - foreach($filename in $filesToImport) - { - LogWrite (" > Importing file " + (Resolve-Path $filename | Split-Path -Leaf) + "...") - - #region Get entity type to find if it's versionable - [xml] $xml = Get-Content $filename - [string] $fullTypeName = $xml.'CMF.ExportFile'.Object.type - $entityTypeName = $fullTypeName.Split(", ")[0].Split(".")[-1] - - # use try block to deal with objects from static model (not entity types) - try - { - [Cmf.Foundation.BusinessOrchestration.EntityTypeManagement.InputObjects.GetEntityTypeByNameInput]$getETinput = New-Object Cmf.Foundation.BusinessOrchestration.EntityTypeManagement.InputObjects.GetEntityTypeByNameInput - $getETinput.Name = $entityTypeName - $isVersioned = $getETinput.GetEntityTypeByNameSync().EntityType.IsVersioned - } - catch [Exception] { $isVersioned = $false } - #endregion - - - # create change set - if ($isVersioned) - { - [Cmf.Foundation.BusinessOrchestration.ChangeSetManagement.InputObjects.CreateChangeSetInput] $createCSInput = New-Object Cmf.Foundation.BusinessOrchestration.ChangeSetManagement.InputObjects.CreateChangeSetInput - [Cmf.Foundation.BusinessObjects.ChangeSet] $changeSet = New-Object Cmf.Foundation.BusinessObjects.ChangeSet - $changeSet.Name = [guid]::NewGuid() - $createCSInput.ChangeSet = $changeSet - $changeSet.Type = 'General' - $changeSet.MakeEffectiveOnApproval = $true - $changeSet = $createCSInput.CreateChangeSetSync().ChangeSet - } - - - # Call service for import - [Cmf.Foundation.BusinessOrchestration.ImportExportManagement.InputObjects.ImportObjectsInput] $inputObj = New-Object Cmf.Foundation.BusinessOrchestration.ImportExportManagement.InputObjects.ImportObjectsInput - $inputObj.Xml = Get-Content $filename -Encoding UTF8 - $inputObj.ChangeSet = $changeSet - - if ($securityToken) - { - $inputObj.SecurityToken = "$securityToken" - $inputObj.EntityTypeNamesReplace = New-Object System.Collections.ObjectModel.Collection -TypeName String - $inputObj.EntityTypeNamesReplace[0] = $entityTypeName - } - - $return = $inputObj.ImportObjectsSync() - - $objects = $return.Objects - - if ($isVersioned) - { - # Approve Change set - [Cmf.Foundation.BusinessOrchestration.ChangeSetManagement.InputObjects.RequestChangeSetApprovalInput] $requestApprovalInput = New-Object Cmf.Foundation.BusinessOrchestration.ChangeSetManagement.InputObjects.RequestChangeSetApprovalInput - $requestApprovalInput.ChangeSet = $changeSet - $requestApprovalInput.IgnoreLastServiceId = $true - $return = $requestApprovalInput.RequestChangeSetApprovalSync() - } - - foreach ($object in $objects) { - LogWrite (" Imported object " + $object.Name + " of type " + $object.GetType().Name + " ...") - } - } - } - - #Delete import token in table - if ($securityToken) - { - $DELQuery = "DELETE From [Control].[T_ImportToken] Where SecurityToken='$securityToken'" - $filePath = '.\DeleteImportToken.sql'; - - Set-Content -path $filePath -value $DELQuery - try{ - Invoke-SQLScript $env -database 'Online' -scriptPath $filePath - }finally{ - Remove-Item $filePath - } - } - - LogWrite " * Finished importing objects!" -foregroundColor Green - } else { - LogWrite " ! Folder not found!" -foregroundColor Yellow - } -} - -<# - .SYNOPSIS - Creates a new object to represent a cmNavigo ERP Action. - - .DESCRIPTION - Returns a new custom object which contains all the required configuration properties to load a custom ERP action to - cmNavigo. Should be used in conjunction with Install-ERPActions function. - - .PARAMETER ActionName - Name of the action - - .PARAMETER Description - The description of the ERP action - - .PARAMETER SourceName - The Name of the IDOC to use - - .PARAMETER TargetName - The Name of the DEE Action to use - - .EXAMPLE - $erpActions += New-ERPAction -actionName 'Employee01' -description 'Creates employees from SAP' -sourceName 'HRMD_A09' -targetName 'ZHRMDIDocReceiverAction' - - .OUTPUTS - A custom object representing the cmNavigo service. The object contains the following properties: - - ActionName: The name of ERP action - - Description: The description of the action - - SourceName: The name of the IDOC to use - - TargetName: The name of the DEE to use -#> -function New-ERPAction() -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $actionName, - - [Parameter(Mandatory=$True)] - [string] $description, - - [Parameter(Mandatory=$True)] - [string] $sourceName, - - [Parameter(Mandatory=$True)] - [string] $targetName - ) - - $erpAction = new-object PSObject - - $erpAction | add-member -type NoteProperty -Name ActionName -Value $actionName - $erpAction | add-member -type NoteProperty -Name Description -Value $description - $erpAction | add-member -type NoteProperty -Name SourceName -Value $sourceName - $erpAction | add-member -type NoteProperty -Name TargetName -Value $targetName - - return $erpAction -} - -<# - .SYNOPSIS - Installs cmNavigo ERP Actions - - .DESCRIPTION - Install one or more cmNavigo ERP Actions. If already existing, the ERP action will be ignore and nothing will be done. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER erpActions - Array containing the ERP actions to be added. Each action should be a custom object created with the New-ERPAction - function. - - - .EXAMPLE - Install-ERPActions $env -erpActions $erpActions - -#> -function Install-ERPActions() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Services to Install - [Parameter(Mandatory=$True)] - [Object[]]$erpActions - ) - - LogWrite " > Starting deploy of ERP action to database..." - - Use-LightBusinessObjects $env - - foreach($service in $erpActions) - { - [Cmf.Foundation.BusinessOrchestration.ErpManagement.InputObjects.GetErpTriggerByNameInput] $getErpTrigger = New-Object Cmf.Foundation.BusinessOrchestration.ErpManagement.InputObjects.GetErpTriggerByNameInput - $getErpTrigger.Name = $service.ActionName - - $continue = $true - - try - { - $result = $getErpTrigger.GetErpTriggerByNameSync() - if ($result -or $result.ErpTrigger -or $result.ErpTrigger.Name) - { - LogWrite (" Trigger " + $service.ActionName + " already in server ") $appserver.ServerName -foregroundColor Yellow - continue = $false - } - } - catch{} - - - - if ($continue) - { - LogWrite (" Adding ERP Action " + $service.ActionName + " ...") - [Cmf.Foundation.BusinessOrchestration.ErpManagement.InputObjects.CreateErpTriggerInput] $createServiceInput = New-Object Cmf.Foundation.BusinessOrchestration.ErpManagement.InputObjects.CreateErpTriggerInput - - [Cmf.Foundation.Erp.ErpTrigger] $inputObj = New-Object Cmf.Foundation.Erp.ErpTrigger - $inputObj.Name = $service.ActionName - $inputObj.Description = $service.Description - $inputObj.SourceName = $service.SourceName - $inputObj.Targetname = $service.Targetname - $inputObj.Type = [Cmf.Foundation.Erp.ErpTriggerType]::DeeRule - - $createServiceInput.ErpTrigger = $inputObj; - $return = $createServiceInput.CreateErpTriggerSync() - - } - - } - - LogWrite " * Finished deploy of ERP actions to database!" -foregroundColor Green -} - -<# - .SYNOPSIS - Creates a new object to represent a cmNavigo ERP Function. - - .DESCRIPTION - Returns a new custom object which contains all the required configuration properties to load a custom ERP function to - cmNavigo. Should be used in conjunction with Install-ERPFunctions function. - - .PARAMETER FunctionName - The Name of the function - - .EXAMPLE - New-ERPFunction -functionName 'BAPI_TRANSACTION_COMMIT' - - .OUTPUTS - A custom object representing the cmNavigo ERP Function. The object contains the following properties: - - FunctionName: Name of the function to import -#> -function New-ERPFunction() -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $functionName - ) - - $erpFunction = new-object PSObject - - $erpFunction | add-member -type NoteProperty -Name FunctionName -Value $functionName - - return $erpFunction -} - -<# - .SYNOPSIS - Installs cmNavigo ERP Functions - - .DESCRIPTION - Install one or more cmNavigo ERP Functions. If already exists, the ERP function will be ignore and nothing will be done. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER erpActions - Array containing the ERP functions to be added. Each function should be a custom object created with the New-ERPFunction - function. - - .EXAMPLE - Install-ERPFunctions $env -erpFunctions $erpFunctions -createServices $false - - -#> -function Install-ERPFunctions() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Services to Install - [Parameter(Mandatory=$True)] - [Object[]]$erpFunctions, - - # If Create Services - [Parameter(Mandatory=$True)] - [bool]$createServices - ) - - LogWrite " > Starting deploy of ERP function to database..." - - $functionsAdded = 0; - Use-LightBusinessObjects $env - - foreach($service in $erpFunctions) - { - try - { - [Cmf.Foundation.BusinessOrchestration.ErpManagement.OutputObjects.CreateErpFunctionInput] $getErpTrigger = New-Object Cmf.Foundation.BusinessOrchestration.ErpManagement.OutputObjects.CreateErpFunctionInput - - [Cmf.Foundation.Erp.ErpFunction] $inputObj = New-Object Cmf.Foundation.Erp.ErpFunction - - $inputObj.Name = $service.FunctionName - $getErpTrigger.ErpFunction = $inputObj; - - $result = $getErpTrigger.CreateErpFunctionSync() - - LogWrite (" Function " + $service.FunctionName + " was added.") - $functionsAdded = $functionsAdded + 1; - } - catch [Exception] - { - LogWrite $_.Exception.Message - } - } - - - - if ($functionsAdded -gt 0) - { - LogWrite (" ERP Functions added " + $functionsAdded + ".") -foregroundColor Green - [Cmf.Foundation.BusinessOrchestration.ErpManagement.InputObjects.GenerateSourceCodeInput] $generateServices = New-Object Cmf.Foundation.BusinessOrchestration.ErpManagement.InputObjects.GenerateSourceCodeInput - $generateServices.CreateServices = $createServices - $result = $generateServices.ErpGenerateSourceCodeSync(); - LogWrite (' Code was generated successfully.') - } - else - { - LogWrite (" ERP Functions added " + $functionsAdded +"." ) -foregroundColor Yellow - } - - LogWrite (" * Finished deploy of ERP Functions to database!") -foregroundColor Green - -} - - -<# - .SYNOPSIS - Creates a new object to represent a cmNavigo DEE Action. - - .DESCRIPTION - Returns a new custom object which contains all the required configuration properties to load a DEE Action to - cmNavigo. Should be used in conjunction with Execute-DEEAction or Delete-DEEAction function. - - .PARAMETER FunctionName - The Name of the DEE action - - .EXAMPLE - New-DEEAction -deeName 'ATSHTBRevertResourceState' - - .OUTPUTS - A custom object representing the cmNavigo DEE Action. The object contains the following properties: - - DEEName: Name of the DEE Action -#> -function New-DEEAction() -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $deeName - ) - - $deeAction = new-object PSObject - - $deeAction | add-member -type NoteProperty -Name DEEACtionName -Value $deeName - - return $deeAction -} - -<# - .SYNOPSIS - Execute cmNavigo DEE Actions - - .DESCRIPTION - Execute one or more cmNavigo DEE Actions. If the execution fails, a message will be sent to user, but the process continue. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER deeActions - Array containing the DEE Actions to be executed. Each DEE Action should be a custom object created with the New-DEEAction - function. - - .EXAMPLE - Execute-DEEAction $env -deeActions $deeActions - -#> -function Invoke-DEEAction() -{ - - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Actions to execute - [Parameter(Mandatory=$True)] - [Object[]]$deeActions - ) - - LogWrite " > Starting execution of DEE actions..." - - $totalActionsToExecute = $deeActions.Count - $executedActions = 0; - $activityDescription = 'Execution DEE Actions' - - Write-Progress -Activity ($activityDescription) -PercentComplete 0 -CurrentOperation "0% complete" -Status "Please wait..." - - - Use-LightBusinessObjects $env - $index = 0 - - foreach($dee in $deeActions) - { - $percentage = [int](($index / $totalActionsToExecute) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status (($index + 1).ToString() + " of " + $totalActionsToExecute.ToString() + ". Execution action " + $dee.DEEACtionName + "... Please wait...") - - try - { - [Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.ExecuteActionInput] $inputAction = New-Object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.ExecuteActionInput - - [Cmf.Foundation.Common.DynamicExecutionEngine.Action] $action = New-Object Cmf.Foundation.Common.DynamicExecutionEngine.Action - $action.Name = $dee.DEEACtionName - - $inputAction.Action = $action - - $result = $inputAction.ExecuteActionSync() - - LogWrite (" DEE Action " + $dee.DEEACtionName + " was executed correctly.") - $executedActions = $executedActions + 1; - } - catch [Exception] - { - LogWrite $_.Exception.Message - } - finally - { - $index = $index + 1 - $percentage = [int](($index / $totalActionsToExecute) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status "Please wait..." - } - } - - Write-Progress -Activity $activityDescription -Completed -Status "Actions has been executed." - - if ($executedActions -gt 0) - { - if ($executedActions -eq $totalActionsToExecute) - { - LogWrite (" DEE actions executed with success.") -foregroundColor Green - } - else - { - LogWrite (" Not all DEE actions executed with success.") -foregroundColor Yellow - } - } - else - { - LogWrite (" DEE ACtions did not execute with success." ) -foregroundColor Yellow - } - - LogWrite (" * Finished Execution DEE Actions!") -foregroundColor Green -} - -<# - .SYNOPSIS - Delete cmNavigo DEE Actions - - .DESCRIPTION - Delete one or more cmNavigo DEE Actions. If the delete fails, a message will be sent to user, but the process continue. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER deeActions - Array containing the DEE Actions to be executed. Each DEE Action should be a custom object created with the New-DEEAction - function. - - .EXAMPLE - Delete-DEEAction $env -deeActions $deeActions - -#> -function Remove-DEEAction() -{ - - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Actions to execute - [Parameter(Mandatory=$True)] - [Object[]]$deeActions - ) - - LogWrite " > Starting execution of DEE actions..." - - $totalActionsDelete = $deeActions.Count - $deletedActions = 0; - $activityDescription = 'Deleting DEE Actions' - - Write-Progress -Activity ($activityDescription) -PercentComplete 0 -CurrentOperation "0% complete" -Status "Please wait..." - - - Use-LightBusinessObjects $env - $index = 0 - - foreach($dee in $deeActions) - { - $percentage = [int](($index / $totalActionsDelete) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status (($index + 1).ToString() + " of " + $totalActionsDelete.ToString() + ". Delete action " + $dee.DEEACtionName + "... Please wait...") - - try - { - - [Cmf.Foundation.Common.DynamicExecutionEngine.Action] $action = New-Object Cmf.Foundation.Common.DynamicExecutionEngine.Action - [Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.RemoveActionInput] $removeAction = New-Object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.RemoveActionInput - [Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects] $getAction = New-Object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.GetActionByNameInput - - $getAction.Name = $dee.DEEACtionName - - $action = $getAction.GetActionByNameSync().Action - $removeAction.Action = $action; - $result = $removeAction.RemoveActionSync(); - - - LogWrite (" DEE Action " + $dee.DEEACtionName + " was deleted correctly.") - $deletedActions = $deletedActions + 1; - } - catch [Exception] - { - LogWrite $_.Exception.Message - } - finally - { - $index = $index + 1 - $percentage = [int](($index / $totalActionsDelete) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status "Please wait..." - } - } - - Write-Progress -Activity $activityDescription -Completed -Status "Actions has been deleted." - - if ($deletedActions -gt 0) - { - if ($deletedActions -eq $totalActionsDelete) - { - LogWrite (" DEE actions deleted with success.") -foregroundColor Green - } - else - { - LogWrite (" Not all DEE actions deleted with success.") -foregroundColor Yellow - } - } - else - { - LogWrite (" DEE Actions did not delete with success." ) -foregroundColor Yellow - } - - LogWrite (" * Finished delete DEE Actions!") -foregroundColor Green -} - - - -<# - .SYNOPSIS - Remove cmNavigo DEE Actions Triggers - - .DESCRIPTION - Delete one, or all, DEE Action triggers from action. If no trigger defined, all triggers for that DEE action will be deleted - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER $deeActionName - The Dee action name that contains the trigger to be deleted - - .PARAMETER $triggerName - The name of the trigger to be deleted - - .EXAMPLE - Remove-DEEActionTrigger $env -deeActionName 'ATSHTBRevertResourceState' -triggerName 'BusinessObjects.ChecklistInstance.Terminate.Post' - - .EXAMPLE - Remove-DEEActionTrigger $env -deeActionName 'ATSHTBRevertResourceState' - -#> - -function Remove-DEEActionTrigger() -{ - - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # DEE Action - [Parameter(Mandatory=$True)] - [string]$deeActionName, - - [Parameter(Mandatory=$False)] - [string]$triggerName - ) - Use-LightBusinessObjects $env - - [Cmf.Foundation.Common.DynamicExecutionEngine.Action] $action = New-Object Cmf.Foundation.Common.DynamicExecutionEngine.Action - [Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects] $getAction = New-Object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.GetActionByNameInput - $getAction.Name = $deeActionName - $action = $getAction.GetActionByNameSync().Action - - - [Cmf.Foundation.Common.DynamicExecutionEngine.ActionGroupActionCollection] $actionGroups = new-object Cmf.Foundation.Common.DynamicExecutionEngine.ActionGroupActionCollection - [Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.RemoveActionGroupActionsInput] $removeActionGroup = new-object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.RemoveActionGroupActionsInput - - if ($triggerName) - { - LogWrite (" > Deleting Action trigger " + $triggerName + " on DEE Action " + $deeActionName + "...") - $found = $false - - for($i=0; $i -le $action.ActionGroupActions.Count ; $i++) - { - $actionGroup = $action.ActionGroupActions[$i] - if ($actionGroup.ActionGroup -ne $null -and $actionGroup.ActionGroup.Name.toLower().equals($triggerName.ToLower())) - { - $removeActionGroup = new-object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.RemoveActionGroupActionsInput - $removeActionGroup.ActionGroupActions = new-object Cmf.Foundation.Common.DynamicExecutionEngine.ActionGroupActionCollection - $removeActionGroup.ActionGroup = $actionGroup.ActionGroup; - $removeActionGroup.ActionGroupActions.Add($actionGroup); - $result = $removeActionGroup.RemoveActionGroupActionsSync(); - $found = $true - break - } - } - - if ($found -eq $true) - { - LogWrite (" > Action trigger " + $triggerName + " on DEE Action " + $deeActionName + "deleted with success...") -foregroundColor Green - } - else - { - LogWrite (" > Action trigger " + $triggerName + " on DEE Action " + $deeActionName + " not found ...") -ForeGroundColor Yellow - } - - } - else - { - LogWrite (" > Deleting all actions trigger from DEE Action " + $deeActionName + "...") - - for($i=0; $i -le $action.ActionGroupActions.Count ; $i++) - { - $actionGroup = $action.ActionGroupActions[$i] - if ($actionGroup.ActionGroup -ne $null) - { - LogWrite (" > Deleting Action trigger " + $actionGroup.ActionGroup.Name + "...") - - $removeActionGroup = new-object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.RemoveActionGroupActionsInput - $removeActionGroup.ActionGroupActions = new-object Cmf.Foundation.Common.DynamicExecutionEngine.ActionGroupActionCollection - $removeActionGroup.ActionGroup = $actionGroup.ActionGroup; - $removeActionGroup.ActionGroupActions.Add($actionGroup); - $result = $removeActionGroup.RemoveActionGroupActionsSync(); - } - - } - LogWrite (" > All actions trigger was deleted from DEE Action " + $deeActionName + "...") -ForeGroundColor Green - } -} - - -<# - .SYNOPSIS - Generic function to write display all messages, and write them to a log file - - .DESCRIPTION - Writes log message to display. Called like the Write-Host, but with the feature to write all display to log file. - If there is the need to not write the log file in certain transaction, a global variable ($GenericLogFile) is inside of this file, - and we can set it to not write log file. - By default, always write file with this criteria: [computername]_[currentdate (yyyyMMddHH.mm.ss)].log - - - .PARAMETER $logstring - The string to display and write to log file - - .PARAMETER $ForeGroundColor - Possiblity to define a foreground color for the string to display. - The ForeGroundColor also defines to level of information (Red = Error; YEllow = Warning; Other = Info) - - .PARAMETER $BackgroundColor - Possiblity to define a background color for the string to display - - .PARAMETER $LogToFile - If want to display a certain message, but not want to write in log file - - .EXAMPLE - LogWrite 'The message to display' - - .EXAMPLE - LogWrite ("The message to display with parameters " + parameter[0] + "_" + parameter[b] + ".") - - .EXAMPLE - LogWrite 'The message to display' -foregroundColor Green - - .EXAMPLE - LogWrite 'The message to display' -foregroundColor Green -logToFile $false - - - .OUTPUTS - A custom object representing the cmNavigo ERP Function. The object contains the following properties: - - FunctionName: Name of the function to import -#> -Function LogWrite -{ - Param ( - [string]$logstring - - ,[Parameter(Mandatory=$False)] - [string]$ForeGroundColor - - ,[Parameter(Mandatory=$False)] - [string]$BackgroundColor - - ,[Parameter(Mandatory=$False)] - [bool]$LogToFile = $true - ) - - $messageType = "[INFO]" - - if($global:InteractiveMode -eq "") - { - $global:InteractiveMode = $true - } - - - if ($ForeGroundColor -eq '') - { - if ($global:InteractiveMode -eq $true) - { - $ForeGroundColor = (get-host).ui.rawui.ForegroundColor - } - } - else - { - if ($ForeGroundColor.ToLower() -eq "red") - { - $messageType = "[ERROR]" - } - elseif ($ForeGroundColor.ToLower() -eq "yellow") - { - $messageType = "[WARNING]" - } - } - - if ($BackgroundColor -eq '') - { - if ($global:InteractiveMode -eq $true) - { - $BackgroundColor = (get-host).ui.rawui.BackgroundColor - } - } - - if($global:InteractiveMode -eq $true){ - Write-Host $logstring -ForegroundColor $ForeGroundColor -BackgroundColor $BackgroundColor - } - else { - Write-Verbose "$messageType $logstring" -Verbose - } - - $logTime = "[" + (Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + "]" - if ($GenericLogFile -eq $true -and $LogToFile -eq $true) - { - Add-content $Logfile -value ($logTime + $messageType + $logstring) - } -} - - - -<# - .SYNOPSIS - Create a command to extract files from a zipped file - - .DESCRIPTION - Create a command to extract files from a zipped file. This command intends to be called with 3 parameters - This function, by it self, does not execute anything. Must be called inside a Invoke-Command action - - - .PARAMETER $targetdir - The location where to extract the files - - - .PARAMETER $zipfilename - The location,and the name, of the zip file to extact - - .PARAMETER $activityDescription - The description of what is to uniz - - .EXAMPLE - OverwriteBackupFile 'c:\filename.zip' - - -#> -function CreateUnzipCommand -{ - return { - param($targetdir, $zipfilename, $activityDescription, $removeTarget = $true) - - if ( ( Test-Path $zipfilename ) -eq $true ) - { - if (!(Test-Path $targetdir)) - { - $r = mkdir $targetdir - } - - [Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" ) | Out-Null - [Reflection.Assembly]::LoadWithPartialName( "System.IO.Path" ) | Out-Null - - $manifestFileName = "BackupManifest.xml" - - $zip = [System.IO.Compression.ZipFile]::OpenRead($zipfilename) - - # Check if backup has a manifest - $backupManifestFile = $zip.Entries | Where-Object { $_.FullName -eq "$manifestFileName" } - if ( $backupManifestFile ) - { - # Try to read manifest from zip file - try { - $ZipStream = $backupManifestFile.Open() - - $Reader = [System.IO.StreamReader]::new($ZipStream) - $backupManifest = $Reader.ReadToEnd() - } - finally - { - if ( $Reader ) { - $Reader.Dispose(); - } - if ( $ZipStream ) { - $ZipStream.Dispose(); - } - } - } - - if ( $backupManifest ) { - # Backup Manifest was found in zip file - Partial Restore - $backupManifest = [xml]$backupManifest - - # Get Files/Folders to be restored - $files = $backupManifest.BackupManifest.Content.File - $folders = $backupManifest.BackupManifest.Content.Folder - - $manifestInTargetDir = Join-Path -Path "$targetdir" -ChildPath "$manifestFileName" - if ( $removeTarget ) { - - if ( Test-Path -Path "$manifestInTargetDir" ) { - Remove-Item -Path "$manifestInTargetDir" -Force - } - - foreach ( $file in $files ) { - $fileToRemove = Join-Path -Path "$targetdir" -ChildPath "$file" - if ( Test-Path -Path "$fileToRemove" ) { - Remove-Item -Path "$fileToRemove" -Force - } - } - - foreach ( $folder in $folders ) { - $folderToRemove = Join-Path -Path "$targetdir" -ChildPath "$folder" - if ( Test-Path -Path "$folderToRemove" ) { - Remove-Item -Path "$folderToRemove" -Recurse -Force - } - } - } - } else { - # No Backup Manifest was found in zip file - Full Restore - if ( $removeTarget ) { - Get-ChildItem $targetdir | ForEach-Object { - Remove-Item $_.FullName -Recurse -Force - } - } - } - - [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfilename, $targetdir); - - # remove manifest from target dir after restoring zip - if ( $manifestInTargetDir -and ( Test-Path -Path "$manifestInTargetDir" ) ) { - Remove-Item -Path "$manifestInTargetDir" -Force - } - } - else - { - throw 'Specified backup file does not exist.' - } - } -} - - -<# - .SYNOPSIS - Creates a new object to represent a cmNavigo Report. - - .DESCRIPTION - Returns a new custom object which contains all the required configuration properties to load a custom report to - cmNavigo. Should be used in conjunction with Install-Reports function. - - .PARAMETER ReportPath - The physical location of the report to upload - - .PARAMETER Database - Default database name on which report will be ran - - .PARAMETER ReportFolder - The folder location where the report will be uploaded - - .EXAMPLE - New-Report -reportPath $ScriptPath'\Reports\Chemical Lab.rdl' -database 'ODS' -reportFolder '/Custom' - - .EXAMPLE - New-Report -reportPath $ScriptPath'\Reports\Chemical Lab_Online.rdl' -database 'Online' -reportFolder '/Custom' - - .EXAMPLE - New-Report -reportPath $ScriptPath'\Reports\Chemical Lab_DWH.rdl' -database 'DWH' -reportFolder '/Custom' - - - .OUTPUTS - A custom object representing the cmNavigo Report. The object contains the following properties: - - ReportPath: The physical location of the report to upload - - Database: The database name on which report will be ran - - ReportFolder: THe folder where report will be uploaded - - -#> -function New-Report -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $reportPath, - - # Database - [Parameter(Mandatory=$True)] - [CMFDatabase] $database, - - [Parameter(Mandatory=$True)] - [string] $reportFolder - - ) - - $report = new-object PSObject - - $report| add-member -type NoteProperty -Name ReportPath -Value $reportPath - $report| add-member -type NoteProperty -Name DataBase -Value $database - $report| add-member -type NoteProperty -Name ReportFolder -Value $reportFolder - - return $report -} - -<# - .SYNOPSIS - Installs cmNavigo Reports - - .DESCRIPTION - Install one or more cmNavigo Reports. If already existing, the report will be replaced. - Also, the datasource of the report will be updated. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER reports - Array containing the reports to be added. Each report should be a custom object created with the New-Report - function. - - .EXAMPLE - Install-Reports -env $env -reports $reports - - .NOTES - If Report folder does not exist, it will be created. - The datasource and report will be overwritten if send more than one time -#> -function Install-Reports -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Reports to Install - [Parameter(Mandatory=$True)] - [Object[]]$reports - - ) - - Use-LightBusinessObjects $env - - LogWrite " > Starting adding Reports to server..." - - $reportServerUri = $env.ReportServerUri + "/ReportService2010.asmx?wsdl" - - if ($env.ReportUseDefaultCredential) - { - $rs = New-WebServiceProxy -Uri $reportServerUri -UseDefaultCredential - } - else - { - $username = $env.ReportServerUser - $password = $env.ReportServerPassword - $credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force)) - $rs = New-WebServiceProxy -Uri $reportServerUri -Credential $credentials - } - if ($rs -ne $null) - { - - $warnings = $null - try - { - $activityDescription = "Adding reports to Report server..." - LogWrite (" " + $activityDescription) - $total = $reports.Count - $index = 0 - Write-Progress -Activity ($activityDescription) -PercentComplete 0 -CurrentOperation "0% complete" -Status "Please wait..." - $uploadSuccess = 0; - foreach($reportInfo in $reports) - { - try - { - $reportName = [System.IO.Path]::GetFileNameWithoutExtension($reportInfo.ReportPath) - $bytes = [System.IO.File]::ReadAllBytes($reportInfo.ReportPath) - - [Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.GetConfigByPathInput] $inputGetConfigPath = New-Object Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.GetConfigByPathInput - - $reportRootFolder = "" - try - { - $inputGetConfigPath.Path = "/Cmf/System/Configuration/Reporting/Reports Root Folder/" - $resultGetConfigPath = $inputGetConfigPath.GetConfigByPathSync() - } - catch [Exception]{ - Write-Host $_.Exception - } - - if ($resultGetConfigPath.Config) - { - $reportRootFolder = $resultGetConfigPath.Config.Value - } - - $reportInfo.ReportFolder = $reportRootFolder + $reportInfo.ReportFolder - - $targetFolderPath = $reportInfo.ReportFolder - $percentage = [int](($index / $total) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status (($index + 1).ToString() + " of " + $total.ToString() + ". Uploading report " + $reportName +" to " + $targetFolderPath + "... Please wait...") - - LogWrite(" " + "Uploading report " + $reportName +" to " + $targetFolderPath + "...") - $x = $reportInfo.ReportFolder.Split('/') - $i = 0; - if ($x.Count -ge 1) - { - $reportFolder = "/" - - while ($i -lt $x.Count) - { - #Check if folder is existing, create if not found - try - { - $i = $i + 1 - if ($x[1] -ne "") - { - $reportPath = $x[$i] - $reportFolderCopy = $reportFolder; - if ($i -eq 1) - { - $reportFolder = $reportFolder + $reportPath - } - else - { - $reportFolder = $reportFolder + "/" + $reportPath - } - #need to do this first, because the parent folder may exists, but the child don't - $ignoreMessage = $rs.CreateFolder($reportPath,$reportFolderCopy, $null) - - } - } - catch [System.Web.Services.Protocols.SoapException] - { - if (-not( $_.Exception.Detail.InnerText -match "[^rsItemAlreadyExists400]")) - { - $msg = "[Install-SSRSRDL()] Error creating folder: $reportFolder. Msg: '{0}'" -f $_.Exception.Detail.InnerText - throw $msg - } - } - } - } - - $report = $rs.CreateCatalogItem( - - "Report", # Catalog item type - $reportName, # Report name - $targetFolderPath,# Destination folder - $true, # Overwrite report if it exists? - $bytes, # .rdl file contents - $null, # Properties to set. - [ref]$warnings # Warnings that occurred while uploading. - ) - - - # Get the names of the data sources that the - # uploaded report references. Note that this might be different from - # the name of the datasource as it is deployed on the report server! - foreach($itemDataSource in @($rs.GetItemDataSources($report.Path))) - { - $referencedDataSourceName = $itemDataSource.Name - $targetDatasourceRef = ""; - - switch ($referencedDataSourceName) - { - "ONLINEDataSource" - { - $targetDatasourceRef = $env.ReportsOnlineDataSource - } - "ODSDataSource" - { - $targetDatasourceRef = $env.ReportsODSDataSouce - } - "DWHDataSource" - { - $targetDatasourceRef = $env.ReportsDWHDataSource - } - } - - if($targetDatasourceRef -ne "") - { - # Change the datasource for the report to $targetDatasourceRef - # Note that we can access the types such as DataSource with the prefix - # "SSRS" only because we specified that as our namespace when we - # created the proxy with New-WebServiceProxy. - $proxyNamespace = $rs.GetType().Namespace - - $myDataSource = New-Object ("$proxyNamespace.DataSource") - $myDataSource.Name = $referencedDataSourceName - $myDataSource.Item = New-Object ("$proxyNamespace.DataSourceReference") - $myDataSource.Item.Reference = $targetDatasourceRef - - $rs.SetItemDataSources($report.Path, $myDataSource) - } - } - - $uploadSuccess = $uploadSuccess + 1 - } - catch [Exception] - { - LogWrite(" " + "Error uploading report " + $reportName +" to " + $targetFolderPath + ". Error: " + $_.Exception.Message) -ForeGroundColor Red - } - finally - { - $index = $index + 1 - $percentage = [int](($index / $total) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status "Please wait..." - } - } - - Write-Progress -Activity $activityDescription -Completed -Status "Reports has been uploaded to server." - - if ($uploadSuccess -eq 0) - { - LogWrite (" * " + $uploadSuccess + " of " + $reports.Count + " Reports has been uploaded to server! Errors occurred. ") -foregroundColor Red - } - else - { - if ($uploadSuccess -eq $reports.Count) - { - LogWrite (" * " + $uploadSuccess + " of " + $reports.Count + " Reports has been uploaded to server!") -foregroundColor Green - } - else - { - LogWrite (" * " + $uploadSuccess + " of " + $reports.Count + " Reports has been uploaded to server!") -foregroundColor Yellow - } - } - } - finally - { - $d = $rs.Dispose() - } - } - else - { - LogWrite (" * Error getting access to report server. No reports has been uploaded ") -foregroundColor Red - } -} - -<# - .SYNOPSIS - Installs reports within a given folder - - .DESCRIPTION - Installs MES Reports. - If already existing, the report will be replaced. Also, the datasource of the report will be updated. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER folderPath - Folder where the reports are located. - - .EXAMPLE - Install-ReportsInFolder -env $env -folderPath $reportsFolderPath - - .NOTES - If Report folder does not exist, it will be created. - The datasource and report will be overwritten if send more than one time -#> -function Install-ReportsInFolder -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Base folder path of the reports to load - [Parameter(Mandatory=$True)] - [string]$folderPath - ) - - Use-LightBusinessObjects $env - - if(Test-Path ($folderPath)) - { - # this is to convert relative path into full path - $folderPath = Resolve-Path $folderPath - $folderPath = "$folderPath" # convert back to string - - LogWrite (" > Loading Reports from folder $($folderPath)...") - - $reports = @() - - $reportFiles = Get-ChildItem -Path $folderPath -Filter '*.rdl' -Recurse - LogWrite (" Number of reports found to deploy: $($reportFiles.Count)") - if ($reportFiles.Count -gt 0) - { - $dataSourceNames = @("Online", "ODS", "DWH") - foreach ($reportFile in $reportFiles) - { - #region Resolve Report Folder - $reportFolder = "" - $localPathStartIndex = $folderPath.Split("\").Count - - $folder = $folderPath.Split("\")[$localPathStartIndex - 1] - - $print = "" + $reportFile.FullName - $splitedPath = $print.Split("\") - - $fileIndex = ($splitedPath.Count - 1) - - $foundFolder = $false - for ($i=0; $i -lt $fileIndex; $i++) - { - if ( $foundFolder -eq $true ) { - $reportFolder += "/" + $splitedPath[$i] - } - - if ( $splitedPath[$i] -eq $folder ) { - $foundFolder = $true - } - } - if ($reportFolder -eq "") { - LogWrite (" * Could not resolve ReportFolder") -ForegroundColor Yellow - } - #endregion - - #region Resolve report data source (database) - [xml]$report = Get-Content -Path $reportFile.FullName - $dataSources = $report.Report.DataSources.DataSource.Name - #default data source ODS - $dataSourceName = $dataSourceNames[1]; - foreach($dataSource in $dataSources) - { - if($dataSource.Contains($dataSourceNames[1])) - { - $dataSourceName = $dataSourceNames[1] - } - elseif($dataSource.Contains($dataSourceNames[2])) - { - $dataSourceName = $dataSourceNames[2] - } - else - { - $dataSourceName = $dataSourceNames[0] - } - } - #endregion - $reports += New-Report -reportPath $reportFile.FullName -database "$dataSourceName" -reportFolder $reportFolder - } - Install-Reports -env $env -reports $reports - } - Install-ReportServerResources -env $env -folder $folderPath - } else { - LogWrite (" * Folder $($folderPath) does not exist...") -foregroundColor Yellow - } -} - -<# - .SYNOPSIS - Installs resources in report server - - .DESCRIPTION - Install all resources in a specific folder. If already existing, the resource will be replaced. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER folder - Folder containing the resources to be added. - - .EXAMPLE - Install-ReportServerResources -env $env -folder ".\Reports" - - Where .\Reports structure is: - .\Reports\_Images\Logo.jpg - .\Reports\_Images\Logo.jpg - - .NOTES - If resource folder does not exist, it will be created. - The resource will be overwritten if send more than one time -#> -function Install-ReportServerResources -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Folder - [Parameter(Mandatory=$True)] - [string]$folder - ) - - # exclude reports [use Install-Reports instead] - # TODO: maybe install everything in this function (?) - if(Test-Path ($folder)) - { - # this is to convert relative path into full path - $folder = Resolve-Path $folder - $folder = "$folder" # convert back to string - - LogWrite (" > Loading Report Resources from folder $($folder)...") - $resourceFiles = Get-ChildItem -Path $folder -Exclude '*.rdl' -Recurse -File - LogWrite (" Number of report resources found to deploy: " + $resourceFiles.Count) - - if ($resourceFiles.Count -gt 0) - { - Use-LightBusinessObjects $env - - LogWrite " > Starting adding resources to report server..." - - $reportServerUri = $env.ReportServerUri + "/ReportService2010.asmx?wsdl" - - if ($env.ReportUseDefaultCredential) - { - $rs = New-WebServiceProxy -Uri $reportServerUri -UseDefaultCredential - } - else - { - $username = $env.ReportServerUser - $password = $env.ReportServerPassword - $credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force)) - $rs = New-WebServiceProxy -Uri $reportServerUri -Credential $credentials - } - if ($rs -ne $null) - { - - $warnings = $null - try - { - $activityDescription = "Adding resources to Report server..." - LogWrite (" " + $activityDescription) - $total = $resourceFiles.Count - $index = 0 - Write-Progress -Activity ($activityDescription) -PercentComplete 0 -CurrentOperation "0% complete" -Status "Please wait..." - $uploadSuccess = 0; - - # Content MIME Types Map - $KnownMimeTypes = @{ - ".jpg" = "image/jpeg"; - ".jpeg" = "image/jpeg"; - ".gif" = "image/gif"; - ".png" = "image/png"; - ".tiff" = "image/tiff"; - ".zip" = "application/zip"; - ".json" = "application/json"; - ".xml" = "application/xml"; - ".rar" = "application/x-rar-compressed"; - ".gzip" = "application/x-gzip"; - } - - - [Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.GetConfigByPathInput] $inputGetConfigPath = New-Object Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.GetConfigByPathInput - $reportRootFolder = "" - try - { - $inputGetConfigPath.Path = "/Cmf/System/Configuration/Reporting/Reports Root Folder/" - $resultGetConfigPath = $inputGetConfigPath.GetConfigByPathSync() - } - catch [Exception]{ - Write-Host $_.Exception - } - - if ($resultGetConfigPath.Config) - { - $reportRootFolder = $resultGetConfigPath.Config.Value - } - - $folder = Resolve-Path $folder - foreach($resourceFile in $resourceFiles) - { - LogWrite ( $resourceFile.FullName ) - try - { - $resourceName = [System.IO.Path]::GetFileName($resourceFile.FullName) - $bytes = [System.IO.File]::ReadAllBytes($resourceFile.FullName) - $file = Get-ChildItem $resourceFile.FullName - $fileMimeType = $KnownMimeTypes[$file.Extension.ToLower()]; - - $localPathStartIndex = $folder.Split("\").Count - - $splitedPath = ("" + $resourceFile.FullName).Split("\") - - $fileIndex = ($splitedPath.Count - 1) - - $resourceFolder = $reportRootFolder - - $i = $localPathStartIndex - while ($i -lt $fileIndex) - { - $resourceFolder += "/" + $splitedPath[$i] - $i++ - } - - $targetFolderPath = $resourceFolder - $percentage = [int](($index / $total) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status (($index + 1).ToString() + " of " + $total.ToString() + ". Uploading resource " + $resourceName +" to " + $targetFolderPath + "... Please wait...") - - LogWrite(" " + "Uploading resource " + $resourceName +" to " + $targetFolderPath + "...") - $x = $resourceFolder.Split('/') - $i = 0; - if ($x.Count -ge 1) - { - $reportFolder = "/" - - while ($i -lt $x.Count) - { - #Check if folder is existing, create if not found - try - { - $i = $i + 1 - if ($x[1] -ne "") - { - $reportPath = $x[$i] - $reportFolderCopy = $reportFolder; - if ($i -eq 1) - { - $reportFolder = $reportFolder + $reportPath - } - else - { - $reportFolder = $reportFolder + "/" + $reportPath - } - #need to do this first, because the parent folder may exists, but the child don't - $ignoreMessage = $rs.CreateFolder($reportPath,$reportFolderCopy, $null) - - } - } - catch [System.Web.Services.Protocols.SoapException] - { - if (-not( $_.Exception.Detail.InnerText -match "[^rsItemAlreadyExists400]")) - { - $msg = "[Install-SSRSRDL()] Error creating folder: $reportFolder. Msg: '{0}'" -f $_.Exception.Detail.InnerText - throw $msg - } - } - } - } - - - $report = $rs.CreateCatalogItem( - "Resource", # Catalog item type - $resourceName, # resource name - $targetFolderPath, # Destination folder - $true, # Overwrite resource if it exists? - $bytes, # file content - @{'Name'='MimeType'; 'Value'=$fileMimeType}, # Properties to set. - [ref]$warnings # Warnings that occurred while uploading. - ) - - $uploadSuccess = $uploadSuccess + 1 - - } - catch [Exception] - { - LogWrite(" " + "Error uploading report " + $reportName +" to " + $targetFolderPath + ". Error: " + $_.Exception.Message) -ForeGroundColor Red - } - finally - { - $index = $index + 1 - $percentage = [int](($index / $total) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status "Please wait..." - } - } - - Write-Progress -Activity $activityDescription -Completed -Status "resources has been uploaded to server." - - if ($uploadSuccess -eq 0) - { - LogWrite (" * " + $uploadSuccess + " of " + $total + " resources has been uploaded to server! Errors occurred. ") -foregroundColor Red - } - else - { - if ($uploadSuccess -eq $total) - { - LogWrite (" * " + $uploadSuccess + " of " + $total + " resources has been uploaded to server!") -foregroundColor Green - } - else - { - LogWrite (" * " + $uploadSuccess + " of " + $total + " resources has been uploaded to server!") -foregroundColor Yellow - } - } - } - finally - { - $d = $rs.Dispose() - } - } - else - { - LogWrite (" * Error getting access to report server. No resources has been uploaded ") -foregroundColor Red - } - } - } else { - LogWrite (" * Folder $($folder) does not exist...") -foregroundColor Yellow - } -} - -<# - .SYNOPSIS - Remove cmNavigo Reports - - .DESCRIPTION - Remove one or more cmNavigo Reports. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER reports - Array containing the reports to be added. - - .EXAMPLE - Remove-Reports -env $env -reports $reportsToRemove - - .NOTES - If thr Report does not exist an exception will be thrown -#> - -function Remove-Reports -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Reports to Remove - [Parameter(Mandatory=$True)] - [Object[]]$reports - - ) - - LogWrite " > Starting removing Reports from server..." - - $reportServerUri = $env.ReportServerUri + "/ReportService2010.asmx?wsdl" - - if ($env.ReportUseDefaultCredential) - { - $rs = New-WebServiceProxy -Uri $reportServerUri -UseDefaultCredential - } - else - { - $username = $env.ReportServerUser - $password = $env.ReportServerPassword - $credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force)) - $rs = New-WebServiceProxy -Uri $reportServerUri -Credential $credentials - } - if ($rs -ne $null) - { - - $warnings = $null - try - { - $activityDescription = "Removing reports to Report server..." - LogWrite (" " + $activityDescription) - $total = $reports.Count - $index = 0 - Write-Progress -Activity ($activityDescription) -PercentComplete 0 -CurrentOperation "0% complete" -Status "Please wait..." - $uploadSuccess = 0; - foreach($reportInfo in $reports) - { - try - { - $reportName = [System.IO.Path]::GetFileNameWithoutExtension($reportInfo.ReportPath) - $percentage = [int](($index / $total) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status (($index + 1).ToString() + " of " + $total.ToString() + ". Removing report " + $reportName +" to " + $targetFolderPath + "... Please wait...") - - LogWrite(" " + "Remove report " + $reportInfo + "...") - - $rs.DeleteItem( - ($reportInfo) - ) - } - catch [Exception] - { - LogWrite(" " + "Error removing report " + $reportName +" to " + $reportInfo + ". Error: " + $_.Exception.Message) -ForeGroundColor Red - } - finally - { - $index = $index + 1 - $percentage = [int](($index / $total) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status "Please wait..." - } - } - } - finally - { - $d = $rs.Dispose() - } - } - else - { - LogWrite (" * Error getting access to report server. No reports has been removed ") -foregroundColor Red - } -} - - - -<# - .SYNOPSIS - Creates and optionally executes post installation actions - - .DESCRIPTION - Creates and optionally executes post installation actions inside a folder - - .PARAMETER folderPath - Folder containing the rules to be executed - - .PARAMETER executeRules - Flag to control if rules are to executed - - .PARAMETER deleteRules - - .PARAMETER continueOnError - - .EXAMPLE - LoadProcessRules $env -folderPath 'c:\package\database\online' - LoadProcessRules $env -folderPath 'c:\package\database\online' -continueOnError $true -#> -function LoadProcessRules() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - #directory to enumerate the files - [Parameter(Mandatory=$True)] - $folderPath, - - [Parameter(Mandatory=$False)] - $executeRules = $true, - - [Parameter(Mandatory=$False)] - $deleteRules = $true, - - [Parameter(Mandatory=$False)] - $continueOnError = $false - ) - - if( Test-Path $folderPath ) - { - Use-LightBusinessObjects $env - [Reflection.Assembly]::LoadFrom((Resolve-Path "$ModulePath\References\MasterData.Logic.dll")) | Out-Null - - $listRules = Get-ChildItem $folderPath -Filter '*.cs' | Sort-Object Name - foreach($file in $listRules ) - { - $ruleName = $file.Name.Replace(".cs","") - try - { - LogWrite "Creating rule $ruleName..." - $action = [MasterData.Logic.DEEActionLoader]::InsertAction($file.FullName, $ruleName, $false) - - if( $executeRules) - { - LogWrite "Executing rule $ruleName..." - - [Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.ExecuteActionInput] $executeInput = New-Object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.ExecuteActionInput - $executeInput.Action = [MasterData.Logic.DEEActionLoader]::GetActionByName($ruleName) - $executeInput.ExecuteActionSync(); - } - - if( $deleteRules) - { - LogWrite "Deleting rule $ruleName..." - - [Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.RemoveActionInput] $removeInput = New-Object Cmf.Foundation.BusinessOrchestration.DynamicExecutionEngineManagement.InputObjects.RemoveActionInput - $removeInput.Action = [MasterData.Logic.DEEActionLoader]::GetActionByName($ruleName) - $removeInput.RemoveActionSync() - } - } - catch [Exception] - { - if($continueOnError){ - LogWrite "Error on rule $ruleName $_.Exception.Message " -foregroundColor Red - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Host $_.Exception -ForegroundColor Red|format-list -force - } - }else{ - throw $_.Exception - } - } - } - } -} - - -<# - .SYNOPSIS - Sets the customization version string inside the cmNavigo database and in AppServer HTML config file - - .DESCRIPTION - Sets the customization version string inside the cmNavigo database and in AppServer HTML config file - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER version - The version number, in free text - - .PARAMETER appServerOnly - When used the customization version will be set only on HTML config - - .EXAMPLE - Set-CustomizationVersion $env -version 'Sprint 52' - - .EXAMPLE - Set-CustomizationVersion $env -version '4.2.1.0' - - .EXAMPLE - Set-CustomizationVersion $env -version '4.2.1.0' -appServerOnly -#> -function Set-CustomizationVersion -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject] $env, - - # String - [Parameter(Mandatory=$True)] - [string] $version, - - # Indicates if the version is to be apply on Application Servers only - [Parameter(Mandatory=$False)] - [switch] $appServerOnly - ) - - if ( -not $appServerOnly ) { - # Sets Customization Version on database - $filePath = '.\Customization.sql'; - $scriptContent = "EXEC [dbo].[P_SetCustomizationVersion] @ApplicationName = N'cmNavigo', @Version = '"+$version+"'" - - LogWrite " * Setting customization version $version" - - Set-Content -path $filePath -value $scriptContent - try { - Invoke-SQLScript $env -database 'Online' -scriptPath $filePath - } - finally{ - Remove-Item $filePath - } - } - - # Sets Customization Version on Application Server HTML Config file - foreach ( $server in $env.ApplicationServers ) { - $targetInstallation = ('\\' + $server.ServerName + '\' + $server.InstallationPath + '\' + $CMFHTML) -replace ':', '$'; - $configFile = Join-Path -Path $targetInstallation -ChildPath "\config.json"; - - # Update config.json - if(-not (Test-Path $configFile)){ - LogWrite " ! config.json not found" -foregroundColor Red - } else { - $jsonObject = Get-Content -Raw -Path $configFile | ConvertFrom-Json; - - LogWrite " Updating config.json" - if (($jsonObject.PSobject.Properties | Foreach {$_.Name}) -contains "customizationVersion") { - $jsonObject.customizationVersion = $version; - } else { - $jsonObject | add-member -Name "customizationVersion" -value $version -MemberType NoteProperty - } - - # Save config.json - $jsonObject | ConvertTo-Json -Depth 10 | Out-File $configFile; - } - } -} - - - -<# - .SYNOPSIS - Replaces tokens inside the files, including all subfolders items. - - .DESCRIPTION - Replaces tokens inside the files, including all subfolder - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER path - The folder to search to items - - .PARAMETER tokens - Hashtable with the token and values to replace - - .PARAMETER filters - Specifies a filter in items - - .EXAMPLE - Set-ScriptTokens $env -path 'Analytics' -filters @('*.sql','*.xmla') -tokens @{ '$(DWHInstance)' = $env.DWHClusterInstance; '$(DWHUser)' = $env.SQLDWHUser;'$(DWHUserPasswd)' = $env.SQLDWHPassword; } -#> -function Set-ScriptTokens() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Path - [Parameter(Mandatory=$True)] - [string] $path, - - - [Parameter(Mandatory=$True)] - $tokens, - - [Parameter(Mandatory=$False)] - $filters - ) - - Get-ChildItem -path $path -Include $filters -Recurse | ForEach-Object { - - $fileName = $_.FullName - $tmp = $fileName + ".tmp" - $tokenCount = 0 - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Host "Found $fileName" - } - Get-Content $fileName | ForEach-Object { - $line = $_ - $tokens.GetEnumerator() | ForEach-Object { - if( $line.Contains($_.Key) ){ - $line = $line.Replace($_.Key, $_.Value) - $tokenCount++; - } - } - $line - } | Set-Content $tmp - - - Move-Item $tmp $fileName -force - - if( $tokenCount -gt 0 ){ - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Host "Replaced $tokenCount token(s) at $fileName" - } - } - } - - LogWrite (" * Finished replacing tokens") -foregroundColor Green -} - - -function TransformXmlFile($src,$xdt,$dst) -{ - [Reflection.Assembly]::LoadFrom((Resolve-Path "$ModulePath\References\Microsoft.Web.XmlTransform.dll")) | Out-Null - - $doc = New-Object Microsoft.Web.XmlTransform.XmlTransformableDocument - $doc.PreserveWhiteSpace = $true - $doc.Load($src) - - $trn = New-Object Microsoft.Web.XmlTransform.XmlTransformation($xdt) - - if ($trn.Apply($doc)) - { - $doc.Save($dst) - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Output "Output file: $dst" - Write-Host 'applyConfigTransformation - $trn.Apply completed' - } - } - else - { - throw ("Transformation " + $src + " with " + $xdt + " terminated with status False") - } -} - -<# - .SYNOPSIS - Transforms the business configuration files, using XML Document Transformation - - .DESCRIPTION - Transforms the business configuration files (Cmf.Foundation.Services.HostService.exe.config and Cmf.Foundation.Services.HostConsole.exe.config ) using the XML Document Transformation - Requires the reference Microsoft.Web.XmlTransform.dll - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER transformFile - The file with XDT instructions to apply - - .PARAMETER filters - Specifies a filter in items - - .PARAMETER applicationServer - If defined, transformation will only be applied to the specified application server. - - .EXAMPLE - XDT sample - - - - - - Install-CMFBusinessConfigTransformation $env -transformFile 'changeconfig.xdt' - - .EXAMPLE - Install-CMFBusinessConfigTransformation $env -transformFile 'changeconfig.xdt' -applicationServer $server1 - -#> -function Install-CMFBusinessConfigTransformation() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # transformFile - [Parameter(Mandatory=$True)] - [string] $transformFile, - - [Parameter(Mandatory=$False)] - $applicationServer - ) - - $fileNames = @("Cmf.Foundation.Services.HostService.dll.config") - - LogWrite " > Executing host configuration file transformation to $transformFile" -foregroundColor Green - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - - if($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true){ - Write-Host "Starting transforming config files" - } - - $source = $filesPath - foreach($appServer in $serversToUse) - { - $target = '\\' + $appServer.ServerName + '\' + $appServer.BusinessInstallationPath -replace ':', '$' - - foreach($fileName in $fileNames) - { - $configFile = Join-Path $target $fileName - - TransformXmlFile $configFile $transformFile $configFile - } - } - - LogWrite (" * Finished transforming config") -foregroundColor Green -} - -<# - .SYNOPSIS - Installs customization packages on HTML5 Presentation - - .DESCRIPTION - Copies packages to the node_modules of HTML5 installation. - Deals with config.json - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER packageFolder - Absolute Path to the packages to install. - - .PARAMETER prefix - If defined, it will look for packages that begins with the given prefix. Default value is customization. - - .PARAMETER applicationServer - Application server path - - .PARAMETER target - Target path to install. I.e. UI\Help OR UI\HTML - By default, it uses the UI\HTML. - - .PARAMETER doNotRemovePackages - When $true, it will not remove the delivered packages. - This can be used to deliver partially a package, or when a PrivateFix from the ProductTeam needs to be deployed. - By default, it will remove the package before delivering it. - - .PARAMETER isConnectIoTPackages - When $true, it will handle them as connect iot packages. - When not connect iot, the packages will be added to the config under the packages section also a two level package (@mainPackage/subPackage) is expected; - When connect iot, the packages will be added to the config under the connectiot section; - - .EXAMPLE - Install-CMFHTMLPackages $env -packageFolder ./package/html5 -applicationServer "./html" - - .NOTES - Requires administrative privileges on the application servers. -#> -function Install-CMFHTMLPackages() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Path to the folder with the customization packages - [Parameter(Mandatory=$True)] - [string]$packageFolder, - - # Prefix of the packages (Default is customization) - [Parameter(Mandatory=$False)] - [string] $prefix="customization", - - # Application Server Path - [Parameter(Mandatory=$False)] - [string] $applicationServer, - - # target ($CMFHTML / $CMFHelp) (Default is $CMFHTML) - [Parameter(Mandatory=$False)] - [string] $target, - - # do not remove packages (being delivered) - [Parameter(Mandatory=$False)] - [switch] $doNotRemovePackages, - - # is connect iot packages - [Parameter(Mandatory=$False)] - [switch] $isConnectIoTPackages - ) - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - # default target to $CMFHTML - if (-not $target) { - $target = "$CMFHTML" - } - - foreach($server in $serversToUse) - { - #declare some paths - $targetInstallation = ('\\' + $server.ServerName + '\' + $server.InstallationPath + '\' + $target) -replace ':', '$'; - $mainPackageList = @(); - $packagesToInstall = @(); - $nodeModulesFolder = Join-Path -Path $targetInstallation -ChildPath "node_modules"; - $configFile = Join-Path -Path $targetInstallation -ChildPath "\config.json"; - $indexHtmlFile = Join-Path -Path $packageFolder -ChildPath "\index.html"; - - # Get the packages to Install - # Get only directories, as sometimes .gitkeep is present here - Get-ChildItem -Path:$packageFolder -Directory | ForEach-Object { - $mainPackageName =$_.Name; - if ( $isConnectIoTPackages ) { - $mainPackageFullPath = $_.FullName; - $mainPackageList += $mainPackageName - Get-ChildItem -Path "$mainPackageFullPath" -Directory | ForEach-Object { - $packagesToInstall += "$mainPackageName/$($_.Name)" - } - } - else { - $packagesToInstall += $mainPackageName; - } - } - - if ($packagesToInstall.length -gt 0) { - LogWrite " Packages to install:" - foreach ( $packageName in $packagesToInstall) { - LogWrite " - $packageName" - } - - if (-not $doNotRemovePackages) { - LogWrite " Removing old packages" - # Remove old customization packages - Get-ChildItem $nodeModulesFolder | ForEach-Object { - if ( $isConnectIoTPackages ) { - if ( $mainPackageList.Contains($_.Name) ) { - $mainPackageName = $_.Name; - Get-ChildItem -Path "$($_.FullName)" -Directory | ForEach-Object { - if ( $packagesToInstall.Contains("$mainPackageName/$($_.Name)") ) { - LogWrite " - Removed package $mainPackageName/$($_.Name)" - Remove-Item $_.FullName -Force -Recurse; - } - } - } - } - else { - if ( $packagesToInstall.Contains($_.Name) ) { - LogWrite " - Removed package $($_.Name)" - Remove-Item $_.FullName -Force -Recurse; - } - } - } - } - - # Copy packages to node_modules folder - LogWrite " Copying packages" - Get-ChildItem -Path:$packageFolder -Directory | ForEach-Object { - - $mainFolderName = $($_.Name); - - if ( $isConnectIoTPackages ) { - - Get-ChildItem -Path "$($_.FullName)" -Directory | ForEach-Object { - - if($_ -like "*driver*" -and $_ -notlike "*task*") { - LogWrite " Is an IoT Driver so will not copy" - } else { - LogWrite " Is not IoT Driver so will copy" - $subDir = $_.FullName.Split('\') | select -Last 1; - $destDir = -join("$nodeModulesFolder","\","$mainFolderName","\", "$_"); - Robocopy $_.FullName "`"$destDir"`" /S /IS | Out-Null; - } - - } - - } else { - $destDir = -join("$nodeModulesFolder","\",$_.Name); - Robocopy $_.FullName "$destDir" /S /IS | Out-Null; - } - } - - - # Update config.json - if(-not (Test-Path $configFile)){ - LogWrite " ! config.json not found" -foregroundColor Red - } - $jsonObject = Get-Content -Raw -Path $configFile | ConvertFrom-Json; - - LogWrite " Updating config.json" - # Add packages - if (-not $isConnectIoTPackages) { - $packagesList = New-Object System.Collections.Generic.List[System.String]; - $jsonObject.packages.available | ForEach-Object { - $packagesList.Add($_); - } - # Add new packages - foreach ($packageToInstall in $packagesToInstall) { - if (-not $packagesList.Contains($packageToInstall)) { - LogWrite " Adding $packageToInstall to config.json" - $packagesList.Add($packageToInstall); - } - } - - $jsonObject.packages.available = $packagesList.ToArray(); - } - else { - $packagesList = @() - $jsonObject.connectiot.packages | ForEach-Object { - $packagesList += $_; - } - - foreach ($packageToInstall in $packagesToInstall) { - if (-not ($packagesList.path -contains $packageToInstall)) { - if($packageToInstall -like "*driver*" -and $packageToInstall -notlike "*task*") { - LogWrite " Will not add $packageToInstall to config.json (connectIot), because it's a Driver" - } else { - LogWrite " Adding $packageToInstall to config.json (connectIot)" - $packagesList += ([PSCustomObject]@{ path = $packageToInstall }) - } - } - } - - $jsonObject.connectiot.packages = $packagesList; - } - - # Update config.json cacheId - $now = Get-Date; - $randomSuffix = "" + (Get-Random -Maximum 99999 -Minimum 10000); - $jsonObject.cacheId = "" + $now.Year + $now.Month + $now.Day + $now.Hour + $now.Minute + $randomSuffix; - - # Save config.json - $jsonObject | ConvertTo-Json -Depth 10 | Out-File $configFile; - - # Update with index.html - if(-not (Test-Path $indexHtmlFile)){ - LogWrite " No index.html to publish" - } else { - LogWrite " Deal with index.html" - Copy-Item $indexHtmlFile $targetInstallation -recurse -force - } - } - else { - LogWrite " No packages found to install..." - } - LogWrite (" * $($target) installation in " + $server.ServerName + " completed") -foregroundColor Green; - } -} - -<# - .SYNOPSIS - Creates a new object to represent a CM MES Config - - .DESCRIPTION - Returns a new custom object which contains all the required configuration properties create or update a configuration entry - cmNavigo. Should be used in conjunction with Set-Config - - .PARAMETER parentPath - The Config path - - .PARAMETER name - The Config name - - .PARAMETER value - The Config value - - .PARAMETER valueType - The Config value type. This parameter is required when creating a new config. It can take the following values: - Boolean, Decimal, Double, Int16, Int32, Int64, String - - .EXAMPLE - New-Config -parentPath '/Cmf/System/Configuration/ERP/' -name 'IsActive' -Value 'TRUE' - - .OUTPUTS - A custom object representing the CM MES Config. The object contains the following properties: - - ParentPath: The config parent path - - Name: Name of the Config - - Value: The value of the config - - ValueType: The data type of the config -#> -function New-Config() -{ - param - ( - [Parameter(Mandatory=$True)] - [string] $parentPath, - - [Parameter(Mandatory=$True)] - [string] $name, - - [Parameter(Mandatory=$True)] - [string] $value, - - [Parameter(Mandatory=$False)] - [string] $valueType - ) - - $config = new-object PSObject - - $config | add-member -type NoteProperty -Name ParentPath -Value $parentPath - $config | add-member -type NoteProperty -Name Name -Value $name - $config | add-member -type NoteProperty -Name Value -Value $value - $config | add-member -type NoteProperty -Name ValueType -Value $valueType - - return $config -} - -<# - .SYNOPSIS - Creates or updates a CM MES configuration entry - - .DESCRIPTION - Creates and/or saves one or more CM MES Configs. If the execution fails, a message will be sent to user, but the process continues. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER configs - Array containing the Configs to create and/or save. Each Config should be a custom object created with the function New-Config - function. - - .EXAMPLE - Execute-DEEAction $env -configs $configs - -#> -function Set-Config() -{ - - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Configs to create and/or save - [Parameter(Mandatory=$True)] - [Object[]]$configs - ) - - LogWrite " > Starting create and/or save of Configs..." - - $totalConfigsToCreateOrSave = $configs.Count - $createdSavedConfigs = 0; - $activityDescription = 'Create or Save of Configs' - - Write-Progress -Activity ($activityDescription) -PercentComplete 0 -CurrentOperation "0% complete" -Status "Please wait..." - - - Use-LightBusinessObjects $env - $index = 0 - - foreach($config in $configs) - { - $percentage = [int](($index / $totalConfigsToCreateOrSave) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status (($index + 1).ToString() + " of " + $totalConfigsToCreateOrSave.ToString() + ". Creating/saving the config " + $config.Name + " at " + $config.ParentPath + "... Please wait...") - - try - { - - [Cmf.Foundation.Configuration.Config] $configuration = New-Object Cmf.Foundation.Configuration.Config - $configuration.Name = $config.Name - $configuration.Value = $config.Value - if($config.ValueType) - { - $configuration.ValueType = ("System." + $config.ValueType) - } - - [Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.GetConfigByPathInput] $inputGetConfigPath = New-Object Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.GetConfigByPathInput - - try - { - $inputGetConfigPath.Path = ($config.ParentPath + "/" + $config.Name) - $resultGetConfigPath = $inputGetConfigPath.GetConfigByPathSync() - } - catch [Exception]{} - - - if ($resultGetConfigPath.Config) - { - # Config exists, update it - - $resultGetConfigPath.Config.Name = $configuration.Name - $resultGetConfigPath.Config.Value = $configuration.Value - $resultGetConfigPath.Config.ValueType = $configuration.ValueType - - [Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.UpdateConfigInput] $inputUpdateConfig = New-Object Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.UpdateConfigInput - $inputUpdateConfig.Config = $resultGetConfigPath.Config - $resultUpdateConfig = $inputUpdateConfig.UpdateConfigSync() - - LogWrite (" Config " + $config.ParentPath + "/" + $config.Name + " was saved correctly.") - } - else - { - # Config does not exist, create it - - [Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.CreateConfigInput] $inputCreateConfig = New-Object Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.CreateConfigInput - $inputCreateConfig.ParentPath = $config.ParentPath - $inputCreateConfig.Config = $configuration - $resultCreateConfig = $inputCreateConfig.CreateConfigSync() - - LogWrite (" Config " + $config.ParentPath + "/" + $config.Name + " was created correctly.") - } - - $createdSavedConfigs = $createdSavedConfigs + 1; - } - catch [Exception] - { - LogWrite $_.Exception.Message - } - finally - { - $index = $index + 1 - $percentage = [int](($index / $totalConfigsToCreateOrSave) * 100) - Write-Progress -Activity ($activityDescription) -PercentComplete $percentage -CurrentOperation "$percentage% complete" -Status "Please wait..." - } - } - - Write-Progress -Activity $activityDescription -Completed -Status "Configs have been created/saved." - - if ($createdSavedConfigs -gt 0) - { - if ($createdSavedConfigs -eq $totalConfigsToCreateOrSave) - { - LogWrite (" Configs created/saved with success.") -foregroundColor Green - } - else - { - LogWrite (" Not all Configs were created/saved with success.") -foregroundColor Yellow - } - } - else - { - LogWrite (" Configs were not created/saved with success." ) -foregroundColor Yellow - } - - LogWrite (" * Finished create/save Configs!") -foregroundColor Green -} - -<# - .SYNOPSIS - Gets a CM MES configuration entry - - .DESCRIPTION - Return a CM MES Config. If the execution fails, a message will be sent to user, but the process continues. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER configPath - Path of the Config to get. - - .EXAMPLE - Get-Config $env -configPath '/Cmf/System/Configuration/ConnectIoT/RepositoryLocation/' - -#> -function Get-Config() -{ - - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Path of the Config to get - [Parameter(Mandatory=$True)] - [string]$configPath - ) - - Use-LightBusinessObjects $env - try - { - [Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.GetConfigByPathInput] $inputGetConfigPath = New-Object Cmf.Foundation.BusinessOrchestration.ConfigurationManagement.InputObjects.GetConfigByPathInput - $inputGetConfigPath.Path = $configPath - $resultGetConfigPath = $inputGetConfigPath.GetConfigByPathSync() - - if ($resultGetConfigPath.Config) - { - # Config exists, return it - return $resultGetConfigPath.Config.Value - } - else - { - LogWrite (" Config $configPath was not found") - } - } - catch [Exception] - { - LogWrite $_.Exception.Message - } -} - - - - -<# - .SYNOPSIS - Backup the CMF Folder - - .DESCRIPTION - Makes a backup of the CMF Folder to a zip. - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER backupIdentifier - Name that identifies the backup - - .PARAMETER folderToBackup - Application folder to back up - - .PARAMETER applicationServer - Application server path - - .PARAMETER manifest - Manifest XML file with the content to be backed-up. - - .EXAMPLE - Backup-CMFFolder $env -backupIdentifier "Sprint01" -folderToBackup "UI\HTML" -applicationServer "./html" - - .NOTES - Requires administrative privileges on the application servers. -#> -function Backup-CMFFolder() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Name that identifies the backup - [Parameter(Mandatory=$True)] - [string] $backupIdentifier, - - # Folder to Backup - [Parameter(Mandatory=$True)] - [string] $folderToBackup, - - # Application Server Path - [Parameter(Mandatory=$False)] - [string] $applicationServer, - - # backup manifest - [Parameter(Mandatory=$False)] - [xml] $manifest - ) - - LogWrite (" > Starting " + $folderToBackup + " backup...") - - # Get servers to use - $serversToUse = @() - - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - foreach($server in $serversToUse) - { - $folderParsed = $folderToBackup.Split("\")[-1] - $backupPath = Join-Path -Path ($env.BackupLocation) -ChildPath ("\"+$backupIdentifier+"\" + $server.ServerName.Split('.')[0] + "-" + $folderParsed + "-"+$env.SystemName+"-"+$backupIdentifier+".zip") - - $continueBackup = OverwriteBackupFile $backupPath - - if($continueBackup -eq $true) - { - $sc = - { - param($sourcedir, $zipfilename, $activityDescription, $manifest) - Write-Progress -Activity ($activityDescription) -Status "Please wait..." - - # create backup folder if it doesn't exist - $mainBackupFolder = (Split-Path -parent $zipfilename) - New-Item -ItemType Directory -Force -Path $mainBackupFolder | Out-Null - - # check if manifest was provided - and identify files and folders to backup - if ( $manifest ) - { - $filesToBackup = @() - foreach ( $node in $manifest.BackupManifest.Content.File ) { - $filesToBackup += $node - } - - $foldersToBackup = @() - foreach ( $node in $manifest.BackupManifest.Content.Folder ) { - $foldersToBackup += $node - } - } - - # remove previous file if it already exists - if (Test-Path $zipfilename) { Remove-Item $zipfilename } - - [Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" ) | Out-Null - $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal - if ( ( -not $filesToBackup ) -and ( -not $foldersToBackup ) ) { - # No Files and No Folders to Backup - Full Backup - [System.IO.Compression.ZipFile]::CreateFromDirectory( $sourcedir, $zipfilename, $compressionLevel, $false ) - } - else { - # Files or Folders to Backup - Partial Backup - - #region: create temporary folder to copy files to be backed-up - $tempBackup = "$mainBackupFolder\tmp_backup" - if ( Test-Path $tempBackup ) { Remove-Item $tempBackup -Force -Recurse } - - New-Item -ItemType Directory -Force -Path "$tempBackup" | Out-Null - #endregion - if ( $filesToBackup ) { - foreach ( $item in $filesToBackup ) { - $fileToBackup = "$(Join-Path -Path $sourcedir -ChildPath $item)" - if ( Test-Path -Path "$fileToBackup" ) { - $itemPath = "$(Split-Path -Path $item)" - if ( $itemPath -ne '.' ) { - if ( -not (Test-Path "$tempBackup\$itemPath" ) ) { - New-Item -Path "$tempBackup" -type Directory -Name $itemPath -Force | Out-Null - } - } - - $fileName = "$(Split-Path $fileToBackup -Leaf)" - - $fileToBackup = "$((Resolve-Path $fileToBackup).Path)" - $sourceFolder = "$( Split-Path -Path $fileToBackup)" - - robocopy "$sourceFolder" "$tempBackup\$itemPath" $fileName | Out-Null - } - } - } - - if ( $foldersToBackup ) { - foreach ( $folder in $foldersToBackup ) { - $sourceFolder = "$(Join-Path -Path $sourcedir -ChildPath $folder)" - - if ( Test-Path -Path "$sourceFolder" ) { - robocopy "$sourceFolder" "$tempBackup\$folder" /e | Out-Null - } - } - } - - # Save manifest into tempbackup folder to be zipped - $manifest.Save( "$tempBackup\BackupManifest.xml" ) - - [System.IO.Compression.ZipFile]::CreateFromDirectory( $tempBackup, $zipfilename, $compressionLevel, $false ) - - # Delete tempbackup folder after the zip - if ( Test-Path $tempBackup ) { Remove-Item $tempBackup -Force -Recurse } - } - - Write-Progress -Activity $activityDescription -Completed -Status "Backup has beeen done." - } - - $activityDescription = "Backing up "+$folderToBackup+" in " + $server.ServerName + " ..." - LogWrite (" " + $activityDescription ) - - $FolderFullPath = (Join-Path -Path $server.InstallationPath -ChildPath ("\"+$folderToBackup)) - - $password = Get-SecureStringFromEncryptedString $env.AdminPass - $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $env.AdminUser, $password - - $userName = $env.AdminUser - $password = Get-ClearTextFromEncryptedString $env.AdminPass - $uri = new-object System.Uri($backupPath) - $backupServer = "\\"+$uri.host - $sess = New-PSSession -ComputerName $server.ServerName -Credential $cred - Enter-PSSession -Session $sess - Invoke-Command -Session $sess -ScriptBlock { (net use $using:backupServer $using:password /USER:$using:userName) | Out-Null } - Invoke-Command -Session $sess -ScriptBlock $sc ` - -ArgumentList @($FolderFullPath,$backupPath, $activityDescription, $manifest) - Invoke-Command -Session $sess -ScriptBlock { (net use $using:backupServer /delete) | Out-Null } - Remove-PSSession -Session $sess - Exit-PSSession - } - else - { - LogWrite (" Backup of "+$folderToBackup+" in " + $server.ServerName + " was bypassed due to previous backup file...") -foregroundColor Yellow - } - } - - LogWrite (" * Finished "+$folderToBackup+" backup!") -foregroundColor Green -} - - -<# - .SYNOPSIS - Restore the Folder - - .DESCRIPTION - Makes a restore of the Folder installation given a backupFile - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER backupIdentifier - Name that identifies the backup - - - .PARAMETER applicationServer - Application server path - - .EXAMPLE - Restore-CMFHTML $env -backupIdentifier "Sprint01" -applicationServer "./html" - - .NOTES - Requires administrative privileges on the application servers. -#> -function Restore-CMFFolder() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # Name that identifies the backup - [Parameter(Mandatory=$True)] - [string] $backupIdentifier, - - # Folder to Backup - [Parameter(Mandatory=$True)] - [string] $folderToBackup, - - # Application Server Path - [Parameter(Mandatory=$False)] - [string] $applicationServer - ) - - LogWrite (" > Starting "+$folderToBackup+" restore...") - - # Get servers to use - $serversToUse = @() - if ($applicationServer) - { - $serversToUse += $applicationServer - } - else - { - $serversToUse = $env.ApplicationServers - } - - foreach($server in $serversToUse) - { - $folderParsed = $folderToBackup.Split("\")[-1] - $backupPath = Join-Path -Path ($env.BackupLocation) -ChildPath ("\"+$backupIdentifier+"\" + $server.ServerName.Split('.')[0] + "-" + $folderParsed + "-"+$env.SystemName+"-"+$backupIdentifier+".zip") - - $sc = CreateUnzipCommand - - $activityDescription = "Restoring "+$folderToBackup+" in " + $server.ServerName + "..." - LogWrite (" " + $activityDescription) - try{ - - $FolderFullPath = (Join-Path -Path $server.InstallationPath -ChildPath ("\"+$folderToBackup)) - - $password = Get-SecureStringFromEncryptedString $env.AdminPass - $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $env.AdminUser, $password - - $userName = $env.AdminUser - $password = Get-ClearTextFromEncryptedString $env.AdminPass - $uri = new-object System.Uri($backupPath) - $backupServer = "\\"+$uri.host - $sess = New-PSSession -ComputerName $server.ServerName -Credential $cred - Enter-PSSession -Session $sess - Invoke-Command -Session $sess -ScriptBlock { (net use $using:backupServer $using:password /USER:$using:userName) | Out-Null } - Invoke-Command -Session $sess -ScriptBlock $sc ` - -ArgumentList @($FolderFullPath,$backupPath, $activityDescription) - Invoke-Command -Session $sess -ScriptBlock { (net use $using:backupServer /delete) | Out-Null } - Remove-PSSession -Session $sess - Exit-PSSession - - }catch { throw (" * Invoke-Command ERROR "+$_) } - } - - LogWrite (" * Finished "+$folderToBackup+" restore!") -foregroundColor Green -} - -function Get-EncryptedStringFromClearText() -{ - param ( - [Parameter(Mandatory=$True)] - [string] $ClearText - ) - $SecureString = Get-SecureStringFromClearText $ClearText - $EncryptedString = Get-EncryptedStringFromSecureString $SecureString - return $EncryptedString -} - -function Get-ClearTextFromEncryptedString() -{ - param ( - [Parameter(Mandatory=$True)] - [string] $EncryptedString - ) - $SecureString = Get-SecureStringFromEncryptedString $EncryptedString - $ClearText = Get-ClearTextFromSecureString $SecureString - return $ClearText -} - -function Get-ClearTextFromSecureString() -{ - param ( - [Parameter(Mandatory=$True)] - [SecureString] $SecureString - ) - $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) - $ClearText = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) - return $ClearText -} - -function Get-EncryptedStringFromSecureString() -{ - param ( - [Parameter(Mandatory=$True)] - [SecureString] $SecureString - ) - $SecureStringKey = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43) - $EncryptedString = ConvertFrom-SecureString $SecureString -Key $SecureStringKey - return $EncryptedString -} - -function Get-SecureStringFromClearText() -{ - param ( - [Parameter(Mandatory=$True)] - [string] $ClearText - ) - $SecureString = ConvertTo-SecureString $ClearText -AsPlainText -Force - return $SecureString -} - -function Get-SecureStringFromEncryptedString() -{ - param ( - [Parameter(Mandatory=$True)] - [string] $EncryptedString - ) - $SecureStringKey = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43) - $SecureString = ConvertTo-SecureString $EncryptedString -Key $SecureStringKey - return $SecureString -} - - -<# - .SYNOPSIS - Backup CMFEnvironment - - .DESCRIPTION - By default creates a backup of the CMFEnvironment databases (online, ods, dwh) and folders (BusinessTier, HTML) - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER backupIdentifier - Name that identifies the backup to be created - - .PARAMETER applicationServer - Application server path - - .PARAMETER databases - Databases to be backed up (default: online, ods, dwh) - - .PARAMETER folders - Folders to be backed up (default: BusinessTier, HTML) - - .EXAMPLE - Backup-CMFEnvironment $env -backupIdentifier "Sprint01" -applicationServer -applicationServer $env.ApplicationServers[0] -#> -function Backup-CMFEnvironment() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # backupIdentifier - [Parameter(Mandatory=$True)] - [string] $backupIdentifier, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer - ) - - # Nice to have utility - to be done in the future -} - -<# - .SYNOPSIS - Restores CMFEnvironment - - .DESCRIPTION - By default restores the CMFEnvironment databases (online, ods, dwh) and folders (BusinessTier, HTML) - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER backupIdentifier - Name that identifies the backup to be restored - - .PARAMETER applicationServer - Application server path - - .PARAMETER databases - Databases to be restored (default: online, ods, dwh) - - .PARAMETER folders - Folders to be restored (default: BusinessTier, HTML) - - .EXAMPLE - Restore-CMFEnvironment $env -backupIdentifier "Sprint01" -applicationServer -applicationServer $env.ApplicationServers[0] - - .NOTES - Requires administrative privileges on the application servers. -#> -function Restore-CMFEnvironment() -{ - param - ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # backupIdentifier - [Parameter(Mandatory=$True)] - [string] $backupIdentifier, - - # Application Server - [Parameter(Mandatory=$False)] - [PSObject]$applicationServer - ) - - # Nice to have utility - to be done in the future -} - - -<# - .SYNOPSIS - Gets CMFEnvironment from config file. - - .DESCRIPTION - Gets the CMFEnvironment file from a configuration file (ps1 or json) - - .PARAMETER environmentConfigName - Environment configuration name. - - .PARAMETER environmentConfigPath - Environment configuration folder path. - - .EXAMPLE - $env = ( Get-CMFEnvironment -environmentConfigName "$EnvironmentConfigName" -environmentConfigPath "$PackageRootFolder\EnvironmentConfigs" -cmfInstallActionsPath "$PackageRootFolder\CMFInstallActions" ) -#> -function Get-CMFEnvironment() -{ - param - ( - # environmentConfigPath - [Parameter(Mandatory=$True)] - [string] $environmentConfigPath, - - # cmfInstallActionsPath - [Parameter(Mandatory=$True)] - [string] $cmfInstallActionsPath - ) - - if ( -not ( Test-Path $cmfInstallActionsPath ) ){ - throw "cmfInstallActionsPath is invalid... Folder '$cmfInstallActionsPath' does not exist..." - } - if ( -not ( Test-Path $environmentConfigPath ) ){ - throw "environmentConfigPath is invalid... Folder '$environmentConfigPath' does not exist..." - } - - $cmfInstallActionsPath = (Resolve-Path -Path $cmfInstallActionsPath).Path - $environmentConfigPath = (Resolve-Path -Path $environmentConfigPath).Path - - if (Test-Path $environmentConfigPath) - { - # Loading json configuration file - $env = & $cmfInstallActionsPath\EnvironmentConfigParser.ps1 -ConfigFilePath $environmentConfigPath -ReferencesDir $cmfInstallActionsPath\References - } - else - { - throw "Config $environmentConfigPath not found!" - } - - return $env -} - -<# - .SYNOPSIS - Gets a variable from an Yaml file - - .DESCRIPTION - Gets a variable from an Yaml file - - .PARAMETER FilePath - Yaml File Path - - .PARAMETER VariableName - Name of Variable to Get - - .EXAMPLE - ParseYamlVariables -filePath "[PATH]\GlobalVariables.yml" -VariableName "CurrentPackage" -#> -function ParseYamlVariables() -{ - param - ( - # File - [Parameter(Mandatory=$True)] - [string]$FilePath, - - # VariableName - [Parameter(Mandatory=$True)] - [string] $VariableName - ) - - foreach ($line in Get-Content $FilePath) - { - if ($line -match $VariableName) - { - return $line.Split("'")[1]; - } - } -} - -<# - .SYNOPSIS - Gets Master Data Loader dependencies - - .DESCRIPTION - Gets Master Data Loader dependencies - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .EXAMPLE - Get-MDLDependencies $env -#> -function Get-MDLDependencies() -{ - param ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env - ) - - # Copy MDL dependencies - LogWrite ("Copy References from Master Data Loader") - $appServer = $env.ApplicationServers[0] - $mdlPath = $appServer.MasterDataLoaderPath; - $mdlPath = '\\' + $appServer.ServerName + '\' + $mdlPath -replace ':', '$' - - Robocopy "$mdlPath" "$ModulePath\References" "*.dll" "MasterData.exe.config" /XF "Cmf.LightBusinessObjects.dll" /S /IS /XO | Out-Null -} - -<# - .SYNOPSIS - Deploy IoT Packages - - .DESCRIPTION - Deploy IoT Packages - - .PARAMETER env - Environment configuration, created with New-CMFEnvironment function. - - .PARAMETER packageRootFolder - PackageRootFolder - - .EXAMPLE - IoTPackages-Deploy $env -#> -function IoTPackages-Deploy() -{ - param ( - # CMFEnvironment - [Parameter(Mandatory=$True)] - [PSObject]$env, - - # PackageRootFolder - [Parameter(Mandatory=$True)] - [string] $packageRootFolder - ) - - LogWrite "Publishing IoT Packages" - - $repositoryLocation = Get-Config $env -configPath '/Cmf/System/Configuration/ConnectIoT/RepositoryLocation/' - if(-not $repositoryLocation) - { - throw "Missing Configuration /Cmf/System/Configuration/ConnectIoT/RepositoryLocation/" - } - $repositoryType = Get-Config $env -configPath '/Cmf/System/Configuration/ConnectIoT/RepositoryType/' - if(-not $repositoryType) - { - LogWrite (" Config /Cmf/System/Configuration/ConnectIoT/RepositoryType/ was not found. Fallback to RepositoryType = Npm.") - $repositoryType = "Npm" - } - - $successfullyPublishedPackagesCounter = 0 - $unsuccessfullyPublishedPackagesCounter = 0 - & cd $packageRootFolder - - if($repositoryType -eq "Directory") - { - foreach ($IoTPackageProjectReference in Get-ChildItem "$PackageRootFolder\AutomationCustomPackages\" -Directory) - { - foreach ($folder in Get-ChildItem "$PackageRootFolder\AutomationCustomPackages\$IoTPackageProjectReference\" -Directory) - { - cd "$PackageRootFolder\AutomationCustomPackages\$IoTPackageProjectReference\$folder" - foreach ($package in Get-ChildItem -Depth 2 -Filter "*.tgz") - { - Copy-Item -Force -Recurse -Verbose $package -Destination $repositoryLocation - if($LASTEXITCODE -ge 0){ - $successfullyPublishedPackagesCounter++ - }else - { - $unsuccessfullyPublishedPackagesCounter++ - LogWrite "Could not publish package $($package)" - } - } - } - } - Invoke-Expression "& '$repositoryLocation\.rebuildDatabase.ps1'" - } - elseif($repositoryType -eq "Npm") - { - $NpmServerAddress = $repositoryLocation - $parts = $NpmServerAddress.Split(':') - $machineName = $parts[1].Replace('//','') - $port = $parts[2] - $Tag = "IoT_100" - - Write-Verbose -Verbose "Deploying $Tag to $NpmServerAddress..." - - $psi = New-Object System.Diagnostics.ProcessStartInfo; - $psi.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden; - $psi.FileName = "cmd.exe"; #process file - $psi.UseShellExecute = $false; #start the process from it's own executable file - $psi.RedirectStandardInput = $true; #enable the process to read from standard input - $psi.RedirectStandardOutput = $true; #enable the process to read from standard output - $psi.RedirectStandardError = $true; #enable the process to read from standard error - $psi.CreateNoWindow = $true; - - $UserName = $env.AdminUser.Split('\')[1] - $UserPassword = Get-ClearTextFromEncryptedString $env.AdminPass - $UserEmail = "$userName@$userName.com" - - $p = [System.Diagnostics.Process]::Start($psi); - - Start-Sleep -s 2 #wait 2 seconds so that the process can be up and running - - $p.StandardInput.WriteLine("npm adduser --registry $NpmServerAddress"); #StandardInput property of the Process is a .NET StreamWriter object - Start-Sleep -s 2 #wait for the stdin to be ready to receive input - $p.StandardInput.WriteLine($UserName.ToLowerInvariant()); #StandardInput property of the Process is a .NET StreamWriter object - Start-Sleep -s 2 #wait for the stdin to be ready to receive input - $p.StandardInput.WriteLine($UserPassword); #StandardInput property of the Process is a .NET StreamWriter object - Start-Sleep -s 2 #wait for the stdin to be ready to receive input - $p.StandardInput.WriteLine($UserEmail); #StandardInput property of the Process is a .NET StreamWriter object - Start-Sleep -s 2 #wait for adduser command to finish - - Stop-Process -Id $p.Id -Force - - foreach ($IoTPackageProjectReference in Get-ChildItem "$PackageRootFolder\AutomationCustomPackages\" -Directory) - { - foreach ($folder in Get-ChildItem "$PackageRootFolder\AutomationCustomPackages\$IoTPackageProjectReference" -Directory) - { - cd "$PackageRootFolder\AutomationCustomPackages\$IoTPackageProjectReference\$folder" - foreach ($package in Get-ChildItem -Depth 2 -Filter "*.tgz") { - try - { - $command = "npm unpublish $IoTPackageProjectReference/$folder --registry $NpmServerAddress --tag $Tag --force --loglevel=error" - LogWrite $command - powershell $command -NoNewWindow - - } - catch - { - LogWrite "Unpublished package $($package) not needed" - } - - $command = "npm publish $package --registry $NpmServerAddress --tag $Tag --force --loglevel=error" - LogWrite $command - powershell $command -NoNewWindow - if($LASTEXITCODE -ge 0){ - $successfullyPublishedPackagesCounter++ - }else - { - $unsuccessfullyPublishedPackagesCounter++ - LogWrite "Could not publish package $($package)" - } - } - } - } - } - - LogWrite "Successfully published $($successfullyPublishedPackagesCounter) packages." - LogWrite "$($unsuccessfullyPublishedPackagesCounter) packages were not published successfully." -} \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/CustomizationInstall.ps1 b/cmf-cli/installDependencies/Data/CMFInstallActions/CustomizationInstall.ps1 deleted file mode 100644 index f6c32b278..000000000 --- a/cmf-cli/installDependencies/Data/CMFInstallActions/CustomizationInstall.ps1 +++ /dev/null @@ -1,639 +0,0 @@ -# Powershell script to load CMF Customizations into a CM MES Installation -# Author: Luis Ponte -# Last Modified by: PI DevOps -# Last Modified on: 2020/07/07 -# -------------------------------------------------------------------------- -param( - [string]$EnvironmentConfigName, - [switch]$InteractiveMode = $false, - [string]$PlantName = "", - [switch]$BackupBefore = $true, - [switch]$RunAppInstall = $true -) - -if ([string]::IsNullOrWhiteSpace($EnvironmentConfigName)) -{ - throw "Missing mandatory parameter: EnvironmentConfigName" -} - -################################################ -# Variables - -$ErrorActionPreference = "Stop" -$global:InteractiveMode = $InteractiveMode -$EXITCODE = 0 -$sortRegex = { [regex]::Replace($_, '\d+', { $args[0].Value.PadLeft(20) }) } - - -# Scripts & Configs -$scriptPath = Split-Path $MyInvocation.MyCommand.Path -$packageRootFolder = Resolve-Path (Join-Path $scriptPath '..') # change to match package root folder -$cmfInstallActionsFolder = "$packageRootFolder\CMFInstallActions" -$runMasterDataScript = "$cmfInstallActionsFolder\InvokeMasterData.ps1" -$runAppInstallScript = "$cmfInstallActionsFolder\AppInstall.ps1" -$jsonConfigFilePath = "$packageRootFolder\EnvironmentConfigs\$EnvironmentConfigName.json" - -# Load Module with CMF Install Actions and Environment configuration -Import-Module $cmfInstallActionsFolder\CMFInstallActions.psd1 -$env = (Get-CMFEnvironment -environmentConfigPath $jsonConfigFilePath -cmfInstallActionsPath $cmfInstallActionsFolder) - -$customizationVersion = ParseYamlVariables -File "$packageRootFolder\EnvironmentConfigs\GlobalVariables.yml" -VariableName "CurrentPackage" -$releaseID = "Release $customizationVersion" -$backupIdentifier = 'BeforePackage_' + $customizationVersion - -# Business -$businessFolder = "$packageRootFolder\Business" -$backupBusinessTier = ($RunAppInstall -and (Test-Path -Path "$businessFolder")) - -# HTML -$htmlFolder = "$packageRootFolder\UI\HTML" -$backupUIHtml = ($RunAppInstall -and (Test-Path -Path "$htmlFolder")) - -# Help -$helpFolder = "$packageRootFolder\UI\Help" -$backupUIHelp = ($RunAppInstall -and (Test-Path -Path "$helpFolder")) - -# DeeRules -$deeRulesFolder = "$packageRootFolder\DeeRules" - -# ProcessRules -$processRulesFolder = "$deeRulesFolder\ProcessRules" -$processRulesFolderEntityTypes = "$processRulesFolder\EntityTypes" - -# Powershell -$powershellFolder = "$packageRootFolder\Powershell" - -# MasterData -$masterDataFolder = "$packageRootFolder\MasterData" - -# ExportedObjects -$exportedObjectsFolder = "$packageRootFolder\ExportedObjects" - -# Database -$databaseFolder = "$packageRootFolder\Database" -$databaseFolderOnline = "$databaseFolder\Online"; -$databaseFolderODS= "$databaseFolder\ODS"; -$databaseFolderDWH= "$databaseFolder\DWH"; - -# Reports -$reportsFolder = "$packageRootFolder\Reports" - -# MasterDataFiles -$automationWorkflowFilesFolder = "AutomationWorkflowFiles" -$checklistImageFilesFolder = "ChecklistImages" -$exportedObjectsMDFolder = "ExportedObjects" - -# IoT -$automationCustomPackagesFolder = "$packageRootFolder\AutomationCustomPackages" - -# Defaults Before & After -$before = "Before" -$after = "After" -$plantBefore ="$PlantName\$before" -$plantAfter = "$PlantName\$after" - -try { - LogWrite "CM MES Customization Installation" -ForegroundColor Cyan - LogWrite "------------------------------------" - LogWrite ("Release Package ID > " + $releaseID) - LogWrite ("Customization version > " + $customizationVersion) - LogWrite ("Backup Identifier > " + $BackupIdentifier) - LogWrite "------------------------------------" - - LogWrite "Script Input Parameters" -ForegroundColor Cyan - LogWrite "------------------------------------" - LogWrite ("EnvironmentConfigName: $EnvironmentConfigName") - LogWrite ("InteractiveMode: $InteractiveMode") - LogWrite ("Global.InteractiveMode: $global:InteractiveMode") - LogWrite ("PlantName: $PlantName") - LogWrite ("BackupBefore: $BackupBefore") - LogWrite ("RunAppInstall: $RunAppInstall") - LogWrite "------------------------------------" - - $DoBackup = $BackupBefore - if ($env:IsBackupDone) { - if ($env:IsBackupDone -eq $true) { - $DoBackup = $false - $BackupBefore = $false; - } - } - - if($DoBackup -eq $true) - { - $systemBackupPSExpression = "& '$packageRootFolder\DeploymentTools\SystemBackup.ps1' " + - "-EnvironmentConfigName '$EnvironmentConfigName' " + - "-backupIdentifier '$backupIdentifier' " + - "-InteractiveMode:$" + $InteractiveMode + " " + - "-FullBackup:$" + "$false " + - "-BackupDBOnline " + - "-BackupDBODS " + - "-BackupDBDWH " + - "-BackupBusinessTier:$" + "$BackupBusinessTier " + - "-BackupUIHtml:$" + "$BackupUIHtml " + - "-BackupUIHelp:$" + "$BackupUIHelp " + - "-backupBasedOnDeliverables" - - Invoke-Expression $systemBackupPSExpression - } - else - { - LogWrite "Backup skipped as it was done in a previous step of the execution thread" -foregroundColor Yellow - } - - Get-MDLDependencies $env - - # Disable perform transformations on host configuration files - Install-CMFBusinessConfigTransformation $env -transformFile "$cmfInstallActionsFolder\DownTimeConfig.xdt" - - # Disabling ERP integration if needed - $isERPEnabled = Get-Config $env -configPath '/Cmf/System/Configuration/ERP/IsActive/' - if ($isERPEnabled) - { - $config = New-Config -parentPath '/Cmf/System/Configuration/ERP' -name 'IsActive' -Value 'FALSE' -ValueType 'Boolean' - Set-Config $env $config - } - - ######################################################################################################################### - # Execute load entity types process rules - - if (Test-Path "$processRulesFolderEntityTypes") - { - LogWrite "Executing entity type process rules..." -foregroundColor Green - LoadProcessRules $env "$processRulesFolderEntityTypes" - } - - ################################################################################################################################ - # Execute pre process rules - - if (Test-Path "$processRulesFolder") - { - foreach ($folder in Get-ChildItem $processRulesFolder -Directory | Sort-Object $sortRegex) - { - $processRulesFolderBefore = "$processRulesFolder\" + $folder.Name + "\$before" - if (Test-Path "$processRulesFolderBefore") - { - LogWrite "Executing $folder process rules (pre-deployment)..." -foregroundColor Green - LoadProcessRules $env "$processRulesFolderBefore" - } - - if($PlantName) - { - $processRulesFolderPlantBefore = "$processRulesFolder\" + $folder.Name + "\$plantBefore" - if (Test-Path "$processRulesFolderPlantBefore") - { - LogWrite "Executing $folder process rules (pre-deployment)..." -foregroundColor Green - LoadProcessRules $env "$processRulesFolderPlantBefore" - } - } - } - } - - - ################################################################################################################################################## - # Execute pre powershell scripts - - if (Test-Path "$powershellFolder") - { - foreach ($folder in Get-ChildItem $powershellFolder -Directory | Sort-Object $sortRegex) - { - $powershellFolderBefore = "$powershellFolder\" + $folder.Name + "\$before" - if (Test-Path "$powershellFolderBefore") - { - foreach ($file in Get-ChildItem $powershellFolderBefore -File -Filter '*.ps1') - { - Logwrite "Executing Powershell script $file" -foregroundColor Green - $fileFullPath = "$powershellFolderBefore\$file" - Invoke-Expression "& '$fileFullPath' -EnvironmentConfigName $EnvironmentConfigName" - } - } - - if($PlantName) - { - $powershellFolderPlantBefore = "$powershellFolder\" + $folder.Name + "\$plantBefore" - if (Test-Path "$powershellFolderPlantBefore") - { - foreach ($file in Get-ChildItem $powershellFolderPlantBefore -File -Filter '*.ps1') - { - Logwrite "Executing Powershell script $file" -foregroundColor Green - $fileFullPath = "$powershellFolderPlantBefore\$file" - Invoke-Expression "& '$fileFullPath' -EnvironmentConfigName $EnvironmentConfigName" - } - } - } - } - } - - - - - ###################################################################################################################################### - # Run pre SQL Scripts - - if (Test-Path "$databaseFolder") - { - if (Test-Path $databaseFolderOnline) - { - foreach ($folder in Get-ChildItem $databaseFolderOnline -Directory | Sort-Object $sortRegex) - { - $databaseFolderBefore = "$databaseFolderOnline\" + $folder.Name + "\$before" - if(Test-Path $databaseFolderBefore) - { - LogWrite ("Executing Online DB scripts from $databaseFolderBefore") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'Online' -folderPath $databaseFolderBefore - } - - if($PlantName) - { - $databaseFolderPlantBefore = "$databaseFolderOnline\" + $folder.Name + "\$plantBefore" - if(Test-Path $databaseFolderPlantBefore) - { - LogWrite ("Executing Online DB scripts from $databaseFolderPlantBefore") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'Online' -folderPath $databaseFolderPlantBefore - } - } - } - } - - if (Test-Path "$databaseFolderODS") - { - foreach ($folder in Get-ChildItem $databaseFolderODS -Directory | Sort-Object $sortRegex) - { - $databaseFolderBefore = "$databaseFolderODS\" + $folder.Name + "\$before" - if(Test-Path "$databaseFolderBefore") - { - LogWrite ("Executing ODS DB scripts from $databaseFolderBefore") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'ODS' -folderPath $databaseFolderBefore - } - - if($PlantName) - { - $databaseFolderPlantBefore = "$databaseFolderODS\" + $folder.Name + "\$plantBefore" - if(Test-Path "$databaseFolderPlantBefore") - { - LogWrite ("Executing ODS DB scripts from $databaseFolderPlantBefore") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'ODS' -folderPath $databaseFolderPlantBefore - } - } - } - } - - if (Test-Path "$databaseFolderDWH") - { - foreach ($folder in Get-ChildItem $databaseFolderDWH -Directory | Sort-Object $sortRegex) - { - $databaseFolderBefore = "$databaseFolderDWH\" + $folder.Name + "\$before" - if(Test-Path "$databaseFolderBefore") - { - LogWrite ("Executing DWH DB scripts from $databaseFolderBefore") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'DWH' -folderPath $databaseFolderBefore - } - - if($PlantName) - { - $databaseFolderPlantBefore = "$databaseFolderDWH\" + $folder.Name + "\$plantBefore" - if(Test-Path "$databaseFolderPlantBefore") - { - LogWrite ("Executing DWH DB scripts from $databaseFolderPlantBefore") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'DWH' -folderPath $databaseFolderPlantBefore - } - } - } - } - } - - ########################################################################################################################## - # Run IoT Packages Deploy - if (Test-Path "$automationCustomPackagesFolder") - { - IoTPackages-Deploy $env $packageRootFolder - } - - ######################################################################################################################################### - # Run Master Data - - if (Test-Path "$masterDataFolder") - { - # If no DEERulesFolder exists the variable will be empty - if(Test-Path "$deeRulesFolder") - { - $deeRulesFolderPath = "$deeRulesFolder"; - } - - foreach ($f in Get-ChildItem $masterDataFolder -Directory | Sort-Object $sortRegex) - { - $folder = $f.FullName - - # If no AutomationWorkFlowFiles exists the variable will be empty - if (Test-Path "$folder\$automationWorkflowFilesFolder") - { - $automationWorkflowFilesBasePath = "$folder\$automationWorkflowFilesFolder" - } - - # If no ChecklistImageFiles exists the variable will be empty - if(Test-Path "$folder\$checklistImageFilesFolder") - { - $checklistImageFilesBasePath = "$folder\$checklistImageFilesFolder" - } - - # If no ExportedObjects exists the variable will be empty - if(Test-Path "$folder\$exportedObjectsMDFolder") - { - $exportedObjectsMDBasePath = "$folder\$exportedObjectsMDFolder" - } - - $runMasterDataPSExpression = "& '$runMasterDataScript'" + - " -EnvironmentConfigName '$EnvironmentConfigName'" + - " -MasterDataFolderPath '$folder'" + - " -DeeRulesPath '$deeRulesFolderPath'" + - " -AutomationWorkflowFilesPath '$automationWorkflowFilesBasePath'" + - " -ChecklistImageFilesPath '$checklistImageFilesBasePath'" + - " -ExportedObjectsFilesPath '$exportedObjectsMDBasePath'" + - " -ExecuteAsSubScript" + - " -InteractiveMode:$" + $InteractiveMode - Invoke-Expression $runMasterDataPSExpression - - $plantFolder = "$folder\$PlantName" - if($PlantName -and (Test-Path $plantFolder)) - { - # If no ChecklistImageFiles exists the variable will be empty - if(Test-Path "$plantFolder\$checklistImageFilesFolder") - { - $checklistImageFilesBasePath = "$plantFolder\$checklistImageFilesFolder" - } - - # If no ExportedObjects exists the variable will be empty - if(Test-Path "$plantFolder\$exportedObjectsMDFolder") - { - $exportedObjectsMDBasePath = "$plantFolder\$exportedObjectsMDFolder" - } - - $runMasterDataPSExpression = "& '$runMasterDataScript'" + - " -EnvironmentConfigName '$EnvironmentConfigName'" + - " -MasterDataFolderPath '$plantFolder'" + - " -DeeRulesPath '$deeRulesFolderPath'" + - " -AutomationWorkflowFilesPath '$automationWorkflowFilesBasePath'" + - " -ChecklistImageFilesPath '$checklistImageFilesBasePath'" + - " -ExportedObjectsFilesPath '$exportedObjectsMDBasePath'" + - " -ExecuteAsSubScript" + - " -InteractiveMode:$" + $InteractiveMode - Invoke-Expression $runMasterDataPSExpression - } - } - } - - ########################################################################################################################## - # Run post SQL Scripts - - if (Test-Path "$databaseFolder") - { - if (Test-Path "$databaseFolderOnline") - { - foreach ($folder in Get-ChildItem $databaseFolderOnline -Directory | Sort-Object $sortRegex) - { - $databaseFolderAfter = "$databaseFolderOnline\" + $folder.Name + "\$after" - if(Test-Path "$databaseFolderAfter") - { - LogWrite ("Executing Online DB scripts from $databaseFolderAfter") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'Online' -folderPath $databaseFolderAfter - } - - if($PlantName) - { - $databaseFolderPlantAfter = "$databaseFolderOnline\" + $folder.Name + "\$plantAfter" - if(Test-Path "$databaseFolderPlantAfter") - { - LogWrite ("Executing Online DB scripts from $databaseFolderPlantAfter") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'Online' -folderPath $databaseFolderPlantAfter - } - } - } - } - - if (Test-Path "$databaseFolderODS") - { - foreach ($folder in Get-ChildItem $databaseFolderODS -Directory | Sort-Object $sortRegex) - { - $databaseFolderAfter = "$databaseFolderODS\" + $folder.Name + "\$after" - if(Test-Path "$databaseFolderAfter") - { - LogWrite ("Executing ODS DB scripts from $databaseFolderAfter") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'ODS' -folderPath $databaseFolderAfter - } - - if($PlantName) - { - $databaseFolderPlantAfter = "$databaseFolderODS\" + $folder.Name + "\$plantAfter" - if(Test-Path "$databaseFolderPlantAfter") - { - LogWrite ("Executing ODS DB scripts from $databaseFolderPlantAfter") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'ODS' -folderPath $databaseFolderPlantAfter - } - } - } - } - - if (Test-Path "$databaseFolderDWH") - { - foreach ($folder in Get-ChildItem $databaseFolderDWH -Directory | Sort-Object $sortRegex) - { - $databaseFolderAfter = "$databaseFolderDWH\" + $folder.Name + "\$after" - if(Test-Path "$databaseFolderAfter") - { - LogWrite ("Executing DWH DB scripts from $databaseFolderAfter") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'DWH' -folderPath $databaseFolderAfter - } - - if($PlantName) - { - $databaseFolderPlantAfter = "$databaseFolderDWH\" + $folder.Name + "\$plantAfter" - if(Test-Path "$databaseFolderPlantAfter") - { - LogWrite ("Executing DWH DB scripts from $databaseFolderAfter") -foregroundColor Green - Invoke-PackageSqlScripts $env -database 'DWH' -folderPath $databaseFolderAfter - } - } - } - } - - # Restart host - Stop-NavigoHosts $env -disableNLBManagement - Start-NavigoHosts $env -disableNLBManagement - } - - ################################################################################################################################################## - # Execute post powershell scripts - - if (Test-Path "$powershellFolder") - { - foreach ($folder in Get-ChildItem $powershellFolder -Directory | Sort-Object $sortRegex) - { - $powershellFolderAfter = "$powershellFolder\" + $folder.Name + "\$after" - if (Test-Path "$powershellFolderAfter") - { - foreach ($file in Get-ChildItem $powershellFolderAfter -File -Filter '*.ps1') - { - Logwrite "Executing Powershell script $file" -foregroundColor Green - $fileFullPath = "$powershellFolderAfter\$file" - Invoke-Expression "& '$fileFullPath' -EnvironmentConfigName $EnvironmentConfigName" - } - } - - if($PlantName) - { - $powershellFolderPlantAfter = "$powershellFolder\" + $folder.Name + "\$plantAfter" - if (Test-Path "$powershellFolderPlantAfter") - { - foreach ($file in Get-ChildItem $powershellFolderPlantAfter -File -Filter '*.ps1') - { - Logwrite "Executing Powershell script $file" -foregroundColor Green - $fileFullPath = "$powershellFolderPlantAfter\$file" - Invoke-Expression "& '$fileFullPath' -EnvironmentConfigName $EnvironmentConfigName" - } - } - } - } - } - - ################################################################################################################################ - # Execute post process rules - - if (Test-Path "$processRulesFolder") - { - foreach ($folder in Get-ChildItem "$processRulesFolder" -Directory | Sort-Object $sortRegex) - { - $processRulesFolderAfter = "$processRulesFolder\" + $folder.Name + "\$after" - if (Test-Path "$processRulesFolderAfter") - { - LogWrite "Executing $folder process rules (post-deployment)..." -foregroundColor Green - LoadProcessRules $env "$processRulesFolderAfter" - } - - if($PlantName) - { - $processRulesFolderPlantAfter = "$processRulesFolder\" + $folder.Name + "\$plantAfter" - if (Test-Path "$processRulesFolderPlantAfter") - { - LogWrite "Executing $folder process rules (post-deployment)..." -foregroundColor Green - LoadProcessRules $env "$processRulesFolderPlantAfter" - } - } - } - } - - ########################################################################################################################## - # Import Exported Objects - - if (Test-Path "$exportedObjectsFolder") - { - foreach ($f in Get-ChildItem "$exportedObjectsFolder" -Directory | Sort-Object $sortRegex) - { - $folder = $f.FullName - Import-NavigoObjects $env "$folder" -securityToken "customImport" - - $plantFolder = "$folder\$PlantName" - if($PlantName -and (Test-Path $plantFolder)) - { - Import-NavigoObjects $env "$plantFolder" -securityToken "customImport" - } - } - } - - ########################################################################################################################## - # Deploy Reports & Resources in Report Server - - if(Test-Path $reportsFolder) - { - foreach ($f in Get-ChildItem "$reportsFolder" -Directory | Sort-Object $sortRegex) - { - $folder = $f.FullName - Install-ReportsInFolder -env $env -folderPath "$folder" - - $plantFolder = "$folder\$PlantName" - if($PlantName -and (Test-Path $plantFolder)) - { - Install-ReportsInFolder -env $env -folderPath "$plantFolder" - } - } - } - - - ########################################################################################################################## - - LogWrite "Executing host configuration file transformation to $cmfInstallActionsFolder\UpTimeConfig.xdt" -foregroundColor Green - Install-CMFBusinessConfigTransformation $env -transformFile "$cmfInstallActionsFolder\UpTimeConfig.xdt" - - # Enabling ERP integration - if ($isERPEnabled) - { - $config = New-Config -parentPath '/Cmf/System/Configuration/ERP' -name 'IsActive' -Value 'TRUE' -ValueType 'Boolean' - Set-Config $env $config - } - - #LogWrite "Updating customization version" - #Set-CustomizationVersion $env -version $customizationVersion - - #LogWrite "Starting and stopping hosts to ensure all configurations are reloaded" - #Stop-NavigoHosts $env -disableNLBManagement - #Start-NavigoHosts $env -disableNLBManagement - - # Generate LBOs - #LogWrite "Generating LBOs..." -foregroundColor Green - #Update-LightBusinessObjects $env -isToGenerateWCF $false - - LogWrite "`n >> INSTALLATION COMPLETE`n" -foregroundColor Green -backgroundColor DarkGreen - - $EXITCODE = 0 - -} - -catch -{ - $ErrorMessage = $_.Exception.Message - LogWrite (" ! " + $ErrorMessage) -ForegroundColor Red - - $restoreSystem = $true - if ($global:InteractiveMode -eq "" -Or $global:InteractiveMode -eq $true) - { - Write-host " Rollback system to " $backupIdentifier "?" - Write-Host " Rollback [r]" -ForegroundColor Yellow -NoNewline - Write-Host " Bypass rollback [b]: " -NoNewline - - $confirmation = Read-Host - - $restoreSystem = ( $confirmation -ne 'b' ) - } - - if ( $BackupBefore -and $restoreSystem ) - { - LogWrite (" !! Installation Aborted!") -ForegroundColor Red -backgroundColor DarkRed - LogWrite "`n * Initiating rollback..." -ForegroundColor Yellow - - Stop-NavigoHosts $env - - $systemRestorePSExpression = "& '$PackageRootFolder\DeploymentTools\SystemRestore.ps1' " + - "-EnvironmentConfigName '$EnvironmentConfigName' " + - "-backupIdentifier 'DoNotBackup' " + - "-restoreIdentifier '$backupIdentifier' " + - "-InteractiveMode:$" + $InteractiveMode + " " + - "-FullRestore:$" + "$false " + - "-RestoreDBOnline " + - "-RestoreDBODS " + - "-RestoreDBDWH " + - "-RestoreBusinessTier:$" + "$backupBusinessTier " + - "-RestoreUIHtml:$" + "$backupUIHtml " + - "-RestoreUIHelp:$" + "$backupUIHelp " - - Invoke-Expression $systemRestorePSExpression - - Start-NavigoHosts $env - - LogWrite "`n >> Rollback complete!`n" -foregroundColor Black -backgroundColor Yellow - } - - $EXITCODE = 1 -} -finally -{ - Remove-Module CMFInstallActions -} -Exit $EXITCODE \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/DownTimeConfig.xdt b/cmf-cli/installDependencies/Data/CMFInstallActions/DownTimeConfig.xdt deleted file mode 100644 index 46e5bd81b..000000000 --- a/cmf-cli/installDependencies/Data/CMFInstallActions/DownTimeConfig.xdt +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/EnvironmentConfigParser.ps1 b/cmf-cli/installDependencies/Data/CMFInstallActions/EnvironmentConfigParser.ps1 deleted file mode 100644 index 84ed2496c..000000000 --- a/cmf-cli/installDependencies/Data/CMFInstallActions/EnvironmentConfigParser.ps1 +++ /dev/null @@ -1,194 +0,0 @@ -param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string]$ConfigFilePath, - [string]$ReferencesDir = "..\CMFInstallActions\References\" -) -if(Test-Path $ConfigFilePath) -{ - $configJson = Get-Content $ConfigFilePath | ConvertFrom-Json - - $env = New-CMFEnvironment $configJson.'Product.SystemName' - - # Decrypt-Encrypt All Passwords - # Load DLL that contains the methods to decrypt the passwords of the parameter file - $ScriptPath = Split-Path $MyInvocation.MyCommand.Path - [void][System.Reflection.Assembly]::LoadFile("$ReferencesDir\Cmf.Encrypt.Utils.dll") - $encrypter = New-Object Cmf.Encrypt.Utils.EncryptionService - - $AdminPass = ""; - if ([string]::IsNullOrEmpty($AdminPass)) { - $AdminPass = $configJson.'Product.ApplicationServer.ServiceUser.Password' - # Some parameter files have the passwords already decrypted - $AdminPass = $encrypter.DecryptIfNeeded($AdminPass) - } - - $SQLOnlinePassword = ""; - if ([string]::IsNullOrEmpty($SQLOnlinePassword)) { - $SQLOnlinePassword = $configJson.'Package[Product.Database.Online].Database.Password' - # Some parameter files have the passwords already decrypted - $SQLOnlinePassword = $encrypter.DecryptIfNeeded($SQLOnlinePassword) - } - - $SQLODSPassword = ""; - if ([string]::IsNullOrEmpty($SQLODSPassword)) { - $SQLODSPassword = $configJson.'Package[Product.Database.Ods].Database.Password' - # Some parameter files have the passwords already decrypted - $SQLODSPassword = $encrypter.DecryptIfNeeded($SQLODSPassword) - } - - $SQLDWHPassword = ""; - if ([string]::IsNullOrEmpty($SQLDWHPassword)) { - $SQLDWHPassword = $configJson.'Package[Product.Database.Dwh].Database.Password' - # Some parameter files have the passwords already decrypted - $SQLDWHPassword = $encrypter.DecryptIfNeeded($SQLDWHPassword) - } - - $env.NLBAddress = $configJson.'Product.ApplicationServer.Address' - $env.UseSSL = $false # $configJson.'Product.Presentation.IisConfiguration.Binding.IsSslEnabled' - - $env.ReadPasswordToSignGeneratedLBOs = $false # How to get this? - $env.GenerateErpCustomManagement = $false # How to get this? - - $env.ServicePort = $configJson.'Product.ApplicationServer.Port' - $env.ClientTenantName = $configJson.'Product.Tenant.Name' - - # Backups will use the following structure - # BackupLocation \ BackupIdentifier \ Database-BackupIdentifier.bak - # BackupLocation \ BackupIdentifier \ ServerName-BackupFolder-BackupIdentifier.zip - $env.BackupLocation = $configJson.'Product.Database.BackupShare' - - #### #### #### #### #### #### - #### Application Servers #### - #### #### #### #### #### #### - - # New-CMFServer 'ServerName' 'InstallationPath' - # To Enable Autentication on the servers the following commands should be run on the servers - # This allows the server to delegate credentials to all domain PCs, - # Enable-WSManCredSSP -Role "Client" -DelegateComputer "*.CMF.CRITICALMANUFACTURING.COM" - # This allows the server to receive the credentials - # Enable-WSManCredSSP -Role "Server" - $InstallationPath = $configJson.'Packages.Root.TargetDirectory' - $env.ApplicationServers += New-CMFServer $env.NLBAddress $InstallationPath - - $env.AdminUser = $configJson.'Product.ApplicationServer.ServiceUser.UserName' - # To cypher the password, please run the following commands in powershell, Remove the break lines of the result - # Import-Module \CMFInstallActions\CMFInstallActions.psm1 - # Get-EncryptedStringFromClearText "ClearTextPassword" - $env.AdminPass = Get-EncryptedStringFromClearText $AdminPass - - $env.TemporaryFileShare = $configJson.'Product.DocumentManagement.TemporaryFolder' - - #### #### #### #### #### #### - #### Database Servers #### - #### #### #### #### #### #### - - $alwaysOn = if($configJson.'Product.Database.IsAlwaysOn' -eq 'True') { $true } else { $false }; - $env.OnlineClusterInstance = $configJson.'Package[Product.Database.Online].Database.Server' - $env.OnlineClusterAlwaysOn = $alwaysOn - $env.ODSClusterInstance = $configJson.'Package[Product.Database.Ods].Database.Server' - $env.ODSClusterAlwaysOn = $alwaysOn - $env.DWHClusterInstance = $configJson.'Package[Product.Database.Dwh].Database.Server' - $env.DWHClusterAlwaysOn = $alwaysOn - - # $true if windows authentication ; $false for not use - $env.SQLOnlineWindowsAuthentication = $false - # The user to access to online DB. - $env.SQLOnlineUser = $configJson.'Package[Product.Database.Online].Database.User' - # Read-SQLPassword $env.OnlineClusterInstance $env.SQLOnlineUser - $env.SQLOnlinePassword = Get-EncryptedStringFromClearText $SQLOnlinePassword - # $true if windows authentication ; $false for not use - $env.SQLODSWindowsAuthentication = $false - $env.SQLODSUser = $configJson.'Package[Product.Database.Ods].Database.User' - $env.SQLODSPassword = Get-EncryptedStringFromClearText $SQLODSPassword - # $true if windows authentication ; $false for not use - $env.SQLDWHWindowsAuthentication = $false - $env.SQLDWHUser = $configJson.'Package[Product.Database.Dwh].Database.User' - $env.SQLDWHPassword = Get-EncryptedStringFromClearText $SQLDWHPassword - $env.SQLBackupCompression = $true - - if($alwaysOn) - { - # Get Replicas - - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ReferencesDir\Microsoft.SqlServer.BatchParser.dll)) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ReferencesDir\Microsoft.SqlServer.SqlClrProvider.dll)) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ReferencesDir\Microsoft.SqlServer.Smo.dll)) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ReferencesDir\Microsoft.SqlServer.ConnectionInfo.dll)) | Out-Null - [System.Reflection.Assembly]::LoadFrom((Resolve-Path $ReferencesDir\Microsoft.SqlServer.Management.Sdk.Sfc.dll)) | Out-Null - - $commandText += "SELECT DISTINCT r.replica_server_name as Name" - $commandText += " FROM sys.availability_replicas r" - $commandText += " INNER JOIN sys.availability_groups ags" - $commandText += " ON ags.group_id = r.group_id" - - #Online - - $srv = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $env.OnlineClusterInstance - $srv.ConnectionContext.DatabaseName = $env.SystemName - $srv.ConnectionContext.LoginSecure = $False - $srv.ConnectionContext.Login = $env.SQLOnlineUser - $srv.ConnectionContext.Password = $SQLOnlinePassword - - $onlineResult = $srv.ConnectionContext.ExecuteWithResults($commandText) - - foreach ($row in $onlineResult.Tables[0].Rows) - { - $env.OnlineReplicas += "$($row.Name)"; - } - - $srv.ConnectionContext.Disconnect() - - #ODS - - $srv = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $env.OdsClusterInstance - $srv.ConnectionContext.DatabaseName = $env.SystemName + 'ODS' - $srv.ConnectionContext.LoginSecure = $False - $srv.ConnectionContext.Login = $env.SQLODSUser - $srv.ConnectionContext.Password = $SQLODSPassword - - $odsResult = $srv.ConnectionContext.ExecuteWithResults($commandText) - - foreach ($row in $odsResult.Tables[0].Rows) - { - $env.ODSReplicas += "$($row.Name)"; - } - - $srv.ConnectionContext.Disconnect() - - #DWH - - $srv = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $env.DwhClusterInstance - $srv.ConnectionContext.DatabaseName = $env.SystemName + 'DWH' - $srv.ConnectionContext.LoginSecure = $False - $srv.ConnectionContext.Login = $env.SQLDWHUser - $srv.ConnectionContext.Password = $SQLDWHPassword - - $dwhResult = $srv.ConnectionContext.ExecuteWithResults($commandText) - - foreach ($row in $dwhResult.Tables[0].Rows) - { - $env.DWHReplicas += "$($row.Name)"; - } - - $srv.ConnectionContext.Disconnect() - } - - - # Define if different backup locations for the different databases are required. - $env.OnlineBackupLocation = $env.BackupLocation - $env.ODSBackupLocation = $env.BackupLocation - $env.DWHBackupLocation = $env.BackupLocation - - # ReportServer Configuration - $env.ReportServerUri = $configJson.'Package.ReportingServices.Address' #The Uri to the ReportServer - $env.ReportUseDefaultCredential = $true #$true if windows authentication ; $false for not use - # $env.ReportServerUser = '«CMFUser»' # The user to access to reporting services. - # $env.ReportServerPassword = '«CMFUser»' # The password to access to reporting services - - return $env -} -else -{ - throw "File $($ConfigFilePath) not found..." -} \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/InvokeMasterData.ps1 b/cmf-cli/installDependencies/Data/CMFInstallActions/InvokeMasterData.ps1 deleted file mode 100644 index 324bc256e..000000000 --- a/cmf-cli/installDependencies/Data/CMFInstallActions/InvokeMasterData.ps1 +++ /dev/null @@ -1,122 +0,0 @@ -# Powershell script to load CM master data -# Author: Oscar Martins -# Last Modified by: Oscar Martins -# Last Modified on: 10/05/2017 -# -------------------------------------------------------------------------- -param( - [string]$EnvironmentConfigName, - [switch]$InteractiveMode = $False, - [string]$MasterDataFilePath, - [string]$MasterDataFolderPath, - [string]$DeeRulesPath, - [string]$AutomationWorkflowFilesPath, - [string]$ChecklistImageFilesPath, - [string]$ExportedObjectsFilesPath, - [switch]$ExecuteAsSubScript -) - -if ([string]::IsNullOrWhiteSpace($EnvironmentConfigName)) { - throw "Missing mandatory parameter: EnvironmentConfigName" -} - -################################################ -# Variables - -$ErrorActionPreference = "Stop" -$global:InteractiveMode = $InteractiveMode -$EXITCODE = 0 - - -# Scripts & Configs -$scriptPath = Split-Path $MyInvocation.MyCommand.Path -$packageRootFolder = Resolve-Path (Join-Path $scriptPath '..') # change to match package root folder -$cmfInstallActionsFolder = "$packageRootFolder\CMFInstallActions" -$jsonConfigFilePath = "$packageRootFolder\EnvironmentConfigs\$EnvironmentConfigName.json" -$loadedModule = $false - -# Load Module with CMF Install actions and Environment configuration -if (!(Get-Module CMFInstallActions)) { - Import-Module $cmfInstallActionsFolder\CMFInstallActions.psd1 - LogWrite (" * CMFInstallActions module imported") -ForegroundColor Green - - $loadedModule = $true -} - -$env = (Get-CMFEnvironment -environmentConfigPath $jsonConfigFilePath -cmfInstallActionsPath $cmfInstallActionsFolder) - -if ($loadedModule) { - Get-MDLDependencies $env -} - -try { - if ( -not $ExecuteAsSubScript ) { - LogWrite "Loading Master Data" -ForegroundColor Cyan - LogWrite "------------------------------------" - LogWrite "Script Input Parameters" -ForegroundColor Cyan - LogWrite "------------------------------------" - LogWrite ("MasterDataFilePath: $MasterDataFilePath" ) - LogWrite ("MasterDataFolderPath: $MasterDataFolderPath" ) - LogWrite ("DeeRulesPath: $DeeRulesPath" ) - LogWrite ("AutomationWorkflowFilesPath: $AutomationWorkflowFilesPath" ) - LogWrite ("ChecklistImageFilesPath: $ChecklistImageFilesPath" ) - LogWrite ("ExportedObjectsFilesPath: $ExportedObjectsFilesPath" ) - LogWrite ("EnvironmentConfigName: $EnvironmentConfigName") - LogWrite ("InteractiveMode: $InteractiveMode") - LogWrite ("Global.InteractiveMode: $($global:InteractiveMode)") - LogWrite "------------------------------------" - } - - if ($AutomationWorkflowFilesPath -and (Test-Path ("$AutomationWorkflowFilesPath"))) { - $automationWorkflowFilesBasePath = "$AutomationWorkflowFilesPath" - } - - if ($ChecklistImageFilesPath -and (Test-Path ("$ChecklistImageFilesPath"))) { - $checklistImageFilesBasePath = "$ChecklistImageFilesPath" - } - - if ($ExportedObjectsFilesPath -and (Test-Path ("$ExportedObjectsFilesPath"))) { - $exportedObjectsFilesBasePath = "$ExportedObjectsFilesPath" - } - - if ((-not $MasterDataFolderPath) -and (-not $MasterDataFilePath)) { - throw 'One of the following parameters are mandatory: MasterDataFilePath or MasterDataFolderPath' - } - - # Run master data by folder - if ($MasterDataFolderPath) { - # Run master data by folder - $output = Invoke-MasterDataLoaderByFolder $env ` - -excelFolder $MasterDataFolderPath ` - -deeBasePath $DeeRulesPath ` - -automationWorkflowFilesBasePath $automationWorkflowFilesBasePath ` - -checklistImageBasePath $checklistImageFilesBasePath ` - -importObjectBasePath $exportedObjectsFilesBasePath - } - else { - # Run master data by file - $output = Invoke-MasterDataLoader $env ` - -excelFile $MasterDataFilePath ` - -deeBasePath $DeeRulesPath ` - -automationWorkflowFilesBasePath $automationWorkflowFilesBasePath ` - -checklistImageBasePath $checklistImageFilesBasePath ` - -importObjectBasePath $exportedObjectsFilesBasePath - } -} -catch { - if ( $ExecuteAsSubScript ) { - throw $_ - } - else { - $ErrorMessage = $_.Exception.Message - LogWrite (" ! " + $ErrorMessage) -ForegroundColor Red - - LogWrite (" !! Installation Aborted!") -ForegroundColor Red -backgroundColor DarkRed - LogWrite "`n * No rollback action taken..." -ForegroundColor Yellow - } -} -finally { - if ( $loadedModule ) { - LogWrite " * CMFInstallActions module removed" -ForegroundColor Green - Remove-Module CMFInstallActions - } -} \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/References/Cmf.Encrypt.Utils.dll b/cmf-cli/installDependencies/Data/CMFInstallActions/References/Cmf.Encrypt.Utils.dll deleted file mode 100644 index 4808b65ff5cdde715e1b04bd68262e5722fb2ea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6656 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

(t+POi!4By;_uI#(Az= z(CaEpM>qo|?*v)$M*O?oKQLi6v}PKL5ZEECi01Vc444h0|DB!Ur@043E034H+9!S@ z-tM#G3hz~`X(=t{62+GqJw$E7Dn3LMA0UeN62*(@X1^+;V1y=$i>eC$Kf(ki^X%TQ z(c|FcB|C;NTdmOlGWBfLalb!)kZU}zBC?(KFta>G(UZGb8LBdf1fGxo`aKH z@*d|3=e`J8w&T^dNX<)MnpNbkdGK+@B13~)&n6!6y*(1GAKPWHY0SBp^?u8zM!#T< zZZgU#O>brGy7SpYtjVSp&+HN@TPzKaUh;feZ9L1m-4XVC&%={<4ZP=ie!|Awb&D%D zecXF_Qr=E`cC-AqF$cZAojPM0Q8E2=&xEFowz-aRHN5Q~qE>u3?YBjDKG$lNenjH3 s`!y}fT@CsBV-qKRc1diW+s(B!lTi>IZ_$kY9|g7?P5=M^ diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.ConnectionInfo.dll b/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.ConnectionInfo.dll deleted file mode 100644 index 26e047ac5f2f80898974f98dc9e59b2cd9efbb8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171504 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

AB9~{=RvqEdkg9;Y?|jJP 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

  • k;k1EucQ42w6X{ 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 diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.Smo.dll b/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.Smo.dll deleted file mode 100644 index a5eb987cefe61a570d2808e4d8938a8311732e11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3644928 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

    QKTlE-b=Yj(zL0tyDf%{|rW|5mdmd^^yuU!H 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ɩ{+vc|n!#x$ryZP5bGpXqZ%*DfdZb(6_fpjo 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 z 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

    +KFnM^RhlK5#z1|m~cNjmjetnyAnS}UPrt@5rI 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 -eL_LGgt7mbHdJbPu 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

    Q#SRC~>m#Kz<6YLUFV(*wn$KELe}sAR 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

    ?YG2 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­INci7NjUn?JP-xK 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 a`o37E)iUVq5_J@Ni^!$R62|riB>7*!AR{~g diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.SmoExtended.dll b/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.SmoExtended.dll deleted file mode 100644 index 1014d9ced124a35f08ef37f92380300048e54a9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232960 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 WdVCggkI->FF&nq78X9yZ`TqehMsWlH diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.SqlClrProvider.dll b/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.SqlServer.SqlClrProvider.dll deleted file mode 100644 index 591883dcfa8c75666e21816bfb8aa494ec258c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31936 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

    ?bh5BC$%B|yZDaz7DW0z}+F_Y=`2Ky*hQ z5nTdA+;jKGM3(>&H{<<8bO{h~m)=iAmjKcG^N8pYAmYBhKPI{ah`8bJC!$M$h$jJl zBDw^KctqeQqDz2?X9s>Fx&(+ml1D_B01;0c{4vobK*VDRKM`F5L_DAH6VW9=#Dfbz z5nTdAJkjtI(Ir5{qYgh2T>?Zr1Mw5lB|yZ(5kC=K0z^DD@e|P{K*Zw|KM`F5L_BBl z6VW9=!~+;V5nTdAJelzm(Ir5{BO5;vT>?Zr%kdM@B|yYO9zPLX0z^Fh@e|P{K*VDq zKM`F5L_9C@6Vb&I0pb}EUUCV6H_9AdSQ9;v6ID2in0w=V=yE_4MJ{3C+lvmbvYnh% z?eLn=$w`@y;^#!QONsX>okseUR>>8&lcm)TFAkk7HI#E*N_-*B;ngjCA>296@Y4omwNyh@(9T1n@IUlOu1u*?_pLsy#55B+L>s8xpD~&F7q7Tj{;yK zh~{#|&t=*OP(daFTQiGuxx&ZHE9DZ~NqpPfnIv(As~ujnf{Tf?CPzNCY-*+49z0n# zwaRG~s;Siu?_$Blkk{tOrylGDji zt8(TVpxSw>0Sx(akViI}`oL`uW!rLP+j3>w^0|il%gW~&_Ae`+Z}`8ge1UD!@`biZ z%NN-uEyrU$h6&5@QctI(T#jdY3>)Ivcj@RS%gXUUk91f-GfbBSG}CliK(kCI1yp9b zDWG!GQ2|vr3vA4@ZS|DnAyHF5<#$^4Nn5v- zmb=UG?q|7mTW$Hf94~$v1~12RpN7NB@z$qd@p3%$X?VOGuYB_6EAzbG47-4u&APG>=oMCE9P3psF-K@qGG;fi;4x7D=HRRrl?qCd7=XR zBm;R_1^7t@Za`BlPgH=PWblUDbjuSJ;3v~%D!@;MCn~^Ch9@e(PlhKdz)yxJD!@;M zCo1qZt>K9Z@RQ+*3hQoU?<1QV`CK_riYvy)3fB#(jVe~K_riYvxZASB#(lV zfJ;FnkAmaAOF<-$fiJMIfdUDh85DJ2`m+TVHhcfS2yV1F0d-$mw^`o0oDO(d+qR0XCfFkOKe3d~es zmI7r8lq*o7z-$HPC{U?@%|7*gZ8mHHsPAiCY!RsMYh7$1sPAiCA__zmSgb&e0<{V( zQDCV8%M_?nz)@hi0xJ}#SD-(3S6YXs}#6cflCy)RDsJB=uqHt1!4+xD$u1sw*qkm zdKBnY;D7=N1+GxwpaOjg^ed25Af>>70*4exE09qjtH7WFhZQ)Yz)=N;6u44>V+vfQ zz;OkxR^S=~G(}H9j#ZdD@d|Up-N1{6*Olb(Cu5`0mBh|QQM!^0HWppU-!K_hFES3S z%II?W+&sFHOu*<${+B=~i|Rm{arswp_K)AchYN}_3>~8}XFMO1KHT7*t9~$#1puko;!;6F(>J z#rA-qq*4OE5k#eg0r{1DJ3qBh zv-6;ZHpsV@n1hYdAqbu3peITGPIumDp%&){7TRQb7U(vcz6IzE)4Kq*TJ9~y_g4)2 zmg3_p{Wk0t%fO}hY~)?mZJTr4LT5Q&v(VYjtrptu9JbIo&Lb8&*SW<)JDfoa?R5Ux zLc5&zTWGg)wT1RL{PGpccAo8nrTCtT>4c^Dn97H(?>^@`3+;ElVWIOKoQ+A?3!FDt z=tAea7P`p!sD)nTyw*Y&JO65-OUz(`bT2i-382f&fC8w)d8ehj+{sud=6udVoz7=0 z)aAU@Lfy_!EEIP>V4)u88VmJ0Pgv-H^Fa$GoD&wh!gBSUze9T@Pit{E4?3+%8EUT8;!@FF`XgfSqSK_LwF4KpZ&p}t`Tg)r1N zWC|?{Lw!RgQ9v{7pb&=oh8YyXP~R|vLKx~BW>5%2eFK>Xqlcls@pB8!wu3?#>KkTI z2t$3t3<_bWZOiI?!x)fFQ-)33ph9$> z6}>pq3!oQgIsx?JOdps!*LH!aCfvh077ztFGd4j%&g23LawZeg3^_`zlfEd(nJEYg za%KjaZm7`Bm9IqS&2%;Byxk@h37t37(PkKOFpZLn&YS6b(0Mam4?1tA=glvMfEP+H&+9LykI~u)yTJvaGVw zj=7apcF3))wj*xkTsz=a&a>lf<$OEbR+^ZQdri2itg6zEj#X85aIC7fV`G&e#}KFF z)n(O{cA}_;wyM-ib+w%)stq~TN=iPrY;L6;7w1;lF>!9S9S`Rk@~`H|=atRVV$IWH z&C_DdGvw%i8vFdR`IWY)^Q&x8=U3aJ&Nt+kYL$FJ*@8+txh|-(bL)a?JGCw_Gbz_-vufN4$BTU55F(oV>Ws_cBcsM=1) ziwrsDARPrFWf;uNOoXw_Ohg#U%sd3eMl%gXOt`0V$wbSdm3B~#R@pH%T5X5as3FJl zL36dZY;mPsLN2bdE6Bywb^*EAkUyOxuPLjkv}=x2`cMK;}9OfzP!Q;TWlyTWs|m}bmc zrxw%9YpvUKTe-EEWEGn&Eb-HV4gM21N(6y%`l9SNw7?+y959Q}N3&x&BVBkju-KS6T^b zd6gBQmRDQ(X}KXs^J~qmC|gl!1*8>KRz6x`s4$0X&DEFHSK7r*eU)9@)K}ZZO}!z< zGC;{2${H%IaN1C1h0}&=E1WhM^6%%!8_OCi?b5ih%C3wXtL?(L(U4_wDTw4z-0!6zl1K4rF9nf2 z3QVuL(h|v|;BwckF(P>snB#L4MDi%O&T``*l1IT6l}kY+kAjORmx4$h1s6~*1(7@o zu9;j4B6$>CCb<+u@+i16aw&-9QE)NjQV_|b;QGgO;ZhLEqu_eNr67_=!6k%CK_riYs|J^X zNFD{31ug}VJPNJ^TnZw26rA&23L<$FoaS8$B6$>?*?09^_qc@&)dTnZw26rAr|3L<$FoLgK9B6$>?PFxBic@&&VTnZw26r4R= z3L<$FoG@GpB6$>?BU}n1ehTax@b98&_!`{<51+pIXn$Yya6Fw!q>?Q)tD9EUL^p4m z9zK0*aMEeuT zj{evcsdP)-hPr5fESpXo?eI9RUR8$#rktLMXS0c9Z-&T}(`^>=LL=ztaUuLbEFDi~ zJNgpIgAyT}2uF>3OU=GmXJ35#mYQf^3Wf0CD+`iuPj<(TddOYelApdZnBeIvZ4rho zk1crdncbF3dun@387~-gY=wvh{_>kBI${e4f-8FZKsq%LPiKdut)f}BOG`~=DAR-* zHJp`+wzfwHYBr&gy|k!UjYNM(uk?{vkS*a&Aleu2$#z_kN+hE#QOQzwJOdt$k=;AG zW7$|oW+2uTm;7~iXKK8x)6qZJmrV@x#iPkoOWo?aX#D6vI-W883dFhMb!55@#QWnN ziEbowY}N5-EZH3;g*P?v9Pk7}f9#B>HA%zW9X*M7U$^O?b%r79qT<$4vjy30XKu;G zE|afhr*N}s@}FPLQ}Sv?BF(ha)NV`k#m`Eo1_yS<`s20ePFiKA4SV3-OK+*8o?gwb zbVfJbLRHk$+mx$eQ#Vp4ZmrWTm5vsmLmg^5f9ra2i?1BxGO=xC!^>k}l>zX9ugt={gUNe47tBI9)!6YCb0Uro(qwx?!ObfCwZBHB5SsX}@1jZ3Gm z^iFj;^Dh4Fhg}E%#QnxoA z>#mD>a)!o9r;cQNnUG{XYaD+zhFRs22)PX~*_gBAWa52XiDm}-ai7{`Zh5pPo$8MU z77m$#=#c~QbUX?wmrvPeJs783cn8@}sPY^wvGyM!a*?sbw0y+cM6WKe0>+AQ_yu(S zK)@-#E!D5f4sGpxehd(D3UA}8cc)lT!`EkPd7ySGhL~4U!t=idcGA$)-s-G+wyta4sjD}vJte-Xc|&b}V&MKn ze_T^7+>%VYA>1%&A`zJSi`x}#Q z{B7%o8*f^8$BqA!jotLb`!Y9epZ@E2yl}An=4)Q)zB#gG=dFLbb58Qm#+J}aI^45o5^YJGi?!5B;&%T&0`&@16`OnR*Jma75|NJG7Ounq*OE*7% z$(Me3&pls0u{r*g8}EAhYj^!@!`FYYXx~$}U--BL56hoz zdh*>rIAh+w{ILGM-#&lZra{W_YFtdZ)h5P;J&5>k5sNac*VxG|J8Nl+T}OB{*=#u@78tce~GQ1`-fj` zuDfUO%qLEZZF%xFuR8mW|Md9T@oPW631XM5*B{U0AX)VTI7 zhx=Xb}hz5LZzEx&W&HFr%8g??KO772$!H&vLg#h;Jg2cY9sIU8Sq zpBM@yXNE$5EW=mgr-nk`1b!8GY6lqp$Q1L{czn$|R0sF%p!+4@7vTS8{LUH=7-8Ox z-*+Is%}8S&O6~uiG@;VFYzkqPR2hMlT zN)ZmPM}$6u`0hYDKS9{9!~I#%_Jd{<;>#eO*CP#VbA<+x#!lqvQos*@{sF|d2w|5X z+;Y%uLwXT}{RaG|0lyQp%aHzMz~6u{xOf+O260`6a8;<|4}x|){NqUHDa7*-{1zkq z6Nsl7^i9C$u)L^?KBVy}&>qL{BXIi(!hZ^M{5uC}bs_F^kiREkJ_xfG`9Fzt_TU%a zzYe{K_}&iq62!F?XOlCfA&);q*okQC-&Kb~3(gG1L)p*~*zr&@v{$fnD1qOM zBz8tyC>0tE^@X}ay8vZFX9>x65cdGz7D~hJ4{d?#08A2ew7Wt>h%AMOk-1PqFcJpO zAhH;Kvq&ulJ098{>I_{GYD0iiw}?{=4lxkMk#-EJ#6vrg7Y1au+a<*=1n-dycMFGY zduc%v$jQFY0YtkWMM{QVk6f(S3SbcFnvBI!sw{|Np|W{B4!R)n)C6SMu-I5SOF{>z6%^$MZ&{C`{31$ zEYq9S+>6qsCG#eTCiNTwttb>IX;ab^hNRUdf)As9^7hanq}DDOIxO}Q5IKG#Q(vt2 zw2$X9p{*cZ;3xJMZjb~!Q3O_J0>$Z-#8?X^Z|?&^1DU)H`5@b6T(;W-SF+t6B%4CT zv63^PClH|0^olKL950vrHxpAYR&fHgNe0jkgD=2n*mj#6HWK4m2d`6ip`QEj&tHb! z$hPu@DMA}srPpn6cK0PDBBSh)W;%d;r9oh#(|+_$5T3F}YMI?Q4erwT*qsLu0mlVX zF|EQX27Uwqmzio97^OEp2h!&AkTA|p%FRz zZ3^Y(fHfqov;*m~N&7&)03jfj z(kqi!T}om`+%2ew44Nk;d0{p8B51<}Qb9TjneNgq^*ta%5PNM>f*uHcZMXmzAl5XB z#OCABXhyB>(9aMc%8`kEV7tV_l+0LhrNrDDnurO=Q6ke3+L1esK8%UONg|}g6(F9c z#2ms{vE&cKlgr@kCRivIve9Y~)o2`rh)i6YK~~ODj=VDy7o4ke&SdZem@kIk zq0l~fF35Ruh+>VCK@0&`2unsH&@OoZgj-11gBa-83Nr-$9z;wWYB|K3VZv}Y2iv$E ze!JnPUGgX*I>j3iCl%w}B~f|D(XH@fm2;qfZ!q9acyP`(e92jruxS8qKpca!5pr4g z5^g~xsFA>RvfX=!GIL%Qh~WET$d!w2j^zy^|Y<-|pVKkr<*WQ4Q&;ZN4N z#$?O{2*#UF{tl3%)26}6CZ42}g!3uuz3 zc+X}W^frU9=_p@;$C>oF0%@OvFs5xey_$Zb;~}SVvtlGyZ$}Pw*~v-#8;GX4P&6DX zIn=X*_t_>21}?#JUCPfqm=VsKlZEh>ymNNbY_VdN!vhS+4(az`92^PQQMu||4MH%n zA@uWin>TVVckl3q@$>UOc!8fybbc?*p4Qr>8hu(;Jh_oD1rKyO4ksL@GstTn`mo{D zqdCv~A@VwSMomceV}>xpl^OT06rOoAh%nGH`UBEfW}(pw+^o261A$a33B2Y02t3dO zIl>)qR~mkX&rLV~sCglAkkLuTW_kofm`_ZMg@{a{p90yEF0|GFNX;l=7R&y1Zzl9Z z5Ux@}Rvzc73lNCaphJ8x(C-mwHUnh>16&nk$#V6`jbKqYOKvg+h6-E51L+Jy%C5#q?;1EQ>Vn|Gp2&X3QK8${3$M?SFceqHWLa-V zeFsRQCKfXew1OMBgytBgYt*|yw89YiYup=?8FyGU_kz5V zM-QO6W>M0iLkO^J zvl=@1)7A{?>{Jf2N|N~-p7~z_FG;h|fK7sxAXsF=4mUfrfMg>_k6aICi*UHswem>g z{0;B%y{-lJf4iE<2b~PXG&IWi$N~}iW({FbT}UEjt|6fD4XmWiYAgh zsWcR&pk)$upv6;uW#2dooB(G zc$(ePLg$%`zGr7{K|f zuy0ezOr#iXXYWZz*Q{E#D(JATWJ>!WnhEUCT{1VDN}=N=huk)W3fbX!U#6*~bbs<- zGIba3wXnlhIbx?0JJomQz5K^9~NqIa+m#(r(FI(6priLkm_LZEHH6N@v7tCx&WN zIk?EQr}dhFP}XG&Tc|RJ?@war97uup4kMQ~!CYIG?(XS<&SAV{66&A7h>E|_J>Ulx zZ&oYVGgo4izs&DKqH@-Ohl*}hqFxm1LqE<1r$zdw;JDOVbg+Z0p_ zhiIfZZ3{cJyyGkbQj3rT>CH3b(Efh8C;dPdk18}sh4|6Ymx64f36)%~m z#F)6dV|~oK>lY>`82^$P4$%+(s$Do+I+)95hktNEDUNq1H}wnUV#@nf$-<2$(GH z^UW*MtXvCP=5U9A@fTs)G;UX_WEO|bMyRlG*hyi~mZmxwy&#cIvIJ#ZGGq>L(oiRK znC^JV^ld4qnRIJ~PT$2PR-d9X*b1#?6vN!7f?Q1_<{jLFf;=A8R9*S?4GNvS$q@?KDtQy4Nn5{9VbEah8VB zKI5GdUJ9qpMk|2(z=K}?t1!M9gOZs_4cAOOyCNjWKuhCGQ@GV z3_SsSWUcs15xNBT-G#_GdTu?eA4Zc4GiqwEJO6$}6o1|;62uGX{XqwR_3E7FA4n3( zuD(IA9oM8Sb-+3f#JbZRRtJ@<;X2U=w=sHjx{OPqR9fmJ|L$dsW^alJU{^7Io&J8P zI>ysY-JPi>XzA$^P84gqvz;~6N!JwfqHy(&MTNcfFvdwPa%z1F=e1chTMFx;noU_G zBVtfX6mbXiHuYABrsmaSbKNkKQdb`fTle}(Guv#qG7p#Kx>{}j-AB+1GY1j_Z3ki) zfs?(pbx~d}XsPqo%s|$o9eucN(_zUx^bG5|JEL7TWSy&RXR6p!b;TBD#0HeY#CsA) z!8N#1Kt=yx#e0&}Iq@U(B#q}N%XJ=EX;d5GKnj}l~g^AdK`I0p#uwI z$O0ZO3`|)}-Wd0nd%47u*1h|p+js5T?IyeR!mVvlr*6xcZEc*R_iWv}&DpX0 ztoA*vZCjVu1tMW>vb4T3frjRR;lW$#w%0}FVo0WFEg^qB&t5t|;mtY9=rZr{mq`A`?{6Yugju zt843c^~<~E;1)PNP{CRMgG{MJo*bc1>0r zbWpJ%=dllcIW?HgIdI{2-e7z%zB6{T9Yd(cCxsc&jj=t}6VDFqpfK%mlyNkN+ck2Y z1J}EQncD3cH@dA!*;U9l?FOn%^ zVr68jke33x`x7;rV7Yv2ZVz$FcLR7Yxddnak=kl6q z70;AWyO?}q&rqW4uu~axpT<2fSl+yXO&-N~yo-6kevUZU#2-Us5ser?ov)@=&pn&s$3YdFT=F2_8V9)eBb z9n_Qy3in{o_#Eh|o}Om6M<|4Gi*JM$GW{AO4&+ARDO~dE?ismFMDSbPV#&-cP_iB` zfUIWGaYqdC`R+vd3+yefssH>!k9dh@B-Z`^OW~zHP#2x)MAt#nH5GJ*Wd(1|xOK9) zu`wFOx*3-TF-xG+VGPA$rUyH3SYv2k&tRi6fnyII0$?)3GKrTBm0oV_@_;1M*y!b< z0@H-Knw{$x!}FQR(>|Le?Oc9W?jE)E#be3+1GRpiy>aeiK+M4Aaw63|vM=^+vY8ws zyH`!kP1|7$OP=n6e6sU6*#>`D&}ut?6nEnAm!YYCgS zS)6)}UgoaEcJGM5aTYaKLo2I=^ft7lp<`l(x`_Rdna!l$gn4JFI_8 zf(MzY^bpUyHmg+VHM{&BQ73b)=-@OKbLIfYfY~pOL%Q zaAik1hh5#nk2As^BcZcODIP#1(G82}5uS44Ah#PbJoo8iJ=~G!1~pH&%@zg2N%xBK z6$EqIW9dg7tVR$da%{;)#MI&6Mi_Nv7ThafEP?%kB9>-__gy?oxwu)-a{-6BBkinR zF557HeFG+rlS7$TGf};GoAO+rb+6rmE3mQ9;U1~k4S|$wV72V38)Y#W+>~L;o$=m8 z(qEsFA>U?35tYH?QCSj^6ZicYNX@m|`Ba7n=T?SYFlFi4M$aHqc^bGSzVaR`&310 zth=PzlEH>I@%~kse$+FsVLG~IwZNg5VgJ7p|4$jE7IvE@YVAwv2P3_|VcLN92puA~ z0nYll00Y$l=$~MW@r;45bQK*?Ib^nrWDy)ZU;ZwH0eKY88J=Zq$JYKmZ2PxCyG$g` z+Vjofa%~&lR)I^Wi1cQwz6}F=yH!e!*Y1m@d*fN%iso6sUp{@9?Wj~Hp4*!#Zt_@T zs=zJhsAA}_HDTw(9oU~6#2mY$i`(mF7F9Ph#Tqy6wC{@_&8nZ5KIkXmc0t08ckeUD zNg3Uh6QPzn*Sk`QO#FgWx;s<5??`G(qBoJfC>~3VJf~&$RqBS8hND1`vjGoFLZhjb4H0vW*&_WvMDoC zqiW@(FH~XZa*G^E1cDJBPM#PsFP;uC*6I!<8jxcCMyaZZq{($Aa?i{a!%?e>uGCiO z;UA7;C{^WCO;QFD`?8%)GS|X2WZarfx~+vvHp#5BLiJmG`f8|8Dk|WNP@k035vc_a zrD0$yzL(|C`kGm2e?y}mb>w?4un>K&45sr%`=MIeQiCUB6TL~ZDc#jSkQH6}qASrS z$ZDS4p>vcZ>pV(nqx8nT=J0{1M0P!{iRBd@j}f|83oNY;co;p*Q-w0m;Pyeh7kk;m z7Z#($_Ds8MQtmb{Swmp&I!Fa1j*`)OZglc~LnhjdQ$z^WSP!H}9a{WxYC*i5Uf@AR zxqF0{32`|AbAu$0an7-tfOQRZY|cLZLdgn0)Yt;BoV(Xa95Lg91eB?5k)z9E{R5{( zSDzZiZsmyOw}S#s#&xnLywx0st`O97kqXp{_B2%{F>aX{C!v)&WO&jl zKbQ&u?jpTX&2tbbW=_O#W+S9%O%dy5;7Rvv+Dj>J()%z2r8QY;j3Re!zq9R(^V! zs)_x{L_F5)m~E`TLUv5VW66%M|GZ2UBTPM(O!$s4Ugm1a*yE8gv-1{v$nrAhr@Omv z>{+p=LVq1LM&vJ%m3@a*FLyoJY>kbj|5Bl9m=STz9BnqUUxpEfw?7>J_}nj=;^{g} zA*+fWp5-*|ua_(A0wj_zDP#Kwzqt3hg!HROLRETq&Y?tbz{P^d)x`><9A-_)F|4HW&U%8?izCAzos=X{N_sfBAQFv<9)n#a%4yUfPZM z(X-~+j`EGw-myoXYQaqH8=htM85>(}=Lj!DA})(#9)Jo9RN$e9nRYcKygj-I-s{Ef zoQ68QG$MbEv;&s$F?Mm{XRaH0?>1@9$rq#7>ab%CE?=9wQZI4P(OXk5Lw4*i^O7?( z>|HL+o4g*C=z6Ku)ngyk=;+HNi>$30yUC;{!)=gZv3Ao*f7tyRoqlzFoW*U?)zO}8 zm)W0n_n3On39>ki?!f*lBZlHI-p~&rfSLG@=)%^B#^hcRP3?e8hi=H z_Kdtk4SO1=+}G1IU_aGp6*h<8fyvXiE~NSgWiZ?e#`ZWA!g6=xsTxznW@l@+yvJm> znfV?PZ-)#;`Hh~Y=++oM_yRR;Y?1L%9qfoxXrrpzaQo81wQ4I4BzK{GEDLCxi_ovT z(YX^6G!w3`BswU7XoF#)UCek^qbaF&!5EUtj3tddF{v`E!%$=@118W|(t$D(-y|4g zagNwfMW+NU&IA28B=2hN#PLJ%rDC`kgA|=o;WGhcg4~e=nEXP6^C!I?2@3iMPeCTT$JCB^fCs8P+ucP%@eF!MLgF%x zt}lwM;JpxG@c_}#==JGJ=0yz|P~$?w{B2jd#R|Xcb*;~)8unqG_7~F>D5E!@^V6CX7{4f)>vhq z+xx(bX2m!C<h!H9piZL1 z#m2u2XOWtFU7C)pI2T;=_?6})ED9^jCJcT>aZnouvazVLky@UcDK2)^dkvN|?~Jm* zP|&4;W%XKAdgM@3q8x`7JvR%Fc1e9$9xZZmEYvT?ma4C36q)Mw%pU4b;2wF}b_G21 zfOqb+s(rlb>-wU1;R(k#9T2dn8pe7jptr2)6&mkbY6{VhqE5uUZ>)=Q$(XIMyzJ$^ z+3o5-aQ;S$Sdn4n(4LG9WDcaVyYYc~qgpzAmB@6CL`_KQg-X!EUD>Wa4%PeqvzM~s$E6q)eJKg94pRD;{%!L0&FS61}20~A;4vMdF`ceoQoS9 zb%2Q;PQ;J+G=+jG;uzl!M%og-a(T9?RG_s=U5O0EGNYC&p9po|Z@{Ql>~3gHe)4BR zoGdO2dBc;d!(kK!S9`uWs}%y>v1}&}JM3nFL7L2y)ZPMMH9!v6U?@^iySwrkcM8N> znJi7ADMa2o1mg~;9-^BaTh8p*)w*-*Fx8CXx8ZjS0(`q&9>k%V{s`>l?wyRtV1bz1 z@%C(@D{gp~ukUE{1vd~~y=#wNAl79Jtc=aQLLXP>jUQUG+wpd)DAaHgaXF^&_%>V^ z-xiH@v5bx>35{N6nZkEQ3#m0Bi(K!y3BTezy5giXJ9_;9zn_~q5bs{Gx}Iza zr_5kyrVBcda9g8pkp8eP&k>*E=h-RVA<^^vR-w(J5!9Vt#yzmTTleh1gMSX*pz&{l zaoBP2YT)@>_wL!d8?OWIyU3~2LozETaopnDLD0J7TlacTe%%_JNDrsR|) zGp#`J0xKfj!Gf$OZxd>>kGdd|ho0<1gpl_RcI2&xawP~&E(+Ug;x@+7qq~&{F zQA;O1$ulEtGU`R<8U+%lrSu6?@mB_DyTMccKF%E*QA>u zQTZeg!*>O93EtCJ5A}&bJu@xpMZHygmwif}h~s~RuzN(dxHGTkK4^$ z?ZjcPhOpSdO7>^W?1ad>iCV|OA;6ue&DNG3W|=dHFm`(c5eyDM6dr!49W5h)XBss# zB6Rs{$CCkk?289aINrk%Hy(F<*^-xcATcMF2N1};1P>lNjF9gROe)#T zaJl!gtvg1@<7_YSX~=@ZOW<+4{Pr5|MM$kC;TvB!^s%_RJVSMvyUaRa`yYoKZriC) zEsS1}JnlE|2IxZon)kc|tU6qC5)R&rn8KtlaP|G}|J$BCji~=!iS9I)fnr?_(OH z)}3|*FhRGi!u-OqE{EF`$>+U-?{g@71jl&Ynuc;G_VdSl0$$+NkI_=f@>N?@a(_pX zFNJjA_^-R@6ZiZVMKn2fWGM{J6LEVIua0yK;n@)!wDa8&A1CI|+4(QQcR)o8*MsoAuZ%AN*=NcPTV@S1J?swQ=7G&Et@~QfY;E7Fdt~^6qj}lHvkD0? zU4h#LqrM>(To!6a8)ap(DVV*j7s`gF@M5&iY)G>!*?5N0{4BT-(NjmQWOs4rooC%? z!_FG+YQ!80kDNXCHK1X#m1~^5X6eEa6+TS^6}jdn2-0}QbUl9YElYfnsuQow%cI!+ zSoct&OTR3LZiTzBpunfGcJJl;+1V7{7J}xTXy1+Aj3d4X6P(M8G_AFlH-)*vq|({B z+3scL*pQ9GC8ys7<0bCu+t*wn6tPS_xa$kGL2g6XQbITaim#~Qt@=KEst?=vdC|m= zcEtzqz0DMaDXiG=I!=_=SlM z3~N6q_>#hIPlErF-DeIB7kcFSYCkZT<@XPZY$Ff(ORT4@asq>I1n-1ml1Wvs=KHxz zHriGN+%QgD<#)>OS;E&N*0+bP?M<{b{z(6-X?wUF?`G#S_=s5#Fe@XF@#2*Ky#h%3 z&407>y&cUKe)Xw;v(&v^)uz7oZ^=B~&Ti8`^>5eqp6>5*9_|48Yk&0q=ZVI*o9A>LQ7T+Sx`aRyK2=Pt6~JozIYW3EQJ?C_Um zD-iQo@-_O^h`%6f1tT9z?uyi@ER;pFHyfOpgTk7uv_k8am2 zK7+v&#*o2cZ;ZV38XO^ovE;L;>m`M9S=@lK3;R#ld&E7IF=VQ!n zx~KBeb2wb|W5^-ZV)L%G6rZDo=8)(se z5<_(B4#c)9`v0-_cDr$9S(=z&jC)22q=6Y2zVHC{=^&=Wk%MJY3@mE9%A`P)Bhuf6{FTKh+Pfz(EFiT)Q`gj91Q)ipSrLmtZe_q~bizzQTL zO!KZvEJCMwCX1(_-$O;_DK}dO&rS~an=x*aY`bT0aJMp8h4)@#75$kB? zxMiN4?zhfP4|b7p#eZrc@a*~F*#SQR9F|*Y^5s*E^5XMI{$?sQq{@mrRX~voADd7J zCQD@7o9Ejm5hhAz&neSe_P4OSseMGU<#5Ph|SHpThj%J;x*OTbL&3nXwt+mwvSc%OX87_8jlYwt2#qmh&6$ z$wPetn`sX=Q`g$(=1E{o(7upx+rdqDzcb3q9W$=&O*lcwSwdqYl7JMs5B_TB?`@B8)%c!GWM5KmgqTPORwXQqo! zacBS8{^?iyN4wuklb_+%@zbZ$ZE-s6aIojxGIHGbjt54NdA<>OXrhonK@;8aZ{lzv z+UgHd;_EmBz(?*VAIvqN?|)UaIsx@U`*X4*E}tv$JLI|~^E?tXvzc`Bnvh75ATty_ zxRdIF585y~_^Ii!Jepi(H8$QlDu*$g8wQ%L8^ z{+8N!Om2S@?`o?5mYi=*b@BChG@iqz(KucCfBk?s9e$~deUrSK1!b+ z#S*2XYatpK_deX$)uI<<&v=5h(S?4=etRtT)#h(p@<^f zJ}>feeZ5)Is@bdk=3;ZA}0I8^o9#%Ik zDA_?g?4x8^&mEl$`ni1YF?WjAG2 z1V+S^$l}?2blIV#DRS4c#!%0b{(SOo?v%+~wzB5uJ`<0JdkB7m(?>!=0Ta8xJ^ZFn zKRx|y2U|QKp{ec60U4CW#;IRUa+c-sE9P^~B>$8QCPU1F@D^Jl0{)$d&G4W@9; zpyHL!7uD!$4nH&yhhvkmU*yQ5xzW?l*g}~tk>JC1eKa0%RDGw5fP7)1%KTG~sh!5c zPtTAHI2z;#r=~avpL;OHS}@jR3Tz*+!f7pd>nT%_qTo4+q_w_GP~_oLx%ZkYX)QPpy>Z$lCn%lfBdIMB?njlY_}2E=0j6 zQofNbFI>^wM?ecF5s}E1hk5``63J9$Hm6EDFLFM~x}Mcc9pCV~*QIJ9i`?aOJTfV; z$QEkFqcld=Z>4G?y>lErrZjfm07`SZ6miwTf5|i{M*QB>Qgtv_oiKhZ-iix8%jXj= zy4lVzy6p~^m7mX$kxGgrvKZ%e))s6`njmAUbqFMYZvh@6SmSe?TK7k-<7Jz*XI04- zkH87GgL~C(smW?Qt>2VW9!4xz&V4Saj7YtS(%1zAnVNp zr&cd)Bc@WfeI;Xae9kATd*d-wj$zq)ttpZ?Q7 ze(^h0I#d(ePGf6hvyuG{Z+zk2H(BF|g)y~jQ0c@W*Dl#BEKu7+)H%$cV+~PNq<20B?a41NxEIK+JAvP*mAzR$}5Gi28v_VS&^3Z?j2!6CFhDyZYk%wvl3pnDlt`^5>OA!G`7d*>C>RlNR$itOTm z5vz!BQX<#j#zsDwwO@6Hb70adINiv_1}_KNRPXx^N9W^GlKt-^13Zlg1@CA`GJB6# zrD3r^OOWYFUXTDLfX7A&K>Tfwq4-Oo@RhxT(G=OQmd-ZNb(GtsL9bXllcF%iFdx0x z;1wjT*>2<;yNo7JIz8QKM40c{E3}p97_AR0GX~8mvTof<^)`PC}8IPHXw9QvF5 ze%>Yn*))ccT$XFl17k2t2hFZPs|n)`M=9O#HIaM)@&q0nLWk8Ck{<+cL&~1>!KgF6 zK_JFwQ5;4BiXm=c!N{J|MwM3N(7PR0p$)J#s4P;%>MoE7?e*j+a-p?5#2$ZN86NH9 zi@@1n4FJs~bZzY;9Ja-Z&sO<*{qsbU$hIId&Snb9gbW-&nNcdZb34QmKU!*$^QYKK zE!HEIwHFR9*cD3`7=7d-3Y$;&nmaF;&{qTq*4Pe>E%4xif<$)>F)R}1MS4-xqs14Y z^98|R`(NL?x13OLxAFk8^1>#_{LD<3*}dEr%Fo%^cN#2=&~6o8kBJ4JmPr>(Y^=qZ z3%~gY;&ajlaZ*A<3g$C73-KavJj!LQ5qHCeUy#loBt=fRbkO1hw4O=aO{SU@7BRNo zfG`4Msou_TWYu0F{Ev=D-)4ZUgR3&&33mV>Rz_577Yrf8G;&sR1@Y<#Ks>&Hp7WA8 zZ64hD7S7~;zVhV_{-vi+r(>9N@|SXlo2mL`OzL;U||Wg9aP8uw%g=JSC7Hr zv9b_63w2i&t)wj@x|So?E!L73*_-9XwDW?pqsXkzQM2MDxh4`wxp-Pmu=A~QUrfeG zGzL|wi*jQ|wkGv(#TXSpS&3b)z!TS#UsM|hS`?eyc2HWXJ00iai`fR$2TE=WdD>;d z+Gt&kH%`z4lrQRlC^cePr0xUqUpO3tEV#X5$iVi>p4q4*TyC?VzrE6YgoX45YY;cs zhi@zf7wPfdIStyHrkE5FUq(Q;q9gKpz$~3j~1mgp2Z>^3dQZ0vbg*FvI%ac(5fdsvmywNia?B5Nx-x=3J~U#=CW$F}wJlQ0l@qp@8!MY82?ozp!qQXU za+~O9#Jn>$BxDGiy;9!palXPzY+D#8P9xFrvpZmO>C;_41VT#a$%B<%yo3R9 zk)FyOmCDy%$DVI4rdmtyVCR?9$mPwA&>)v4kGI<)^?IuV{ZNTbV&Iz&+>*&!LJQkM zjMkYz)m1ChtYvhh@E0c90G5_#me@`HpTAkgZh|Ntk`wBgPKw4L6Ci$jU&=z2#dDr` z-UZk^n5{DR@%D)7$Dsg)D=R*^z5AxtmMyyqfm$x8jx|!T<}Df{ein8Jns7Ops3)!p zjKqyrZi}#nByncl%ES<2295mg{Z1f=<=X@UsDto6MDd9t(^Bl)#TXmk_M0Tr{~Lk_O5z4^#Ar-WE<26+?Be6k%K{0W%zJ}bHRnsaLF~~eKa7CMp)QwC*VtZ6 z1+e;4Btu8H93Ie_vsqAr!2(8N_k6@ah*y(Nzw)eeJ-C`*(KX@23QinT>tv`FL#KJ+ z6zNmP=#^f~{jc(sf<4=e?*gxSgQQCusQlgF(Tkeffu2cop({3E^PA=#m6(7j*1i*# zoZx9G6$t@mt*U&qrgW4z)HUi3CP+0(^-CtrN9f7klkrW08;*K~oqI-E-+~+iIJ&0X z?JE*UasT!fWyZi0S$~LgroDuPIqLmj^sN7)!(NM(rr65@Ugjha5fT|Mi<~D2qX=+U z$YqmI4Hj>Ng|f$kjJ^zL`r+UiucP_+0J%KmQ^YDYqcSWOFCtHNY7~2jvxVQB@;sbj zDB7wCCv3uoMd4Et2h?Pc#$R{^JJ7KV>ggdGq8zoGWZJ+9KYh^B2V2pDC;DJJSxUj~ zSu_7X&iivDZW(rNbi@P)!qXq=3H;`GR0+l7(bLXgIGp~fTb2BEtb@@-`= znpVav7(CF41%t1j4{w*&q>Ldz^=WkOs9k_*yAt5RvTg4)TQ`Viy4sLWO0ANnCV<7B zkgAj*;x3w#nz}j|Sg`n@PGXW>emPxIH=Z9HJ$*V1gyc8_kS#mc1qHI0a6{9f zVKG;*Ve!0jaJE#`XgsZ`TkVUto2MX_phxsIQFd)%0f`|{66fXD69w?%F~$s9yP&P6 zF;Hgy@W2o+M`HT?rNsLbf|*ie(##{^_^uZQd(;sDdTIm&v5yxz60>|!(BEl>epn;J z7}Do~)YkFh)krUNUg(zQ=a|@yX%;X?#G{#0Bl2f7A0PvZ1tlm1JXyT~8Nt&L?Y_im zW?AHri`5dlgG)>?B&Oc`-~Yv%%Bd}u8=0}SCjBl*4Q2%*|Hh&#AnYl?0&@@Q3k6sp zrZ*H8XY&q194t%%c{W(hNT%h95mhRc^*VvXjBb{fF?~(nAB>Za_-+vc3Nn)awIXJU zraq!^66JIdF$5^p!a`w*S~9|U0CkADwHmMH?$kpidryt~)-2u}<}inO!!@lnDT_8r z;}DWV;Py!XU8i?{YA*HV1RCxlK_S)pvcdxOu}E6rK8pCdm||gftIIV(vzT7}H*bwz zA&DWx(Rx&iw@OT%z6b;B2m+W;Sy4(ty73rZc>0gY*WcPD|n%0(?uuQuC zfuh)0@tLT(Ae2~Xc!BxsKt{Azdwl)_4p1@;A3MemY9JwbdSGI_Auo!@K&6l?Iv`88 z$PcDB#mwL9=Uqx?+-&WBz5nb9EQsZ=?3to{UX|g{_uzYejPn6ULuH=nspTknjeth- zdEn=QiQ(ynyu94h+{_%ksxxRSV-%OeqJ{O(h|gxh=tI{H_@OQWV-~_1ZBu~`TxXyH zU6$mELq&nc`IHXywt2O2#*qNMV4$Fwbe_N)Az!Cp_cKriswmCRP93nQQz;=>qG2>C zCZ3WQLLslo-KYY_zKH{gCMmkX4^TftHY`mrCuJC2++(FG?3rpFfBAc)GlpVE z1r>v)kVK%4MZO`}-eRgzkp9hRrO)=!lV|&@IK4B(KS^Ewe3iJXQ z)(0LmK!_Zy7#xp9If`&P42+OwVr!IULYj?7#pe)H40yH#g(^6Y3TN+64-7E(sZ$`Dl zGH|MCjJT0;AueOOF@8-2aqBSgAP&2lgBAt+g8e>b6i2?jNZCWERz%)P+KUeM>QzkO zV)f=R%*v;pvE6U`Q`r5m_=FLKUOm(^O(FE5I~{OQ45eGC7WM3B$#zAyEi$X_G+u4< zR{hwd5ZU(jDl;$|7@x4+!JG06qs7m9qm|RSI#99%Dy&V^qHVu0^}8hoiG@&H00F2u znx`AR;thsiN()n8B)@}(~OM*FF(TIfMY|@`z4ft4KnEYBvse#^!eQmcQ zRngX_7eTE%$nJGyu_+_(OHeM|5bywNfQBL(#L6I1t4WTAm0oO{h(Qc_x-VWMWL6Vv zc6rl_O)GKJOlGxFi;5tob#W2Lm9P6fksD-ag}f4>4{l1fG9(0oc7>pTB&{iu*J^i@ zp^M_sQMSH7F8cLajc-lb?M|cyYIL+~rMQbqF+aGDrO(E6`=KDJV+rPnqYK)p~ z6Zqxli1Lm(ID5chXY^u@V|Y)7gH9gmtUmchv*txIHkU_@~qW<@&d=*TZ0!Qdh8-CjKop&S5^{Y zT`>`dNI*UMQ`t4PX?0u&ba-7F`V%0{(YCfg3V<4kHa>G1Wd#kcET-^SaFkANB)Ljml^mg z;kdF6+{o`CKG?DEA>I4810)}KogY%qEB?h3P6AHi*vi)(lM*~ccORiFuVHM@C&+~| z!NH&oQX2FF$CIL3WQ@e@vjk;>q|(6xblmuB6d+9is6#>ALZV{>8y% za`X^R;McN%e3IW>UG)(u-2FrUCIph#d&j=je%Zg_0d!tA9(7*6S?6GRJ?tgq%MN?y z3EO8fUrd&q3g&&WMbeyud+FJiN_bI1NW`M?QP<>Z8T!kZWAUBxu|$aOC{fEV2U8EN z-+(5VeO8k!uvlc}B;r!O6VQ?jVXvU%MTQ;dLup!{P+NR@xJXo{mBs%Cqk@!@XhES? zkaCP&iW@U5Es-60L5s{O<7Pvh?$Hp3JifiK$LQ+_$VoSAnCEAIBrxUDru~} zbDH%!r1Q}Ilx#JmgW7B?qA`=i-nn6*R*m(LAW!sDn`4E_507tnuapK^y8~mUPU)uO zr8Lh$K0-D^RCVM^otu)@BJqxRTKqbtsA(D1DNVp8%@WF|RQ7%--SW9$J`lW0rRRcq zkc{Eq+=b8ryUmt$NZ?Q&UP#oy&bNRp6qQHNBV?S!d!j}=CPcO z@Bo@__hsKQ*$Uo`D(DACC#T0Js5bunDxsZ{B5kM^NkaZIVH@I!DupcbbC+bZOa`Gc2_dw$mDd@yj3HviV)BI*) zIkb)fHu3VViQ9{DtTV*e!U|D_G~P8>w=dNZVwIRzlYaX$>$E}8<>7E!7majieM6Cw ztb4p*dsGaw@-jHRQ7?_*18d&57RxqbPl#3~RzGGy+GS`3E$=UT0mKk{!GfJ<*t@uphjJjtD zppH^JW5EGzoUsz23wpxkli>@hnSFUx4qIOW3lyeivLU}Xsu4uW#kO<{Tt>mN6Lkx_ zlMykw$7cGve~mf`aNg-Wig7KUMah`i=`0IH4uFdh3gu7@j@kIKf1S_IQNIuEt!}Op zf5$dk&$j3&dg-`)&XBg9QwGGequCh6iWd1rF7(hQ1Uyhkl{?V?mw#D$J}X^MY0ua^ zo^>V@hVHGZDw!i#vD-X6u}Rk6;JD@yNzYKOyPe^V*rw%9x{?CERvIflQFiV?q-d^S z0SBWinE^YVa08c|9EU$MrH+K?nP|N5tJRD-2@N1Kf;|^dSkLypOx#3@PpKx{BdI4q-Hyt!kaA5lz~!DrG9|C`Z=%C|hU^mStCXnLb=w69+RPXYGnoG%Q#$ zlTxp>A6E^QHuW715twDhju?zlMvL&_2N(TW_mY1T&Bz{`mHY66*Oy5Dkv)FQFK|{I zD$j&q13Fjo;Rok^U?TwqhY{^pnDLMEG3rSGWUJZ~)}8ja?Hm`kUeW$_zq{ImXC`an z=&$xbr+~AAqZaH5S%~nu_&GUq+N{a0&WQ|yINMn3^-MyJ*0a%kI20T)$U&dwnavDc zXoW3Ih}57Dn>^8IrXG_kn|BIDl+?I=O`v{fv-gqC1sX8XxieT8e4u%i;vkLy;CXjA z#)1P~iNI)@Yq^dQi|S8E!8giao}_^W8|{l&Fz-CACBN3ctmN3}JeGhei#BxBvSp|2 zgE(*4*DYHk0f3h^sIn&Xw_cm_ZbgI74ehSiq`ngdIW) zC;4vkF*S~UD60p<8ul>7L8Wr{(Z}C0|J0p3WRyDf^;B6^v5B^4wA(@ zDpbFfENV{QfN9tMW{r~d3z6E1IzU;x&A1P6CJLSBUdY*xx|{V!20qt27ZoJ&RiQ77 z4>lT~_MZW`pmhTJDf&j?ETs$T?T$zWT11zck0iUD7i-61b{uf0v398$*ex%!azTmE zEcU*9!Vz1=ARy(*Z9i}rc+x|ZR^8^2PZL;{=SH?IP)C*}_ZI6i(0-3ok({+$t-r6y&9@;$uav zERK`XIV9HqQtZL#)09 zb^aE^lYqeK;3OF{yL=WD5&v!09V0TB3cKO>-R!qyo-nivf~u-y0{;P>?SWo9?Z23# z3N`A$kwW+J$5#Iir0|+m$hSjCd-94wOo^nTEp-I?sB3981(O-nc!>~y0nOD5%}$R^ z+NAcVf}`Y#ENj{1kQJJeD1%l^q-E-zVk%sXjCrxi$%>SnoRX67?KEUY8Vki$xrrfM zbWmrlAx15d3b`4ry=G>lmOY~aS-A!Ki-uY>3+$BIPwEJdX`T}A%Ti-|V%OIt=EmA? z7?(#RBl(X6yzEmU;r=*?(mUdwc=D4`c@sKiMD0Z2l>a0QoARH8K~w&dFl5SqQVf_% ztkCi#l;egVu}e4;yTUp6$pozNjpnyi0c?q(yg7>yzL#ivc`{z~fhC%SnS7}*(|PGx z!c^lzBGP#p(jph?u$iDmld*xM&7#*Aoz-I;Ap7RcNYt%K_a8=dzf_&@dxa3Ak@}>TEfu~JXk54Lb;*#KcPyIIUaGxbQN6i@HL7&^oWx1)^i+VR zd!u4GqfOxg9C4V7;z@ntXh|(cn)**HsbyEcc|swcMTI6a^|VEWcp%~X#VBqeOR;GA zWKJ1OW+rj-Vs#?*ZpfGY$#Sr+88~cXCPLSrqh%WY9Lcy+GRNaHc6(K*N()h@!eS64 z3vak3e{-ZjC{cfu4_?8|x)*iNv)xfV%{`Q9b!hsGxjVaPHf z7VgT3a77YXcqKtA1(a|)nI9V5?-Ldxo-NYZ+AU5f#dx`N?<< zbSAQTuK-n_Z$V9}(vOXH8xv?FY`31fn3>Fn8HR59?_YLikZ$?>qrBVRO=-d*s@1Jv{S;&<0q!_2rzP)cqCwdCTU z6^~%C*)$=4l3_38ml*GD;ZaTwRVB>Y|M?2!}d7Zc@lnua$eBlNfL{w>Nz759>)uD3*C>A)k zN|Ht&e&8dy^c_I8E8ySM?~+)seDB+lh9#fZF=%~c*kX93m-LJCof zC`)}k8jW@#uGc$IxvU;dBTgGcmr-q#GpwoE`W8*oXMi*B#x_T!#W!{Z_+mlv=4<#? zj3F3%StPI>dQHylNQS}onycvBC(^4J!7iDBDN;LA`IwBoHfrr)*?de{+MFFd4N_*03E_dY`Y^*fRqi5b2l5mAGlN<_rl^OvNA$$?wTNNZ0#kDHU$f>FH- zNr`yg?PVjie8-eHJY@1-I=WkbZ-69AiAE9XCWYB5DJUk;#-fyVtWaYKC(3)t>h_Wq zGf7XON?YGZ_QDqEaoB>rO2qX4dMUg)?O)-j&p!vm$+q63 z4(Scb6%we!bv3^L{`}K_`o}t|ijW>cp;wd);~irW&J?jR?_E-#Z2LVDRUlD!Df+Vu za(q=6aTbK(IDI(eTU~0uz`4{(ClW`9M*79=*qHsgl96Q(!ciz&vn`Y`HYX)n_GWJ> z9}AeAHi(`7SH$M-{TtNxtWTtV3i;@b3DkOaMqVi+SV*)Bonij)gGg#xB_TuPtF>wo z3N0wI8HtThjk|&aj3L#e(nZt0+|+=gH|=(7amONxyp^7}t9xb+mg-zI#o}ID!d(fu zTDK_uRrxu*OHbZxStEi%4K7&c-Mx=bkDsMyOrPq1Brq5;+TAjf_a>H}RHFZctnS*i zU6BdfP%ErmQD!%*@(Uwq1-m?LI+grO^apyy3T+&8Z?BRf+udmM)-%+T~s1E&z) zn$kGz&#opHsC>aTGlwJh?}tnm#}mw(8PhVCa{}cO)~vp`o{@VBhe2?nhRLC1bQoN$ zK4!EUrjfsl1GXHI(oJz4s=kZ;4CA&;n0IdqS>a?s%_0KRhg1D&G&lV7aypKb0}j z5kSPi%6oK?SVdx4yo~h6qro0wOne30!Mk@s6%_+aRr)6Op*_6WsBPI$q)-|cw+i%% zTV*8s6)@sggbtS0r86!N0xjEiMU%4Iv{C=)o|(415Vm5k5+vCaQv9Eml2sY1Ad`RxC@h{%?^C4JlhuPjyti5vWra51L;g!%D)Eh_-0e3Wr!N z(2YZdVxOLlr|^|893c;`hj)>q3GY@+cwy3Xv$rt7RJDuZ_-=r6BEBSHXGV4tm(7S9 zdODcqv%SvE@x{0O{!48VHAipK(BsL{Hx+YzHXh9`YYg#<->Yb>bvd5S>b98E%e9() zK0y_tp2flRgy-^7#Rv~6F^zAk#sA_ri`HH^Z9H%U7_D6 z^Yh^#hh1UC{W?9_UBUm3=d+a-@*JWh=sBKiVDSpHhc+fR<~pG{LusGK!MGX;owv^pD{I=F{M_7?@<}4I;)cEnu3u- z=4@7kMnVd?=D2x#>)_|lREUL=dAL5Se{TT(=SY8}I(U>_Z9V(@uHp=i{~Mh7Gt2JY zJD{>1ae);d0gs9|C-d{d&D6c=q+56o_mF>}a2r`S!+S^!r!dgJR&O%X4rjgKeG7!P zg8~6z!6yV0lz;E`^StU!qaiJ546vzcr1}*AuA&jV(FSZQ-U6i4Zxm2%6?DMCcnhlO zf<-ZF(l#k7%^yfAMYtFhR#)*U>|#hP2=Z~0E49UWq|^NjZ(v8$fq#xzwH2-vA+n5< zGKO6j`;%08qyF_w@)U;elg$A+9L>$**P7Gu>HgX7*X`EXle6b75R1fM*aA{)04EMd zT}W-}IKw6`zNC6C9%huXFv~%SnWzadUNAtiCO=N1_zvY%=#wryLZiUb+@<#XNMJ!E z-zdwp+8~0qCCV6LNCpaS(m_?I&SYRfE=$-uigVzB_#5X|{Zj*`D8n+{(k{GRfB15l zj%cUet|NT8L`S#oXSr^OtlVlk_;88YC~dlJSCq77iSCHV-Kr~mSg#wiVVQVDa+BlB zB@7t1J)TQfz`;M$U#uPdHGcp!y22k~nfOIqaxLThG1$sVv)0qwAGf{DNLT2E{-AaI zk$=%Pew)?7FZ7Tg@^3~#lf*(2l!m0ZNK(AqrIoLG$xE5Ua`?XI;UKP|UXHgf%pw0= zVmjd%Jz3kz{=PX8hDakKvrNo`$8owbOC>h--^p|gHrby_7IftP^D^o+o(;OwaX!A7 zZM1$Iie9zxtTRH{Xi5gP(YhLMoWOpGHmK2Ej_}|&!NB`AuX>zfudxz#dN4w_d|363 z?Li5hAQa2Jq}4$ls+568wY5+yi4=@vK(U|tURx=s(@se-ZR~<~4aYVUy|tA9tiASl zG`wkdE)ZweW>E`@+>S|SrRnmZTS8KxCW^=P37xU_NS!&madx9lYdlAtXEmkVrbi+Y zIk!@)Q!+k~68a`xQa~!TQL96sT5sN+rPjBy9ukNKX{CT0HDPTPVj?WSQ<3`CU7;V| zigoZ!JCjXzP=sfg@r-7o&6A!#dQo>ab{Dhz(Zi4lOjn$eV5f0_#BkG5XDC#{-}_al zOL}HBl89WTO3}` zn#3xbiR?rPac6ft8X@-KY;e^F)O6pI^MfU{t~{Q}<7nR(_T6FUKitUiuWw-G2JU+z zO_3}CyhD5-DfOU#nGdQu`QyAly(t^-kMywSXps>};`QuO==76gox^m*Ck-s5qmfpV z!QYh7s}u?_`0L0#k;}@*97YYb;zy$`EZ#3x&TjuT3)&D*->H;ci6zP^>&TDT;VA89 z_lxH#sOqMU5Gkz_hc!-xHtPLQ>C?)_>qwNQb@yt}s#wc816JS`%*+|roTQme$TQsz z=mtqJD&kyrUcqX8i7-Dbttg&>O+%y{_wc;)BBT0I-_Ku;N2Lj)gF%#%G0(M{W=i!~ zJ=PT5Ui_c|R1*B9isz#(p{i{t=s2uba|zMxLXlTi4*~@_Z|XK$NB)(DAr=@vZ`J%Q zZ%NX4-$tPut4&0|mJ(l&ceiV@!z$*@42c+a+a$rgOO{=Ckc)XX4-xy#;*=#lRm%i= zvsA`m;;aj@?8HW;H?T{f;@L0UFhQB_(&Pq}({Z$EOk(2rf=C$a`TgG6v@^;(UAmtm zh6}+J`$E}EDI2YaBPF1$-S*5iLiSzhrj!&EgX-$1+go@bkwPc`uaB3B*Eu65RxeN| znF;3Iq~vQD@ACNk2j~wR%QHJ4HXg0w-wh6HYa(AR7?-XsDCu*T{j-#pAC4scX$x^L8*B8 z-l%7s;F*_k%nhlIC|^>0v=sWDso4*|X~1~6!NI8(hBied(3T~H2reWXwI-b|qSaQ) zVPs&1{d3YmbtKwMD|GMxrptbZ>NfPhnvUla@1A{+bvVR9>5jywC*$Fudt>2EgH8ck zuz_NR1m^DA1AYIRUf`Mo^v_j}^bnmZ3P;$c>rcEJj&7$Hhy70pW9WiomPT|df$bS0 z8XRnz*|2{xYfFkqnlnqA7%v<eTLh`Iq@t! zx0DEkEM4wiBG?s&*ruKCOW3Eg6F~_C2C`Jhv;xr<7h^ip(0SDv42gQ+4jsAM=A$9u08A0x`sX|!q_~fBrQUEh+jPp zk91eQOV$RHoxm5$nKCYhD2UYU5B zR~w`G6~ZgyiiGKshp&VYMMP#lCNjDvgiGErL7xc(C{!=yx{pXZjewX62KC`zW)qp9 zPx2-xd_#vXzJ-;;e!iZ<;$+Bp}qE?6=CEk~iXc6PbRG1OLKBs^#Z1q|HYSKGzqI58fh`7-psy@R0M%L+B zHXOV}wcnM0*OcNyHJ$P%+7~TR66zt66mpPXpo8Yx&emEnv8Kc7w9a9L zC!%FKGA2{Da;_O$q3QsRbqQJfXmz! zLlcD=Nud#mD#$@BxpGHVv_kD@YVcR|j}8ar?%+CJwWESAOcka#Z!@k!Sy>#Piz#P% zSl&)duR+LAZoLTJ8tB9ctTgHM&9#sHd$K&ZdmBj5tm7KHHCLz#8w=vQ0)t%;6??_u z5SJQ2B&n$t3R#tpSYYN(@lRT5aHn`IBZ8n z&p9?(x5t3$8=UTEgQB`ddIpdl67A~d`qmm1Js3zAycJA$TuHr79n91I1ey%YJ$Ca~ zfSQ=Vls|*k$1= zs^}|fl4BBRX`^hmiEj(5*+9I_XAkXB+ysN6{W2ZD_7Bv-`atxvdbn`}Lz=KXK|!1& zAVA)lb!KyWcrNxQR&A^(A9Wfzj+zI#?eBP$zzJ1xO=R02=SY**JLpkyBm_Dlw(*^e z(d)L(DB~4BAHXeuMK7m?W?8!um&s@h>d~evu>UFNMALJdl!sE>@v(ts#r;S5EdO1s8td37NI;5 zU68Z94MXstO+t;oYYUpnPlVxCJ%_vIAYX*&X?QJ?lRe2e#Qmtw7Kqnf(0;4*8Bo?H z{fsm*^4| z3F<($3NsXnF%tV*GbgrSAEbM18HP+ozm1he-nFm^|dE~_HJ$`JEq z1m^Qp;!(@Gm;LTb*36;qK{qG0Gz;`LmU0lAl*2;ZA9Zg8fn<~U4h4hE!M94v>*;(v z!22rb#`df1BNX6zw(2z34qKeu@j63CJFJwnSx1ygUK25&ThMKb?A{SmvApQScuiEp z@-%pmwY_&xW?F{$`{RQnw)uK%il>w8_$ZsWeSx(ccvobV_l80bbxEUUk&VFwn78Mn z0USPPyhDw5V1gM@bS7f(St6e}w89N(MpCi)Jx4gTw!XO`YAS>=6Tk^SO;d3kayvqmT}dY#_%t;yGgIWriY=4j_{LO2!3W3}MZ^e*b)PX; zt&BR3{`KnKmu)WE2b$P44lEp!V^hOtTibFp)SQQ~FqZwwG5Clsm z*JRrVrPWgTNeO1O<6<^!$>$`T~N`{EV{F zh11a~05D`AY+ucXv%v(x0;BOx^FfoC+Z5+j5$v(k_>pWyq?fFs$`@G6pPOsHYHl=t z<=x*Zxxa1hJKs7%uCgYGOoq<83ZT;;VbMG6N$U@LI}JH&Ag5&Oe^ub5Rta*Z3Ao*9F?}IZBC?baE$H_w z=t5(5z+(OJIuTjRpt=q1@Y(uLvu97fTV<)SYq|vaSrZQ`>A4eKO!qAGl z`DrpbNqdc@#O+T%v*qIvU4(4D64A7r1gKpS9Tgsme?_h+>v(JXH%o}88w3GjKHkw0 zx~wf8`XhubtJ^nvoes~@-7r@GU;>hcuIUs>6$K+)DaQ{Elt@_h-L8v5JwSi_2od9& z$pxI`>ww(=bf7Ujft{_jadauNmS+)T$WPWg@s~UXkHF>@ z1a-M)pj*@q@5+B1wjoQ-hkafaiR*Gru}zlRYpz5tyA{ugPFu5V%$Xsk5#3;EgyI@o6t{Olp&Jkp4DD#L zh0a>#)F>Ac65oI~&k^si)13AZRVl*-A+%XzxLIoSWU+|g}-NCjR>_kLO) zt+V-!Qgzy&&8MTB2<$TiO_Tf>z**I(eDDHg8(wW(cJlUk(!rXy5&gpNJHiEy#bfov zzVygT8Eg5-W6AK%ED#u0v^kcyKD=_yp8y1CI|M+~)9sB8FkZhidjna@m#{RXUoW>Y z)Op`o7icV>1eO+{8r@US%B2;jaQgL%ikt5=OEHbVNYT~$ht;ZN9Lg{KkN1~3uSOme zD2kNrtcL_=KYNj z2k@VhY(kneiAkb6v!G;VyxfG-Zx`ol;KO2YBtf3+)&Y(qbTSW{uA7An99kjP!RkxW<`~GWm~MV}U^gz|%fiULeA* z>?1|)oP;Z!E1yA-IKjE&?qJdx7M`qt>t2p~MCw-9n$EwTz+QB9K9uuOwdKl4k|c4G zq{%XoGC?itiDm|K0y)8#3`3bAiv%*@jvPQBAVC-=S$96Ej=6k_)5|8{*h#GoXMboS zkulsG6_%mM`@!KRmi}fI1%p}&N2 zjQ@F8k}1xM?C$S9KV2AyX##!|c=RS(sS!*|kxcANb{$19)$9)wAQvJXQDmS^X{zT? zt7795$r36yn7&f$!4$V~o3(QxOh7C{=Z~5v7N;1?f=9dN8Ol!`w)PSDzkjsn$f^-_ z446wL9l*TAjhdM8Tir}N=Oy-1BrYfLX=}4AwD%o}arge|ZIrZ(hp0vf zjP)QTPQ(#WJd@kVhq>3tShj}a?(`eFGG>BL;t!pP(aFRWR6dY*!fGSeoLMH%hNG9m z7bBB`>%LrJ<6ZuU6fsww3FJPM*JhzzcbY$y;GRi!j8B>?%=-*Wz3&|tPY>c+M`8NM znXVmkZv($MaLv#Kz3qkws(>!NEIw|4)#!+=X7DbYiYFtIvI5CL;WadN97lQt$|8+< zlV`B`b0>jQGVLSvhLIvD#I*Tn$c}p)zqI!yXb_~uzvBo=$rL^Lj7$zn9K~!4VyV`3 zCu+fBAa*c=bqWPTPLF)69>Jh?0Yg8%m&2 zD41xMlVvx%*hv=+nJ@1B=YP8_-}APzJ-9c3aBNaJBYV48NgJ8xX_G^15fh}N4@3_$ z#9X}?bbp&cYRO*oXYg{pK)^KTGmrp$B(pWVQQqHL+rLKL%Rb%`LZe398<>iR@JMEo zYo3r$zSv&-3Ux}T9rq+|+ni>nIG#26>cQH<2-KkPAvW1Kld=nwHq7jlGCk+HaKaFh zKo>LkBPLtQ;yLf6+$!bs#tx6bc$OR_yxwpr<}$J^o79Zx(nKlzCnqkEdFczBKHP8O zi%-fsR!$-gEvYX9zYD4#&|!N83pfLp@oLO+WN$X}b4!nd>AQT00nxu$9wb4+8kujc zJzi?F0y`+X0F-gOBv}D@yt=~K!A0Rq3IM`4(g2zsL4hQTxMm-u*nGdo5x^&hHh?Y% zxxw(3@e5$p8=J^7K{)#Wu@@K#{70zYD@EEkp@3k2hRS^NVUN-@Q(YQ-xRnju@GvYo zrP~zAr@7uF^>9dkbEH*R*Zc~MhKf=N;#|rjO>PdLK+2-L6-KbRuoH5W(|=qbz^@qO zFKD(370j$qTRkS=TvGE(V8N8yE8evI`I;#S23dl#be6t==e($;FKExaQX00giU?Zm zp@&Gv>40mTCK}U+<#apQ&HP1R}dYSbZB<|GG1c;?e0-+77E3XcpHz*2eTNvSN*}oJ5@Tmj0Eh zD)fxW*<&~P^~c`a_`(jq*o+pa;^uHpnoi1cED^--M6X<>N>dN%Q0Q+F=X9lc^R{R3 zLIU;Zc)LM0f1%BC36fn5J0QoeI#c9J0?m*`_g7|bfA{bS&d@(D>~O;4#Hg`#SD&9C z#RjTkdyBbdQk}H^czCpXc<}F2X zf&f8JEw(_f6>10-0S^cyF<9?8{bYPW?Q;)S z@xbUhJuW>umVga%^N(h$ADMG`%xa2*&dk|7K4P`~;6bV%Krl5R?;hccKR!Z%BEA60 znMmVh18MqBi@c}hgjF3f5t#KNF?A)DnkGkX6Y4Ct%l{Dn!GDYd^2?T8mqGAN^HyPz zJ=UCsBk>lxxWxWvk9{JK0`QJ2*>mQFzgGuCPq^OV!EG%CCcX>LFU!IB{4UEu&4wJBcy8Z1R0iB{|fg^ zxUq^9B3tsmJBM3lYnSGkV_Ni!tS8LyO~6+|49 z;P;^Vpsp0^riy*R>P7T0Wi#{g&AYL^mz{`#uD+L@eqOSZA(2&ol*$#}^SPQld@p-( z*w=g63qmPT@PuHzgTvr=D0}%h_zRM(ga_UKa{nu&5I8&i-dz7ege;6UCI;|Cdh?KZ z?LI-N;pJzxga9Uu(^#l~zdtL9+LJf-6H3iAnFF5&ps?p31HT*O( zIYCV_iXMjx0txxZCUTwmM>fe=@~f=*$zLA)!{0w9A$+Ha>+ry46aTHzTWk$1D1Px5 zILc|i_;XVw<;nm{o{`u@L$R8jIn6M>l1A#u);vuS!c%X@+H?9#BfcA#o*79>Y`4Ay zDPE~dr7n>-^9k;X3B95Zr)H`vEye;qM<2Q#VRcq#45`}{U3iMwl6?SGt%_IO38`P9xR4cK|b6U8TAB3oOQaSpAGQskydB^&5^r*R}(+)N2B>g1Dbbagg?lz81!HLXk z&)-Hd2Puc!8T@Q0d_b~-gcyi;b%S?l}O+5R(5(b!^mnV;}hjYs5|8xBc$%d+h? zYu>Y6xA8Rlt?CeTVZx|a8DsKwSm|+qOWt39MJLhBE&jbmrv0(__V^v?363`PDcYWX z>%B!;swk;eju8%T%nY)^6r{0-Ybh_Ga}gFzy!+Qk0JEd#q9;g*ksUohJS3n!=JBWr zN;>#-O=>=k2*J9Y5qSW~1Hpcpe2kk)#F5$;#m?|bbC#h-L=WjD*sTdrAMa=R7zTEv zQ77l5Yte*dbK|SyDVv^2jOLjOu=&|Mr(HnbqBjwtcog;UtBkDGOgNSdRllUL=UYHwJkg~ zq@nCF$&LQAq(jb5Aai?j8JHMbncdg*zZJ=&z}0wt5C?-jDUC8k0zW{ch%jckj{p&V zZqn4nrV=+V^0%dEsRz{iu)r{M?^A5L{Q75&PlY{Rz`gg#MRFz(s|>l)AS6s9PEjO| zk*P057Zp zOWR8{Cqi3wgCw>pENpY$ut?zZCdy&s)()@6U0&rg@5rMGt<&{;u-$+?&Q6u27OzdF z6IKl+Izij=3qz8m^ zfb%!wmRo%DX|WGyvZlDc>6@ao}4m zA3tHl;d>*cTZT7_E+qBe8W-N%C{4bWgi#TZ6g3P)YU%o^Y?LH;#zw367Rt~&@C&g} z`liW>9eUShNfAsbL~4W+*IYAhvrrd?&nmJJHf58f{3-w6zg#ko@);68QhuQt!ISBf zrm#_xl;@i%>6-pa9c)abh>(}%-zZUu|A>AUE%1%4Mj@7dCquTdt88iXKFZ?j9fFx^SaWy8p~3g^{*x} zez9ss-x}{}80r>${NV?yAW1rRwM%42$7k$eSjWSw{uRL``E1bRM=SS;OM=yZ+gHgydcJhm(Bziax^YK)(>awDZg~!^vCM zuI~yCMp9_Vexfb;+1Bj6L@JZAl#&rH+!4NB39kBi)NYNmnx0Q*r+@DjWufwMa$*zC z!w4XYnP*p=eNOwOzm`9GNFTLe=Z?y^n&~ghEQb%SHl&Xr2VG&&O^B)HpVNWFOCQ7s z=m>?d@|Y7?QA)k^a~0H+eomoEW`_j)h5Pdkg_reTiIug+A=%Ih1Mrr~RFG;w{ zy$0)VS4R-?!w3I?V?gvFh{vMMT#M0tEL;gGJ5^2b3M44Uww^(0ORQm zO3UXf<`!V?-`%Guci`?*N)paZ;Nr0Vsy|#g0;mxsh8*I9$pG+{$F0lxtT%o=`nEHe zoehv9T)TeO84Q5{l#_F%)p^xF7~$*L)A6v^pRRm69nAX2{VVMbRc3Z4^AnU71At8d zuayHFD4@IjX%}AtGbD)(ZW|)ky^_RglrqFr6FiS3sFWiKp?BX5d zSp6y|-RAv4$8^j|i>v&)Eks9>)0hw=^EB5jNy5JO6}K{nU6;UjFGdI$1~uQZS70!DFZ&M8t|Eu3}bEQhBmZkvMasb zyH}{)*heWh13;%dd}a=(tV3#e0X8y)axoeqr2}&6`#|EZF@4bV5qVQJB+oltlX>sZ zv8UJLX^&397&Yb7Ej=NFRMpf@ahL;;pmujMC-4&y@@8Nkp$>|vvuu%S3~fn)?|lN? z>JYg?$y6NkayW=Ur~xHOW@70k;vgX}7 z5F{zI+m1G*5>Kc_`)5sE9WD;77vAc{8iTx2w78KJ3#~CN9$RCERU6-nv%f5HmP*v1 zO70UdirLxtWq*YFj$~2niJ)r{C$Yy{HqCRn#_?X%9g!Neqzs<3?*(Jj-Xhy{DWZ6?+&d7PojkZ} z3wbOnPb>Qd*(V9nsm@jz6kQG`6jLgMO7b{Wls|IMLgD*?W}ufgQp&e|#RFZ1+#8NF zF}%Vp8dW?5ufM`lQ4gf$7i5Eka z#(g8>3v!Q>jlDAhxq{7uoFQ<1eEo<0@7ssRyH5_=&z|gleQ>njT*vL!@zb+!pPcUh z>6z*}e|pwJRwj|n{$zi#5tF}2j12c5!{6Mw!W!*f>#I^e=<-#&-*?!0x*T6yb}PyfK1CafHW@J^NO!ITht2Qaacw6 zD+j9m@Ah}qYYv%!GTIlgDveYoGsB;D=ToZ8vWsLyaL%^+vp<=hb4IKE({J`qpM14{ zbjE1qjy@8YqA>zIC(qAxa20ssz|bNq(lZniSqKRGR){O_8UQ>DZ|-hb3uj;ODXXo* zx{-DoTbrmo)R|2O*KK!~Dn(n$Q}9GEdhW3)<*Vr!RdbW5^yI~ipOzufTO~~>TQgzQ zdGgg6kAi?_N3;~s*p^`q?!WiOyc0LsVinbouUTwXR-yoQ>!n_x1(mQ!iN6UJ)w36p zx6WK9grsN`?p+e2xOuNjgvNOuT^o=o-g5*aCaVgzDJ|Ks&&35zV!FcqCBeaW1Ix9) zb%UI+G&T(sFv?ux(c{N0rnk}Qb^)FvA%Gcgh2$7MFEiqm`?zIaX~H#h7iH`+MIztP2CFBn)F| zGQr&lUXBKbi~=+WYqBK}5-YT4;uF17xPnaHc!+iW2q8iFTo3BDaWg^VWUT6-fev`+ zrhT1Y9HL?dUvL3dwcjj;8t4=N!=`CA;R>qTFd*&)EYxdTJxY~*?0ex4+O#?ro1Cbb zHZzZx~G(>}f7p`(Liol*qrcD>;^V!3AK5#Z!Uu!Lb(2S#3w6~Hi zS?a8zoHmX5Ci<(qVYGs?)g9EkG zCmIZVx0Q{3?Z+BvYiWKJ?k&$)OU$w!HiofGad%+{g&>VuU04=jeK{3O!Z{cMSS^xG zV)^KE6ToZTiYA^k6ybCny3Zwj4-rg|WLv;lL<17{P-5&FAY`K%B-5y zhcnb-+R6;YGoI*Q!PxO9R#Z5DzWQUS(B|L6LNFz<{oLp`{wQ?D6`Ox6 zHKVZE2B{4&C0a9-q8xx3sxFB)BU+>8Jlj_N?u~M;oh#00qBYnoBRXwY(Tv|TP(&UA zrcdJdIzi&tdRA>d^NE|t+n)8TZ1|k#FVH}B_&KqOHlIvg&2f^+#2D)KP%{@#Yb`-b z;@K@cxcA`)_wN1c!zIt{9gGli`3A@K%B%)U<{P8KMl6?T$wfVVL<}rE1eaoAJAr9s zr)dQT+TVj0qcKtsU-mnb)$9?f_pYsTxR-8f6L(3Wr+K#e1qYLv+)R%5_yJ7~stpTK zZa}cZH&0sGpz&z1for(UIO6N?hO>Wvm9sa6t~crW6YmBOz04G}V0(v^iUbTccta3Cal>nZJK^MnB##e9+ z%0Y}^6=^m(9`FLfY+A2KBOkLmu&bHbuZ` z62E|Ug^?J>y%p{;0tAj%$wY*tU4y1w56V`8=a0uVXHJaF(;fb4= zUQ8c~n<`!}_UI%eK;A}t(6Hz}En`riZmkK3S;yN(MXDxm_( z`;#-R9PB+EPeF=i13Fg}%#WO08^{jdmftyJv?P^Od?CD^d&$9FRVA#uE4^V#&FY~*ID%;v>pX@$w!^(ne zGg}**8{406J#bczl&!Hr43iICbCWO_;gcYQMRaf<0SUS!+*B|`vEE{89)|}-x)cpf z8sO`qVBa8((nC^eAC>VM*PDvKS^O=g!yWb|J%x2xBS)~`(FFuLwiaX?^V-9D_; zIL`6NMv$F!Ui4do|A2ad!*Pddo=Ayoy}k2lV>o{O$=2rf!;MWbY)kn@b3|;`e$^Sy zAuGPhUUM?*R~twyfGjLKk#zM@R9qVP+z{rvrk4ZVD*2FGY< z^}qtVD77O*Ry7jH)Eb1HOqwPnc7&)wTkYpCIIQ##Ks>%7s{lQ8D~@^i%-lFM$lAf+ zXs}(*_vkYZ^fjN77L5LU%&b{kWB+|%nF^u>j=%i<{_a_5DL6t_bi|Hc4knX+&sUMl z`hALOa%bRl(Bp${{YfmgNKgwiX`#BqGHtW0@AR^8RuRq(0%lBV={(Q$sNWW9F5|y7 z){@zpvzeVy=8>(8({5}QQidc}6ue;gw9`dsy$%dnB5vZyc(XCH0U^)8gMc!<0F%R9yJET)v6o$`U z2HV?4ZvrxtFM#atY}*Mfl{`d?q_&U`r#!( zS0o9!n`A>{)1BTnc7>jOkv1aR8t4bCt#ApfWglgamEg(hnxO~xkM=4zaK1a7gQLUg zqHyHB=WT-9tu-U6p#hS+W@~w5JRqdN{v_jo4zK6{2;aIDX1Z;)nZXdLTZ?zr=Jn^B zb|W$7q~4*;CllOWVz(XS&)E>8le-((2gBbEP=FY;{ujA%8wYG}-kVQ`u!qk2fV(Yc zQW#f~XGBo66v}{cQ@7bN^k{F8lkEK(SzZt;;0mnN8&QJdU~y?5(dmPO+_b8l)L|U@ zF73XzFd}VMyQwpzlTMHKz};d|73{RvYEm88$V&%l*uA0ChU&fyncTyIKQzI@#3mPs zCSetN5GKzio0brO{|noAnQDVH6=oq9sB%OFuSNB+dM77q?c)+C2&#*`38QYCQl|i$ zwBEII-l&vCWN^_~0^z8x;6;u4gw^tS#5lP8W{gIm_o0nh8o^!@7S3uR2&ejsT$|_DyaCV|tAXZ_kXJ zFu>t)DZtI?S~!0Jsstv`Z2y{*bnOn2i$#%|nNx^r61h`M+}VsuI5Y8FMYXFnVV8!R zd?xUEK=2}69s_|zfG`VbM36qq1QfFmvMF)qJB^Sd+7eiw@Ml-^;cPG&_6^os`kM9v`*NPM;j$oDP8?TL1$X8L*{FfB=I<2NM_F zZ>O=zd9WCkb)XW2&u2T(cDj;+XuBmib|P`mKqpevOykuEeH)kDPpr~K*6cLxREqy* zS{;l<;=)3l!BWayEnO=q!Wg!bZ{U0&vPrR1u)iL~;Lr|?R>5g5x-~pD(~?puYs>sFazMu9H3dj|1{1j9*ihH^do2 zBCp$rO173+vIxJplL^G4dcCMLs@t!iAKYr`Vj0*`q(F_(&J&_A352h)mCcz5MDdVh z7=$$pND?Dc!^dUBl$ME-+60pe%wrVAlec^3y{aWq@=UBeY}AwCBEyLl$kC5+0+1es zoCDR=v6e(`VOur&YQem`sh^8{p5~%Uj;<7Aj8jn2r6`p~3PTEBpcW$b(x4Ve*FanQ zZp0PejfnhfPo-EO9^RRV?7(sXwT<)&Hhn^syBMp^@mm(bX@5OM05+rpR`z&Z;+wKL zS~vMIBEm{(0MUr>OI=-S$G@H40gYn;&?1?dM$ph$W0j?wA2pYhrXw^-faRS`Zo+{@ zR$)jDV=3J!77G29H4|!rFEz8bu~N}wl*9w6AVYgK%WJ4RzTQH@Nx4U_On(6*qYn`| zwJiU0pTRjdB0s|5;wI}}_K~5xhx8>gPGCYx7RP|%QqC`nN7yl3~b?;H;w^b|E@9jghE>_gU1Q*w7k& zIolQsb7zAfVH$R>oi!{J`yxOQD9Ti#K{$eC^5F-+KSmfSJt6T8_FV*uv>_BDa1ieE zPIi2hbv6L78C>G<=dfD@CnqE%RW&WX;Z$k-K!C(8T!j`aehhQD$FQtxMA9)U zQQTy?HW2*+UJm&Ur#@)s48%|UprWJ>`mF~ux241FgY)r;piOfUMBKuGK{5F{9qCx8 zB};Mh=O+jaUp3nfVUf9ZEqQxUOdZi6H2LNU1|X$`)bIxQj{BOWJTC*lK`Qu~p)ZqV^IWPE$umf;x% zw)^%3QxxNYkT^#ylhLnm%5pKEz~ja?Qfc#{Ja{NqpUKsyo}3uy7p*K5?Pahy0iqu7K?DYmW*f=+_pY8MUHDaCyquUIPqC^uzyTg&) z+;U_TuNsYvvn|Nb?gnO^>)XNXZIA2*@&C0)=3;miT=^Bm6V_K_-12-^%r%p9TFKj8m3kR4<#^z{6CchZe{0^Kn+HnQmU{p&tq|az_WpX z@bfvDBTz7F(6zC+RzME4$JF~2=0V3h+W7@a@XVw=n<53~0`Y&y+bEkZEyBOZY4=bnJ8;1auC%gTw25fROs#uaT1OW*tqPtyy|H_Rgk3VY^t&bmkc2(S-asx z(r(Gg)qpt%LDQ`6DXVt5;*9#|cA--QSM^j&_Uy@btL#_ln!~aX$js4}$el!_2gh2h ze}j*vxGOrwV%4j_1tb|}a6ZXc=AG85Ln~~AI>L=T1}u9zrc%EgC@xT3>uG%Kfb(F# zpuw~zjH6>n`h$R;H(Mf>+RR~FDC=+eU@jd3cLJJVLo7Q`PLe=gb7y$B6K8n+xclJj zuI|0s4jjd7;3l+4y;_LpgvRn>k*cLr^+0jQ{_B61`S0c#AGauzw9&YGIdPsIcSv7&O?ysJIB5NAEnjsQf^dgM()5D=BP zmf&bgdKKim>N51XweIk0gp^7AhZ0?Z9dzk0ouihUcv(2g_6 z98=(c&vTjORbUbMBECAAWdI8w(HYKreI7MoqD+u#Em3Gqc6xxs7MKtgNbH*Cg+xH7 z2Y$?pQ*#Kp_Fy*X;_!7Bp%{e2WTK?ZZ`A%O?qWP`q=p}iIzzsXP*U8rJ=S^SJ3Da#ErRqaGp=zdYVUaAGv}noKrm$%%}*XhJ8P zt3DHVK-4}OToBCWi=f;jov^MNoTDYmUwvb-p8)y(eetzqMyB08K79V{$Rz@xIiO-N zksZs7TUvx-G3HVQ^@M|A3jbB;ZI~A+S zQz{|a6+#^EZ54G3$e`e6*qf~x9>o{Xy;w|F5@|tlE=`i3WBHsa5 zXC$ZJ%F+C)KOJ;WZ~$?TQ$ja$qXqAI-@e9%J^N%FogO5XFxc1ysCXOV<8bxGKz)IaULWgch^ zD)N5SU`TS(+FZf7ShEiXw{T>{p>%XsSgGhd1O#`;d@JacR)8!vi3R@dYDil0c!V=T z5jNKD8FPj#V;YGORr;2H)#M^qF;0B<$9aFsiF61M)4_y1?h21ciD^DWGMgG`VoX4G zRj!dz80T&Y@fb{|7YU%C0(q`jSQ1B6c6jg0^2s6Mok?hsB=;9VS*s zyF;|*kSXWw`b4k^asd$Kg{Gb8*n(Dmn!M>wvX80}hPvajjljT=j6~ z@PFy9q;4Ww2(j7%*zLuFY!QeP1%u}Y|Kb+*&hK2dWkh{<0l`YkCj_>ilVC~Mn6luJ zTv@P@B&=vDagQu53=Tfwq*!@7nJ=M0%h23H)7r<|JGp<7I*W^0)PZhD{>bp8L(}9% ziC=<8+{64dGx|A7Fm}TvfcJblP*QM9{$!yvpAJ0m0NJSDf)0C-BeIZ^#CSa~O&K)L zOx&f;bV+*fKm2!zx+qP!K$>Y6NV9eFb$>WPSxKCGoHRW`K(#oJ*#%-EYbsnI0ePSc zz$y` z!4Qn#WIDdSA%YNOo(@NbPp@xKcXc>`mI}*bK50He)k?liu7I74#%iw}POA;y4#FBX z2__7e1PSxY)_JvOY~otTOeWQo=8WQq9nfS17f{3{M93Z3nK=0;vS!g)T&^|N&L;?= zaG?J1gH=LDngT?dY=q;K>lxpnHFo8@QIKd&pU%%Ar6bjJ^i+h3es+k{O{1;$SACpT z#VM!VgEo?lOT&2z@iUZO!eY7Mdr+YWjdL9FWQmGS^9uYJp7t5n zZsG^w3)B7#(m4WT`&Sbj`*o9)2e?MZa4fk8ZTpPI1+z=)5hj~#ZZ-(I!B!`vljJ{x9th0<8xpVu z#Ma1cV3SIhyy@QPPV=lgpXQX;59gDarRg``tXC-mw;XN_%T1{NFz$+i|`Bb-F^7Mc^@@B@%R2<1bmng493a5 zr8~>pQ24342R2>V4eQ934a~=N0^!#)503>~gIfki`JRW-?%KW}xVz3r^(~@$mlik4 zed?p5UMm)&?GX8JBf`1$%wmc`Fz=4ym3PaalXr)($h#!uq1B^8oBeKfmG{m~&hUVm z=^BC@+ts{3pD;?M7!5L%&)_0wOthbv+~ejpr62@KqU$nrfx`kL!`T9y?*?KKUYdja ze4R|;!MsNclSvr0ioe8?gIG+%d0p0Wdc*JxVc`h|QqB|!h$LW{6zG2~oCM1CdqxuN zT#r2e^)eDGf;r|`!ZF_SmQa{tCK1X|!7a-=LTQQL@dYF>HI|D!Wk2O*>xXvO+r!{L} zr6$mZuuEwz8m;+xi;V21K~bh)GM+M45K-Z&1!^ zzW=G|#6PfV9(`upLTJDXtQvptYx4mtY4E)HO?|H8MWiT>-RJC?GhhA2wgt51r$$FK z&$mn}o@Q^B>n)u>Y(9m1lkw~RG>5&%0;{wHhAw2%#FjKi(HAk6?TSjPs8&Q>GWayL zmNl=fYQcr0+(Z#n%>i7?%W6kfK153y`X*WLv!WR)GaY+ z?ZTd=fTBGqJ33_q@HTg<{o|2o@d?|(v`u3UBX6;np+$CG3p5v?K(2YRoXK|$89>3_ z;Pq}M9nH`7PpxY2Zbn{%Os)b7Qr6;ASm*9)I-Xsm#$2f9(uw$DZ)ID;f)pUdy})GL z_=<(hi5MO2gfxi2xY*w4a|&Zr4DlDn4`-N+tKBbd`#I$L`t3U*zt#j!$;kA?m^>9o z4r@Xiln3k74&b&9jFq&kEws&6)QYx_TaYeJj9t}lE47b;mvsY$)-kWUG_;S|ct-gI zd{`IJ1=4Z2vIVPK1osrAj4*>fL3ac4lbW6*5vTne?ze`O8%`;XRR{(ou)vn=O?bfw z_U2R0bQwTcrIJ+ZYBsFbJYfV3)U{hDbi@0L8*g}`pvpDaUZA0rdp8_B84VY=*7RBf z?gm2*BKIROQ;+ppHZp4MmT4Y~TWRjVOsQlXmDiP-MNC zqgi_;0jxp9$-R63>%Uqi-o!eWX>|_AIO$LsXaW;)A{rDlhKA;=GgaHn_gjfW#R=C06D(;$6t;=HI93a~er( zYWQEqFGBkXObXU7_j}p|h2eWI91nYC??_BR_Sn9%W4tWx^9rxt{n~Cl9z%Vv-u=Nv zw(16E66LIA$EW^nDk{q-vLAEvY-(Z0Adw6843?mlS^4!JKogh>G5W!@!++f!Ea*C| zm@c1O=%TIbQqhk!`2837#b_OkLyTNw1|k?}VjbL5IJRguvER#lUDNI5r=?ir^-4Lt zh(J1Pq;DO%@7t3A$KnR2k>h)3QK~S}ggQ+Xg;!ornmxoIq7@sooH2=aG{@LQ0K6k? zZRJr$Vt2wr+#q3tUBeDGz%q6HD0Q z{J5dNmO`E_!o+q3-Ged#zj{RDGQHuXhWaGQR}eKCELjqXc9`py@nA#yHO z)f&`%86^xw^WbR$(r^f)I#7-b$G#npuDMR54v(i`39f&ap9C=pw~010I6x6+<|oLd z=V7sTiRL-6!;7&}XAiasiwlUH!MgCN2Cp5yhgVqHkMAS=rq_{!5G9YwzMS?cWd0Qj z8 z3D%8>fpt<-4VGmNjcxK~@+llJS2d!-&bZ<}R4 z#zFvB^d&^~{B;%?4PGjum`e}!!aLD>1w=D%7w~HxCI`kyhgSBMVw1h$kjUPmcW4zu zCBd7Yha~V=`Uv4&QVUg1a|1A62Gw;c4bReV-cg8FOz#}c6RKV+yT%_D1zG=~}*Ec1;a@o^f%Mm^Tz8AZIi)N&MV zgV+~x!M;N7Yly9TkXr93;0D?DpvfmfZKCcDD8430?#dBLWy9Pb_1@heO=n9Eks)~o ziRt)auXA$;;H0+dfYbK5MB#~Niycj7yqrXgluzm1fel8ioFs~m}Rwrg{!;`!fa#X(m|4DHly{AT#xKc^t4rd>x#-n&W}nH9B~$CZDp^1T`M%=z8dj^CE;sK}Yg~B>rFV?DJhqskeuD;1nO-6rOs!rbwxezT|LncZZ)4e# zCzfva%vd!pv|+$wc;)*jye9LNQY9(t^Yx=zN{Ly?*Gft)D(k~l1%gRZO1`8>7B86} z-RSufW@8vIFbn%nFud@>y%@lM#%#T@XEQrvyfExvM4az?F7LgPGON1%-b`nS^<6HV*;PT|fqaw|4V)g_UDs<0$i`oF6MxpS0X&PaJn$}FZXn8QRQwlxXdn4Z)) z)nKLBO2PVja*AshLkliSvtsRegF6RT#&r>?erq2mPBKn!>pMRp15*P9isp;WBQyQ;uZ&Z zEp{(Lzh4~lSmSWfgUHQtt(i9d7#FcF?e`cLG0bM>MD9m!5JB%e}yP0>7>h?VZVAFuuBWsIf8`TY}GPbnV(=br&wd$zKcci|Y=4?PUyDw9f|Zui&P+?g5f)Y^_yw1Wp@&sSYY#?sDPh&y}=TGj<%63tbEkSNm;dNCd@XSSuBFB&)7!jq+2!d%PxfSuDTYrL5? z>rn5MesoPoWx z;_M$HH&vZuEF`P2hgvz*k5tOIQRd=~4R3Hgvc_+H{}yNu4h}sw_$!PXIY=j{OQYPK z;Vuy#Rno)8yjrKOzk?7HA;dYsf(R2FW?pWKcQ=^ZZ{C~!$Dw|{uKy+q8eF5&6;&DV zt_FMG`~5fbZsCO5xpvLDns040y`DK^pTQ%P%xkKSlhl>sazUG4_b02-W^mCq|2eAZ z3^$XxPJk)~K}BI)VcR+vW!icSHqVjcKZIFy0z}B=afPD!zBG4!-;MfB$dF zx4u0+X&pbp5?`T^-NIu&lqr+C@90a3PQllv?mHQw<_bP;>ElN(;SI(yqb0Msl$M3J zfXRZY$>A*3aY*}MBVn>uSWP;o7m7H~`ioRZ-u;cahpG2im(xOVZTAWK5yg~M)XM>> z^=<3u*+mNw<7()FEA+mZ_eSU!+nb?B?Q@FvFdDefMuwR8y-ZfKfGU()HIh*4koufQ zDgK%?WdubI3>EAl0((A`8GXOFp$}*JWy-GBN)v*S}>%uyTyY#5BtNKPZ5?u zm*{)<{;Pjl<(%@6OLE}`3?nWa{~{;O48N_j?2PJ&z#p_DD10&Z?kA1uUiqX^j58wl zuBT&-`6s4XIxU;(kz(!Ivtb2)sj~loEJqmd*bUTefR1J*fwQ|=M&C-f+Kc~&FH%Tp zS7(|&nWsQT4;BbjWmo@U!Lsofg%qe5yL_U1eGpqilsTWgmG5vCOxYsVuk(|~t)r7e zB zTes!xmfD;9NnG+05e1SrfI)V_T*C7wqpNpB)X0ePU{n>-`6pW+9Ylv_Hws5L*$eab z(aCAIZgaThia2_yXJ$|lb>OaW<{I&n8`4l-H*pT_xmF$>|0h6mk z6`L=F(ZrfmADSnSo22AN#7kqQfM~W@b1Qg}WPG z(d+OGjxs*vn$I-axL1l3T%L?UL$7hdZ>K_ml>E@FaStk8yo41n@4^H;Dlug{OcFb|uP}YhVp>6bOKhbB7}kNsmHFc{agn(Pmj8rn1?>DHl|p9nIUu)6o!d zrOD`Wi7sE`X|qni5X-S)+ruX`KSFO(ezNBv(maFj>ih1eZF!2yPBa`0W-I1v}eL8k<=sC_L*}{oTKSz1o7y;*?wRNtB{?A$8&Z|0UMoFb%~Th^#K>hwnsu&xx~dN;&l zRiK}7SFcU^PX(Y?1oWy1=v5Txz1sqPj8>Y+kdgmX02=q3mZM=2(8DOu56c0axyKVZ zSiYp%usO5@_b#3KN2ms!l771RbhLai8}grrX*#-oK2be3*+{~Hv=Jx+c#)s#p>`hC ziX+7Yf7bW$PwvvIl1(L0=)eUK{S?60_xV5D21?dC2sG!LI5aM5t1BGd-SyxYZ{q&z zfbRtjmCEF38+1>up1{F|r~z+7`*`yRhpRL_*`ydeRiJ*ViW_cfEqSx`hI*vTc`NmY zrxcsO0P44=<0*fXGm=JsyqH}-9z)|Hq|J=R#6~!%19a7Y;b?}u7Fr_)8_)Zb%r7qOT7vdS=MYyBJJ9e_ z?}veJs`2tkXT34d3GPV%df^_Xdh_YdToGo#T0xX+^k-DgFf(h*7cB zk&&xe0YNZUhof|SHLdOMJ~(~!dw3(y&QH%;=NI2KaCV?eX)(k*JJ4Mc#(pX=&&}R;^^JgnlLNP>xUq|&mBRvh{@{GWJDNW3JQt$Wn6%nD}8!}Oga93{7bU(#%T{-$M`G`wkIQv z&DptTOf}?K4(;CTvWIn0%exYTmp^88S0mRv+}bIlN??x6iR#m_RGle(n34qw9A46? znGqN2M;I;6Z&d_=NOBL~u20L~PlFZ5{w#r&oU`thSXr&Z3jY{jWh2MM7EudC##Y6O zW95~=O3o>CORNmnVTFIZIaXo3zpWu~U*yM( z5=0})OF4U%Dc6-p6Pi2ZY*dnII$QQ&u=SuoYkyZDnu=j0Q5+S}k+VT;()kRNy+t$m z{$%-rsxd7`Y)i(x;0By%!0iA1vnu&c)M8D-Bac^8TuYrzOSqWX!C&S02_k2aBP}Op zpwDL4jTs4ct%jGief+cihUgiYLP;a3Up%gFCH2Q0`nUbKexLn;^bj57C?LN~CgYbQ z7=D|-{UsIkff=i?&kTauCDuelhu1sF{H^qs-znqMwSIZZhofX=2 zjt6I`raex9Zv91f(4UMpzrCKwn=~pM+XK4JrW{tjyJ|3-tgff*A42c29{a$N_^SVe zMUBITR*OH#5o&)yXyN&2fnNic=uYUU3*Q4s&3Y75#T)^yjdR30W=0U|aR-2Q|N0~$ z{PY(OG?fZYkO?Kfwx_5pJsLjXVBQ1HtQ`i=Ug&3e_u|hy?qWRcXGxOA(aHJ!_{@(l z+$ZHhci_YW6yY)k*qE;#JwvzL?oTFe(9saIq34jCiL|>+;1{l%{!63YEI}*Izz@f> z0hnRBgg;CLgEvVWF}J9=M8-!8G%=~ejlIYxesS$dV3v5me)d@bdYN?H!e$2CP$ED8 zbHtDARje^0PsXb=t?xph{trAgFQz(iD65ne%S0?7+Mi$;E zMrfF{QXic4{!fO1>0TV5=c6T@$tk%lPp9;6dpch&Gv3cT^^0QhEQueXp4-rKeX?tm z{vr41X5b@LHMR)&m=03bF?vj73Tq5)+Q$P=^~g`!2~2d_SSo7Wskc*aIG5`K>7pE? zS_Bb8>B%#iUfpT{L-z$JFrL@8VUvk=!7Xc`6iKbe!nvzbj5rag;9Zg9;kyqdiK*aS z7Qf-EdroFkvH2JAP>=vtjgdT;YD}5-F&26=GUjsJXRmiE*OMb&^l?f_&kcVcTHiKY zdT}N=o!0Mf?Pf3_r&2+(N0K?d6oHjOyIMRhvu@}sPJo!lV22DlBx^NBm!Wq!DTzr6>@)ra-8{1u^ed~ncwz=9qW%T zV!w?hNIK+9!VI+;^+#{Xo${MCNDT^*GT&eefDC{wTFiZkQmCf&!GqAJXi@5!HCF1~ zva)i^L|NIAnhsQiOr7y+6|+;WdAd#+57@~K(&BhOVsk_@6`wM`r?gNS>d3AHddmz+ zyJzrYjAE5H>uP41?c$@tHQ*HBlp#abVR-l%Jt$i$B2Psi9LFu5JMaNO@l@Lpbpi0b zr~hNGiXTAlpKXsSw{2&u)#kFu<}X&=KSCmBrE|Xd`x{ba7XG9 z|5q7-G2979GqA|LfyZ({OIe@@;p7yc0=O zS-x!}6NOh7OEPpBi+m)w?>b$Mmv7y<#{;m}z#ao;XUxIC#DYfzV3n*bkb-=j$LjA?R+ zQ9MB}qrm=Gx&(Ux=(VCnX|a_%JY9R}(JkokW{BADQEZM=E#r!&ccqXAg6=0k)BEjy zlv!kSlC30T>R1g;S(KC(dDb5e$I~mxfb`~aBjet@`)aPE)01aUJ0>wv;TYaGOFU%q z!)2DzOh}lyhFhf=tn=CHuTTT?Xg0}(Cq}HGAJPt$cC%N6;U`uC<5pslKR^>v;9?Ok@W)%B2)Ya!D>R0UI|6L*{JW(bY911kFv4dul z%a^K-0FZzAa{CfL8SPQ+2bo0XM@Q`+5AR2%QRMuJ2evc2b2NkWm+-rIoO4bwEfn?1 zBQKFq%Ho$Z=CV1ndP7JNw`jg%pUq8#gwVX~ONr_rm|~RNfO>QcfZdvG3iMK}pn+N* z_Z=s{F2{g%bF*PK+EuAP@jc*9!gw?pHftoHL~)QT3rZyV*y~U%XSwyZh;Jz$rN*53 zhmBV#zl)y(ubwgqEJxVMR|h|*3qjbn3_HbWJPdv9f!lRwvi5ZO*(aX*frN=F`p_TA zABK5`{QuFR{FlHPOlq76t=(bih%>ix<8(M&kSnCj(!jd$z4S`eQv(<2cxR@rffFTF z1FEQ>)`Fa&z^<|c?a)-ZyMj-PPICYjFyg)wnfAd4f2;ZyI34AP7)tUNuC*5irxZBi z7ksBct&sG>F2Kfc8&(2Nvlw_}P?9~K6zw+I{kMl#Jev^|F3O{jAh|32<-%jJx5&Ys zWf&;_c@+(k-$K>9rgS6}JU~*=Z>hGI4YDLuX9_8UqIiyBa3{+d&WNiOveFWQA&nAs z%el*_H-)95&v&0V{K4boc?nLrD8L1h5~3~-f7DK0^sKCH068{U4M)&~u#lV7Vu+v4 zxA8J7DG*&&%s8&@$=O%pA?xQi2U3b!7taPC!dj zDcgs>o#j{u+GE1*Qt}}yM=4CysAUw$`t^PqZ&tNyz+fLP7i9kpQIe!+K{s@`V3Nh` z^%aCL%)W3Aef2!JfUa{H)})s>c+*uz>a?SEjm4-rWc;q7`zezM7J8uc-Dken8(utfIxvg9+6dCd&IT@FW$^`(g zK|PhwP9UNsbi*zf^{}Bi#C z)*quN5P?tflAtO$>VSuGVvXUPG3B0*?+zleqB!as2g~Yf$_^>qwyFk>8aEc&QmQ~8 zHI*@-x98@zNoHnW!{!{>;dX}B_kTf_%$+SE<;-kt`KV976#K^yefqn^DULsr9aIRH zi`50Uc)0FEwnnW=*Wt#>Ld4?+oj&KjU0e}bAB8F_OC|DTg%~N&*^7B)4%8b4qT+EV zbJk>aGV&(phocy~PEKMTwxg8|m5NCbO}KswEQJl&(Iaw741}9M$Y% zfz8~-#3l-~q_XQ_i_p{pd>LQ&KS=#e@mLvg~_I+Jy!-t!71)?PX0yx8ztJ7 z!cCm_N}|VFG7=-XMo!%rg&g4FXx4XG&t4$IjLJgR5MH5>ipaC5+a%maYGzqMR2+&jqAl2X#SN-{ncn({ z3y`(m67f^TkdUGPKf{aMP{KqwEyL&tXEea+;g*KYS%VZ^d(UgIWs?C|MsN_czSQvP zf;Tyb%cD2+3wS>VGjeHREoOu{QE1JJFyE=jRYZ2TLRS;;Ke){|{0;xh^_Y({r+l$K z(n4B4We0oI3++4C^#Jc?M+E@lT0=J(+E?PN@DKT0)83NO9n>T%>PFc(}B_8t5V$7abJF3*OSR=Poq1uq)XlniRV@QstL#y&Px zt)n-idbzHfZ8oUwTajoJ+Jn*LG7BA)Qk=7%a9MO7T$CHRFG8m%>d4c7y!`2zo5apZ z*!+mRD!x2CVm?M7x^=d2Ad7>*wl;vy*#IJN9ZUg03z6D3m9B20(dhuOLL`!EsZKi0 zKE{D5ic*&9M`sje1_V&WB#A<2B!Xo&NkO3~BpY5wZPnGNPT=HNC?byUj?MkONAmqYZbnX=*)iZ zo$2d9=J0o`m*~;hJ=;s3udb3$c6Rr^{PMR+8(*Px&mMBBx03$LKJLS!igTie{$dOE zv#_A1UDP^4qDB7|=$T^W(v=Ns!jab>LcnZMF$tvf_GYiAs9}V``qQ_w=?KfCYF*Zz=)W2z7w6w?Z=(Yk`n;vHsa+6Ac8cA@p_#AM)q3ZtJ|)K5pE<-jUq}ordWECPW3f@?mtfS_qtVM@|1Gi=XmniSSS-2cv@@~)2#LsGj1>2R7X^a^ z&%{PS-JA7*r0x@u5%kh=f!N;=E!qo_ryq==PyZGyUdt_x4mq3ch&>^x@nzCzs5n8p z+v}cxeU2`9Pg_qPway!KTb1Po@(^%)h;Cft-`PT59le1!JwY?ybHLFM&cDY$5qi?gEY=2wF!}63!`VI9T6i`K} zQW066#Mc~`Bk}dmJSJ%{R^&V333yesly=m*y!0-S0?=LmC{VT%VV6Rl&|H-jQ}Ro| z55Bbcqd*a*@@@qR^sjufL$$)O>vTMfvOn=R*xPmog;!TTxKkg+tt2pX z-uPND=ZsGswy8RSH_2*29+C6a6cykWZx5H~v^HOE9+|Hx-iRI+?iZu^=950xZlm5B z{5Kaw;J=pm^#o@+S8@}c!9&+`AEO&pH5fH!3?E3JEJ%5i|V6((fL(BNlq&Q z0^LV`KYK39zDVSo7jM8oTtFH*N$S*4Rj`q&W6F%c;D&jiTCx>*OMrH0oyc$^rK(wb zwm=#gG5?;op6K(4mp(-r`TxYlP-$ z{O#`FZPoEVzSGFLS_hh<+Q;Fud(N{z*7ZHDYzRZ#U?zsaOEKY#f`A9XsJkqJ{tKSA zu*Tm}_rz3-b_GK$24Ot`Vm$e~Q75SC>JA#z3ql>c7wC_IS3xN4WBu-GI{s;eE~``q z1F(^MU_i{)ls@s~u@IUm81xhs*T+*N6X2FKbCsSz1EvwMbIimzhEe*EwCO;6LmdF$A81kEzx(>q|;(#^3W~D^Sl(#z|U5P1X?V+ zkSiA1Fa~*(iK-!JKC>*6wIR(%}kbllt*DpKr*$+@yu(`l;%43`*xMlvvq%UYD&px0<9+(c|r>cin+0k)Df&^HB55E32B~H&!DwYaX>#>P1wS2O2 zPgyItWkJst;6uxOJ){wPIQvGpWB^AG%scV0v(vYPpw?sh0)$ReJK|*@wGl(da!FW8 z@6hlnGu%mt58xeO3#l#^=RB;RpcZJKTB0bN)ch3)PLv!|&S*kTER8-O7H1;G+*PN7 zbGiCl#MD(Mn&-^JI&W~c%YmzRCVMXJQauST#_E-jfjEvI+2mCvFTyKITUT=;l%wx> zhRC(Lv#Vq4h4b;?1;irTO847VDbUrdA!!DMi?=vpR@*1vbO90B=|z`cGqG1i_mEF1 zC^@D%o_^nB945QFf^Rg}&>0$km#A^f7(Fj%M|rB-9d8HC$x7OLoe?V1dz;TO|MZ;t zNHgu{<#f1X)T)VjVL=C>SWZnNT^6n>{(~G3@ z?BoQF@DD#g5N|T#aM*!BLie9j)p+_zo z`V`+fnDQi&V`v@aO4+m-4}?ZHIx3%iw>aT)165%Mh=RhJTx?TeqBnE&8M>n6SXA(N z@>i|zdMBqxhbO(KheuD^ofi6gbn0DH1bvMi_`%c%{o!dBaaED<-ru}LrX0LU8-{-c zEvL^e&YoS60>i0Pb}a=?e_BaiyPtCFqfT%A>0tEBTBt+d+UIMi4%f{%Af!+y@gIt~ z`Xol=XNYUsJeYp8`{4(OpAnKtHdq{6FRbfTRcxoyhFn)|HDBM?bhS?lKux;Z+Xs%R z?e`Z~+ssKuWO0JM`4kag8~0BC^DsYXo$z{!*4d-Q4dqpB7eX=2xu-9Q!c2Od^0)*^ za^mDe)P-Ek%{rN1oC6J?*o=I(wnVNx;v~c@M)0N~Vyu3UT~|cSu0L_6@|fcM``yR+ z?_>jJF{xm(CbSvhLL6h0@;!@E|J+2&@;i{J+VW24(TL0|2pzb&+b?cYkCZ!3f%184hc zFrT^dY!t=k@;{pPxRZBVC4J`s)LAoz{8s`&0B(h@u8W_uL=mwBt+(LVONF zBrrG7A^N<9j~0CV>Oh2t5Y|69I6wVHNQ`C8))CZ4~>9OuC@(bR^iw|A_8rj*|gn+cO!=K z4?j4@hUby0EY8jb41o_~VHXwVfT92q+U2v)#6z;t4uV(&hdtx?I}>0eQ6k^C#~tOu z@v5v~)6YRVnK&iANdNP%am0mdEFWR*S%QQ4Msim`l7E8{v;YRXY{S^ zIZRebbVD$+#Lhqfauw0-66pJs;l*N3$?!jl@KPc?-#!5i6wB-|uf#PWtC=o0O;dOn zPg9`e1f(P&V$s8m@F#C#J_JN=7uv3O<<2(^$y3zGa$MF@zpj(!i&an zvAg6n7rkCT*0SH=u3!ucshypKI*X@2O-RULvAfa^ti#5l?zC&3>(8Mr_|F~AO;_l1 z{G^h1xHCD|g-4hYYA0*s>;!OjD}xLgz#=hc0oPi84^Z;1^`pE^c8{h2q>bp7SKO+V zG_P}ZtghRJcj|HM^M2LORdaE*momW5yfLE1ZAj?Wqi%D|Osx ztT?^Xl}f!C&IXhliio(BaOaHv_rF!Tr}+)~RN;QcS7f-}(7UA8>N%2#Is!%BT(2Zk zYr4EzU_Mh!VCgo5U8|Fm1VsrAcmhox9ew5dxAhFLI!QQd_c^<@w-P6J$-2JxKK&G~ zZ*hBvNvaGj;#?Wu@(Ae=Z1bmN-I`+AnY1{G_nMTuWA19jB|AulXD%MocMcK+nZ|<4 z>JSVcKjj#Dd<<1n7oz9eGCbeBy;U6Lq>$;;C-9WkfnZz}a}&o5F{_q>+H}-o3YOw& zmOPvdJvJqq1chQLzFt@O=0iMd)+rM53Frp<2SVa@X;NjaStsf-Zp55Twda*teGV%x zz{i#1Tb&Da`WIfeE)~;47zGzjnQNOh;aQ}yjgjJ}2*4W75$5AZ!G7N#4hCoq4VNVN z@W+4=Nqf^@Z4mahlJCzJNXeLtt}+jQ{}k#1E-lH(vEjZyvxNxe{pAaPI?)-jtS#e3 zn45nXPcLT_Sn@eir+N#41seTy$!})(u^KPBc+)JURhWGrtA>)|d?Y%uuf^@tmj&;c zoybmae)_RsjLe>8$I3iXG-j~N*%5;Wg7FN*Iehoe5LYfARF-1kcf)bQSX!lU?ghD_ z&nCi!O0H>n>4Z3%H5I6kTkGtfz@NBR|NIZzZ4Fq`#Y8#60Q&U5s-#bsE_qVw3>F-PfmJ^wTO$)!Lb5fIM)XlHHGDH`DK$NJ#CqXE zdXo|_ZUqyi@^}mv-O5Vx!}a?Y%~rtP5l+aFs7MN(qM9$X47z4MK<*1JLsL|A&{Gv^ z3B#%yjC0Xjv^vEWdK2Wt#HY^fLS869;QNApK{yZz3F*9k6?lkLchW=}%!U3%WUTY!j#R=yKW1f{L}O zT>)pWXpQ^yubR)B+z^D-aJ}=kGWQ2~RAxSLzlMnuf;1LU6^-Cyao|qu2?Nx%Qs@w| z9hFIiq@l!t>x&9pNwtTcnmq5?IhP;9j`=|tR)O{A=plJiwY})3PTNsRTyLs9MQ@Ai zl_@hD9cVIpZTC#6aegrAY5z^(C@;oWFA9b^ev6fl2YOZR)dyLXcO8bvi!|a@s+!)0 zm7Mhs>Wj{Y!&j7C>NK*nIre4751Z`_i#dkJ622-JtB`H>X)G#5DEw70Trr#I@%oCP3I;647X)J&TCTztJ$QYQ=2`&X z&AG#gzBqGGY|~|t^`<$+x&GZhsiOZJUUEkww9veql~8}!>p=AusVZ;MtbYndkCror zXfL4;MTYaw1W_NHQ+RmYo28VaOt(y@Gaya7&yw2pbZE-G8^I7LARW8{kI`~O8@0*d zJ@Qh`SM4DRfy`GLA5Z(~OK2#foHQgkG3h>gnluLU6?{yBH7IiFOYV%F`F4xF<9MTi z-uC0^sF$j89t-}o(3-eitfTS0B}Ng}GnIwJA;U5%#rQiB{B5&#BdS^%K1xE@h=mGYGo z44UEN;$iiMk;o_m=H(r(-B!cIe`BfckMw;&=s(7u3Ai=- zj4!-@q|?Hmi8KDchs^zP`+Mj3_>s>K|Ix3`PoJHUwER986`|@3EJC?nS$Ui!9&I`+$f@5Qp54auLF!#n5P+ zYK?O6BOO{alq_~Wf$+w9^@-qkB*=VDV`wqlR*%VAwJzrVN~wl*L2q?I}Jr zWsbPG^yVS_horgw>?C{XfB&a9JwJ8Xfil-m^_h4Fho_Z9fhF{#HH8Rg`NySLH7;Rm z(pCS}67l<48k5Z=*Pw*-*#ILE3E7bjAhw7QoR8Mz!Ix{M3neVpMQ2DV5|m(A_wq^W z@rB$E^e|&4SHl26oMXX4gO9j}qL$2O7zuv}WnP*J8Jq8mhC1vVt2YfGe35qXa)auK6W z!)d|DtbMFqysxzt3}*l>KIc?*Geu|?X7VvX!tUJnrXtBz>9DI;%HLCI9VJ|X6%uyh z5m6HmU7uxBDuoYa7bu2_Bn)=!b1-u!pCYSR8>6uP`iu=M$s)$i&13+oAZHQ)(Vn>&V$WM;fKkq>SfZFf z<>jB?t8z(xI_b&JZ+V9~eX5K}WK(|LtiI#c)ZBdM_GU>mu8$!7u1@A6RoE392*pwZh{6#jPKz>xt z=}BQ3rpxU&RLO+Cq@E4*ng1r4f)5lcr0+Y_-+?|jyKBXTVKLu1Ro_%HRsWZchU>o9 zScuYsl}sS#!EgkRH~vvAgqGV&eCVT`TTDvjPD^=roAgidgh=42?c*OaVVGHDS6Nah zW?L}l?SxIQQd>bMAh!_zRr3>;>evC`2SwbuyePEkUp4nW+0j4I#_1o_=J`)oLRz`K zQccj9fXrse1_C^2jR09~Su8QoV)MqE=R#n1FMt5wNAnWx^u?P=GN~G?Iw~MfBsJC~ z^F8FcyWVO|6NpnYt212?QAC1A?rmWKRAnobWmtC${?QOYWu;-Ym~x2ox-W`@%8>N+ z07@99z0XPWOLd-KRLLrk?D0Spx29Jml}Vgy@ot5ISSw{zyc^Sh6f`<*T$!~VqBtHs z9gVOj_b^UI)2ro+P1tgy#dvVG7!Af$&su-cMJF(7XcxOIQSMc>xmuK~^&L)--PPtU z0n4}A)GJ85B2zJY6EV{b-uh{&)CNjHH9B<^;u>G~CtRx#Mk@aoMl~&&|Az55LF8S2 z(50)Xu%QJ1&^&_Oxx3=d-J$#Qu_{GGug$vO-@41k&;@?ccM4!6c;(9!RcQ>#$B3?1 zj;N90BO9Z!s@J9iw>oYMnws$D2h?QG7qwR%R6?U>XL>;1CfwCQ!^G+2EgUMS6e-2n zK{(B5!*@42Q3`P|+qGY{0m{?@cIvWHX zYO38w+qz=t&Y=U`5-8CHBWNOpkyYcefZPd=a>20}BEa%7M3v5Qi3~vFUW;N>SjDW3*#s%adK1RsMhOiM)K=|tM2{F2H z%#s>v%Ny}tG4Dfts&WXDPw{;ogfKMd7^D*}*s=^!s&gWP`D&+@q8@8iM&vRb5T)g^ z0_$!>v#S5#+M(gus!TqDk54l7`8}RzzF8c>-_LWd6@ukrjzFx4xm)l)H${yKfDDzd z(f1saEQkSFEuX4cDt{X(`%uZC6b@eW7p&Ri@8{?vws4Gr+_(~N=sdlaw zbWS2ej84bpVu6y*P_4H60S7RD`N)^CssYFjO z1jSI#IOFV4z+GqVeV1GNWty)uTpCIs!M0;1BC+)%s78K&4NfaR@GF7k%0u3H4M$XzB})u5BrwP_d} zVVN&N^v1_i>n$_lx`nS%3?K&SSESrzMgO|GI{b=b98=DYT7#TBnd=<){_TfV;_i=U zixKpzzZ${eUMAcgy{s3F?D2`|+;gIMUg_c=Rvapo;N$S!SQ<@%Gu+cavh}2guq zr+--?Xm;w4tHkGPo9DXr#1QCoKCxmIewH&3SJuR1v>_Ri3Mx~@f;FSXCE&t8R6+o) z7D$pXlx~d}qoicQrlxj+51yIWQJ2*0C|!!OeLVHcac%$QcpKmFv;@TB<>;+^rmRQ$ zkpMEkI1;TAOx2Mjs+wSE`J56DG;|CQz5-~5U2K5|IK_&*V0rmixrCmX(_f@q}xV!YV<~O2be}MDK0=_Kj}M4L&1g_9aj^QAvZ*C z*o}&ZV~8sOZG~;51u&Y@WFh-UTV?>L3Y@#EEH)$2GMz=wzw5I=#DWRhw^KNJN4yUB zwCLpaYzj)<*``W!40;crD4|51@d|ys&E^@bsJ`!h%C6BYI*ax21OWBALRBBNavIRX zBu^rz49kuMN{_+`Pu2I7T#X>9K#D5+!jmRieF8Sfq6igj&|JjOu+)?plChr|)VB|a zW^OWUDdU5c8}=>oG!z7~Tf;U@272j>t=g5Vz>JC-`z_Av_RN*15lLSkaSU7`r;mP* zc1dUFr)Ovl^<6`q1>{#d!uiln1(KtFI_M8a^+Ld(&B^-tB>*mvSwsljE~Z)e6PEj&u5F}nN*trzY!m)=t~5&2xHymRLQUiRE!LR__p~!Jg!qV zzU8}Iqkn^nYqI8a@nQt_;i6y5aeo4jFgILVzUVKL*ZmYxGj0Pal?RtE5Or1Oae|{! zg82PuvSJ=cUQj9IX}XonrlVwb`CFcW%BOZvL4XJ5Z|FjbqEi06htFN=EQb&dfALU# zp@Jg(U0&ew{mBg$6w+5ryP61PJwaKKe0zUlg5i`MDTdQ!Jw7WVj2Auj6-Q-{d(BoE zUx1EnlC-Yv+h9Y^*{<$?N|q4PgHF0FcmR+k#oST zqRycJj5;;Pu>)5fGFIlRB{1N`dvai2r;$2_kzzPx6>`T_aZN{@HV?wwl^8AL-f<{n zq8Zjd2PdB*U(I8AU(HlIol4~pan&#ZHQyf4+5*7Nrs>MvF5 zPw)tR0EXHXc4J1rmAi&KsT4V)SV4J*4T#IDl1!i16=A2}m5W00HeGU1rEMKT6O#8F zDq>)kD1scW$l7fC`7tL{We#jV8aHD-*=1>7 z3~fnOStuT}${hNHE7y>v&l%cMazN(Ju?zK~Poe^KMCp!)yl`$nNy8kvQ;tdS9U z1l4k}8r6ZNywtcmB);nFbv5#w7~E~w%_t?zcuuFRY&GPXSLK#xuv`l;YsZQb2h^_@Bv3bM#^~aLPd;IF8^F8ifnF92}gUU9?X--IC=- z+t<|oZM?i#^rxxl`zCud)N}X4!3%4Rt`?{?cQl!$qtodTa$d)PR%pF&>`%{l%23B9|VtDC|Rnp7n=A3|e~3-7qspd){=}85)!f!17=|EJEzzV!V8D_#9q` z(qMj8h)^1{eT7_Ixamr6((YanM*n&>TaJcucLRqNDw>oW8pY!ZD4;VtqDDuhNBnfR z5Upyb6wjTS2x1|%?(Xar;x`!l^0GAKd#LJBfDFh7+&d>S`))j%3{(26^!T6bd|8NW zx&LxbDrGgo`(pRYLc9|tI}+%0+FC4T<=r`!fITUaY`9J*gs^v$rURS5oxI>6OV~W33!v6@zA#-WWba<3JAhas)#lb0+Qe*z!R0MTslhr_ z$sc2Mc9W}<@vVI)_acp$&QbE{8lXmmqd0i`U5+fxF6pFh^3>gAQ{8Kw0r+__rO@V# z)T2=r7;jfrS@hORHyO*{j|`|ukeFqf5=iXSZ;eAGo3H?MTO9~*;DcPK$#}pcSIU&w zG&hg6{Nx2Wc2FQcF$XoT9fbQ8N*Ogg-(#*YG~%h5>p5kt^LKxz3O7z2*Rm2CO0BRm zBdTY>Zxt_>QsxY=NY42gpc%JGS$Za6xUu1ogcFwmIgpm44$-M0Ya_rdonD*!ULULS zoOs!OS%zlefxYRSI7wO!Hj&n){>O_9i8!8@t-NG_evMxxgYBF18?hS~2Y5F;SIBZ^ z+FS$RzeSDfN`9e7{lUxC{CM#2iue`_!zm(P6JR& zTOA!>F{0EJzH8I0hffx!9|4ZRbh((&fOhY)TdyGLz8udl`g2^Ccs|N?PLx=CK*~G5 zZ-jAhr<8lAyT%*Oa=iq`!X44n$?DFn_bzYSD0%9F5@NKNLFk%G5~PypL}d%6$(P$Z z$#VpPUsIaR63m4v7vm}Ek!UeKyB<-d4BlIeCddlDqBq7%s$}q@|7w)<6YiqJsV_{m zR;Jx4u{e@Vk)^AbF{xm+yjTf_CBqqH5!GK1IH%~^v4! zJo4dLo3k@U*Z7*n1QL&uXN&1K0W(-sp3l4KNR{O}{{t+u*Hhi9#%{sX9mYwNgor+#si;|m=l z_~WYSzp7L>zPm)gW_U)`qlYUB-P}0QBgr-FTxAuG+K3t$QGH;d#Pn3tUsvQUJEb8b zW`p`Z|3?aAHtXO1%${eH5|sxhYf&Y@B*_s&S+0Q2+lD{{iSBQ1Cmc_VI+?weFjCcs zdW2}ElQhBMGn&`;M{}F_fpbIlK-TQV-L-$6m*c2cZYBt1li72jZO}kg5tq@$%dS%J zgaTBRIUGcrB+fTg1`G93Ly}eA4ezy=pR= zH;ufGAVSGtS8l3&Fgb91u@NUDpYy(yPD;E8iQDKakQ%9>a{@TpXkwb~9Hs8DVKOn!j zlE38VO+8dWe7*IMM0b2ul(g*ptV0*O@iVhhVjv|g(uBk*k-R`}wt_sPi1hM>h)IWo zX*3;;sEQq~MkIq5M=GKP?;J%!zKssJqTapa%6#5(l3rS*d9P6_ywrxFu|TF zXysD`^a3ot$0ev0#BNH)){;G$1dlnPWtGjkj!mg)AO82JCGP>C)vEN1Z%RUBBvFCj z4wOHnJ;NT=+5jneWQ8R1b+bm>%q2~mwRg^dMwKL0OtMD-p9m3KtWXaEW=kPL-JPTE96VSt7TRfRI#|4&BgeRK=J{mywzjW35MG>~!4w_ox202{QRlfl zGXfxqbjy>Cg8n_Hn?Y3GWKLT6c-Y+KdqQ)4ZIJut?GcXJC4^crZh)R*=l(z)Eu2;U%<}Q z>BuI@DSMmt2r^ck$A}sEU)Ib+)gIWhL0YF#%>2pPhUJc8n~_8zGSPOh;5C30kvY4^WY^}mpv z4mwv3-`hk6Vhu`&kv!XQo$;gGYXR56(W?cZ)-ZLf@iT-PF@tf~d3qtMtDpFuMsOQR zkdOcNVNP&y*9k7N&^{3Nau|f%bDk>>LWKax8x$8SXXp_0ZXn$f~_as244k2X>I!^!N5Kl7z7{o#Bz zTON<0oFIPvcC(G!t;lJoyH)nfv(e)6>1_HG<-Rf2cyhLwQAL$al@(=PK3omQ%M%#o zlTD01mKWe!A%8Ny&}|VP)4OtbpI+j7`kZb)TFhRjqXo>T#gb>zUjWI-OFSG5=#rrZ zu!~CZXhdnIz8K6~k~6^(%i-A=o=E)-Z5@WNL#r?JnCc_1eL6sAAf?$KvOoc1;$HepsI`jfcB2Xf)yoFWD7*`sKQJ^c4B< zqi)k`Ui?_6#516h;(^o?&@ubh=oOTUS4$L`G3_p>lpRY5xY76IuUg;rPEL;wPkK)e zkDjzUt-55-3NOQc)Che*T@ui`2uzG#L;AGUV`euBgLh9KUwm_T-ul5LHT{6+{`!On zY_z~c;V618wTR|Hc37PKoqEAA8EiBUf{|qu`&RdmERT{-gR2yroi9 zCqTGnzbtz6FB(0-@ORyd*3%!3RtpNi;J)v2F+(yZ(z$a9W=w?2e$cNc{QeL4 zB?O`~TE3nwUTO#;)NS}Vvy(zdsP>1`Vm5d=T4J!1@$(-#^9ar?%aIgP@aD znLw^tN{kfCC-N^7`H3L@AAcUV|NZ zB!ZvXE^=3+MXHUN2|d?ER4qJ?U4zt~pg&Fcu(n4h>I^t1Ph~8*!iZ1=D&`3oHF~nr z_{gCa!bbkOt*{gw!#?Wh7{NogqzyZol6bUqQKT3KTD^USze?630ZbBZr+we5Qw2*i z58m1KS|FT-nrZxHny)J_6{<4s)S&pvvlQvXo9-&5v4u2EPBxLZJ0~AegY)re6CK(G zJELd0eF)jy#PXC#OnE5jyocmoe=3y<5A5elFvX+fXk=nfFa(6^64uh1r1oa*%jyg) z8n`|epkce1usj?-mbcrjZ(B!NoC zjl}4pGLQMIs(hvxrN&CtA+0AnPt^rE25@vG_IG~?l{dyJRKXgY8L9%$a$z!IG3yxh z(S^jHy*qYttW8=VPJQy3&?e=~Ty?R&7Qa?xL?5lN)Tm7K2XziVUugJ`-BfnyQH)n7 zx~Jh&g(O;SVMc6Z=2^RUuCi~BO89_rQjwG#V9W$iR{;6~RIJd`JX#+S)%QC1-FA>%4T%Dv9fUyRVD{BS|s$zQ6{4sk0lv_&K%VBU0bhYlHCQ91klp9 z1YcF&7}v`l-4rm3^Gx2J+{Nl>8YTUWKIuXYQVbXz5rnnRJRc$8VL!sNmU##5<#2J=K7;0R`a@u(L3moD3|8S>j55hv z6t_>ts8-sEAGwL5SL-o|aY&fw&d4X?GNCCb#6*bBPONdQ)?`gpgBak!KXJ!X-aERp zdDC-7SPf_xHh)IEy0k8!=PO$SK{ zw)GLyDAo=aS9+WEZa6+Vjy$aST_&fg^U!X5Bv52ZJ*Tz8QV-KzB6yT7N=Q1#Z$?VWc`pO{0##22#5U`2a^S!9k5Hch zd%tXGZrM7RVss03%ZBavZRzSc%0?sB zqK4Q?9&ROjpML7RuNQ1-p_zSacMIKtk57k89ux{uZiy5O0k11D@(* zj~nPc(1WrIn!J+*DT;mXs~NqM)wq214whtTS<}O`c`*HG*M6U`Hr!BB=EomY?gqKa za~!tUGv}E+*;Sb*ul{qm zizOvlBnV3pi6ID;vNw8{l-;E6&`;rYMi~8?A9GGl4JdY%Jwb7p28__*6=hW*>Xh`l{VYF3!KR zZ<5~JZJnSAWpd!bgZ?rOcv~h)NH56$4qT9$R251CxaE&ekL!m8GV?Tl^q+owe)^OY z;O!ym6ZMCSo`S{B#r`*EXnetvr1>pXk;gplSY>xyfn}Go`OP5a0W^MC5nX5zi6Li#> ztV+FdEK?vVpX*Y}&dMw^KP2vgrUT;T!1L}r&?`9YwA)0lC*w+hyMof6xKF5c-m4e& z{l4NPYa%L4n7tVhq}A7NP;bqxoK`Nc-hCrXowm62fYk_s_keLmxzoI)h@Jg;Hug{D zFi?9%y#!2@L$uu^jcV)3*0)h$mDUm%HBNC%`%rzKymIz4@u>%Yc7`yf;?A?LZYmwP zL65EE!LENbi#OYlmj)dtx8ys!Bl>_-j=*SP9z-!%xV7n)GAen{Ld-8*4>oxy<<$IN z*lha}w53vSI8_xQA58UH5vv2_6yb>=~lf`M^>s~h#)pJ}?B22Rm zZ?bz+N)^&-AyPVZH5GjhE+EIr-FR&^a0XZX0VQEIrS$gA0s01x7F<%mnMvNqQZQ-% z@w);^k6#KH?dsORywlB7ZuN42DO*e&^%^{8=aO63_8seMh{~I)9CTV?G1Ud$4P<&6 z?xs}=GHn}?&7`qbys7)fI->U+0U>NaSWdKn=3}ZB7 z(<{C;43!{wv_h>f(ORki5W#_6c8P_z($a+W z{ji=b4O@u&r~Nl)xRu7O3-tWTLav1rcJTD@+uqrE>!{sD%f(>mTwT^{KN_#=uSow% zpZmCV`)B<$#k~c;#)U#i{Tzw*br&Jolg465AA)l=qUS(T+K7 z@TX@hXv~H<$L$Aay4?1I-AfaE41ob#`)i)M^|kG{^ULo|{7S7Vv0vb{y^e?_hISi9bGhCLn z9!lb-V9LqtYR(LhnXwF})?G&R5ENc9)mWkvlufwsfg6F7S0uQa+IBulXRF0vbSw2O z7^Ku0rQbP$;CePkh<5}oAJNrajV}6*?$3rMO0dZtC?m3l>`l~f|Jl?vGF;3?F|NA1(D#${P!Zp~1U)nxaP{WM3D#jQkAFi5G1@60tp*_Vz? zcP$Jo7a_fbv%8%;!a+K^cburmg;wU;#$yuS5XV!Z`dR7NNoJt9){xy1^NF_zh;w zUO+9eMtkA2>@4<;62mKxQ*bF%PgMbx@qx;sG`usY0jNwzSsFhG$1Z^t{fc*`Tfm>VJnt$Q>2BS1`J5}ti;o>~HYn*JA|E5>{sD+0RR)^ z;;6&{8{~AVHfZefj(egZi%sj`J$>|hq+j*g$ME8;t<-?TPYQOz!lit9x_Dt+yV^-C z?Rum#goL(qcFg^c^)t|i+^Z#PB49zBNpis-Pz~nc4RA@0bLZ+s-7k3K9SYG+CMST7 z45y*{i^M3cs$>LMA2-p7{GD^BRVnLo}8k%Px8L>?CtT<4C|kG|h(+1!;_-&aJV>?X0;7T?4U--t+Oazj)iw;swKV z^&G}xdEZU8@1oRht%Z1fH*Fk)E?Snm-+LQJ6$L8S#}PGn(VDSRLq;!E%q^T-s^Y3> zi(v>?>*NyF=Zkag>0dq4wDo)pzd9^Ep9O5Xh?4bMz?qcmYrf8h8dp7#T<_&`+qw+7 zrL$B@EvIQuo^##iWgX^qZ zODbjLa8}G%7)*5{jo6TBDap&nvhn&wMky=jLWhu^J&T3?2fLXCg@^PyJt9|_RdX95 zlT%vuYDhyoRqm@Bh=)4(ZcVpbkHxqThOiCxHdDz~F;tk*=weM_j4ZP!hsWnp!z>ay ztp#^Nyc4>eK0$7_s++3ORA4(~JU`wbC5_nOLK^N;{a2@rM=0f+HG(gA)RP}suM8o_ zd!rOcDtP5;5+S+leVXw<>C;Xnw@cGMbj-~Pp)5nI8SRY&jsJMogO^-d%f4(_+|A%m zKB)`|ZHRGiRt81h4q-`YOk9C11B`D;cgMz)@T$KM9Ybr4MMk(xZnxeh`=@xYzm z2jI31f@>-bMfw({)PRX@liB**PEm0_G5xaQcwF@mrj`KxDVo*e8`7oO%Hcb-o%-gl zp{dZ1JIx0DJ^*E0;kLd>)7trBXQzCxq;Kh}j_wg#*vHCt&vOOqhIg63G@p>&jy8}$ zarj<3pmsS<8wuNKLiN_g@~A(-1liA2Q63+m19&fxET;u@xef~5aED0Tga{01FTOWnH=fDOvoP`ZPFpY)ExT;*MZr=OY; z%95y`_&%7)Cl)^aqKy~)JYb;5k1Jo4-&F8M z#TFslS?hn=C|6&;1aIdlI+o!h&G3>0n9KM+l)WAiAi0xlkSq*I436i+OSl{^7UQcc z8@wn;^I>A+;X;CI)&p%y94IDn3?xVO*n(-L0WparJ7_+oIW6w^@r>G~hVjXbAJqhC zGXmjkKq-RvzkF}rpK<-i5K;(!zW43-=KUGhPtGRj8mE`<9|hsmKO+_-4F3L6;LZCp zuD?ySH}nbnu7zJa<>^L4SuhDEtBsWqd-6i;gk>4$iaq**&W}LuDG2({Z8AXdqSa70 zl=#k+dY|0^ODtPUbq@g6BxoQ{xu7rTf37|#-z2yz9Y0U=;@0`+=?2GBFBko*Yp6|q z$_YjRp39l(eX7*D4Eiq!@nn-eM)67bZgBo;+FPgHsTQM-zTT_{ms4RSF8Q{81GiME z=ToQ7O`n|a*Y_-iVhdR~RoYaKLl?~&MK)@zsl>@P7(;j0S~p6Jm^1pK<1)9u z+$^-Ln`6mE_1~ND zs}_S!8}b@BZd;Qk0G91va{qH)xyH4kB5V~)mWW1VTHz5arUZEY}n>>AYVM6}bGRKoogH zHoZty5j;5pA4z_vo$kf?VY_qTHgVNW)1u4A3?+tU;9_S7bSNX&tswID^7Qre=Eve4EJdcji-qtxBd6f)5Bxh=Sq?mRw$zd&{%+|IPB{z5 zoh^;n>zA{KAv9H%8LGxHxfVUp6q9BTGOfb0CE+Ayn3yH`^lSUJ({s+L)$S%8TsxG; z&O1r#q}xJkan$p%$Co~Yt7wEP`18x_gXB!Sg$_t3fKm65R|CJluU`#jswetDWNe-` zC}Or*BcGROhBXnjjuXt)8*BOq)Gx}@`dgupjN(|}Di01Do2;(8HA6j=2JYS#IVz?i z8V!aVeH0elx5*d--SvGR+r6ZED&`w5n6i^eZOTp{+a|*!vP5MyRgIK70uX4k?nfC1 z+oWU^04?Wsdk7nE3_Z@6YC#~ej&{9uwk|hHYZ+Bd+WhRO}B zFH|T&wN13G1cS&i*+`e$_!cplKc6iB;?J*^sC~djSoV9WM=P;7gm?n?J3T!_YDhap zf5;c(`J9|kJcHT6x9`^oQ(}>I zX5Dnl+(x3BWF2lx(g1mAwow^r`wXL6!6%MV^WEo;{_C`PjnnH4$C_yI8DXG z7tEE>+&ie_wM55V;PiZiBM$dE*e#|94pjq3`V)Z@0jyFLGv58|^Upuu+x-lMHY~;S zv49*`s(Tze4>Azhi&-Y)Aal7(u9WY0FAgudz2n1+7Bkxr_qf%vU6Gk%fI%ICFONkQ z+q+JE0N1mcy}iD_i}KIy&T;Eo6CjW0Sra+ z(}-1Icnl8)=ZWf#*H-R+-8E(ve+OCHEK;qG!O24s>!xV7Tp4E+In)R|$Y2F#ypFVI z=%n?Aq{94&goy^)nOUbcf9A|d6S`V7K1G~Da8t!Ex#qeFvs#Uh4B|%OloS#A0G!OS z$}l7gl35Q`TI3>D(U>=8sTmudfSNf=FTrK5C_&sYYgs7XF^3Ue`(T{jfE{3kdvzP8 zkrPZ4u9H(`^KgZ8v;wSTUT|HE@gLoU5?UdaYj7LVkc>&pdHm?;DCs^q{ia9qw%xsG zA9b~pEtfm}BUdj|YqeU#|BMvyNLI{U`?@Y(EJh=Mq$*vMx4I<+6~(WSuCb#&Sd^k$ z563bz2c*_`G1uMoD=7g#_ogi)0W0VIMh-RPi-0|xI9c{UBX)byPpMKjo(rJN2u2x= zUGQEppOB`|jij#g9x;IoE)IEqFUjUv`#7l-EYO-*dVxN&vjuKmXj+f2cbxX<3K2i) ztvKV?msn*XX=KkHMHXDZ%|C|%suZ&Jg0o0K%j5$&US+q&Ei0aN_HYC~Wtvp6Sj?O3 zEju54s{Qt!!LJB-M0d#L9BBFyhC-kz8$6lMCgZ`|-iuLxvV75_b9ThW1z|BH3@30N zG2JN-_Fw;LMZ4WpCn(`R%d2RVs~j1pTCTC<-($-JVGzy0my6quUK2f9R4 zibCXrNzAIt)9<1+OmbJ?&}aY)*}&zYDe&24$>Jt9=3o-FF$44TXg0)ocxCd-S#fsl z$D`Ae6CC!Z9b@CLX_FwbEpKMb8WWsWB9WU8jsgxYHO0vhBIcoz84iEsm$}eVx5`4+ z)yZ)7T&?GLlnxf-xm!mrJbI|qWqltzFtpEl(vBo%D#B$0QSMacxkUt!07E%$Cc zoOlwkSwb|i(*({S#C1*9zPfH~UHc-1G&=gKz37LFC&1Yy#aFrRf*zuF6+6YXLwrVV~ z-0Z)%1$Haxj{k<6QUYu{tSEYU@Ed5b&avuM>EH>OF{6Q&S}f1zz0q`ajYqggP^zVl z9p82#!H{l85NBBRmb4Zjyi}7?NHWs=7f6>HTmdR_B1VRnGx^ZJ;Y7D!K1%8z|Lxx2 zeUHw8iXfWxdL3UQT75yelnD~yl*FL4O8odE-x0;)ij!j)P~#?G6DdF6)j*)B-k*S9 zY}Ps=TR%otl6HMYu0a?nK)pcNLmHm)9Y|1(L@g1$f}l9S3`G8L8JpTXrw8N{qrw1| z{qzXNSHF*RDDP zXI1hLTEty3CYtj z8yzeERYS9me&wDK@M_RO0nZP5@`5aoxS>s5Hg}D1bERR9nDxeL5Z3KUKo`r=?A&06 z&I~T|vXx+m_|(wUslGmwKx3Pd!nKHMK(D{gzdQ1o=qWf4BAR`T+xF;0Lo~|;X5BUA zA1bB?8Ra|lW|x;KI$HyL|9u+EJP9?7s^_3U!{w}p7I0VSYRhkA-=V<{+>x8f!%uP^ ziw#RHwf)B<_#oi&7Z?%qL8jb?AFSW<24d^9q3z>V=c0Y_U1J9_wQOZE}I8?V4TTSP)*9n|=AafB1pHvqw(uFM~x2fKpw(KN+kR>1;t6 zCdjc(8hm^6K0eYXO07y})5%+Wh5$qA3|_`hqvhZQ|BaQ+s4uQM-9G$)+x#X62mA;- zi74`lyaH6G$D7>Z7ypGiaM^HP0gk1NN_JJ!l_z`{Bhyx@hRzx%OH8*x zXjtxUGod%lUmqpQJ^l_)Tq5Ef!5{LCcmPlbGI$fpYtMOV4?yq$k z3?<-w{2Qd)uLjH20!i_U+3Vjz&|J@6jS@QNJ|-^!-BDR4zxg=nK6`|8^>*hg#rp1f zu$A!9DQO!Y|7MC^_s7Niyc(bd?I|}l42Mx`%Z&|vx;9B2ZzbP6X`xXj9nJ51^;h5t zTDn4m!r!!KgB-X1UD4!drIJH7V_daXx} zb+pqhvu?MgHOGO4>J(O3-JoaK&p=uRT z&>W@T43f1tYF}o1Eg~xBbXt^`Z>QV*qgE%BX5Ub9V2g?*k#0(QwWwluu36l{lq9+G zlngce`&Tu7IV?jSRqOf5@ewIjH|HTa;p|J*+(n9dv^lR$wc0)`#%=XuXxBrm&GEDD zX6DeH9!8sWrhE}t8@x?pI!_mjONUu}z-FC}P8pA$Dj3KdoO(3q{k0%aPoSCS{PE1E zsMlB$x&PgNTG4N;&~UeIeQ~kok5y1)^AYR_gq5x+P_v0E zBKjt2IF<6QqzT%zF1FRgRN|+Z%$<*h0GurFe4tub#EL?Mq=thyaoN)VRujcvtr)9z zPz)I60D{!V;^{q4do_-K7Y<@V^v~uSrpe2>h3W8tunbii`c4xj=#-v{_?e1WNrm_d zeaE0I0PM|3P-y_vFtR940IJywMdjXw*rvPs>gBgwx3;#QIz?U>#kVSL%6i@oW$O!5C!_axgLVE z=-lK4{H=O-3%yCx?oZYIvo#kDJgF4rp}hJ8!SPUmm*li4k@cO+QKd(S^VNKNLj1;I z_o5vv!%?LM@r-svfhm;U?d}A-+ zA_#uQ(a3x$lZG*^>{?>%*`w}7MO&25qo~}7s?5mfDjH%vpBgkWyFyFR8V}YT)ajJ- zDmWPm+4o=0w~+$N(q5?-0l+?+@^Kf;akiLUE&A75LU{D0gg@S(M`F}k?f^xO0ud6f zpf&3+NAqPuE_-}~j$q^G~KOP|=0 zUywGb#8e45a6X{lZz!6J0jMS~O98Sdf&|-V2qtRsAW^3KUsSYrPHvuGRv|~GzKJMB zH<@G#qPUg=DzOkWlq-Onl2T#D%}TTBXBY|@XeQr`GRimy?XYv~C!QI6ITnJ^=z_U* zceIl8?*V{4o$*ExOh~Uw7=%41`R&}fL&h`a61ATkzka7NYkkUS=O#|6lqI&L|Rpo3O#HAWxR0p zNi7(8j{GAnRsQBPV&n1o=~FKi>1`@DFk zoPU-*#P9e6wL_gJ;jt$rY24bko1$TJUTzM(A&d#K$ExHdbL-h_GN>|C|U*mS?h=MpQEKb5gbN zh=@={>0g~6qWYKcfWJ5ucT~UmoBhpUTfd~X+Ai6V#Tw!}70AlFi4uxav(ks$>*D46M*o3z1Hl>Q!CMS|_wy8?TCTZ+C%(FyN z1|r0AV&mxH{Pu)TES$*8go4A#>9dR0dGhOJCOj1) z`GQm)^P4Aa=){eK1Adt=Y(MMTavTqKW#~t(ui71cq5XKx(|f_wJ}p-X=v1d#r3@bs zauAY$#~`8XZd(>tEt_+@6Q9OGa*S=r9p-1NEj5#|`UXmBlid*XWMj6yf@8<{csc$a7K+<w%@wL2esJ76JUKZ%BJYCp z1JRPtHcm!^p9X>SY<~8p84u@cuJMsGfWVL-wRlkUCkD4!)2<`!YSfmbuD6kYh3{7n z9vGjH8qDml2iAd_uyX@K9!?HXQ}|@PIqZ zj?`uILl0Hq8lu=U&ZdEK&8Mhm_1@qAM^)~@P@BTz(W~(Q*Kx{J1SEnswF01L+X9@M z%lYt?Tn^JIcmBly`W@-j9bn%oQfR(-pU)XG;wbALs<6)9l^5vw`w58@==ZK>|7PAp z-YDvS&POO5LQ6mjc%BSM+^cdlFtB)2_9uw+UWUAj^@PPR>2b4Xd|}LditOOM4b+7w zUr!a~2vDlzRy9>~D=L_M7AXed!@Tu%e=*jL7Pu+%2uaM4Bdg&hO0GeWOz8_;i$Dr9 z^g%c!5`vJvp*&yuJS7^KUGm?H(Q<`sbsAB!lE=6~Bdwls^5B{VU8vzFuTj07R1PDH zuz}eEhLp{<`DiwL3#MBvnTIz~=0l*W&M5k%YUU}1xqA-&3B)ojDUaHzijULf z+b@MxJLkH@#Mp-5-|A}b1u8AU?)nhuvlC|Uk_XoT$Vq;80bzg?pT0DD;5e>ToUA~e z(|z)PQAHjcKSu?olCnHn%)%4!!uT1=YI=LKJ}1z0zCej5F{@JD<3t@3+Hp|ZJbcw3 zPe>4S=l#KGlP-jAKJCBZ|Dx>S>*b40I$(?uPqk6#$K-M{>o0M5Xq!R*(0ql=iq{|S z?(BWCy(4yGtVD#0Zs;gob5~+x92#rZTf)#p!x0Y%JH;Y_Un*%KeJQC#QnUUkC#Dm7 zMWxo))QSWp&_`J5q%8giungsbYfyKv-TzGtUS+Lc%(r zKHbBvlJM=(rNCaFTKq{JLYyZ})skBSO;gfIR|q)Ku$CcA%C-Fl%Jvdv|0X%m#9TOx zVwGSdn~IfgLtfLU%?BzG3;*S-B<2@)zDQZ{48DXb{TW4x+rYd_65CQ()Lt-Z>=;iM zEm9owf8M{Iqw?|_s?CFIy!WL@eY$jzIS1mvUR`|6}iMej`hgJh9a5#|&#x&_d7$AYEQZY9^T7OjeTB zRo&H{k)2F3vWwG9lFeXNRqym55R7;vqcRu~9WSCXIgMUGcO3-iB%SuSfFJ=nE(VJM zq=inx{tK)BU`~PnK?nWJ+|9q9zmMQoX7#Xus$#t7&)nSHzTDj0e2KxJ)IL?*N8$aT z;(i?E#WY}NUHn{Ey3G}CB~mRSYtITp+bVPsSoi0MStcATu}W5#6V+!*JQ4QrzBA`{ zJaZrCa^^4I-eF$u7PC3O0-wtfGZwhDpJIs-%uBp`#UH{+N?N@XA;ttzpR9{C^*-F! zE@lR%OEJtw8E60Sr!|q-&B(VpfC_q*4u(C!#wlh$WKd2hTXsUA_r?P`z- z?69m_SS~l%p6b%F+ImVhr*H0x`yr(bzeRdr-R?sy(=IVu z$LNe~b(sjCrme<}_zcV82P$S-W2W03R(y?8Rt7fil);SO#?V%+cbrK+=B9T~6Z}n#5k3mJkaZ}4 z5j&orKdn8#`eNdrnhy1hE16eQ46Ax8zw`RlYM>n+sj?chO@_mJ!%6qM;cUKu5~Q^g zXF6u9xTUeT7$GH3|AFnTPI8**q9FjtZF$Sg{!Mi(@QO_B3C^OZ9W|A*_$UEmEvCuI zB_a>#g|-2gRFGHHP;o*iHT6BB#PwBWoDf!De&2|3J)K=f4XwC8Sb`L58B^S~>0Nh+ zkT!dSYl(K9H&tQ9O&rx2jVQX^$H`s9!gx=Cd@HW8jkCOnn<4N-$BC0e{EY|~{Y@=+ zL!iK~DDysP!Kx2&+r>s?0UHM`_=}^!o@do6y~_6wwJ&*j#<$h0&HUP*R=bfUZBDDX zvjqd;#qpkgVlQuod4KS)a6ZG|hic-U=Vtt#=jKVT|7I~ol(6Y+BQ|kc)B&eSG*u|H z_br7&Ik4~BATdF9Z;`_fh8pSs1aA_xnitvN1pCU9b<=5b@@AUp6B`w=Nd7w$W zh-^;;hgwZpoHP@T9yB*LvE@LJ!<}>9W()w)_0b9p_&|TA@WbION`p7#<}JW5u+n_N z1ni{q*T``aP>b;pb^nIuio87B1zJ}?<`4k@?;5ZcLlqaOh2YEKEStaVT?|K;$|Vpa z^>((#?Ub5zPq|$e3xSi|oe^eIRS>wzfEh_2uAIQ~04s!R!KM3js`16eM9ZN|V5_lZ zuuCAj4MzosK&$b^)+IGuiozOrHP!-r3B;j_`N9t22FqJe*!-q~J=^c5!x`_#B4S`< z5qdJEvzB`Daovt?MET^wc6v^hI+N4+TU5&Y3JKb{o+85cnQqbjj+<1Ar&Cv6MjEOM z+z+U+Eh;RZi%mCQXX&h-3Nl%c737q$^Ti@xsS@*ou`j8H1{b83L5Ud^&8Q2W;!QQd zQ`05EzgP@Mg8+P>4-EPz)V3!4W3be}n2ZgZ1u%)@x_^WB6;yaNKYdk6fQ$L53d_~R zjrHJOHkR3fl1pd9zF4D8;Vz|NM_JWWk)o;rjx|*^wC(e>|7MDsgLPmc+fp~~Rzrr^ z^BPTAz#14s1E@uvwy*WO*hZw9GC$CzVFA)7j;1ldIe7_f>nI#;yeZ+N1hhsMTVAty zeW)*o<6(AQ4Hi{;(XKvRcmx#75N;#Ajh#*0d4!ZIJST@(4@);x+hObvaRV+F*o512 zOmzb{)c!_uSO4DBzj4-#-+!uqztq2ftbhMf|Nbnu^^w<>9UylwLse5jIuKu!aYYec zYEU7+=6V$EvITJZIKPQf%eiCvq35#g9yQ-fze{mySowgWX+w%ezEB=!-vx!Tz<^aT z25sp>^gLvB z5p6xVu(KdTKDM5R`l^RozGKb;Foe)oUW+QW3xf;QI0{#j-Cg-CRV3Yt-^)?&49gqE zT6Tg@>2W}#oGFhsyB2CNSpWS=yOjmVsoJo>3GJ&8i@q zyKd@Dr@2)sN_i*piTRDpLs43s32W!Wzqs0Yr*{FJV7y6eTxx;92J1k*^M<~u{ z-$ElJSTo0Ii2~wHbt_8dRL$zaM_T9ZnAmKT&eK=O4kcZaCj#AGh&)-{4twD$jkI>qlpNV+)FB4SkQVguPx) zka?i@+4E4rt|*j(-Dgx!rk(hDxYF1ul>W=I_(Y=S$xZ4c~O@4{*7@*ekzkS1O87 zXQFhRrv501QinBH0ZbrXGUQePwb`J~av;YA;evpAgCVFi3(IW?;*z}!%23bJL8b4s ziR@4IoJk9*Z@{n=GUaq6PXYr>&AZrP0pth&JKQ%_KTeCjas60&j#~F9Ms=6LTEFLH zHYXge6tlIG%6^Q3L?s1iWL-V9>X6Qn`T%;(_(jlLdMy|Lr59!*;sIPlh~V|h@{-kG zr7xp!mmzZOA$j`Lf^Bu)Jnbc{q?a6`y2Fl-*)h^Pt zN&0ZHCY{FW_Nh&XQp6iCTouU;T)|e08pf;M>`h$((>-1h;aufLKx| z>EIY;H?m%zB1bZ0cCqzv8Tv^IbLZ*^`2D<3H>||f4O3L$ zmbc*4Eo^j_3%*&aNxGNUiYgHdL!YHzDr15;d*S_6GK2AbyqVI(G#J>0>{P*7ZX-`? z5sQnnT+Z$BQYXtB4BBe;x2S>$3G$*CG7Y5O-j`!E4w3)2GsC5c!eT+tVe@nN5DeZm z7nC*F9nfcnw<^sO_2f!U{f_cB$@CiGXjRvI<*IzmSvr4I%&qc{Xb#WrgvHO6=W&-W z!VNACdolK$a>b*GXwwRo_}5GMtIFSae`>B}qi|Q(Z*~xrsBk6qR^XNeR}c_%ofT0p z>ws6mRh!PInC@HI)EB@@Y&Vk*=ER#yMrB$M;}r2}&gjcQD^b7_B|TlIy@2RKP3)RU zWvI3g2CsS+f+jv4yq*$rp3{}LJ!bY1gTlg+k&gOc5v*M&o$9okP&cnzX`*1#$lEj0 z9XB(b$pVojnk6n_OzBHP&H{up{z4^uay{d^gf4-tw<~ z>gSzhGPTsU(y;T~kuhh;bquO3$OXcb#}KL)(j z^>jtARB3HzD5ShEuB5#kWb$rlOCOPB=_lVAi0Po1)DBTH836I^Ag4M z;w01roVL}W@;2js;Om-2o&v3bX1Z-XWyW;yw3z5vgKQmzrKMG^L|y)mdMpZG5n8=A z&C5aF9Ej}lYPPH!cFk2cR)p0WxJEz9w5!3mYM4k9?jPscs(=Y^#VZ8#_()Z&J4JD% zR_(y&-#^CvusDxOXA1H!s{Qw@SR{(RrzLX!Y)36rOU}xMd+?$LbLPh3 zEHf!Z_N7b*CRf#e$f~?y<(I$tD3=V&>H|IVgl1P+Wmv6ZD2OAqe0~>HY`+B7HB!Q>(QXMr?CepIS4?Js#FqZNC*>LIxh(c8)*?|Cv^}Dn-j927M zsYJ$_n3|Nh8YoMiU{Q`F@HF7+CP}_Jep!`v2(V~{KwL@6VI)MjVxU8D%*-6}j@r595RWo3m^u4XY>LAvC}U$=@J8*Vj~ccJkRs?!QT3A7lxY~g7O>H8 z&CB4+@nmiaSs|r?2WjcWW!31gHWgLnP|&!S~Wj3=wdoPSQ|HA>?HLW$>lTjQ7&JhAVVFJn4OVF=UOxl{%~jz&UtPanu4! z>B!5f^EQ-zUDon8B%jVkqT)O@?7T9UF+&UmVj4>j01xtY6t`*j_K0*ecEahJ zqdqtqY7~YW(UoC;HX;9T9Y_3B9`5?9-WZ0KZsS_-Tujz+Fi6g5a@u`LV2!CXye6$Z%6z^UH z(8R6j>?VUDhOGe9CZAJ9t_$JevS=xeqYEqPdMDh8a;}uuTBEcuqLb{f#fEJi)(WgU z+KCmEhX}o>A&Yxk0bn<4E2mc=mbp>!=lt?ZF z&S+*YdMi=GV=I4_^rscM9sa8Q=%zeFlLsw;ik5!H~Dabm54M+JawfHL{GM0iqk(G{& zEFbH1ZjCy73DPMGtygnFX+TF_c|}=4K;QEa;3Vn9c%kCY6+z2u8XsT{kzy>JC2?(p zYl@Q#zlJdV<>bWLrf|jWPpev%uTj|!1Xbp%VQac>m#cc>Kac5;;6L)N`N*&MmM1EZ zsxtW{CR&ylb+`=&OI&p#3{k{wVR)fp@~~4PA%^XVjxb0Um8vQlpQtk?6anCfSrrLA z#puO2V!g047YQ3y1|Hm+p3Sc>hOAu(H(qWPkps&spZmN;S`5M5wx0C$Yg)K1)ekTA zVtx2=n3#Xdf!?ysJuwST!-!g=C8f_?=2v9*9z|U6&wsvD9TydsJ^+{XklK0Ip=n|Y z)vt|CPwbLUB45SPDgp5EM|A^M(XcP>3L1{Oy}s+z^1sy6{tM5f;i5TsTw)#38eCa8E32C_0-FgvRN610gyS&XY-xGf?O zWayV!5S$*TbKC?ms3x8?jFC^?1=R6$oHN<7CxO6iVdzHqtsrhIuURE{ky{&tDT>$x z-#S5?f)etyx@i;R?tmfhB3|Ql2p@+d9*n^;7@rKY5@&Qt>`z?^*7{LRyuVgTf`{6n(mS6VJ)0=q44}8? zq$z{tX^lXF2M^OMAc=h-GQiGXjqqp{XWxTr|T{IR5ZJykIh z&k|mHa$b0+u}2=>&JJ z(+j#=o_%KhHdFV+4NU^^VobHjP}eKN1#?`Q!OO~}a&{`p830lkAnoYnvWrAxDvM%c ze$GG`6Lg2VfxVF#L0K%&C2B!D&~0*+m|*048yCFIm7nGS-lv|gYknD5XV&Bwedg=R zwI7u%EIv^|^(Qc0;gSkUe~vpp)t5&6<113qWK;}z%W$gbV$6FKaE!YvI%zYH zxG-e22S-3E0P{)$;!+zl>wF_%70}@T%@@Yt=IIejX*g!h)Zt2-`g=0Mm~jSH(c>Y; zg0efiTI7UU`K}dAPd=+a!_i>SR##MkkEoZ5PKaGc#8Lvfbe@Stm4foYnqP$$>)FF) z>=o}Ps%75I8mio$F9~E}B_C3Dv=d9|=K8*0YX9&hVltiHX?mbH{vOiJQfRs|NRe(j zOOxke3rAUh_LBYp7t z81KiE?qo5aF6ds={igX9xnDR&D>oxS_SK-5i}d3%)t3f>=ST4~k*|Zh5i=4Q`NjaCkLvD&<`ukQ9M(TD@O=#j+7# z6rosv@=a(j@#HvjMaTd06pOX`P`E9In@77?gB#&C0nD>kNjtaIhekUWw5}nQ1@4b?rFdH;lVzH_#PxV9*5F2XO8~PP zs9fT>t=_XZ#t@H^%)|L690KXtUoPbZGT!b3A)AkUlyH8NrMb;p4p!to_(|H0*R!!C zk;>V=hPv~;@%fV{4d>pA?!{s>AL4$wWIVwg^-bh;U?rK+Maiwk@1Oi3`BBpR#NA`n zAFEq4RB0Ps@mJlT(Nw#iEro+ByN8>p=(-Kl7x!;Ag5$XhZd$%c&e(6ds8m1@_K~eu z*|rvnNF^06T&W8OWs}@GU+9QQ{eg8^Zfe?%yX*&K|NQS#Y~ApTe;?I$&;#6^sKKOe^ujKN}AxCI+Wp0 ztZyg7sP4voQ@fkMDXQOB@L~N9eK$xt%+1krrb6JWRB(XErDv<_Oj7K_IwO+r7*}ng zWkjXZ75i|R4t)c#RG0pzkxmVfBY8A*D*nNP|LGqslSh-!`{ZjSZZ@Yz%#?Ral2=dF zO#svgTt5Sp0hu&VbzO#+3rdN8)~_(dTI(i5GDIgMa$U+==0zv#*YLPXGqFK7*d#%T#S=~ zo_dZ)fs@nFU()E1Y>Qf3DxpYy%;o!T!pAY=jEF3iviQ>*kk?n~#R**>KSZViUuS|d zP`?`;@J@5ny{Wsbe#ukRM8pw%h_ZxRoS; zbfW^LLaU3|vUG%tlQm#PYvL;nMG7~6QuLL_ElcPX6eU%Za@5O3F2kIX`YJi-?e#3Ix%|%UOq_LS;;tYz0ND!L-%HgbN1F8cniPk$;f(Mx6M~zhmn#mY$YYmK~O> zh8Cd0C77+XTwSrFh%79FOBkd;xmT!lN9ULoBrEdG_-ggo$*hy)hbMa#;EF?(#@&94F@_~606%=xX2 zjrAvu5;IQr1ja#8q6`!yjDpP0w5;J+}r>YMW}w_+H7&?6pdlS zmO$M*4c(wFC6uJAMCnLU^HVyUf^bnf&Tu=YzT_#nm<-ZZ14R&rXJcQo$|6mD*q_zk z!{YoQ>1BzOquPA(h-I`(^2<#IR3U%$QMAz$BgvIwxw~V8GO8HKz1DPiroCE2Zx)aU zJ&PQwLhj=80!sF^m+KN+7N$aNDhyXeZO{*Qubd9YT+`nf1LN$Dz`QGz!Uqq2_#Z9f zk3uE%=-v$+sj2imiv%$ubJ|HHAB^5=cT9XwUByu~YBkl*0>`sLLi|M%YBb>N91qB; z>|92*2M?aDEJH7~-Ui0{I`=yvnsD^|!V@R&{AR z3xbN<$?+C%osK4TZphH)$(*cAaa_i|n+4}+rs^(@pylsIa#um{0bWSWX>xuwWL?SH zMh-us+pY3#J!o*f3oFLiX>=kYgOiB~iZ~6P zv$bfxe7(2FXM{+=mT^ceD5c@73tMFng`>5XwX4}JAFTLx-C;$e0OETVa65Ei<`|sJ z13CzeB*SSrsKr>CpxzwA6QQCPRof){?) zm@dLy{pq7eYspWrv9gvlA2;#$XXbCXUHi?1ye}76wm88#Q^bc>87yi_(LZQpI$(Wf zI`|27u(_6eZejn7`uSA#!+&qU*Q+&ntrlfTM3koUvfr-r!1P-WQhvS;v?Aplh;$&Z zw7%5vjJ`~%L{?f=$V*@%aG$|In*6J1Tj+B<)5+yH4Iz$ZZKn27O zpM@4UJ^_{8@Bx@#C4T3BhEV9!U%a~*CEClzB5fT@jp+KXY5XYF-G}N%feDKunB>&D zaZjz<#2qX8%+n5~j+s!#^~*GL$J|~s&dE`lD}+KC=!Be?`v& zx5_*pRVQ`yl4EA|JOWWdRqO_`; z>&9ly^cDnTac!Zke6p4>y-XRoqZ6 zvR(4QEOJ1(81j*FN3Ipsid~+yvJ$yIYY#yp-Qlh-#*ClGU?KW>m8*a|Y`%*9Kc&&? zxPVd5nxR*_pd}SllxyRNmNB656$p`t>WsvFMD~+>(e&VXCPh2i4$;NTi;G$NN+LUH z0)jk_eDL^NRo!!@7s(!Oc`r_5rsuylWKuaEpjk_KFWor&pl#m_TTGG}No$P8hmFr3wEh!87os>Ck1heH9_ z(nf>He0T6J+1)=5zRn<_=kZsVr}P~P&}EU&EUO4e5z9=hAREH2;2P(4f zXUVy;5+{U-CjOC8#AglMP06Hw`h&-hac%k=q(V&7{t$%*`&9G_VQo0z$y;PHs7tky z`FWaoyKtx-1N&d(={8IS{Fz3&J?07T`yWH3A%s`661W85e|LRl^ z%I?cm=N%R?TFJj?|8jR!Y=Vw*l6YQ!*|Zs1J#-?dqvv zNL!;hxziTVr<;$GeZ==&J-totDQPGeEOOt}pL<{1$9rGf=gHod^J2@sKpbl}JmEP9 zETiUk_dD&QN!N{3VryM1Gb?-TZS9vl(N-0j-qq%tq%@jYvWg<6 zn@_&j*i4d*&o-ZIe*P#y^57-@d3H`F;%t5d8x#r> zXozhJJzVmrqrQe}`|{}ERbB@P{dd}XZTLtz9VPE2mlGjCcD-r06=^nexcWMAQ}v=U zH9LT|eQe!d)pw3tzW%Ze@3$>Z@@NRNYM zSP=8H9%(_0{kOE;<)E%U6M?y=QIYu-aC(leC4bKineGKqCRR<_^<>aw=oWG`$8m|N zOqQ;d2R~a^Jy%%m9331c$6GJ%FQBL0Z04< z3sZN|PtX9vwyemK^3x`+e9rXKc;@c!H~;WgmYZ8h(S;~(Z*`6-WjERCNDc}o1vZyS z-Q^TxwdaKab4I^=tiw;*HS#3k8~+oXWxY?gothTQpKxuEpDd}BdgrvkS&llD@)_bV z1{FU}79K%un05jXwzp9VAdFEQ2Jp?w{qTp22=jEK>e{QOcUOWKa| zc!;qO%&wK)0#C%hlayINs?h|rh1Hw7jY+>lC9}HkC?hTmRO-o#@IYraEjy+LP{k){LOCJfW~Of(1X$)=A#l5+!|r7k<%1X=Y?>8S`CY13$U8!Q|V zfkN|VV0>>`U&+W-eeRF0l^{ihj+7$I zFike>dY1#ruJfDY;T)GkeMnEV0-wzt=h?_4>8G4Rs+PycSe5#yFCmY#aP`G1Hy9(3 z1hz^wRf^=tAH6=@*`km|s3{bQXuU2<9gFp?PCG%kVP7e4jxIotX_CJrK ze500EE6@S6CXjPUUjXgxkFrHvHY}Xn6K-X#{Z3Gw>0c@2^8&E&)4m%3K%p8 z^0g>JIb)@A>IoleRRPF|pFksAf}9otW!m}h%&$UM|G)UNW&HfD?~uYq>-$&fVA#8< zR0r(h;;1CY4O)$dz3(n?GNgB*cr#{0Yc7$LugVrZYc(HskcOTPc4mlfK2&$btc=pr zdH37NaE#Y*U$dEdo#2nb?7OB(cULLw8xZo|#X6 zJ(*LGec0n~#9ve2kojXI!a)-zObu-oxZ@wRk{@d!cKo7^F!h0|Q6G*xHcWN+&KW7H zG?b91nluPItzVTm))2U{MdnM*WY$td{p~7Up*}C5rDhzrYlkk(RhU^919vsQT$GbE zhA8>aWI*Vf&$Q|>Dm`w!_9ky%LNN#=HeL8q6h_6@UqX|_J~tYs;(PiQS77%||EHr# z4+e{l@U$9K^``NR(i%u%Ak)F(l{|w#LOBlO zjfLKiy!St(&+DShmW-mTnM*VOVm{l3r-AfbNQfc@hvb2<5`bPeN=QXV8XfZ_h#=hH z$7(I(Fx4C;=%i@4^Kn;mu!~XVUw75Wd$Sa2e z3lFrL_+Y|xd>RDz^y)d$0m23y!sozytFb#Cr0<+V`5d7)4G%fc=rlhjKgTx5ga@I> zm}`<--b)BjX4?y(@qyJ#r1Su>H|Zr(ek6KkWAEa{AUO%^vF1b46Uc>d4Bhe?FprvFjO5;s^!bN!hA5=G|bnkwQNX3_NtB3uqz1^+F==J6RUp$G76 zkgcGKK3P|WlnwihPjdAU7)*tN^$*)q36I5W>>RX@+Kb!-D&olWX<;o<){V{2K8KQH z+LLn>C<;5V8WeFDDU=q9jD+I84yG7SsvsCfb-c6^Id?F^^0ze+al8^n_|zl5B9qITd&%y;JEb(*D}MY3Y>7oPsNP*>GXbN-x0jv=b2(?c*IVh&vOyjmP@WO6-v1=s~sY~B{zpU0?ou~Z)ZYdGNt zQ#$?ZSs(YYQ<#UvJ)*p5a*d@?x-g>q3YCTN^_?qNEe5nWW3?h{i0AfQtG|w$vKOgZ zRXFL*;8R-A49^y*oSgL6+|=i6I`8sVsA{9vV&AQk9FxV^PLO#-x_>;G!w?WRqF$N~ z-0_R=){%jaf_`i$R44Kr3ar&!fTYQUX_`fDS+$c&gNj+jTI(55Sp|!dL?XcsT@=lv zfnIw#?_0ndGc-p{53Gna5g#ckl2H-b@zN0V(`4%Nay~ai)eo^J&!p_+c_Xc`K7qy9 z8D`{9?4+kX9Le9FjB&UfQIGlddD?#?79e!^Or4|YXmZ(j<_tIai{8cb=gEeVp!jNF z7nJ~p{o(w0)*EL%b-(+SJKL=2Y@2KSZBs3|gE5K_T#);!tjW>?`*B5ITgX%Ux;GnB z{m3hK^3xif9QFou1MZdk*!a9gC;O<@clBX>S~W3SCzILyV7!H__jAf=?{ggU>K%Sw zH9Na!04rPp>?(%_l#unkVSJK7veR{7WPJ%`hDeGWzSvo&NaA z7nL(c$IFKOBTUHbJXp@n1$`iU2c5-=}&_>H0)FCH9dIngHM); z>vuSC={ZdDsD`r?U+IxKcU>s5sWIokccS>Xmo~r3`buoB@$m2*Yvq0q<&Q2Vv&)Bv zvq>LCi6*mScslfJu;|Yp9wPdSjp7UYI(zt)s;St4qc=W#c+kc&B-?dtB13bZG*?n@*=a4p##;~3+(H|l=HE*rZZ>Q9N_tx~)`vcXGWbIBAq zhjfvBm(BzinrQ7w7ElCrU^pJ&;%}TM{Zh~ss7b6}oKHcu7+S9;&*eKg|D*e^MCNER znePl|*c7MPiK5iGm{2PlWGC{JB36EY4TXa`2QQDm#(~SL1b3AEn$9k*3~7 zmY)_gaa*&qlDGVM$$Nztp;Sa>(~(BKvYk7$%Enwwj*^~4pu|}pw@{ureCW}ng;~M` zzD1y|U^<WE%l@sxJ z@aN6CqqAkV6bLS$rOq*hxG_&;FFvV`7_NByU9wdIbcH!=EaOGULnXUEx0pIEJW^d2i$+c(#%(fG@K~;{2!cy8b^%IWr87PJ3Xb@P={Kzf-S;fh+U-{ z!(k~5UMz5!Z=W~Gmq8#x1GR5U!>%##-E13r4;P=Rq8!pS?*sYtC-q^neN2L7v)4>a zjhW^avc@RE5@~^yQTZg79T=PcSG{+K2M( zysafcua=_IQy1(7l`xgpRXyxvr_1cw-wtNd4exN*!pwCwglg53`ph^L2i6ynq|V;o{HqoZnurM*NlLyH3!Nk-+7^3UO}VIH0V!qrNxKZ< zsEE*`9_wRXJWuw5!?I0$Z??4QQd{xDNH=XJwcTFEOzI`dvKYx`c?}6_5BS2oiXL1? z&K?tf{#?t(+Tqr*6nOme?a6F9Q5Sgqd2`LQdGsTkq25A)!e1VLx!QCZH6Q(G(*r;y zQoS!9uU;4aqr9I~hkuF|SH-C%tTANapk2cynCn??t$hWixx$o&D|`*2mZH}f?$J^5 zW!Na}(}fdsY*xqtWp}dj$H!Kux9MV&+^^_RVixR`t z*^q!@`^{Iq{yFGgd(neM>S#gr+yf8D^Lk1r$$=1=qB`osH$Pk#I?hvH_Bh?J0~45K zZznU~Y11g@`6|DJ1QGQqMkxd`)eyb-r9PiEnt+uhbeZwlt0(WCY&??OlR67?a~7+3 zEnSpnznm7ut#K$*-A}KjO#>j2dCmKn@(q>fe$5xA!&%`v-6D&ooI{}agt@3(@WC;b{ zXEZs7IywVW`eOH>BTQ45M@v9OP;sYCYxN(X!1b3~J4XqeG%7@i9PflH`?J5RR{_rD z@QsZPn`;^d&UdpfdxKefOec?gOUFKwI*{)xHOJEF^ZGeC^q@vYl_zj?Tc(_}4j$T3 zc^-w5<13e@z(n>IigM-u?SFN5dGfNofjL&Qt*&{%UG})jfo^@kRZnz00%y|a=NXQz zkI#@LK0n8O5r}QkZGU}gOPQ3YhfNHjIpb#2?A1QU!6`xud{|&Ac8-+rM7Cu8 zb5u9(PZ_&aD2=8?B|qNUhz$ywEzR$x)sMAah2ynN-rs;N4tm7)!O}wxG+hb&nBXFxuTr9oV2?+UNo6K9I!iR4=Z*Ay*R7TWXX!=D-LVf5J z$2ANre%SE+=~u$!+WviQSHw^erw)sK5GOiNNI|Dfk&3=cWv9{kz(X9jChB_l@J6(i zwhzj!w9h$L$n@sht5i{&Fm>$nCr_Lpvv&yws*1Im$h$)V_zd~r$P#Wfe*feT$Vh5_ zg8Q_Z_B;61xht`-g@uwmP31JV)J

    eT-Ok_X~YBhjSyAYL&m0gPxnfFBQg0bo?@m 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 PJf1$vz=XF1HIn}i#L(P2 diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.Web.XmlTransform.dll b/cmf-cli/installDependencies/Data/CMFInstallActions/References/Microsoft.Web.XmlTransform.dll deleted file mode 100644 index 9795e4f90026218a36fd4df62a8b7c92a1b59e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81584 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 SKeh3h+Xl~_@%D1EPyZK>o(}Z@ diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/References/appSettings b/cmf-cli/installDependencies/Data/CMFInstallActions/References/appSettings deleted file mode 100644 index 20fb6df2e..000000000 --- a/cmf-cli/installDependencies/Data/CMFInstallActions/References/appSettings +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/CMFInstallActions/References/microsoft.sqlserver.batchparser.dll b/cmf-cli/installDependencies/Data/CMFInstallActions/References/microsoft.sqlserver.batchparser.dll deleted file mode 100644 index cc72ce189827e850c9c39ccf0364ec03a7b0f389..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553048 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 A7xDghiuir;$>RCinfeOx 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 - - - - - \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/EnvironmentConfigs/DF.json b/cmf-cli/installDependencies/Data/EnvironmentConfigs/DF.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/cmf-cli/installDependencies/Data/EnvironmentConfigs/GlobalVariables.yml b/cmf-cli/installDependencies/Data/EnvironmentConfigs/GlobalVariables.yml deleted file mode 100644 index ca214883a..000000000 --- a/cmf-cli/installDependencies/Data/EnvironmentConfigs/GlobalVariables.yml +++ /dev/null @@ -1,2 +0,0 @@ -variables: - CurrentPackage: '$(version)' diff --git a/cmf-cli/installDependencies/Data/GenerateLBOs.ps1 b/cmf-cli/installDependencies/Data/GenerateLBOs.ps1 deleted file mode 100644 index 51ae88f67..000000000 --- a/cmf-cli/installDependencies/Data/GenerateLBOs.ps1 +++ /dev/null @@ -1,31 +0,0 @@ -param($installPath, $toolsPath, $step, $hostContext, $cmfExecutionContext, $workingDirectory) - -Write-Host ' Starting LBO Generation ...' - -$installationPath = $cmfExecutionContext.Variables.GetValue("Packages.Root.TargetDirectory").Replace("\", "\\") - -$businessInstallationPath = "$installationPath\BusinessTier" -$protectUnprotectConfigFilePath = "$installationPath\ProtectUnprotectConfigFile" -$lboGeneratorPath = "$installationPath\LBOGenerator" - -$arguments = "/Mode:2 /InstallPath:""$businessInstallationPath""" - -#Unprotect HostConfigFile -Write-Host "Deal with host config file" -Set-Location -Path $protectUnprotectConfigFilePath -Start-Process Cmf.Tools.ProtectUnprotectConfigFile.exe $arguments -Wait - -#REST LBOs -Set-Location -Path $lboGeneratorPath -.\LBOUpdater.ps1 - -$arguments = "/Mode:1 /InstallPath:""$businessInstallationPath""" - -#Unprotect HostConfigFile -Write-Host "Deal with host config file" -Set-Location -Path $protectUnprotectConfigFilePath -Start-Process Cmf.Tools.ProtectUnprotectConfigFile.exe $arguments -Wait - -$filePath = (Get-Item $myinvocation.mycommand.path).DirectoryName.ToString() + "\GenerateLBOs.ps1" - -Remove-Item $filePath -Force -Recurse \ No newline at end of file diff --git a/cmf-cli/installDependencies/Data/RunCustomizationInstallDF.ps1 b/cmf-cli/installDependencies/Data/RunCustomizationInstallDF.ps1 deleted file mode 100644 index fef8425c9..000000000 --- a/cmf-cli/installDependencies/Data/RunCustomizationInstallDF.ps1 +++ /dev/null @@ -1,73 +0,0 @@ -######################################################################################## -# this script uses the information available as deployment variables -# to install a customizationpackage -######################################################################################## -param($installPath, $toolsPath, $step, $hostContext, $cmfExecutionContext, $workingDirectory) - -$TargetDirectory = $cmfExecutionContext.Variables.GetValue("Package[$(packageId)].TargetDirectory") -$SystemName = $cmfExecutionContext.Variables.GetValue("Product.SystemName") -$AdminPass = $cmfExecutionContext.Variables.GetValue("Product.ApplicationServer.ServiceUser.Password") -$SQLOnlinePassword = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Online].Database.Password") -$SQLODSPassword = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Ods].Database.Password") -$SQLDWHPassword = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Dwh].Database.Password") -$NLBAddress = $cmfExecutionContext.Variables.GetValue("Product.ApplicationServer.Address") -$ServicePort = $cmfExecutionContext.Variables.GetValue("Product.ApplicationServer.Port") -$ClientTenantName = $cmfExecutionContext.Variables.GetValue("Product.Tenant.Name") -$BackupLocation = $cmfExecutionContext.Variables.GetValue("Product.Database.BackupShare").Replace("\", "\\") -$InstallationPath = $cmfExecutionContext.Variables.GetValue("Packages.Root.TargetDirectory").Replace("\", "\\") -$AdminUser = $cmfExecutionContext.Variables.GetValue("Product.ApplicationServer.ServiceUser.UserName").Replace("\", "\\") -$AlwaysOn = $cmfExecutionContext.Variables.GetValue("Product.Database.IsAlwaysOn") -$OnlineClusterInstance = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Online].Database.Server").Replace("\", "\\") -$ODSClusterInstance = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Ods].Database.Server").Replace("\", "\\") -$DWHClusterInstance = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Dwh].Database.Server").Replace("\", "\\") -$SQLOnlineUser = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Online].Database.User") -$SQLODSUser = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Ods].Database.User") -$SQLDWHUser = $cmfExecutionContext.Variables.GetValue("Package[Product.Database.Dwh].Database.User") - -cd "$TargetDirectory" - -$dfConfig = @" -{ -"Product.SystemName": "$SystemName", -"Product.ApplicationServer.ServiceUser.Password": "$AdminPass", -"Package[Product.Database.Online].Database.Password": "$SQLOnlinePassword", -"Package[Product.Database.Ods].Database.Password": "$SQLODSPassword", -"Package[Product.Database.Dwh].Database.Password": "$SQLDWHPassword", -"Product.ApplicationServer.Address": "$NLBAddress", -"Product.Presentation.IisConfiguration.Binding.IsSslEnabled": false, -"Product.ApplicationServer.Port": "$ServicePort", -"Product.Tenant.Name": "$ClientTenantName", -"Product.Database.BackupShare": "$BackupLocation", -"Packages.Root.TargetDirectory": "$InstallationPath", -"Product.ApplicationServer.ServiceUser.UserName": "$AdminUser", -"Product.DocumentManagement.TemporaryFolder": "", -"Product.Database.IsAlwaysOn": "$AlwaysOn", -"Package[Product.Database.Online].Database.Server": "$OnlineClusterInstance", -"Package[Product.Database.Ods].Database.Server": "$ODSClusterInstance", -"Package[Product.Database.Dwh].Database.Server": "$DWHClusterInstance", -"Package[Product.Database.Online].Database.User": "$SQLOnlineUser", -"Package[Product.Database.Ods].Database.User": "$SQLODSUser", -"Package[Product.Database.Dwh].Database.User": "$SQLDWHUser" -} -"@ | Out-File "$TargetDirectory\EnvironmentConfigs\DF.json" - - -$EnvironmentConfigName = "DF" -$InteractiveMode = $false -$BaseScriptPath = $TargetDirectory -$RunAppInstall = $false -$BackupBefore = $false -$ScriptPath = "$BaseScriptPath\CMFInstallActions\CustomizationInstall.ps1"; -$ScriptParameters = "-EnvironmentConfigName " + $EnvironmentConfigName +" -InteractiveMode:$" + $InteractiveMode + " -BackupBefore:$" + $BackupBefore + " -RunAppInstall:$" + $RunAppInstall; - -if($PlantName) -{ - $ScriptParameters = $ScriptParameters + " -PlantName " + $PlantName -} - -$command = ("& '$ScriptPath' $ScriptParameters") -Powershell $command -NoNewWindow | Out-Host - -if ($LASTEXITCODE -ne 0) { - throw "Customization Installation Aborted!" -} diff --git a/cmf-cli/installDependencies/IoT/runtimePackages/PublishToDirectory.ps1 b/cmf-cli/installDependencies/IoT/runtimePackages/PublishToDirectory.ps1 deleted file mode 100644 index 3dbe5f49e..000000000 --- a/cmf-cli/installDependencies/IoT/runtimePackages/PublishToDirectory.ps1 +++ /dev/null @@ -1,38 +0,0 @@ -######################################################################################## -# this script uses the information available as deployment variables -# to publish connect IoMT packages to a directory (repository) -######################################################################################## -param($installPath, $toolsPath, $step, $hostContext, $cmfExecutionContext, $workingDirectory) - -$IsPublishToDirectoryEnabled = $cmfExecutionContext.Variables.GetValue("Local.Repository.Directory.Enabled") -if ($IsPublishToDirectoryEnabled -eq $true) { - $SourceDirectory = $installPath - $TargetDirectory = $cmfExecutionContext.Variables.GetValue("Local.Repository.Directory.Location") - $repositoryBuilderScriptFileName = ".rebuildDatabase.ps1" - - # Test source directory - If (-Not (Test-Path $SourceDirectory -pathType container)) { - Write-Error "Could not find packages source directory $($SourceDirectory)." -ErrorAction Stop - } - $packageCount = (Get-ChildItem "$SourceDirectory/*" -Filter "*.tgz").Count; - If ($packageCount -eq 0) { - Write-Error "Could not find packages to copy in the source directory $($SourceDirectory)." -ErrorAction Stop - } - - # Test target directory - If (-Not (Test-Path $TargetDirectory -pathType container)) { - New-Item -ItemType Directory -Force -Path $TargetDirectory - Write-Verbose -Verbose "Created target directory $($TargetDirectory)." - } - - # Copy packages - Copy-item -Force -Recurse -Verbose "$SourceDirectory\*.tgz" -Destination $TargetDirectory - Write-Verbose -Verbose "Successfully copied $($packageCount) packages." - - # Rebuild database on TargetDirectory so that both newer and existing packages(if any) are merged together - Write-Verbose -Verbose "Rebuilding directory content definition in target directory $($TargetDirectory)" - & "$($TargetDirectory)\$($repositoryBuilderScriptFileName)" - -} else { - Write-Verbose -Verbose "Publish to directory repository is not enabled" -} diff --git a/cmf-cli/installDependencies/IoT/runtimePackages/PublishToRepository.bat b/cmf-cli/installDependencies/IoT/runtimePackages/PublishToRepository.bat deleted file mode 100644 index 3d997b087..000000000 --- a/cmf-cli/installDependencies/IoT/runtimePackages/PublishToRepository.bat +++ /dev/null @@ -1,17 +0,0 @@ -@echo off - -set NPM=http://127.0.0.1:4873 -set TAG="IoT_805" -set FORCE= - -rem Uncomment the next line if you plan to deploy over a deployed version -rem set FORCE="--force" - -echo Deploying %TAG% to %NPM%"... - - -call npm adduser --registry %NPM% - -forfiles /m *.tgz /c "cmd /c NPM publish @path --registry %NPM% --tag %TAG% %FORCE%" - -timeout 10 \ No newline at end of file diff --git a/cmf-cli/installDependencies/IoT/runtimePackages/PublishToRepository.ps1 b/cmf-cli/installDependencies/IoT/runtimePackages/PublishToRepository.ps1 deleted file mode 100644 index 9a24b2828..000000000 --- a/cmf-cli/installDependencies/IoT/runtimePackages/PublishToRepository.ps1 +++ /dev/null @@ -1,71 +0,0 @@ -######################################################################################## -# this script uses the information available as deployment variables -# to publish connect IoT packages to local npm repository -######################################################################################## -param($installPath, $toolsPath, $step, $hostContext, $cmfExecutionContext, $workingDirectory) - -$IsPublishToRepositoryEnabled = $cmfExecutionContext.Variables.GetValue("Local.Repository.Server.Enabled") -if ($IsPublishToRepositoryEnabled -eq $true) { - $TargetDirectory = $installPath - $LocalRegistryAddress = $cmfExecutionContext.Variables.GetValue("Local.Repository.Server.Address") - $Tag = $cmfExecutionContext.Variables.GetValue("Publish.Tag") - $UserName = $cmfExecutionContext.Variables.GetValue("Local.Repository.Server.UserName") - $UserPassword = $cmfExecutionContext.Variables.GetValue("Local.Repository.Server.UserPassword") - $UserEmail = $cmfExecutionContext.Variables.GetValue("Local.Repository.Server.UserEmail") - - $NpmServerAddress = $LocalRegistryAddress - $parts = $NpmServerAddress.Split(':') - $machineName = $parts[1].Replace('//','') - $port = $parts[2].Replace('/','') - - If (-Not (Test-Path $TargetDirectory -pathType container)) { - Write-Error "Could not find packages source directory $($TargetDirectory)." -ErrorAction Stop - } - - if ((Test-NetConnection -ComputerName $machineName -Port $port).TcpTestSucceeded -eq $false) { - Write-Error "Could not find $($NpmServerAddress)." -ErrorAction Stop - } - - Write-Verbose -Verbose "Deploying $Tag to $NpmServerAddress..." - - $psi = New-Object System.Diagnostics.ProcessStartInfo; - $psi.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden; - $psi.FileName = "cmd.exe"; #process file - $psi.UseShellExecute = $false; #start the process from it's own executable file - $psi.RedirectStandardInput = $true; #enable the process to read from standard input - - $p = [System.Diagnostics.Process]::Start($psi); - - Start-Sleep -s 2 #wait 2 seconds so that the process can be up and running - - $p.StandardInput.WriteLine("npm adduser --registry $NpmServerAddress"); #StandardInput property of the Process is a .NET StreamWriter object - Start-Sleep -s 2 #wait for the stdin to be ready to receive input - $p.StandardInput.WriteLine($UserName.ToLowerInvariant()); #StandardInput property of the Process is a .NET StreamWriter object - Start-Sleep -s 2 #wait for the stdin to be ready to receive input - $p.StandardInput.WriteLine($UserPassword); #StandardInput property of the Process is a .NET StreamWriter object - Start-Sleep -s 2 #wait for the stdin to be ready to receive input - $p.StandardInput.WriteLine($UserEmail); #StandardInput property of the Process is a .NET StreamWriter object - Start-Sleep -s 2 #wait for adduser command to finish - - Stop-Process -Id $p.Id -Force - $successfullyPublishedPackagesCounter = 0 - $unsuccessfullyPublishedPackagesCounter = 0 - & cd $TargetDirectory - foreach ($package in Get-ChildItem "$TargetDirectory/*" -Filter "*.tgz") { - $result = & npm publish $package --registry $NpmServerAddress --tag $Tag --force - if($LASTEXITCODE -ge 0){ - $successfullyPublishedPackagesCounter++ - }else{ - $unsuccessfullyPublishedPackagesCounter++ - Write-Error "Could not publish package $($package)" - } - if(-not([string]::IsNullOrWhiteSpace($result))) { - Write-Verbose -Verbose $result - } - } - - Write-Verbose -Verbose "Successfully published $($successfullyPublishedPackagesCounter) packages." - Write-Verbose -Verbose "$($unsuccessfullyPublishedPackagesCounter) packages were not published successfully." -} else { - Write-Verbose -Verbose "Publish to npm server repository is not enabled" -} diff --git a/cmf-cli/installDependencies/IoT/runtimePackages/ValidateIoTInstall.ps1 b/cmf-cli/installDependencies/IoT/runtimePackages/ValidateIoTInstall.ps1 deleted file mode 100644 index 6555e2e0b..000000000 --- a/cmf-cli/installDependencies/IoT/runtimePackages/ValidateIoTInstall.ps1 +++ /dev/null @@ -1,12 +0,0 @@ -######################################################################################## -# this script uses the information available as deployment variables -# to validate if at least one of the options is selected -######################################################################################## -param($installPath, $toolsPath, $step, $hostContext, $cmfExecutionContext, $workingDirectory) - -$IsPublishToDirectoryEnabled = $cmfExecutionContext.Variables.GetValue("Local.Repository.Directory.Enabled") -$IsPublishToRepositoryEnabled = $cmfExecutionContext.Variables.GetValue("Local.Repository.Server.Enabled") -if ($IsPublishToDirectoryEnabled -eq $false -and $IsPublishToRepositoryEnabled -eq $false) { - - throw "Publish to directory repository and Publish to directory repository are not enabled" -} \ No newline at end of file diff --git a/cmf-cli/installDependencies/readme.md b/cmf-cli/installDependencies/readme.md deleted file mode 100644 index 679fff54d..000000000 --- a/cmf-cli/installDependencies/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Here goes all install dependencies for each PackageType -The pack command will pickup all needed files \ No newline at end of file diff --git a/core/Constants/CoreConstants.cs b/core/Constants/CoreConstants.cs index 54e1de198..2a8500e19 100644 --- a/core/Constants/CoreConstants.cs +++ b/core/Constants/CoreConstants.cs @@ -5,15 +5,6 @@ ///

    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�&NPkE6}09Xa&Y7P*9*# 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%0Arg|BbJw~uN9IP(uL$f7=Y~8 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

  • public static class CoreConstants { - #region Folders - - /// - /// The folder install dependencies - /// - public const string FolderInstallDependencies = "installDependencies"; - - #endregion - #region Files /// diff --git a/core/Utilities/FileSystemUtilities.cs b/core/Utilities/FileSystemUtilities.cs index b847ff2cb..1214c7c63 100644 --- a/core/Utilities/FileSystemUtilities.cs +++ b/core/Utilities/FileSystemUtilities.cs @@ -405,18 +405,6 @@ public static void CopyStream(Stream input, Stream output) } } - /// - /// Copies the install dependencies. - /// - /// The package output dir. - /// Type of the package. - /// the underlying file system - public static void CopyInstallDependenciesFiles(IDirectoryInfo packageOutputDir, PackageType packageType, IFileSystem fileSystem) - { - string sourceDirectory = fileSystem.Path.Join(AppDomain.CurrentDomain.BaseDirectory, CoreConstants.FolderInstallDependencies, packageType.ToString()); - CopyDirectory(sourceDirectory, packageOutputDir.FullName, fileSystem, isCopyDependencies: true); - } - /// /// Gets the output dir. /// From 11b79182138e0dd30a7027192a356ba761739a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Fri, 20 Mar 2026 19:01:44 +0000 Subject: [PATCH 06/20] chore: system commandline migrations --- core/Commands/BaseCommand.cs | 6 +++--- tests/Specs/MESVersionCommandValidation.cs | 24 ++++++++++------------ tests/Specs/New.cs | 2 +- tests/Specs/Pack.cs | 13 +++++------- 4 files changed, 20 insertions(+), 25 deletions(-) diff --git a/core/Commands/BaseCommand.cs b/core/Commands/BaseCommand.cs index 419921def..52afd4105 100644 --- a/core/Commands/BaseCommand.cs +++ b/core/Commands/BaseCommand.cs @@ -99,7 +99,7 @@ private static Command FindChildCommands(Type cmd, List commandTypes) if (!string.IsNullOrWhiteSpace(dec.MinimumMESVersion)) { // Add a middleware to validate the version before command execution - cmdInstance.AddValidator(commandResult => + cmdInstance.Validators.Add(commandResult => { try { @@ -108,11 +108,11 @@ private static Command FindChildCommands(Type cmd, List commandTypes) } catch (MESVersionValidationException ex) { - commandResult.ErrorMessage = ex.Message; + commandResult.AddError(ex.Message); } catch (Exception ex) { - commandResult.ErrorMessage = $"Version validation error: {ex.Message}"; + commandResult.AddError($"Version validation error: {ex.Message}"); } }); } diff --git a/tests/Specs/MESVersionCommandValidation.cs b/tests/Specs/MESVersionCommandValidation.cs index 083cf63ff..e19674f4e 100644 --- a/tests/Specs/MESVersionCommandValidation.cs +++ b/tests/Specs/MESVersionCommandValidation.cs @@ -35,7 +35,7 @@ private class TestCommand : BaseCommand public override void Configure(Command cmd) { - cmd.SetHandler(() => { Executed = true; }); + cmd.SetAction(_ => { Executed = true; }); } } @@ -53,7 +53,7 @@ public void CommandWithMinimumVersion_CurrentVersionMeets_ShouldExecute() var attr = typeof(TestCommand).GetCustomAttributes(typeof(CmfCommandAttribute), false)[0] as CmfCommandAttribute; if (!string.IsNullOrWhiteSpace(attr.MinimumMESVersion)) { - testCmd.AddValidator(commandResult => + testCmd.Validators.Add(commandResult => { try { @@ -62,20 +62,19 @@ public void CommandWithMinimumVersion_CurrentVersionMeets_ShouldExecute() } catch (MESVersionValidationException ex) { - commandResult.ErrorMessage = ex.Message; + commandResult.AddError(ex.Message); } catch (Exception ex) { - commandResult.ErrorMessage = $"Version validation error: {ex.Message}"; + commandResult.AddError($"Version validation error: {ex.Message}"); } }); } - rootCmd.AddCommand(testCmd); - var parser = new Parser(rootCmd); + rootCmd.Add(testCmd); // Act - var result = parser.Parse("test-command"); + var result = rootCmd.Parse("test-command"); // Assert result.Errors.Should().BeEmpty(); @@ -95,7 +94,7 @@ public void CommandWithMinimumVersion_CurrentVersionBelowRequired_ShouldFail() var attr = typeof(TestCommand).GetCustomAttributes(typeof(CmfCommandAttribute), false)[0] as CmfCommandAttribute; if (!string.IsNullOrWhiteSpace(attr.MinimumMESVersion)) { - testCmd.AddValidator(commandResult => + testCmd.Validators.Add(commandResult => { try { @@ -104,20 +103,19 @@ public void CommandWithMinimumVersion_CurrentVersionBelowRequired_ShouldFail() } catch (MESVersionValidationException ex) { - commandResult.ErrorMessage = ex.Message; + commandResult.AddError(ex.Message); } catch (Exception ex) { - commandResult.ErrorMessage = $"Version validation error: {ex.Message}"; + commandResult.AddError($"Version validation error: {ex.Message}"); } }); } - rootCmd.AddCommand(testCmd); - var parser = new Parser(rootCmd); + rootCmd.Add(testCmd); // Act - var result = parser.Parse("test-command"); + var result = rootCmd.Parse("test-command"); // Assert result.Errors.Should().HaveCount(1); diff --git a/tests/Specs/New.cs b/tests/Specs/New.cs index b07790e33..984c2c820 100644 --- a/tests/Specs/New.cs +++ b/tests/Specs/New.cs @@ -51,7 +51,7 @@ public Task DisposeAsync() private void NpmLogin() { // Set log level to default to print any npm command logs - LoggerHelpers.LogLevelOption.Parse(""); + Log.Level = LogLevel.Verbose; Spectre.Console.AnsiConsole.Console.MarkupLine("Building service provider..."); diff --git a/tests/Specs/Pack.cs b/tests/Specs/Pack.cs index d8c2767c0..94a572d9a 100644 --- a/tests/Specs/Pack.cs +++ b/tests/Specs/Pack.cs @@ -1499,14 +1499,11 @@ public void DryRun_Option_IsParsed() var cmd = new Command("pack"); packCommand.Configure(cmd); - cmd.Handler = CommandHandler.Create( - (workingDir, outputDir, force, dryRun) => - { - _dryRun = dryRun; - }); - - var console = new TestConsole(); - cmd.Invoke(new[] { "--dry-run" }, console); + var dryRunOption = cmd.Options + .OfType>() + .Single(o => !o.Aliases.Contains("--force") && !o.Aliases.Contains("-f")); + var parseResult = cmd.Parse(new[] { "--dry-run" }); + _dryRun = parseResult.GetValue(dryRunOption); Assert.NotNull(_dryRun); Assert.True(_dryRun ?? false); From 7c198df5bff4b67b2ff6bbd2f56af600866df616 Mon Sep 17 00:00:00 2001 From: Marco Date: Thu, 26 Mar 2026 12:31:05 +0000 Subject: [PATCH 07/20] chore!: disable OSX builds in release workflow --- .github/workflows/npm-publish.yml | 11 ----------- package.json | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index eb30af967..09440968a 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -32,9 +32,6 @@ jobs: - name: Create artifact linux-x64 run: zip -X -r ../cmf-cli.linux-x64.zip . working-directory: dist/linux-x64 - - name: Create artifact osx-x64 - run: zip -X -r ../cmf-cli.osx-x64.zip . - working-directory: dist/osx-x64 - name: Publish win-x64 to release uses: JasonEtco/upload-to-release@master with: @@ -47,12 +44,6 @@ jobs: args: dist/cmf-cli.linux-x64.zip application/zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Publish osx-x64 to release - uses: JasonEtco/upload-to-release@master - with: - args: dist/cmf-cli.osx-x64.zip application/zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Get version from npm package id: package-version run: echo "version=$(node -p "require('./npm/package.json').version")" >> $GITHUB_OUTPUT @@ -60,8 +51,6 @@ jobs: run: curl -v --user "${{secrets.CRITICALMANUFACTURING_IO_USER}}:${{secrets.CRITICALMANUFACTURING_IO_TOKEN}}" --upload-file dist/cmf-cli.win-x64.zip https://criticalmanufacturing.io/repository/tools/cmf-cli.win-x64-${{ steps.package-version.outputs.version }}.zip - name: Upload linux-x64 to criticalmanufacturing.io run: curl -v --user "${{secrets.CRITICALMANUFACTURING_IO_USER}}:${{secrets.CRITICALMANUFACTURING_IO_TOKEN}}" --upload-file dist/cmf-cli.linux-x64.zip https://criticalmanufacturing.io/repository/tools/cmf-cli.linux-x64-${{ steps.package-version.outputs.version }}.zip - - name: Upload osx-x64 to criticalmanufacturing.io - run: curl -v --user "${{secrets.CRITICALMANUFACTURING_IO_USER}}:${{secrets.CRITICALMANUFACTURING_IO_TOKEN}}" --upload-file dist/cmf-cli.osx-x64.zip https://criticalmanufacturing.io/repository/tools/cmf-cli.osx-x64-${{ steps.package-version.outputs.version }}.zip - run: npm run publish if: "github.event.release.prerelease" env: diff --git a/package.json b/package.json index ebcd419ba..2a7c76831 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "bump:patch": "npm run bump:npm:patch && npm run bump:dotnet:patch && npm run gen:changelog", "bump:feature": "npm run bump:npm:feature && npm run bump:dotnet:feature && npm run gen:changelog", "bump:breaking": "npm run bump:npm:breaking && npm run bump:dotnet:breaking && npm run gen:changelog", - "build:prod": "npm run build:clean && npm run build:prod:win && npm run build:prod:linux && npm run build:prod:osx", + "build:prod": "npm run build:clean && npm run build:prod:win && npm run build:prod:linux", "build:prod:singlefile": "npm run build:clean && npm run build:prod:singlefile:win && npm run build:prod:singlefile:linux && npm run build:prod:singlefile:osx", "build:prod:win": "dotnet publish ./cmf-cli/cmf.csproj -c Release -r win-x64 -o dist/win-x64 --self-contained /p:IncludeSourceRevisionInInformationalVersion=false", "build:prod:linux": "dotnet publish ./cmf-cli/cmf.csproj -c Release -r linux-x64 -o dist/linux-x64 --self-contained /p:IncludeSourceRevisionInInformationalVersion=false", From 2be100c45ca79e1370f48a1f757e5f583ca98cda Mon Sep 17 00:00:00 2001 From: Rui Jorge Date: Wed, 11 Mar 2026 14:36:31 +0000 Subject: [PATCH 08/20] feat!: remove mes v8 and v9 support --- .devcontainer/devcontainer.json | 4 +- .github/workflows/ci-tests.yml | 18 +- .husky/pre-commit | 2 +- .../build/GenerateBasedOnTemplatesCommand.cs | 4 +- .../build/GenerateMenuItemsCommand.cs | 4 +- cmf-cli/Commands/build/IoTLibCommand.cs | 43 +-- cmf-cli/Commands/init/InitCommand.cs | 37 +- cmf-cli/Commands/new/BusinessCommand.cs | 37 +- cmf-cli/Commands/new/DataCommand.cs | 10 +- cmf-cli/Commands/new/GrafanaCommand.cs | 5 - cmf-cli/Commands/new/HTMLCommand.cs | 249 +----------- cmf-cli/Commands/new/HelpCommand.cs | 233 +---------- cmf-cli/Commands/new/IoTCommand.cs | 36 +- cmf-cli/Commands/new/TestCommand.cs | 4 +- cmf-cli/Factories/PackageTypeFactory.cs | 50 +-- .../PackageType/HelpGulpPackageTypeHandler.cs | 128 ------- .../PackageType/HtmlGulpPackageTypeHandler.cs | 129 ------- .../HtmlNgCliPackageTypeHandler.cs | 41 -- .../PackageType/IoTPackageTypeHandler.cs | 362 ++++++++++-------- .../PackageType/PackageTypeHandler.cs | 1 - .../PresentationPackageTypeHandler.cs | 252 ------------ .../SecurityPortalPackageTypeHandler.cs | 103 ----- cmf-cli/Program.cs | 17 +- .../from900/.template.config/template.json | 6 +- .../upto8x/.template.config/template.json | 76 ---- .../%Org%.%Product%.%idSegment%.Common.csproj | 24 -- .../%Tenant%Constants.cs | 6 - .../%Tenant%Utilities.cs | 6 - .../Properties/AssemblyInfo.cs | 36 -- .../%Org%.%Product%.Common/app.config | 7 - ...%Product%.%idSegment%.Orchestration.csproj | 19 - .../%Tenant%Orchestration.cs | 7 - .../InputObjects/.gitkeep | 0 .../OutputObjects/.gitkeep | 0 .../Properties/AssemblyInfo.cs | 36 -- .../%Org%.%Product%.Orchestration/app.config | 7 - ...Org%.%Product%.%idSegment%.Services.csproj | 19 - .../%Tenant%Controller.cs | 14 - .../Properties/AssemblyInfo.cs | 36 -- .../%Org%.%Product%.Services/app.config | 7 - .../upto8x/Business.Package/Business.sln | 43 --- .../upto8x/Business.Package/cmfpackage.json | 14 - .../upTo9x/.template.config/template.json | 55 --- .../help/upTo9x/Help.Package/.nvmrc | 1 - .../help/upTo9x/Help.Package/cmfpackage.json | 17 - .../upto9x/.template.config/template.json | 72 ---- .../html/upto9x/HTML.Package/.nvmrc | 1 - .../html/upto9x/HTML.Package/cmfpackage.json | 33 -- .../iot/upTo9x/.template.config/template.json | 71 ---- .../IoTData/AutomationWorkFlows/.gitkeep | 0 .../IoTData/MasterData/%version%/.gitkeep | 0 .../IoT.Package/IoTData/cmfpackage.json | 20 - .../IoT.Package/IoTPackages/.dev-tasks.json | 9 - .../upTo9x/IoT.Package/IoTPackages/.gitignore | 1 - .../IoT.Package/IoTPackages/cmfpackage.json | 20 - .../IoT.Package/IoTPackages/gulpfile.js | 203 ---------- .../IoTPackages/npm.postinstall.js | 24 -- .../IoT.Package/IoTPackages/npm.preinstall.js | 16 - .../IoT.Package/IoTPackages/package.json | 17 - .../IoT.Package/IoTPackages/src/.gitkeep | 0 .../iot/upTo9x/IoT.Package/IoTPackages/ui.xml | 22 -- .../iot/upTo9x/IoT.Package/cmfpackage.json | 30 -- cmf-cli/services/DependencyVersionService.cs | 16 +- tests/Fixtures/new/.project-config.json | 12 +- tests/Fixtures/pack/app/.project-config.json | 9 +- .../pack/securityPortal/.project-config.json | 12 +- .../securityPortalV2/.project-config.json | 10 +- .../prodPkg/Cmf.Documentation.9.9.9.zip | Bin 433 -> 0 bytes .../prodPkg/Cmf.Presentation.HTML.9.9.9.zip | Bin 238 -> 0 bytes tests/Objects/MockPackage.cs | 50 ++- tests/Specs/Build.cs | 20 +- tests/Specs/Bump.cs | 89 ----- tests/Specs/Init.cs | 39 +- tests/Specs/MESVersionCommandValidation.cs | 4 +- tests/Specs/New.cs | 307 ++++++--------- tests/Specs/NodeVersionUtilities.cs | 2 - tests/Specs/Pack.cs | 89 +++-- tests/Specs/PackageTypeHandler.cs | 2 +- tests/Specs/ProgramTests.cs | 32 ++ tests/Specs/ProjectConfig.cs | 66 ---- 80 files changed, 624 insertions(+), 2879 deletions(-) delete mode 100644 cmf-cli/Handlers/PackageType/HelpGulpPackageTypeHandler.cs delete mode 100644 cmf-cli/Handlers/PackageType/HtmlGulpPackageTypeHandler.cs delete mode 100644 cmf-cli/Handlers/PackageType/PresentationPackageTypeHandler.cs delete mode 100644 cmf-cli/Handlers/PackageType/SecurityPortalPackageTypeHandler.cs delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/.template.config/template.json delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Org%.%Product%.%idSegment%.Common.csproj delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Tenant%Constants.cs delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Tenant%Utilities.cs delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/Properties/AssemblyInfo.cs delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/app.config delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/%Org%.%Product%.%idSegment%.Orchestration.csproj delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/%Tenant%Orchestration.cs delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/InputObjects/.gitkeep delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/OutputObjects/.gitkeep delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/Properties/AssemblyInfo.cs delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/app.config delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/%Org%.%Product%.%idSegment%.Services.csproj delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/%Tenant%Controller.cs delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/Properties/AssemblyInfo.cs delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/app.config delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/Business.sln delete mode 100644 cmf-cli/resources/template_feed/business/upto8x/Business.Package/cmfpackage.json delete mode 100644 cmf-cli/resources/template_feed/help/upTo9x/.template.config/template.json delete mode 100644 cmf-cli/resources/template_feed/help/upTo9x/Help.Package/.nvmrc delete mode 100644 cmf-cli/resources/template_feed/help/upTo9x/Help.Package/cmfpackage.json delete mode 100644 cmf-cli/resources/template_feed/html/upto9x/.template.config/template.json delete mode 100644 cmf-cli/resources/template_feed/html/upto9x/HTML.Package/.nvmrc delete mode 100644 cmf-cli/resources/template_feed/html/upto9x/HTML.Package/cmfpackage.json delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/.template.config/template.json delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/AutomationWorkFlows/.gitkeep delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/MasterData/%version%/.gitkeep delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/cmfpackage.json delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/.dev-tasks.json delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/.gitignore delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/cmfpackage.json delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/gulpfile.js delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/npm.postinstall.js delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/npm.preinstall.js delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/package.json delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/src/.gitkeep delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/ui.xml delete mode 100644 cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/cmfpackage.json delete mode 100644 tests/Fixtures/prodPkg/Cmf.Documentation.9.9.9.zip delete mode 100644 tests/Fixtures/prodPkg/Cmf.Presentation.HTML.9.9.9.zip create mode 100644 tests/Specs/ProgramTests.cs delete mode 100644 tests/Specs/ProjectConfig.cs diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index fc6cd3a95..435b46e96 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -7,8 +7,8 @@ "additionalVersions": ["6.0","8.0"] }, "ghcr.io/devcontainers/features/node": { - "version": "12", - "additionalVersions": ["18","20"] + "version": "18", + "additionalVersions": ["20"] }, "ghcr.io/devcontainers/features/github-cli": {}, "ghcr.io/nils-geistmann/devcontainers-features/zsh": { diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 0d620b432..eb37f1afa 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -20,16 +20,14 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [12, 18] + node-version: [18, 20] steps: - uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: | - 6.0.x - 8.0.x + dotnet-version: 8.0.x - name: Setup Node ${{ matrix.node-version }} uses: actions/setup-node@v4 @@ -40,13 +38,13 @@ jobs: run: | dotnet build --configuration Release - - name: Test (Node 12) - if: matrix.node-version == 12 - run: dotnet test --configuration Release --no-build --no-restore --verbosity normal --filter "TestCategory!=Node18" --collect:"XPlat Code Coverage" --logger trx --results-directory TestResults - - - name: Test (Node 18) + - name: Test ${{ matrix.node-version }} if: matrix.node-version == 18 - run: dotnet test --configuration Release --no-build --no-restore --verbosity normal --filter "TestCategory!=Node12" --collect:"XPlat Code Coverage" --logger trx --results-directory TestResults + run: dotnet test --configuration Release --no-build --no-restore --verbosity normal --filter "TestCategory!=Node20" --collect:"XPlat Code Coverage" --logger trx --results-directory TestResults + + - name: Test ${{ matrix.node-version }} + if: matrix.node-version == 20 + run: dotnet test --configuration Release --no-build --no-restore --verbosity normal --filter "TestCategory!=Node18" --collect:"XPlat Code Coverage" --logger trx --results-directory TestResults - name: Merge Coverage Reports run: | diff --git a/.husky/pre-commit b/.husky/pre-commit index 476fe8e37..90c9a7208 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -7,7 +7,7 @@ staged_files=$(git diff --cached --name-only) # Check if any changes are in cmf-cli, core, or tests folders if echo "$staged_files" | grep -qE "^(cmf-cli|core|tests)/"; then echo "Changes detected in cmf-cli, core, or tests folders. Running tests..." - dotnet test --filter "(TestCategory!=LongRunning)&(TestCategory!=Node12)" + dotnet test --filter "(TestCategory!=LongRunning)" else echo "No changes in cmf-cli, core, or tests folders. Skipping tests." fi diff --git a/cmf-cli/Commands/build/GenerateBasedOnTemplatesCommand.cs b/cmf-cli/Commands/build/GenerateBasedOnTemplatesCommand.cs index a50e21150..0533c1e82 100644 --- a/cmf-cli/Commands/build/GenerateBasedOnTemplatesCommand.cs +++ b/cmf-cli/Commands/build/GenerateBasedOnTemplatesCommand.cs @@ -64,7 +64,7 @@ public void Execute(IDirectoryInfo packagePath) var helpRoot = FileSystemUtilities.GetPackageRootByType(packagePath.FullName, PackageType.Help, this.fileSystem).FullName; var project = ExecutionContext.Instance.ProjectConfig.Tenant; - var helpPackagesRoot = (mesVersion.Major > 9) ? this.fileSystem.Path.Join(helpRoot, "projects") : this.fileSystem.Path.Join(helpRoot, "src", "packages"); + var helpPackagesRoot = this.fileSystem.Path.Join(helpRoot, "projects"); var helpPackages = this.fileSystem.Directory.GetDirectories(helpPackagesRoot); var pkgName = CmfPackage.Load(this.fileSystem.FileInfo.New(this.fileSystem.Path.Join(helpRoot, CliConstants.CmfPackageFileName))).PackageId.ToLowerInvariant(); foreach (var helpPackagePath in helpPackages) @@ -84,7 +84,7 @@ public void Execute(IDirectoryInfo packagePath) } } - Generate(helpPackagePath, useLegacyFormat ? project : ( (mesVersion.Major > 9) ? pkgName.Replace(".", "-").ToLowerInvariant() : pkgName)); + Generate(helpPackagePath, useLegacyFormat ? project : pkgName.Replace(".", "-").ToLowerInvariant()); } } diff --git a/cmf-cli/Commands/build/GenerateMenuItemsCommand.cs b/cmf-cli/Commands/build/GenerateMenuItemsCommand.cs index c73ea0d04..bf949e4b9 100644 --- a/cmf-cli/Commands/build/GenerateMenuItemsCommand.cs +++ b/cmf-cli/Commands/build/GenerateMenuItemsCommand.cs @@ -83,8 +83,8 @@ public void Execute(IDirectoryInfo packagePath) var regex = new Regex("\"?id\"?:\\s+[\"'](.*)[\"']"); // match for menu item IDs - var packagesDir = (mesVersion.Major > 9) ? this.fileSystem.DirectoryInfo.New(this.fileSystem.Path.Join(helpRoot, "projects")) : this.fileSystem.DirectoryInfo.New(this.fileSystem.Path.Join(helpRoot, "src", "packages")); - var helpPackages = packagesDir.GetDirectories("cmf.docs.area.*".Replace(".", (mesVersion.Major > 9) ? "-" : ".")); + var packagesDir = this.fileSystem.DirectoryInfo.New(this.fileSystem.Path.Join(helpRoot, "projects")); + var helpPackages = packagesDir.GetDirectories("cmf.docs.area.*".Replace(".", "-")); void GetMetadataFromFolder(IDirectoryInfo current, List metadata, IDirectoryInfo parent = null) { diff --git a/cmf-cli/Commands/build/IoTLibCommand.cs b/cmf-cli/Commands/build/IoTLibCommand.cs index 57a20a9bb..83a08a8c4 100644 --- a/cmf-cli/Commands/build/IoTLibCommand.cs +++ b/cmf-cli/Commands/build/IoTLibCommand.cs @@ -63,37 +63,30 @@ public override void Configure(Command cmd) /// package version public void Execute(IDirectoryInfo workingDir) { - if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major > 9) - { - IFileInfo cmfpackageFile = this.fileSystem.FileInfo.New($"{workingDir}/{CliConstants.CmfPackageFileName}"); - var cmfPackage = CmfPackage.Load(cmfpackageFile, setDefaultValues: true, this.fileSystem); + IFileInfo cmfpackageFile = this.fileSystem.FileInfo.New($"{workingDir}/{CliConstants.CmfPackageFileName}"); + var cmfPackage = CmfPackage.Load(cmfpackageFile, setDefaultValues: true, this.fileSystem); - if (cmfPackage.PackageType != PackageType.IoT) - { - throw new CliException(CliMessages.CommandIsOnlyValidForPackageOfTypeIoT); - } + if (cmfPackage.PackageType != PackageType.IoT) + { + throw new CliException(CliMessages.CommandIsOnlyValidForPackageOfTypeIoT); + } - var listOfLibs = workingDir.EnumerateDirectories().FirstOrDefault(dir => dir.Name == "dist").EnumerateDirectories(); - cmfPackage.RelatedPackages?.ForEach(relatedPackage => + var listOfLibs = workingDir.EnumerateDirectories().FirstOrDefault(dir => dir.Name == "dist").EnumerateDirectories(); + cmfPackage.RelatedPackages?.ForEach(relatedPackage => + { + if (relatedPackage.CmfPackage.GetFileInfo().Directory.GetFile(CliConstants.AngularJson) != null) { - if (relatedPackage.CmfPackage.GetFileInfo().Directory.GetFile(CliConstants.AngularJson) != null) + foreach (var lib in listOfLibs) { - foreach (var lib in listOfLibs) + new NPMCommand() { - new NPMCommand() - { - DisplayName = "npm link dist", - Args = new string[] { "link", lib.FullName }, - WorkingDirectory = relatedPackage.CmfPackage.GetFileInfo().Directory - }.Exec(); - } + DisplayName = "npm link dist", + Args = new string[] { "link", lib.FullName }, + WorkingDirectory = relatedPackage.CmfPackage.GetFileInfo().Directory + }.Exec(); } - }); - } - else - { - throw new CliException(string.Format(CliMessages.InvalidVersionForCommand, "10")); - } + } + }); } } } \ No newline at end of file diff --git a/cmf-cli/Commands/init/InitCommand.cs b/cmf-cli/Commands/init/InitCommand.cs index 09dfe5bfd..92a8b5361 100644 --- a/cmf-cli/Commands/init/InitCommand.cs +++ b/cmf-cli/Commands/init/InitCommand.cs @@ -150,28 +150,28 @@ public override void Configure(Command cmd) var devTasksVersionOption = new Option("--DevTasksVersion") { - Description = "Critical Manufacturing dev-tasks version. Only required if you are targeting a version lower than v10.", + Description = "Critical Manufacturing dev-tasks version.", Required = false }; cmd.Add(devTasksVersionOption); var htmlStarterVersionOption = new Option("--HTMLStarterVersion") { - Description = "HTML Starter version. Only required if you are targeting a version lower than v10.", + Description = "HTML Starter version.", Required = false }; cmd.Add(htmlStarterVersionOption); var yoGeneratorVersionOption = new Option("--yoGeneratorVersion") { - Description = "@criticalmanufacturing/html Yeoman generator version. Only required if you are targeting a version lower than v10.", + Description = "@criticalmanufacturing/html Yeoman generator version.", Required = false }; cmd.Add(yoGeneratorVersionOption); var ngxSchematicsVersionOption = new Option("--ngxSchematicsVersion") { - Description = "@criticalmanufacturing/ngx-schematics version. Only required if you are targeting a version equal or higher than v10.", + Description = "@criticalmanufacturing/ngx-schematics version.", Required = false }; cmd.Add(ngxSchematicsVersionOption); @@ -562,33 +562,14 @@ internal void Execute(InitArguments x) var version = Version.Parse(x.BaseVersion); args.AddRange(new []{ "--dotnetSDKVersion", ExecutionContext.ServiceProvider.GetService().DotNetSdk(version) }); - if (version.Major > 9) + if(version < new Version(10,0)) { - if (string.IsNullOrWhiteSpace(x.ngxSchematicsVersion)) - { - throw new CliException( - "--ngxSchematicsVersion is required when targeting a base version of 10 or above."); - } + throw new CliException("MES Versions under 10 are no longer supported with the newest version of the CLI. Please use cmf-cli 5.8.0 or lower."); } - else + + if (string.IsNullOrWhiteSpace(x.ngxSchematicsVersion)) { - var errors = new List(); - if (string.IsNullOrWhiteSpace(x.DevTasksVersion)) - { - errors.Add("--DevTasksVersion is required when targeting a base version lower than 10."); - } - if (string.IsNullOrWhiteSpace(x.HTMLStarterVersion)) - { - errors.Add("--HTMLStarterVersion is required when targeting a base version lower than 10."); - } - if (string.IsNullOrWhiteSpace(x.yoGeneratorVersion)) - { - errors.Add("--yoGeneratorVersion is required when targeting a base version lower than 10."); - } - if (errors.Count > 0) - { - throw new CliException(string.Join(Environment.NewLine, errors)); - } + throw new CliException("--ngxSchematicsVersion is missing, please specify it."); } #endregion diff --git a/cmf-cli/Commands/new/BusinessCommand.cs b/cmf-cli/Commands/new/BusinessCommand.cs index 5d4ac7993..32cf28f9a 100644 --- a/cmf-cli/Commands/new/BusinessCommand.cs +++ b/cmf-cli/Commands/new/BusinessCommand.cs @@ -7,7 +7,9 @@ using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Enums; using Cmf.CLI.Core.Objects; +using Cmf.CLI.Services; using Cmf.CLI.Utilities; +using Microsoft.Extensions.DependencyInjection; namespace Cmf.CLI.Commands.New { @@ -83,28 +85,25 @@ protected override List GenerateArgs(IDirectoryInfo projectRoot, IDirect var mesVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; var includeMESNugets = true; - if (mesVersion.Major > 8) - { - this.CommandName = "business9"; - var baseLayer = ExecutionContext.Instance.ProjectConfig.BaseLayer ?? CliConstants.DefaultBaseLayer; - includeMESNugets = baseLayer == BaseLayer.MES; - Log.Debug($"Project is targeting base layer {baseLayer}, so scaffolding {(includeMESNugets ? "with" : "without")} MES nugets."); + this.CommandName = "business10"; // template name + var baseLayer = ExecutionContext.Instance.ProjectConfig.BaseLayer ?? CliConstants.DefaultBaseLayer; + includeMESNugets = baseLayer == BaseLayer.MES; + Log.Debug($"Project is targeting base layer {baseLayer}, so scaffolding {(includeMESNugets ? "with" : "without")} MES nugets."); - args.AddRange(new []{ "--targetFramework", mesVersion.Major >= 11 ? "net8.0" : "net6.0" }); + args.AddRange(new []{ "--targetFramework", ExecutionContext.ServiceProvider.GetService().DotNetTargetFramework(mesVersion) }); - if (ExecutionContext.Instance.ProjectConfig.RepositoryType == RepositoryType.App) + if (ExecutionContext.Instance.ProjectConfig.RepositoryType == RepositoryType.App) + { + var appData = ExecutionContext.Instance.AppData ?? + throw new CliException("Could not retrieve repository AppData."); + args.AddRange(new[] { - var appData = ExecutionContext.Instance.AppData ?? - throw new CliException("Could not retrieve repository AppData."); - args.AddRange(new[] - { - "--app", "true", - "--licensedAppName", appData.licensedApplication, - "--fileVersion", $"{mesVersion}.0", - "--assemblyVersion", $"{mesVersion.Major}.{mesVersion.Minor}.0.0", - "--addApplicationVersionAssembly", AddApplicationVersionAssembly.ToString() - }); - } + "--app", "true", + "--licensedAppName", appData.licensedApplication, + "--fileVersion", $"{mesVersion}.0", + "--assemblyVersion", $"{mesVersion.Major}.{mesVersion.Minor}.0.0", + "--addApplicationVersionAssembly", AddApplicationVersionAssembly.ToString() + }); } // calculate relative path to local environment and create a new symbol for it diff --git a/cmf-cli/Commands/new/DataCommand.cs b/cmf-cli/Commands/new/DataCommand.cs index 7003f5146..9de6fda78 100644 --- a/cmf-cli/Commands/new/DataCommand.cs +++ b/cmf-cli/Commands/new/DataCommand.cs @@ -9,7 +9,9 @@ using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Enums; using Cmf.CLI.Core.Objects; +using Cmf.CLI.Services; using Cmf.CLI.Utilities; +using Microsoft.Extensions.DependencyInjection; namespace Cmf.CLI.Commands.New { @@ -56,6 +58,7 @@ public override void Configure(Command cmd) protected override List GenerateArgs(IDirectoryInfo projectRoot, IDirectoryInfo workingDir, List args) { var repoType = ExecutionContext.Instance.ProjectConfig.RepositoryType ?? CliConstants.DefaultRepositoryType; + Version version = ExecutionContext.Instance.ProjectConfig.MESVersion; var relativePathToRoot = this.fileSystem.Path.Join("..", //always one level deeper @@ -69,12 +72,7 @@ protected override List GenerateArgs(IDirectoryInfo projectRoot, IDirect "--rootRelativePath", relativePathToRoot, "--repositoryType", repoType.ToString() }); - - #region version-specific bits - - var version = ExecutionContext.Instance.ProjectConfig.MESVersion; - args.AddRange(new []{ "--targetFramework", version.Major > 8 ? "net6.0" : "netstandard2.0" }); - #endregion + args.AddRange(new []{ "--targetFramework", DependencyVersionService.NET6TARGETFRAMEWORK }); return args; } diff --git a/cmf-cli/Commands/new/GrafanaCommand.cs b/cmf-cli/Commands/new/GrafanaCommand.cs index bdb64c3d8..c294ffd19 100644 --- a/cmf-cli/Commands/new/GrafanaCommand.cs +++ b/cmf-cli/Commands/new/GrafanaCommand.cs @@ -31,11 +31,6 @@ public GrafanaCommand(IFileSystem fileSystem) : base("grafana", PackageType.Graf /// protected override List GenerateArgs(IDirectoryInfo projectRoot, IDirectoryInfo workingDir, List args) { - if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major < 10) - { - throw new CliException("Version unsupported, available in MES >= 10"); - } - var isRepositoryType = ExecutionContext.Instance.ProjectConfig.RepositoryType == RepositoryType.App; args.AddRange(new[] diff --git a/cmf-cli/Commands/new/HTMLCommand.cs b/cmf-cli/Commands/new/HTMLCommand.cs index 3b657ab26..9ee3ceb78 100644 --- a/cmf-cli/Commands/new/HTMLCommand.cs +++ b/cmf-cli/Commands/new/HTMLCommand.cs @@ -15,7 +15,6 @@ using Cmf.CLI.Utilities; using Microsoft.Extensions.DependencyInjection; using Newtonsoft.Json; -using Newtonsoft.Json.Linq; namespace Cmf.CLI.Commands.New { @@ -42,21 +41,12 @@ public override void Configure(Command cmd) { var (workingDirArg, versionOpt) = base.GetBaseCommandConfig(cmd); - var htmlPkgOption = new Option("--htmlPackage", "--htmlPkg") - { - Description = "Path to the MES Presentation HTML package (required for MES versions up to 9.x)", - Required = false, - CustomParser = argResult => Parse(argResult) - }; - cmd.Add(htmlPkgOption); - cmd.SetAction((parseResult, cancellationToken) => { var workingDir = parseResult.GetValue(workingDirArg); var version = parseResult.GetValue(versionOpt); - var htmlPackage = parseResult.GetValue(htmlPkgOption); - Execute(workingDir, version, htmlPackage); + Execute(workingDir, version); return Task.FromResult(0); }); } @@ -87,243 +77,10 @@ protected override List GenerateArgs(IDirectoryInfo projectRoot, IDirect /// /// nearest root package /// package version - /// The MES Presentation HTML package path - public void Execute(IDirectoryInfo workingDir, string version, IFileInfo htmlPackage) + public void Execute(IDirectoryInfo workingDir, string version) { CommandUtilities.ThrowIfNoProjectConfig(ExecutionContext.Instance); - - if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major > 9) - { - this.ExecuteV10(workingDir, version); - } - else - { - this.ExecuteV9(workingDir, version, htmlPackage); - } - } - - public void ExecuteV9(IDirectoryInfo workingDir, string version, IFileInfo htmlPackage) - { - if (htmlPackage == null) - { - throw new CliException("--htmlPkg option is required for MES versions up to 9.x"); - } - if (!htmlPackage.Exists) - { - throw new CliException($"Cannot find HTML package {htmlPackage.FullName}"); - } - var baseLayer = ExecutionContext.Instance.ProjectConfig.BaseLayer ?? CliConstants.DefaultBaseLayer; - this.baseWebPackage = baseLayer == BaseLayer.MES - ? "@criticalmanufacturing/mes-ui-web" - : "@criticalmanufacturing/core-ui-web"; - Log.Debug($"Project is targeting base layer {baseLayer}, so scaffolding with base web package {baseWebPackage}"); - - base.Execute(workingDir, version); // create package base - generate cmfpackage.json - - var nameIdx = Array.FindIndex(base.executedArgs, item => string.Equals(item, "--name")); - var pkgName = base.executedArgs[nameIdx + 1]; - var htmlStarterVersion = ExecutionContext.Instance.ProjectConfig.HTMLStarterVersion; - // clone HTMLStarter content in the folder - var pkgFolder = workingDir.GetDirectories(pkgName).FirstOrDefault(); - if (!pkgFolder?.Exists ?? false) - { - throw new CliException($"Package folder {pkgFolder.Name} does not exist. This is a template error. Please open an issue on GitHub."); - } - this.CloneHTMLStarter(htmlStarterVersion, pkgFolder); - - // root package.json - var rootPkgJsonPath = this.fileSystem.Path.Join(pkgFolder.FullName, "package.json"); - var json = fileSystem.File.ReadAllText(rootPkgJsonPath); - dynamic rootPkgJson = JsonConvert.DeserializeObject(json); - if (rootPkgJson == null) - { - throw new CliException("Could not load package.json"); - } - var devTasksVersion = ExecutionContext.Instance.ProjectConfig.DevTasksVersion; - var yoGeneratorVersion = ExecutionContext.Instance.ProjectConfig.YoGeneratorVersion; - var projectName = ExecutionContext.Instance.ProjectConfig.ProjectName; - var repositoryURL = ExecutionContext.Instance.ProjectConfig.RepositoryURL; - var tenant = ExecutionContext.Instance.ProjectConfig.Tenant; - rootPkgJson.devDependencies["@criticalmanufacturing/dev-tasks"] = devTasksVersion.ToString(); - rootPkgJson.devDependencies["@criticalmanufacturing/generator-html"] = yoGeneratorVersion.ToString(); - rootPkgJson.devDependencies["@types/node"] = "^12.0.0"; - rootPkgJson.name = $"customization.{tenant?.ToLowerInvariant()}"; - rootPkgJson.description = $"HTML customization package for {projectName}"; - rootPkgJson.repository.url = repositoryURL; - json = JsonConvert.SerializeObject(rootPkgJson, Formatting.Indented); - this.fileSystem.File.WriteAllText(rootPkgJsonPath, json); - Log.Verbose("Updated package.json"); - - // .dev-tasks.json - var devTasksPath = this.fileSystem.Path.Join(pkgFolder.FullName, ".dev-tasks.json"); - var devTasksStr = fileSystem.File.ReadAllText(devTasksPath); - dynamic devTasksJson = JsonConvert.DeserializeObject(devTasksStr); - if (devTasksJson == null) - { - throw new CliException("Could not load .dev-tasks.json"); - } - var npmRegistry = ExecutionContext.Instance.ProjectConfig.NPMRegistry; - var mesVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; - var targetVersion = mesVersion; - var injectAppsPackage = targetVersion.CompareTo(new Version("8.3.0")) >= 0; - if (injectAppsPackage) - { - Log.Debug($"Target MES version is 8.3.0+, injecting `cmf.core.app` into packages list."); - } - devTasksJson.packagePrefix = "customization"; - devTasksJson.webAppPrefix = "customization"; - devTasksJson.registry = npmRegistry; - devTasksJson.isWebAppCompilable = true; - devTasksJson.channel = $"release-{mesVersion.Major}{mesVersion.Minor}{mesVersion.Build}"; - devTasksStr = JsonConvert.SerializeObject(devTasksJson, Formatting.Indented); - this.fileSystem.File.WriteAllText(devTasksPath, devTasksStr); - Log.Verbose("Updated .dev-tasks.json"); - - // install dev dependencies/tooling - Log.Verbose("Executing npm install, this will take a while..."); - (new NPMCommand() { Command = "install", WorkingDirectory = pkgFolder }).Exec(); - - var htmlDevTasksConfigPath = this.fileSystem.Path.GetTempFileName(); - var htmlDevTasksConfigJson = -$@"{{ - ""answers"": {{ - ""packagePrefix"": ""customization"", - ""registry"": ""{npmRegistry}"", - ""confirmSkip"": ""y"", - ""channel"": ""release-{mesVersion.Major}{mesVersion.Minor}{mesVersion.Build}"" - }} -}}"; - this.fileSystem.File.WriteAllText(htmlDevTasksConfigPath, htmlDevTasksConfigJson); - var htmlWebAppConfigPath = this.fileSystem.Path.GetTempFileName(); - var htmlWebAppConfigJson = -$@"{{ - ""answers"": {{ - ""appName"": ""web"", - ""basePackage"": ""{this.baseWebPackage}"" - }} -}}"; - this.fileSystem.File.WriteAllText(htmlWebAppConfigPath, htmlWebAppConfigJson); - - // create web app - // npx yeoman-gen-run --name @criticalmanufacturing/html --config "$pathHTMLConfig" -- --keep - Log.Verbose("Generate web app, this will take a while..."); - (new NPXCommand() - { - Command = "yeoman-gen-run", - WorkingDirectory = pkgFolder, - Args = new[] - { - "--name", "@criticalmanufacturing/html", "--config", htmlDevTasksConfigPath, "--", "--keep" - } - }).Exec(); - // npx yeoman-gen-run --name @criticalmanufacturing/html:application --config "$path" - (new NPXCommand() - { - Command = "yeoman-gen-run", - WorkingDirectory = pkgFolder, - Args = new[] - { - "--name", "@criticalmanufacturing/html:application", "--config", htmlWebAppConfigPath - } - }).Exec(); - Log.Verbose("Web app generated!"); - - Log.Debug("Obtaining sources from MES Presentation HTML package..."); - var htmlPkgConfigJsonStr = FileSystemUtilities.GetFileContentFromPackage(htmlPackage.FullName, "config.json"); - // replace tokens that would break Json parse - htmlPkgConfigJsonStr = Regex.Replace(htmlPkgConfigJsonStr, @"\$\([^\)]+\)", "0", RegexOptions.Multiline); - dynamic htmlPkgConfigJson = null; - try - { - htmlPkgConfigJson = JsonConvert.DeserializeObject(htmlPkgConfigJsonStr); - } - catch (Exception e) - { - throw new CliException("Could not load ISO config.json", e); - } - var htmlPkgPackages = - (htmlPkgConfigJson.packages.available as JArray).Where(p => baseLayer == BaseLayer.MES || !p.Value().Contains("cmf.mes")); - - // config.json - var configJsonPath = this.fileSystem.Path.Join(pkgFolder.FullName, "apps", - this.fileSystem.Path.Join("customization.web", "config.json")); - var configJsonStr = fileSystem.File.ReadAllText(configJsonPath); - if (!configJsonStr.Contains("$(")) - { - // config.json has no tokens and can be malformed. We need to make sure it parses, so we inject some dummy values that will be thrown away later - Log.Debug("Generated config.json does not contain tokens and is possibly malformed. Setting some dummy values so we can deserialize it."); - configJsonStr = configJsonStr - .Replace("\"port\": ", "\"port\": 0") - .Replace("\"enableSsl\": ,", "\"enableSsl\": false,"); - - configJsonStr = Regex.Replace(configJsonStr, "\"isLoadBalancerEnabled\": (false)?\r?\n", - "\"isLoadBalancerEnabled\": false\n"); - } - configJsonStr = Regex.Replace(configJsonStr, @"\$\([^\)]+\)", "0", RegexOptions.Multiline); - dynamic configJsonJson = null; - try - { - configJsonJson = JsonConvert.DeserializeObject(configJsonStr); - } - catch (Exception e) - { - throw new CliException("Could not load webapp config.json", e); - } - if (configJsonJson == null) - { - throw new CliException("Could not load webapp config.json"); - } - var restPort = ExecutionContext.Instance.ProjectConfig.RESTPort; - configJsonJson.host.rest.enableSsl = false; - configJsonJson.host.rest.address = "localhost"; - configJsonJson.host.rest.port = restPort; - configJsonJson.host.isLoadBalancerEnabled = false; - configJsonJson.host.tenant.name = tenant; - configJsonJson.general.defaultDomain = ExecutionContext.Instance.ProjectConfig.DefaultDomain; - configJsonJson.general.environmentName = $"{projectName}Local"; - configJsonJson.version = $"{projectName} $(Build.BuildNumber) - {mesVersion}"; - configJsonJson.packages.available = JArray.FromObject(htmlPkgPackages.Concat(injectAppsPackage ? new[] { new JValue("cmf.core.app") } : Array.Empty())); - configJsonJson.packages.bundlePath = $"node_modules/{this.baseWebPackage}/bundles"; - configJsonStr = JsonConvert.SerializeObject(configJsonJson, Formatting.Indented); - this.fileSystem.File.WriteAllText(configJsonPath, configJsonStr); - Log.Verbose("Updated config.json"); - - // use lodash - // use custom LBOs - Log.Verbose("Updating web app package.json"); - var webAppPath = this.fileSystem.Path.Join(pkgFolder.FullName, - "apps", "customization.web"); - var webAppPkgJsonPath = this.fileSystem.Path.Join(webAppPath, "package.json"); - var projectRoot = FileSystemUtilities.GetProjectRoot(this.fileSystem); - var relativePathToRoot = - this.fileSystem.Path.GetRelativePath( - webAppPath, projectRoot.FullName) - .Replace("\\", "/"); - var webAppPkgJsonStr = fileSystem.File.ReadAllText(webAppPkgJsonPath); - dynamic webAppPkgJson = JsonConvert.DeserializeObject(webAppPkgJsonStr); - webAppPkgJson.dependencies["lodash"] = "3.10.1"; - webAppPkgJson.cmfLinkDependencies["cmf.lbos"] = $"file:{relativePathToRoot}/Libs/LBOs/TypeScript"; - webAppPkgJsonStr = JsonConvert.SerializeObject(webAppPkgJson, Formatting.Indented); - this.fileSystem.File.WriteAllText(webAppPkgJsonPath, webAppPkgJsonStr); - - // remove package locks - Log.Verbose("Generating accurate package-locks for future installs. This will take a while..."); - var rootPkgLockJsonPath = this.fileSystem.Path.Join(pkgFolder.FullName, "package-lock.json"); - this.fileSystem.File.Delete(rootPkgLockJsonPath); - var webAppPkgLockJsonPath = this.fileSystem.Path.Join( - fileSystem.Path.Join(pkgFolder.FullName, "apps", "customization.web"), "package-lock.json"); - this.fileSystem.File.Delete(webAppPkgLockJsonPath); - // gulp install --update - (new GulpCommand() - { - WorkingDirectory = pkgFolder, - GulpFile = "gulpfile.js", - Task = "install", - DisplayName = "Gulp Install", - GulpJS = "node_modules/gulp/bin/gulp.js", - Args = new[] { "--update" }, - }).Exec(); - Log.Information("HTML package generated"); + this.ExecuteV10(workingDir, version); } public void ExecuteV10(IDirectoryInfo workingDir, string version) diff --git a/cmf-cli/Commands/new/HelpCommand.cs b/cmf-cli/Commands/new/HelpCommand.cs index dacddf8f6..42ba4837f 100644 --- a/cmf-cli/Commands/new/HelpCommand.cs +++ b/cmf-cli/Commands/new/HelpCommand.cs @@ -44,21 +44,12 @@ public override void Configure(Command cmd) { var (workingDirArg, versionOpt) = base.GetBaseCommandConfig(cmd); - var docPkgOption = new Option("--documentationPackage", "--docPkg") - { - Description = "Path to the MES documentation package (required for MES versions up to 9.x)", - Required = false, - CustomParser = argResult => Parse(argResult) - }; - cmd.Add(docPkgOption); - cmd.SetAction((parseResult, cancellationToken) => { var workingDir = parseResult.GetValue(workingDirArg); var version = parseResult.GetValue(versionOpt); - var documentationPackage = parseResult.GetValue(docPkgOption); - Execute(workingDir, version, documentationPackage); + Execute(workingDir, version); return Task.FromResult(0); }); } @@ -104,227 +95,9 @@ protected override List GenerateArgs(IDirectoryInfo projectRoot, IDirect /// /// nearest root package /// package version - /// The MES documentation package path - public void Execute(IDirectoryInfo workingDir, string version, IFileInfo documentationPackage) - { - if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major > 9) - { - Log.Debug("Running v>=10 template"); - this.ExecuteV10(workingDir, version, ExecutionContext.Instance.ProjectConfig.MESVersion.Major); - } - else - { - Log.Debug("Running v<10 template"); - this.ExecuteV9(workingDir, version, documentationPackage); - } - } - - public void ExecuteV9(IDirectoryInfo workingDir, string version, IFileInfo documentationPackage) - { - if (documentationPackage == null) - { - throw new CliException("--docPkg option is required for MES versions up to 9.x"); - } - if (!documentationPackage.Exists) - { - throw new CliException($"Cannot find Documentation package {documentationPackage.FullName}"); - } - base.Execute(workingDir, version); // create package base - generate cmfpackage.json - var nameIdx = Array.FindIndex(base.executedArgs, item => string.Equals(item, "--name")); - var pkgName = base.executedArgs[nameIdx + 1]; - var htmlStarterVersion = ExecutionContext.Instance.ProjectConfig.HTMLStarterVersion; - // clone HTMLStarter content in the folder - var pkgFolder = workingDir.GetDirectories(pkgName).FirstOrDefault(); - if (!pkgFolder?.Exists ?? false) - { - throw new CliException($"Package folder {pkgFolder.Name} does not exist. This is a template error. Please open an issue on GitHub."); - } - this.CloneHTMLStarter(htmlStarterVersion, pkgFolder); - - // root package.json - var rootPkgJsonPath = this.fileSystem.Path.Join(pkgFolder.FullName, "package.json"); - var json = fileSystem.File.ReadAllText(rootPkgJsonPath); - dynamic rootPkgJson = JsonConvert.DeserializeObject(json); - if (rootPkgJson == null) - { - throw new CliException("Could not load package.json"); - } - var devTasksVersion = ExecutionContext.Instance.ProjectConfig.DevTasksVersion; - var yoGeneratorVersion = ExecutionContext.Instance.ProjectConfig.YoGeneratorVersion; - var projectName = ExecutionContext.Instance.ProjectConfig.ProjectName; - var repositoryURL = ExecutionContext.Instance.ProjectConfig.RepositoryURL; - rootPkgJson.devDependencies["@criticalmanufacturing/dev-tasks"] = devTasksVersion.ToString(); - rootPkgJson.devDependencies["@criticalmanufacturing/generator-html"] = yoGeneratorVersion.ToString(); - rootPkgJson.devDependencies["@types/node"] = "^12.0.0"; - rootPkgJson.name = "cmf.docs.area"; - rootPkgJson.description = $"Help customization package for {projectName}"; - rootPkgJson.repository.url = repositoryURL; - json = JsonConvert.SerializeObject(rootPkgJson, Formatting.Indented); - this.fileSystem.File.WriteAllText(rootPkgJsonPath, json); - Log.Verbose("Updated package.json"); - - // .dev-tasks.json - var devTasksPath = this.fileSystem.Path.Join(pkgFolder.FullName, ".dev-tasks.json"); - var devTasksStr = fileSystem.File.ReadAllText(devTasksPath); - dynamic devTasksJson = JsonConvert.DeserializeObject(devTasksStr); - if (devTasksJson == null) - { - throw new CliException("Could not load .dev-tasks.json"); - } - var npmRegistry = ExecutionContext.Instance.ProjectConfig.NPMRegistry; - var mesVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; - devTasksJson.packagePrefix = "cmf.docs.area"; - devTasksJson.webAppPrefix = "cmf.docs.area"; - devTasksJson.registry = npmRegistry; - devTasksJson.channel = $"release-{mesVersion.Major}{mesVersion.Minor}{mesVersion.Build}"; - devTasksStr = JsonConvert.SerializeObject(devTasksJson, Formatting.Indented); - this.fileSystem.File.WriteAllText(devTasksPath, devTasksStr); - Log.Verbose("Updated .dev-tasks.json"); - - // install dev dependencies/tooling - Log.Verbose("Executing npm install, this will take a while..."); - (new NPMCommand() { Command = "install", WorkingDirectory = pkgFolder }).Exec(); - - var helpDevTasksConfigPath = this.fileSystem.Path.GetTempFileName(); - var helpDevTasksConfigJson = -$@"{{ - ""answers"": {{ - ""packagePrefix"": ""cmf.docs.area"", - ""registry"": ""{npmRegistry}"", - ""confirmSkip"": ""y"", - ""channel"": ""release-{mesVersion.Major}{mesVersion.Minor}{mesVersion.Build}"" - }} -}}"; - this.fileSystem.File.WriteAllText(helpDevTasksConfigPath, helpDevTasksConfigJson); - var helpWebAppConfigPath = this.fileSystem.Path.GetTempFileName(); - var helpWebAppConfigJson = -@"{ - ""answers"": { - ""appName"": ""web"", - ""basePackage"": ""other"", - ""otherPackage"": ""cmf.docs.web"" - } -}"; - this.fileSystem.File.WriteAllText(helpWebAppConfigPath, helpWebAppConfigJson); - - // create web app - // npx yeoman-gen-run --name @criticalmanufacturing/html --config "$pathHTMLConfig" - Log.Verbose("Generate web app, this will take a while..."); - (new NPXCommand() - { - Command = "yeoman-gen-run", - WorkingDirectory = pkgFolder, - Args = new[] - { - "--name", "@criticalmanufacturing/html", "--config", helpDevTasksConfigPath - } - }).Exec(); - // npx yeoman-gen-run --name @criticalmanufacturing/html:application cmf.docs.area.web --config "$path" - (new NPXCommand() - { - Command = "yeoman-gen-run", - WorkingDirectory = pkgFolder, - Args = new[] - { - "--name", "@criticalmanufacturing/html:application", "cmf.docs.area.web", "--config", helpWebAppConfigPath - } - }).Exec(); - Log.Verbose("Web app generated!"); - - - Log.Debug("Obtaining sources from MES Documentation package..."); - var docPkgConfigJsonStr = FileSystemUtilities.GetFileContentFromPackage(documentationPackage.FullName, "config.json"); - // replace tokens that would break Json parse - docPkgConfigJsonStr = Regex.Replace(docPkgConfigJsonStr, @"\$\([^\)]+\)", "0", RegexOptions.Multiline); - dynamic docPkgConfigJson = JsonConvert.DeserializeObject(docPkgConfigJsonStr); - var docPkgIndexHtml = FileSystemUtilities.GetFileContentFromPackage(documentationPackage.FullName, "index.html"); - - // config.json - var configJsonPath = this.fileSystem.Path.Join(pkgFolder.FullName, "apps", - this.fileSystem.Path.Join("cmf.docs.area.web", "config.json")); - var configJsonStr = fileSystem.File.ReadAllText(configJsonPath); - configJsonStr = Regex.Replace(configJsonStr, @"\$\([^\)]+\)", "0", RegexOptions.Multiline); - dynamic configJsonJson = JsonConvert.DeserializeObject(configJsonStr); - if (configJsonJson == null) - { - throw new CliException("Could not load config.json"); - } - var restPort = ExecutionContext.Instance.ProjectConfig.RESTPort; - configJsonJson.host.rest.enableSsl = false; - configJsonJson.host.rest.address = "localhost"; - configJsonJson.host.rest.port = restPort; - configJsonJson.host.isLoadBalancerEnabled = false; - configJsonJson.host.tenant.name = ExecutionContext.Instance.ProjectConfig.Tenant; - configJsonJson.general.defaultDomain = ExecutionContext.Instance.ProjectConfig.DefaultDomain; - configJsonJson.version = $"{projectName} $(Build.BuildNumber) - {mesVersion}"; - configJsonJson.packages.available = docPkgConfigJson.packages.available; - configJsonJson.packages.Remove("bundlePath"); - if (configJsonJson.packages.bundles != null) - { - configJsonJson.packages.bundles.metadata = false; - configJsonJson.packages.bundles.i18n = false; - } - configJsonStr = JsonConvert.SerializeObject(configJsonJson, Formatting.Indented); - this.fileSystem.File.WriteAllText(configJsonPath, configJsonStr); - Log.Verbose("Updated config.json"); - - //index.html (copied from Documentation package) - var indexHtmlPath = this.fileSystem.Path.Join(pkgFolder.FullName, "apps", - this.fileSystem.Path.Join("cmf.docs.area.web", "index.html")); - this.fileSystem.File.WriteAllText(indexHtmlPath, docPkgIndexHtml.Replace("", "")); - - // generate doc package - Log.Verbose("Generating documentation package. This will take a while..."); - var tenant = ExecutionContext.Instance.ProjectConfig.Tenant; - var assetsPkgName = $"cmf.docs.area.{pkgName.ToLowerInvariant()}"; - var helpPkgConfigPath = this.fileSystem.Path.GetTempFileName(); - var helpPkgConfigJson = -$@"{{ - ""answers"": {{ - ""packageName"": ""{assetsPkgName}"", - ""dependencies"": ""{assetsPkgName}"" - }} -}}"; - this.fileSystem.File.WriteAllText(helpPkgConfigPath, helpPkgConfigJson); - (new NPXCommand() - { - Command = "yeoman-gen-run", - WorkingDirectory = pkgFolder, - Args = new[] - { - // the package name must be in the same argument as the generator name: this is a yeoman-gen-run limitation: - // when yeoman-gen-run runs env.run(genName, doneFunc), genName gets split into [name, ...args] which causes args to be empty - // the actual invocation should be env.run([genName, ...config.cli.args], doneFunc) - "--name", $@"""@criticalmanufacturing/html:package {assetsPkgName}""", "--config", helpPkgConfigPath - } - }).Exec(); - Log.Verbose("Generated documentation package"); - - Log.Verbose("Generating assets..."); - base.ExecuteTemplate("helpSrcPkg", new[] - { - "--output", this.fileSystem.Path.Join(pkgFolder.FullName, "src", "packages"), - "--name", assetsPkgName, - "--dfPackageName", pkgName.ToLowerInvariant(), - "--Tenant", tenant - }); - - Log.Verbose("Changing web app port and package type..."); - // replace type of package gulpfile - var assetsPkgGulpFilePath = this.fileSystem.Path.Join(pkgFolder.FullName, "src", - this.fileSystem.Path.Join("packages", assetsPkgName, "gulpfile.js")); - var assetsPkgGulpFile = fileSystem.File.ReadAllText(assetsPkgGulpFilePath); - this.fileSystem.File.WriteAllText(assetsPkgGulpFilePath, assetsPkgGulpFile.Replace("type: 'module'", "type: 'documentation'")); - // replace port of webapp gulpfile - var webAppGulpFilePath = this.fileSystem.Path.Join(pkgFolder.FullName, - this.fileSystem.Path.Join("apps", "cmf.docs.area.web", "gulpfile.js")); - var webAppGulpFile = fileSystem.File.ReadAllText(webAppGulpFilePath); - this.fileSystem.File.WriteAllText(webAppGulpFilePath, webAppGulpFile.Replace("defaultPort: 7000", "defaultPort: 7001")); - Log.Information("Help package generated"); - } - - public void ExecuteV10(IDirectoryInfo workingDir, string version, int majorVersion) + public void Execute(IDirectoryInfo workingDir, string version) { + int majorVersion = ExecutionContext.Instance.ProjectConfig.MESVersion.Major; var ngxSchematicsVersion = ExecutionContext.Instance.ProjectConfig.NGXSchematicsVersion; if (ngxSchematicsVersion == null) { diff --git a/cmf-cli/Commands/new/IoTCommand.cs b/cmf-cli/Commands/new/IoTCommand.cs index acfb612df..f96152391 100644 --- a/cmf-cli/Commands/new/IoTCommand.cs +++ b/cmf-cli/Commands/new/IoTCommand.cs @@ -112,32 +112,24 @@ protected override List GenerateArgs(IDirectoryInfo projectRoot, IDirect public void Execute(IDirectoryInfo workingDir, string version, string htmlPackageLocation, bool isAngularPackage) { var mesVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; - if (mesVersion.Major > 9) + // (ATL) Automation Task Library Package + // only introduced in v10.2.7 + var executeV10ATL = !isAngularPackage && mesVersion >= new Version(10, 2, 7) && mesVersion < new Version(11, 0, 0); + + // only introduced in v11 + var executeV11ATL = !isAngularPackage && mesVersion >= new Version(11, 0, 0); + + if (executeV10ATL) + { + this.ExecuteV10ATL(workingDir, version); + } + else if (executeV11ATL) { - // (ATL) Automation Task Library Package - // only introduced in v10.2.7 - var executeV10ATL = !isAngularPackage && mesVersion >= new Version(10, 2, 7) && mesVersion < new Version(11, 0, 0); - - // only introduced in v11 - var executeV11ATL = !isAngularPackage && mesVersion >= new Version(11, 0, 0); - - if (executeV10ATL) - { - this.ExecuteV10ATL(workingDir, version); - } - else if (executeV11ATL) - { - this.ExecuteV11ATL(workingDir, version); - } - else - { - this.ExecuteV10AngularPackage(workingDir, version, htmlPackageLocation); - } + this.ExecuteV11ATL(workingDir, version); } else { - this.CommandName = "iot-upto9x"; - base.Execute(workingDir, version); + this.ExecuteV10AngularPackage(workingDir, version, htmlPackageLocation); } } diff --git a/cmf-cli/Commands/new/TestCommand.cs b/cmf-cli/Commands/new/TestCommand.cs index 417a3acd3..49a8fbc01 100644 --- a/cmf-cli/Commands/new/TestCommand.cs +++ b/cmf-cli/Commands/new/TestCommand.cs @@ -8,6 +8,8 @@ using System.IO.Abstractions; using System; using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Cmf.CLI.Services; namespace Cmf.CLI.Commands.New { @@ -104,7 +106,7 @@ public void Execute(string version) } #region version-specific bits - args.AddRange(new []{ "--targetFramework", mesVersion.Major > 8 ? mesVersion.Major >= 11 ? "net8.0" : "net6.0" : "netcoreapp3.1" }); + args.AddRange(new []{ "--targetFramework", ExecutionContext.ServiceProvider.GetService().DotNetTargetFramework(mesVersion) }); if (mesVersion >= new Version(11, 2, 3)) { diff --git a/cmf-cli/Factories/PackageTypeFactory.cs b/cmf-cli/Factories/PackageTypeFactory.cs index 7640986be..762790537 100644 --- a/cmf-cli/Factories/PackageTypeFactory.cs +++ b/cmf-cli/Factories/PackageTypeFactory.cs @@ -45,8 +45,8 @@ public static IPackageTypeHandler GetPackageTypeHandler(CmfPackage cmfPackage, b PackageType.Root => new RootPackageTypeHandler(cmfPackage), PackageType.Generic => new GenericPackageTypeHandler(cmfPackage), PackageType.Business => new BusinessPackageTypeHandler(cmfPackage), - PackageType.HTML => HtmlHandler(cmfPackage), - PackageType.Help => HelpHandler(cmfPackage), + PackageType.HTML => new HtmlNgCliPackageTypeHandler(cmfPackage), + PackageType.Help => new HelpNgCliPackageTypeHandler(cmfPackage), PackageType.IoT => new IoTPackageTypeHandler(cmfPackage), PackageType.IoTData => cmfPackage.HandlerVersion switch { @@ -62,56 +62,12 @@ public static IPackageTypeHandler GetPackageTypeHandler(CmfPackage cmfPackage, b PackageType.ExportedObjects => new ExportedObjectsPackageTypeHandler(cmfPackage), PackageType.Database => new DatabasePackageTypeHandler(cmfPackage), PackageType.Tests => new TestPackageTypeHandler(cmfPackage), - PackageType.SecurityPortal => SecurityPortalHandler(cmfPackage), + PackageType.SecurityPortal => new SecurityPortalPackageTypeHandlerV2(cmfPackage), PackageType.Grafana => new GrafanaPackageTypeHandler(cmfPackage), _ => throw new CliException(string.Format(CoreMessages.PackageTypeHandlerNotImplemented, cmfPackage.PackageType.ToString())) }; return packageTypeHandler; } - - private static IPackageTypeHandler HelpHandler(CmfPackage cmfPackage) - { - var targetVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; - var minimumVersion = new Version("10.0.0"); - if (targetVersion.CompareTo(minimumVersion) < 0) - { - return new HelpGulpPackageTypeHandler(cmfPackage); - } - - return new HelpNgCliPackageTypeHandler(cmfPackage); - } - - private static IPackageTypeHandler HtmlHandler(CmfPackage cmfPackage) - { - var targetVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; - var minimumVersion = new Version("10.0.0"); - if (targetVersion.CompareTo(minimumVersion) < 0) - { - return new HtmlGulpPackageTypeHandler(cmfPackage); - } - - return new HtmlNgCliPackageTypeHandler(cmfPackage); - } - - /// - /// Creates the specific Security Portal package handler. - /// - /// If the ProjectConfig's MESVersion is less than 10.0.0, a is created and returned. - /// Otherwise, a is created and returned. - /// - /// - /// - private static IPackageTypeHandler SecurityPortalHandler(CmfPackage cmfPackage) - { - var targetVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; - var minimumVersion = new Version("10.0.0"); - if (targetVersion.CompareTo(minimumVersion) < 0) - { - return new SecurityPortalPackageTypeHandler(cmfPackage); - } - - return new SecurityPortalPackageTypeHandlerV2(cmfPackage); - } } } diff --git a/cmf-cli/Handlers/PackageType/HelpGulpPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/HelpGulpPackageTypeHandler.cs deleted file mode 100644 index 08377896a..000000000 --- a/cmf-cli/Handlers/PackageType/HelpGulpPackageTypeHandler.cs +++ /dev/null @@ -1,128 +0,0 @@ -using System.Collections.Generic; -using System.IO.Abstractions; -using System.Text.RegularExpressions; -using Cmf.CLI.Builders; -using Cmf.CLI.Commands; -using Cmf.CLI.Commands.restore; -using Cmf.CLI.Core; -using Cmf.CLI.Core.Enums; -using Cmf.CLI.Core.Objects; -using Cmf.CLI.Utilities; -using Newtonsoft.Json.Linq; -using Newtonsoft.Json; -using System.IO; - - -namespace Cmf.CLI.Handlers -{ - /// - /// - /// - /// - public class HelpGulpPackageTypeHandler : PresentationPackageTypeHandler - { - /// - /// Initializes a new instance of the class. - /// - /// - public HelpGulpPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) - { - cmfPackage.SetDefaultValues - ( - targetDirectory: - "UI/Help", - targetLayer: - "help" - ); - - BuildSteps = new IBuildCommand[] - { - new ExecuteCommand() - { - Command = new RestoreCommand(), - DisplayName = "cmf restore", - Execute = command => - { - command.Execute(cmfPackage.GetFileInfo().Directory, null); - } - }, - new NPMCommand() - { - DisplayName = "NPM Install", - Command = "install", - Args = new []{ "--force" }, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new GulpCommand() - { - GulpFile = "gulpfile.js", - Task = "install", - DisplayName = "Gulp Install", - GulpJS = "node_modules/gulp/bin/gulp.js", - Args = new [] { "--update" }, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - // generate based on templates - new ExecuteCommand() - { - DisplayName = "Generate help pages based on templates", - Command = new GenerateBasedOnTemplatesCommand(), - Execute = command => - { - command.Execute(cmfPackage.GetFileInfo().Directory); - } - }, - // generate menu items - new ExecuteCommand() - { - DisplayName = "Generate menu items", - Command = new GenerateMenuItemsCommand(), - Execute = command => - { - command.Execute(cmfPackage.GetFileInfo().Directory); - } - }, - new GulpCommand() - { - GulpFile = "gulpfile.js", - Task = "build", - DisplayName = "Gulp Build", - GulpJS = "node_modules/gulp/bin/gulp.js", - Args = new [] { "--production" }, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - }; - - cmfPackage.DFPackageType = PackageType.Presentation; - } - - /// - /// Bumps the Base version of the package - /// - /// The new Base version. - public override void UpgradeBase(string version, string iotVersion, List iotPackagesToIgnore) - { - base.UpgradeBase(version, iotVersion, iotPackagesToIgnore); - UpgradeBaseUtilities.UpdateNPMProject(this.fileSystem, this.CmfPackage, version); - - // Update the version in the config.json file - IFileInfo config = this.fileSystem.FileInfo.New(Path.Join(this.CmfPackage.GetFileInfo().DirectoryName, "apps", "cmf.docs.area.web", "config.json")); - - if (config.Exists) - { - Log.Information($"Updating apps/cmf.docs.area.web/config.json file"); - - string text = fileSystem.File.ReadAllText(config.FullName); - JObject configObject = JsonConvert.DeserializeObject(text); - - if (configObject.ContainsKey("version")) - { - string configVersion = (string)configObject["version"]; - configObject["version"] = Regex.Replace(configVersion, @"\d+\.\d+\.\d+", version); - } - - fileSystem.File.WriteAllText(config.FullName, JsonConvert.SerializeObject(configObject, Formatting.Indented)); - } - } - } -} \ No newline at end of file diff --git a/cmf-cli/Handlers/PackageType/HtmlGulpPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/HtmlGulpPackageTypeHandler.cs deleted file mode 100644 index be0595889..000000000 --- a/cmf-cli/Handlers/PackageType/HtmlGulpPackageTypeHandler.cs +++ /dev/null @@ -1,129 +0,0 @@ - -using System.Collections.Generic; -using System.IO.Abstractions; -using System.Text.RegularExpressions; -using Cmf.CLI.Builders; -using Cmf.CLI.Commands.restore; -using Cmf.CLI.Core; -using Cmf.CLI.Core.Enums; -using Cmf.CLI.Core.Objects; -using Cmf.CLI.Utilities; -using Cmf.CLI.Services; -using Microsoft.Extensions.DependencyInjection; -using Newtonsoft.Json.Linq; -using Newtonsoft.Json; -using Microsoft.TemplateEngine.Abstractions; -using System.IO; - -namespace Cmf.CLI.Handlers -{ - /// - /// - /// - /// - public class HtmlGulpPackageTypeHandler : PresentationPackageTypeHandler - { - /// - /// Initializes a new instance of the class. - /// - /// - public HtmlGulpPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) - { - // Validate Node.js version before proceeding with build setup - // Only validate if ExecutionContext is properly initialized - if (ExecutionContext.Instance?.ProjectConfig != null && ExecutionContext.ServiceProvider != null) - { - var dependencyVersionService = ExecutionContext.ServiceProvider.GetService(); - if (dependencyVersionService != null) - { - var mesVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; - var requiredNodeVersion = dependencyVersionService.Node(mesVersion); - NodeVersionUtilities.ValidateNodeVersion(mesVersion, requiredNodeVersion); - } - } - - cmfPackage.SetDefaultValues - ( - targetDirectory: - "UI/Html", - targetLayer: - "ui", - steps: - new List - { - new Step(StepType.DeployFiles) - { - ContentPath = "bundles/**" - } - } - ); - - BuildSteps = new IBuildCommand[] - { - new ExecuteCommand() - { - Command = new RestoreCommand(), - DisplayName = "cmf restore", - Execute = command => - { - command.Execute(cmfPackage.GetFileInfo().Directory, null); - } - }, - new NPMCommand() - { - DisplayName = "NPM Install", - Command = "install", - Args = new []{ "--force" }, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new GulpCommand() - { - GulpFile = "gulpfile.js", - Task = "install", - DisplayName = "Gulp Install", - GulpJS = "node_modules/gulp/bin/gulp.js", - Args = new [] { "--update" }, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new GulpCommand() - { - GulpFile = "gulpfile.js", - Task = "build", - DisplayName = "Gulp Build", - GulpJS = "node_modules/gulp/bin/gulp.js", - Args = new [] { "--production" , "--dist", "--brotli"}, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - }; - - cmfPackage.DFPackageType = PackageType.Presentation; - } - - /// - /// Bumps the Base version of the package - /// - /// The new Base version. - public override void UpgradeBase(string version, string iotVersion, List iotPackagesToIgnore) - { - base.UpgradeBase(version, iotVersion, iotPackagesToIgnore); - UpgradeBaseUtilities.UpdateNPMProject(this.fileSystem, this.CmfPackage, version); - - IFileInfo projectConfig = this.fileSystem.FileInfo.New(Path.Join(this.CmfPackage.GetFileInfo().DirectoryName, "apps", "customization.web", "config.json")); - if (projectConfig.Exists) - { - Log.Information($"Updating apps/customization.web/config.json file"); - - string text = fileSystem.File.ReadAllText(projectConfig.FullName); - JObject configObject = JsonConvert.DeserializeObject(text); - - if (configObject.ContainsKey("version")) - { - string configVersion = (string)configObject["version"]; - configObject["version"] = Regex.Replace(configVersion, @"\d+\.\d+\.\d+", version); - } - - fileSystem.File.WriteAllText(projectConfig.FullName, JsonConvert.SerializeObject(configObject, Formatting.Indented)); - } - } - } -} \ No newline at end of file diff --git a/cmf-cli/Handlers/PackageType/HtmlNgCliPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/HtmlNgCliPackageTypeHandler.cs index 4e9e777fe..137570eed 100644 --- a/cmf-cli/Handlers/PackageType/HtmlNgCliPackageTypeHandler.cs +++ b/cmf-cli/Handlers/PackageType/HtmlNgCliPackageTypeHandler.cs @@ -4,13 +4,11 @@ using System.IO.Abstractions; using System.Linq; using System.Text.RegularExpressions; -using System.Threading.Tasks; using Cmf.CLI.Builders; using Cmf.CLI.Commands.html; using Cmf.CLI.Commands.restore; using Cmf.CLI.Constants; using Cmf.CLI.Core; -using Cmf.CLI.Core.Constants; using Cmf.CLI.Core.Enums; using Cmf.CLI.Core.Objects; using Cmf.CLI.Utilities; @@ -240,44 +238,5 @@ public override void UpgradeBase(string version, string iotVersion, List // Log.Information($"{outputDir.FullName}/{CmfPackage.ZipPackageName} created"); // // } - - /// - /// Generates the presentation configuration file. - /// - /// The package output dir. - private void GeneratePresentationConfigFile(IDirectoryInfo packageOutputDir) - { - Log.Debug("Generating Presentation config.json"); - string path = $"{packageOutputDir.FullName}/assets/{CliConstants.CmfPackagePresentationConfig}"; - - List transformInjections = new(); - - IDirectoryInfo cmfPackageDirectory = CmfPackage.GetFileInfo().Directory; - - foreach (ContentToPack contentToPack in CmfPackage.ContentToPack) - { - if (contentToPack.Action == PackAction.Transform) - { - transformInjections.Add(contentToPack.Source); - } - } - - // Get Template - string fileContent = ResourceUtilities.GetEmbeddedResourceContent($"{CliConstants.FolderTemplates}/{CmfPackage.PackageType}/config.ng.json"); - - fileContent = fileContent.Replace(CliConstants.TokenVersion, CmfPackage.Version); - - string injection = string.Empty; - if (transformInjections.HasAny()) - { - // we actually want a trailing comma here, because the inject token is in the middle of the document. If this changes we need to put more logic here. - var injections = transformInjections.Select(injection => this.fileSystem.File.ReadAllText($"{cmfPackageDirectory}/{injection}") + ","); - injection = string.Join(System.Environment.NewLine, injections); - } - fileContent = fileContent.Replace(CliConstants.TokenJDTInjection, injection); - fileContent = fileContent.Replace(CliConstants.CacheId, DateTime.Now.ToString("yyyyMMddHHmmss")); - - this.fileSystem.File.WriteAllText(path, fileContent); - } } } \ No newline at end of file diff --git a/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs index 7c6f65b03..05a6a752e 100644 --- a/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs +++ b/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs @@ -1,6 +1,7 @@ using Cmf.CLI.Builders; using Cmf.CLI.Commands.New; using Cmf.CLI.Commands.restore; +using Cmf.CLI.Constants; using Cmf.CLI.Core; using Cmf.CLI.Core.Constants; using Cmf.CLI.Core.Enums; @@ -21,7 +22,7 @@ namespace Cmf.CLI.Handlers /// /// /// - public class IoTPackageTypeHandler : PresentationPackageTypeHandler + public class IoTPackageTypeHandler : PackageTypeHandler { /// /// Initializes a new instance of the class. @@ -29,150 +30,94 @@ public class IoTPackageTypeHandler : PresentationPackageTypeHandler /// The CMF package. public IoTPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) { - var minimumVersion = new Version("8.3.5"); var targetVersion = ExecutionContext.Instance.ProjectConfig.MESVersion; IBuildCommand[] buildCommands = Array.Empty(); var defaultSteps = new List(); - if (targetVersion.CompareTo(minimumVersion) < 0) + var packageLocation = "projects"; + + if (!this.IsAngularProject(cmfPackage.GetFileInfo().Directory.FullName)) { - Log.Debug( - $"MES version lower than {minimumVersion}, skipping DeployRepositoryFiles and GenerateRepositoryIndex steps. Make sure you have alternative steps in your manifest."); + defaultSteps = this.AddAutomationTaskLibrariesStep(targetVersion, CmfPackage, defaultSteps); + defaultSteps = this.AddAutomationBusinessScenarioStep(targetVersion, CmfPackage, defaultSteps); } - if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major < 10) + + buildCommands = new IBuildCommand[] { - buildCommands = new IBuildCommand[] + new ExecuteCommand() { - new ExecuteCommand() - { - Command = new RestoreCommand(), - DisplayName = "cmf restore", - Execute = command => - { - command.Execute(cmfPackage.GetFileInfo().Directory, null); - } - }, - new NPMCommand() - { - DisplayName = "NPM Install", - Command = "install", - Args = new[] {"--force"}, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new GulpCommand() - { - GulpFile = "gulpfile.js", - Task = "install", - DisplayName = "Gulp Install", - GulpJS = "node_modules/gulp/bin/gulp.js", - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new GulpCommand() + Command = new RestoreCommand(), + DisplayName = "cmf restore", + Execute = command => { - GulpFile = "gulpfile.js", - Task = "build", - DisplayName = "Gulp Build", - GulpJS = "node_modules/gulp/bin/gulp.js", - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new GulpCommand() - { - GulpFile = "gulpfile.js", - Task = "cliTest", - DisplayName = "Gulp Test", - GulpJS = "node_modules/gulp/bin/gulp.js", - WorkingDirectory = cmfPackage.GetFileInfo().Directory, - Test = true + command.Execute(cmfPackage.GetFileInfo().Directory, null); } - }; - } - else - { - var packageLocation = "projects"; - - if (!this.IsAngularProject(cmfPackage.GetFileInfo().Directory.FullName)) + }, + new NPMCommand() { - defaultSteps = this.AddAutomationTaskLibrariesStep(targetVersion, CmfPackage, defaultSteps); - defaultSteps = this.AddAutomationBusinessScenarioStep(targetVersion, CmfPackage, defaultSteps); - } - - buildCommands = new IBuildCommand[] + DisplayName = "NPM Install", + Command = "install", + Args = new[] {"--force"}, + WorkingDirectory = cmfPackage.GetFileInfo().Directory + }, + new NPMCommand() { - new ExecuteCommand() + DisplayName = "NPM Lint", + Command = "run lint", + WorkingDirectory = cmfPackage.GetFileInfo().Directory, + ConditionForExecute = () => { - Command = new RestoreCommand(), - DisplayName = "cmf restore", - Execute = command => + var packageJsons = this.GetPackageJsons(cmfPackage, packageLocation); + + if(packageJsons == null && !packageJsons.Any()) { - command.Execute(cmfPackage.GetFileInfo().Directory, null); + return false; } - }, - new NPMCommand() - { - DisplayName = "NPM Install", - Command = "install", - Args = new[] {"--force"}, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new NPMCommand() - { - DisplayName = "NPM Lint", - Command = "run lint", - WorkingDirectory = cmfPackage.GetFileInfo().Directory, - ConditionForExecute = () => - { - var packageJsons = this.GetPackageJsons(cmfPackage, packageLocation); - - if(packageJsons == null && !packageJsons.Any()) - { - return false; - } - foreach (var packageJson in packageJsons ) - { - var json = fileSystem.File.ReadAllText(packageJson.FullName); - dynamic packageJsonContent = JsonConvert.DeserializeObject(json); - - if(packageJsonContent?["scripts"] == null || packageJsonContent?["scripts"]?["lint"] == null) - { - return false; - } - } - return true; - } - }, - new NPMCommand() - { - DisplayName = "NPM Build", - Command = "run build -ws", - Args = new[] {"--force"}, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new NPMCommand() - { - DisplayName = "NPM Test", - Command = "run test -ws", - Args = new[] {"--force"}, - WorkingDirectory = cmfPackage.GetFileInfo().Directory - }, - new ExecuteCommand() - { - Command = new IoTLibCommand(), - DisplayName = "cmf iot lib command", - ConditionForExecute = () => + foreach (var packageJson in packageJsons ) { - if(cmfPackage.GetFileInfo().Directory.EnumerateDirectories().Any(dir => dir.Name == "dist")) + var json = fileSystem.File.ReadAllText(packageJson.FullName); + dynamic packageJsonContent = JsonConvert.DeserializeObject(json); + + if(packageJsonContent?["scripts"] == null || packageJsonContent?["scripts"]?["lint"] == null) { - return true; + return false; } - return false; - }, - Execute = command => + } + return true; + } + }, + new NPMCommand() + { + DisplayName = "NPM Build", + Command = "run build -ws", + Args = new[] {"--force"}, + WorkingDirectory = cmfPackage.GetFileInfo().Directory + }, + new NPMCommand() + { + DisplayName = "NPM Test", + Command = "run test -ws", + Args = new[] {"--force"}, + WorkingDirectory = cmfPackage.GetFileInfo().Directory + }, + new ExecuteCommand() + { + Command = new IoTLibCommand(), + DisplayName = "cmf iot lib command", + ConditionForExecute = () => + { + if(cmfPackage.GetFileInfo().Directory.EnumerateDirectories().Any(dir => dir.Name == "dist")) { - command.Execute(cmfPackage.GetFileInfo().Directory); + return true; } + return false; }, - }; - } + Execute = command => + { + command.Execute(cmfPackage.GetFileInfo().Directory); + } + }, + }; // Add Steps defaultSteps.AddRange(new List() @@ -210,8 +155,7 @@ public IoTPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) // Validate Steps defaultSteps = defaultSteps.Where(step => - // if MES version is inferior to 8.3.5, the DeployRepositoryFiles and GenerateRepositoryIndex steps are not supported - targetVersion.CompareTo(minimumVersion) >= 0 || step.Type != StepType.DeployRepositoryFiles && step.Type != StepType.GenerateRepositoryIndex + step.Type != StepType.DeployRepositoryFiles && step.Type != StepType.GenerateRepositoryIndex ).ToList(); cmfPackage.SetDefaultValues @@ -248,33 +192,50 @@ public override void Bump(string version, string versionSuffix, Dictionary src -> Package XPTO - IoTUtilities.BumpIoTCustomPackages(CmfPackage.GetFileInfo().DirectoryName, version, versionSuffix, packageNames, this.fileSystem); + var metadataVersion = GenericUtilities.RetrieveNewPresentationVersion(regexMatch[1], version, versionSuffix); + metadataFile = Regex.Replace(metadataFile, regex, string.Format("version: \"{0}\"", metadataVersion)); + this.fileSystem.File.WriteAllText(fileName, metadataFile); } } @@ -316,20 +277,16 @@ public override void Pack(IDirectoryInfo packageOutputDir, IDirectoryInfo output IDirectoryInfo outputDirPath = this.fileSystem.DirectoryInfo.New($"{packageOutputDir}/runtimePackages"); outputDirPath.Create(); - // Is not Supported in workspaces - if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major < 10) + NPMCommand npmCommand = new NPMCommand() { - NPMCommand npmCommand = new NPMCommand() - { - DisplayName = "npm shrinkwrap", - Args = new string[] { "shrinkwrap" }, - WorkingDirectory = packDirectory - }; - - npmCommand.Exec(); - } + DisplayName = "npm shrinkwrap", + Args = new string[] { "shrinkwrap" }, + WorkingDirectory = packDirectory + }; string debugFlag = Log.Level <= LogLevel.Debug ? "-d" : ""; + npmCommand.Exec(); + if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major < 11) { var environmentVariables = new Dictionary() @@ -418,6 +375,7 @@ public override void Pack(IDirectoryInfo packageOutputDir, IDirectoryInfo output } } + GeneratePresentationConfigFile(packageOutputDir); base.Pack(packageOutputDir, outputDir, dryRun); } @@ -566,5 +524,103 @@ private List AddAutomationBusinessScenarioStep(Version targetVersion, CmfP } return defaultSteps; } + + public void GeneratePresentationConfigFile(IDirectoryInfo packageOutputDir) + { + Log.Debug("Generating Presentation config.json"); + string path = $"{packageOutputDir.FullName}/{CliConstants.CmfPackagePresentationConfig}"; + + List packageList = new(); + List transformInjections = new(); + + IDirectoryInfo cmfPackageDirectory = CmfPackage.GetFileInfo().Directory; + + foreach (ContentToPack contentToPack in CmfPackage.ContentToPack) + { + if (contentToPack.Action == null || contentToPack.Action == PackAction.Pack) + { + // TODO: Validate if contentToPack.Source exists before + IDirectoryInfo[] packDirectories = cmfPackageDirectory.GetDirectories(contentToPack.Source); + + foreach (IDirectoryInfo packDirectory in packDirectories) + { + dynamic packageJson = packDirectory.GetFile(CoreConstants.PackageJson); + if (packageJson != null) + { + string packageName = packageJson.name; + + // For IoT Packages we should ignore the driver packages + if (CmfPackage.PackageType == PackageType.IoT && packageName.Contains(CliConstants.Driver, System.StringComparison.InvariantCultureIgnoreCase)) + { + continue; + } + + packageList.Add($"'{packageName}'"); + } + } + } + else if (contentToPack.Action == PackAction.Transform) + { + transformInjections.Add(contentToPack.Source); + } + } + + if (packageList.HasAny()) + { + // Get Template + string fileContent = ResourceUtilities.GetEmbeddedResourceContent($"{CliConstants.FolderTemplates}/{CmfPackage.PackageType}/{CliConstants.CmfPackagePresentationConfig}"); + + string packagesToRemove = string.Empty; + List packagesToAdd = new(); + + for (int i = 0; i < packageList.Count; i++) + { + if (CmfPackage.PackageType == PackageType.IoT) + { + packagesToRemove += $"@.path=={packageList[i]}"; + } + else + { + packagesToRemove += $"@=={packageList[i]}"; + } + + if (packageList.Count > 1 && + i != packageList.Count - 1) + { + packagesToRemove += " || "; + } + + string packageToAdd = packageList[i].Replace("'", "\""); + if (CmfPackage.PackageType == PackageType.IoT) + { + packageToAdd = string.Format("{{\"path\": {0} }}", packageToAdd); + } + + packagesToAdd.Add(packageToAdd); + } + + fileContent = fileContent.Replace(CliConstants.TokenPackagesToRemove, packagesToRemove); + fileContent = fileContent.Replace(CliConstants.TokenPackagesToAdd, string.Join(",", packagesToAdd)); + fileContent = fileContent.Replace(CliConstants.TokenVersion, CmfPackage.Version); + + string injection = string.Empty; + if (transformInjections.HasAny()) + { + // we actually want a trailing comma here, because the inject token is in the middle of the document. If this changes we need to put more logic here. + var injections = transformInjections.Select(injection => this.fileSystem.File.ReadAllText($"{cmfPackageDirectory}/{injection}") + ","); + injection = string.Join(System.Environment.NewLine, injections); + } + fileContent = fileContent.Replace(CliConstants.TokenJDTInjection, injection); + fileContent = fileContent.Replace(CliConstants.CacheId, DateTime.Now.ToString("yyyyMMddHHmmss")); + + this.fileSystem.File.WriteAllText(path, fileContent); + } + else + { + Log.Debug("Could not find UI packages, so skipping generating config.json transform"); + this.CmfPackage.Steps = this.CmfPackage.Steps + .Where(step => step.Type != StepType.TransformFile && step.File != "config.json").ToList(); + } + } } } \ No newline at end of file diff --git a/cmf-cli/Handlers/PackageType/PackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/PackageTypeHandler.cs index 4e4763db6..099a872dd 100644 --- a/cmf-cli/Handlers/PackageType/PackageTypeHandler.cs +++ b/cmf-cli/Handlers/PackageType/PackageTypeHandler.cs @@ -21,7 +21,6 @@ using Cmf.CLI.Core.Services; using Microsoft.Extensions.DependencyInjection; using Newtonsoft.Json.Linq; -using SharpCompress.Common; [assembly: InternalsVisibleTo("tests")] diff --git a/cmf-cli/Handlers/PackageType/PresentationPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/PresentationPackageTypeHandler.cs deleted file mode 100644 index 84dd32bcb..000000000 --- a/cmf-cli/Handlers/PackageType/PresentationPackageTypeHandler.cs +++ /dev/null @@ -1,252 +0,0 @@ - -using System; -using System.Collections.Generic; -using System.IO; -using System.IO.Abstractions; -using System.Linq; -using System.Text.RegularExpressions; -using Cmf.CLI.Constants; -using Cmf.CLI.Core; -using Cmf.CLI.Core.Constants; -using Cmf.CLI.Core.Enums; -using Cmf.CLI.Core.Objects; -using Cmf.CLI.Utilities; - -namespace Cmf.CLI.Handlers -{ - /// - /// Base handler for UI packages - /// - /// - public class PresentationPackageTypeHandler : PackageTypeHandler - { - #region Private Methods - - /// - /// Generates the presentation configuration file. - /// - /// The package output dir. - /// If set to true, the method will simulate the generation without writing files. - public void GeneratePresentationConfigFile(IDirectoryInfo packageOutputDir, bool dryRun = false) - { - Log.Debug("Generating Presentation config.json"); - string path = $"{packageOutputDir.FullName}/{CliConstants.CmfPackagePresentationConfig}"; - - List packageList = new(); - List transformInjections = new(); - - IDirectoryInfo cmfPackageDirectory = CmfPackage.GetFileInfo().Directory; - - foreach (ContentToPack contentToPack in CmfPackage.ContentToPack) - { - if (contentToPack.Action == null || contentToPack.Action == PackAction.Pack) - { - // TODO: Validate if contentToPack.Source exists before - IDirectoryInfo[] packDirectories = cmfPackageDirectory.GetDirectories(contentToPack.Source); - - foreach (IDirectoryInfo packDirectory in packDirectories) - { - dynamic packageJson = packDirectory.GetFile(CoreConstants.PackageJson); - if (packageJson != null) - { - string packageName = packageJson.name; - - // For IoT Packages we should ignore the driver packages - if (CmfPackage.PackageType == PackageType.IoT && packageName.Contains(CliConstants.Driver, System.StringComparison.InvariantCultureIgnoreCase)) - { - continue; - } - - packageList.Add($"'{packageName}'"); - } - } - } - else if (contentToPack.Action == PackAction.Transform) - { - transformInjections.Add(contentToPack.Source); - } - } - - if (packageList.HasAny()) - { - // Get Template - string fileContent = ResourceUtilities.GetEmbeddedResourceContent($"{CliConstants.FolderTemplates}/{CmfPackage.PackageType}/{CliConstants.CmfPackagePresentationConfig}"); - - string packagesToRemove = string.Empty; - List packagesToAdd = new(); - - for (int i = 0; i < packageList.Count; i++) - { - if (CmfPackage.PackageType == PackageType.IoT) - { - packagesToRemove += $"@.path=={packageList[i]}"; - } - else - { - packagesToRemove += $"@=={packageList[i]}"; - } - - if (packageList.Count > 1 && - i != packageList.Count - 1) - { - packagesToRemove += " || "; - } - - string packageToAdd = packageList[i].Replace("'", "\""); - if (CmfPackage.PackageType == PackageType.IoT) - { - packageToAdd = string.Format("{{\"path\": {0} }}", packageToAdd); - } - - packagesToAdd.Add(packageToAdd); - } - - fileContent = fileContent.Replace(CliConstants.TokenPackagesToRemove, packagesToRemove); - fileContent = fileContent.Replace(CliConstants.TokenPackagesToAdd, string.Join(",", packagesToAdd)); - fileContent = fileContent.Replace(CliConstants.TokenVersion, CmfPackage.Version); - - string injection = string.Empty; - if (transformInjections.HasAny()) - { - // we actually want a trailing comma here, because the inject token is in the middle of the document. If this changes we need to put more logic here. - var injections = transformInjections.Select(injection => this.fileSystem.File.ReadAllText($"{cmfPackageDirectory}/{injection}") + ","); - injection = string.Join(System.Environment.NewLine, injections); - } - fileContent = fileContent.Replace(CliConstants.TokenJDTInjection, injection); - fileContent = fileContent.Replace(CliConstants.CacheId, DateTime.Now.ToString("yyyyMMddHHmmss")); - - Log.Debug($"The package contains the following UI packages: {string.Join(", ", packageList)}"); - Log.Debug($"The following config.json transformations would be applied: {string.Join(", ", transformInjections)}"); - - if (!dryRun) - { - this.fileSystem.File.WriteAllText(path, fileContent); - } - else - { - Log.Information($"The following config.json would be generated at {path}"); - } - } - else - { - Log.Debug("Could not find UI packages, so skipping generating config.json transform"); - this.CmfPackage.Steps = this.CmfPackage.Steps - .Where(step => step.Type != StepType.TransformFile && step.File != "config.json").ToList(); - } - } - - #endregion Private Methods - - #region Public Methods - - /// - /// Initializes a new instance of the class. - /// - /// The CMF package. - public PresentationPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) - { - if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major < 10) - { - cmfPackage.SetDefaultValues - ( - steps: - new List - { - new Step(StepType.DeployFiles) - { - ContentPath = "node_modules/**" - }, - new Step(StepType.TransformFile) - { - File = "config.json", - TagFile = true - } - } - - ); - } - - DefaultContentToIgnore.AddRange(new List - { - "node_modules", - "test", - "*.ts", - "node.exe", - "CompileProject.ps1", - "node_modules_cache.zip" - }); - } - - /// - /// Bumps the specified version. - /// - /// The version. - /// The version suffix. - /// The bump information. - public override void Bump(string version, string versionSuffix, Dictionary bumpInformation = null) - { - base.Bump(version, versionSuffix, bumpInformation); - - string parentDirectory = CmfPackage.GetFileInfo().DirectoryName; - string[] filesToUpdate = this.fileSystem.Directory.GetFiles(parentDirectory, "package.json", SearchOption.AllDirectories); - foreach (var fileName in filesToUpdate) - { - if (fileName.Contains("node_modules")) - { - continue; - } - string json = this.fileSystem.File.ReadAllText(fileName); - dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json); - - if (jsonObj["version"] == null) - { - throw new CliException(string.Format(CoreMessages.MissingMandatoryPropertyInFile, "version", fileName)); - } - - jsonObj["version"] = GenericUtilities.RetrieveNewPresentationVersion(jsonObj["version"].ToString(), version, versionSuffix); - - this.fileSystem.File.WriteAllText(fileName, Newtonsoft.Json.JsonConvert.SerializeObject(jsonObj, Newtonsoft.Json.Formatting.Indented)); - } - - filesToUpdate = this.fileSystem.Directory.GetFiles(parentDirectory, "*metadata.ts", SearchOption.AllDirectories); - foreach (var fileName in filesToUpdate) - { - if (fileName.Contains("node_modules") - || fileName.Contains("\\src\\style")) // prevent metadata.ts in the \src\style from being taken into account - { - continue; - } - string metadataFile = this.fileSystem.File.ReadAllText(fileName); - - // take in consideration double quotes and single quotes - string[] quotes = { "\"", "'" }; - string regex = @$"version: ({quotes[0]}|{quotes[1]})[0-9.-]*({quotes[0]}|{quotes[1]})"; - - var regexMatch = Regex.Match(metadataFile, regex, RegexOptions.Singleline)?.Value?.Split(quotes, StringSplitOptions.TrimEntries); - if (regexMatch?.Length <= 1) - { - continue; // in case that version is not found on metadata.ts skip this - } - - var metadataVersion = GenericUtilities.RetrieveNewPresentationVersion(regexMatch[1], version, versionSuffix); - metadataFile = Regex.Replace(metadataFile, regex, string.Format("version: \"{0}\"", metadataVersion)); - this.fileSystem.File.WriteAllText(fileName, metadataFile); - } - } - - /// - /// Packs the specified package output dir. - /// - /// The package output dir. - /// The output dir. - /// if set to true list the package structure without creating files. - public override void Pack(IDirectoryInfo packageOutputDir, IDirectoryInfo outputDir, bool dryRun = false) - { - GeneratePresentationConfigFile(packageOutputDir, dryRun); - - base.Pack(packageOutputDir, outputDir, dryRun); - } - - #endregion Public Methods - } -} \ No newline at end of file diff --git a/cmf-cli/Handlers/PackageType/SecurityPortalPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/SecurityPortalPackageTypeHandler.cs deleted file mode 100644 index f706d022e..000000000 --- a/cmf-cli/Handlers/PackageType/SecurityPortalPackageTypeHandler.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.IO.Abstractions; -using Cmf.CLI.Constants; -using Cmf.CLI.Core; -using Cmf.CLI.Core.Enums; -using Cmf.CLI.Core.Objects; -using Cmf.CLI.Handlers; -using Cmf.CLI.Utilities; - -namespace Cmf.CLI.Handlers -{ - - /// - /// Handler for SecurityPortal packages - /// - public class SecurityPortalPackageTypeHandler : PackageTypeHandler - { - /// - /// Initializes a new instance of the class. - /// - /// - public SecurityPortalPackageTypeHandler(CmfPackage cmfPackage) : base(cmfPackage) - { - cmfPackage.SetDefaultValues - ( - targetDirectory: - "SecurityPortal", - targetLayer: - "securityportal", - steps: - new List - { - new(StepType.TransformFile) - { - File = "config.json", - TagFile = true - } - } - ); - - cmfPackage.DFPackageType = PackageType.Business; - } - - - /// - /// Packs the specified package output dir. - /// - /// The package output dir. - /// The output dir. - /// if set to true list the package structure without creating files. - public override void Pack(IDirectoryInfo packageOutputDir, IDirectoryInfo outputDir, bool dryRun = false) - { - Log.Debug("Generating SecurityPortal config.json"); - string path = $"{packageOutputDir.FullName}{Path.DirectorySeparatorChar}{CliConstants.CmfPackageSecurityPortalConfig}"; - - IDirectoryInfo cmfPackageDirectory = CmfPackage.GetFileInfo().Directory; - - dynamic configJson = cmfPackageDirectory.GetFile(CliConstants.CmfPackageSecurityPortalConfig); - if (configJson != null) - { - string packageName = configJson.id; - string type = configJson.type; - string metadataUrl = configJson.config.metadataUrl; - string redirectUrl = configJson.config.redirectUrl; - string clientId = configJson.config.clientId; - - // Get Template - string fileContent = ResourceUtilities.GetEmbeddedResourceContent($"{CliConstants.FolderTemplates}/{CmfPackage.PackageType}/{CliConstants.CmfPackageSecurityPortalConfig}"); - - fileContent = fileContent.Replace(CliConstants.TokenPackageId, packageName); - fileContent = fileContent.Replace(CliConstants.StrategyPath, CliConstants.DefaultStrategyPath).Replace(CliConstants.Tenant, ExecutionContext.Instance.ProjectConfig.Tenant); - fileContent = fileContent.Replace(CliConstants.Strategy, type); - fileContent = fileContent.Replace(CliConstants.MetadataUrl, metadataUrl); - fileContent = fileContent.Replace(CliConstants.RedirectUrl, redirectUrl); - fileContent = fileContent.Replace(CliConstants.ClientId, clientId); - - if (!dryRun) - { - this.fileSystem.File.WriteAllText(path, fileContent); - - GenerateDeploymentFrameworkManifest(packageOutputDir); - - FinalArchive(packageOutputDir, outputDir); - - Log.Debug($"{outputDir.FullName}{Path.DirectorySeparatorChar}{CmfPackage.ZipPackageName} created"); - Log.Information($"{CmfPackage.PackageName} packed"); - } - else - { - Log.Information($"Dry-run mode: Listing package structure for {CmfPackage.PackageName}"); - Log.Information($"Package would be created at: {outputDir.FullName}{Path.DirectorySeparatorChar}{CmfPackage.ZipPackageName}"); - Log.Information($"Dry-run completed for {CmfPackage.PackageName}"); - } - - } - else - { - throw new CliException("No config.json was provided"); - } - } - } -} \ No newline at end of file diff --git a/cmf-cli/Program.cs b/cmf-cli/Program.cs index 4050ba60c..a64c2683c 100644 --- a/cmf-cli/Program.cs +++ b/cmf-cli/Program.cs @@ -55,7 +55,7 @@ public static async Task Main(string[] args) using var activity = ExecutionContext.ServiceProvider.GetService()!.StartActivity("Main"); var result = -1; - + if (rootCommand != null) { var nonPluginCommands = rootCommand.Subcommands.ToList(); @@ -75,6 +75,9 @@ public static async Task Main(string[] args) ExecutionContext.Initialize(fileSystem); ExecutionContext.ServiceProvider.GetService()! .InitializeClientsForRepositories(ExecutionContext.Instance.FileSystem); + + // Global validation for all CLI core commands + ValidateMesVersion(ExecutionContext.Instance.ProjectConfig?.MESVersion?.Major); // Parse and invoke using beta5 pattern ParseResult parseResult = rootCommand.Parse(args); @@ -99,5 +102,17 @@ public static async Task Main(string[] args) return (int)ErrorCode.Default; } } + + /// + /// This function will validate MES Version on every command. + /// This server to lock the CLI from executing on any project below version 10. + /// + internal static void ValidateMesVersion(int? majorVersion) + { + if (majorVersion < 10) + { + throw new CliException("MES Versions under 10 are no longer supported with the newest version of the CLI. Please use cmf-cli 5.8.0 or lower."); + } + } } } \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/business/from900/.template.config/template.json b/cmf-cli/resources/template_feed/business/from900/.template.config/template.json index c5beb2c05..a6fa7cb1f 100644 --- a/cmf-cli/resources/template_feed/business/from900/.template.config/template.json +++ b/cmf-cli/resources/template_feed/business/from900/.template.config/template.json @@ -6,9 +6,9 @@ ], "description": "Generate a new business package", "name": "Business Package (> MES 9)", - "identity": "cmf-cli.new.business9", - "groupIdentity": "cmf-cli.new.business9", - "shortName": "business9", + "identity": "cmf-cli.new.business10", + "groupIdentity": "cmf-cli.new.business10", + "shortName": "business10", // You can create the project using this short name instead of the one above. "tags": { "language": "C#", diff --git a/cmf-cli/resources/template_feed/business/upto8x/.template.config/template.json b/cmf-cli/resources/template_feed/business/upto8x/.template.config/template.json deleted file mode 100644 index b226a8bd2..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/.template.config/template.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/template", - "author": "Critical Manufacturing", - "classifications": [ - "cli" - ], - "description": "Generate a new business package", - "name": "Business Package", - "identity": "cmf-cli.new.business", - "groupIdentity": "cmf-cli.new.business", - "shortName": "business", - // You can create the project using this short name instead of the one above. - "tags": { - "language": "C#", - // Specify that this template is in C#. - "type": "project" - }, - "sourceName": "Business.Package", - // Will replace the string 'MyProject.StarterWeb' with the value provided via -n. - "preferNameDirectory": true, - "symbols": { - "name": { - "type": "parameter", - "datatype": "string", - "description": "The custom package name", - "displayName": "Package Name", - "replaces": "<%= $CLI_PARAM_CustomPackageName %>" - }, - "packageVersion": { - "type": "parameter", - "datatype": "string", - "description": "The custom package version", - "displayName": "Package Version", - "replaces": "<%= $CLI_PARAM_CustomPackageVersion %>" - }, - "Tenant": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_Tenant %>", - "fileRename": "%Tenant%" - }, - "MESVersion": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_MESVersion %>" - }, - "Product": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_Product %>", - "fileRename": "%Product%" - }, - "Organization": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_Organization %>", - "fileRename": "%Org%" - }, - "idSegment": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_idSegment %>", - "fileRename": "%idSegment%" - }, - "localEnvRelativePath": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_localEnvRelativePath %>" - }, - "deploymentMetadataRelativePath": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_deploymentMetadataRelativePath %>" - } - } -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Org%.%Product%.%idSegment%.Common.csproj b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Org%.%Product%.%idSegment%.Common.csproj deleted file mode 100644 index 7fc7f961f..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Org%.%Product%.%idSegment%.Common.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - netstandard2.0 - Library - false - false - <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Common - <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Common - - - <%= $CLI_PARAM_localEnvRelativePath %>\BusinessTier - - - ..\Release - - - - - - - - - - \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Tenant%Constants.cs b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Tenant%Constants.cs deleted file mode 100644 index 201cd9be1..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Tenant%Constants.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Common -{ - public class <%= $CLI_PARAM_Tenant %>Constants - { - } -} diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Tenant%Utilities.cs b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Tenant%Utilities.cs deleted file mode 100644 index 60d335db3..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/%Tenant%Utilities.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Common -{ - public class <%= $CLI_PARAM_Tenant %>Utilities - { - } -} diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/Properties/AssemblyInfo.cs b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/Properties/AssemblyInfo.cs deleted file mode 100644 index fc8d88c19..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Common")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Common")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("6c3d698d-7f9e-4e39-a571-deb63582ca52")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/app.config b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/app.config deleted file mode 100644 index 58c01219d..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Common/app.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/%Org%.%Product%.%idSegment%.Orchestration.csproj b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/%Org%.%Product%.%idSegment%.Orchestration.csproj deleted file mode 100644 index 348ecbacf..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/%Org%.%Product%.%idSegment%.Orchestration.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - netstandard2.0 - Library - false - false - <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Orchestration - <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Orchestration - - - <%= $CLI_PARAM_localEnvRelativePath %>\BusinessTier - - - ..\Release - - - - - \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/%Tenant%Orchestration.cs b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/%Tenant%Orchestration.cs deleted file mode 100644 index 1a57a4282..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/%Tenant%Orchestration.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Orchestration -{ - public static class <%= $CLI_PARAM_Tenant %>Orchestration - { - private const string OBJECT_TYPE_NAME = "<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Orchestration.<%= $CLI_PARAM_Tenant %>ManagementOrchestration"; - } -} diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/InputObjects/.gitkeep b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/InputObjects/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/OutputObjects/.gitkeep b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/OutputObjects/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/Properties/AssemblyInfo.cs b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/Properties/AssemblyInfo.cs deleted file mode 100644 index 9994a3637..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Orchestration")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Orchestration")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4f4342a5-3d64-4d54-b83b-368f768e2a95")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/app.config b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/app.config deleted file mode 100644 index d6e686130..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Orchestration/app.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/%Org%.%Product%.%idSegment%.Services.csproj b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/%Org%.%Product%.%idSegment%.Services.csproj deleted file mode 100644 index 6ee05ed19..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/%Org%.%Product%.%idSegment%.Services.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - netstandard2.0 - Library - false - false - <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Services - <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Services - - - <%= $CLI_PARAM_localEnvRelativePath %>\BusinessTier - - - ..\Release - - - - - \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/%Tenant%Controller.cs b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/%Tenant%Controller.cs deleted file mode 100644 index d0e21bca1..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/%Tenant%Controller.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace <%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Services -{ - /// - /// <%= $CLI_PARAM_Tenant %> Services - /// - [ApiController] - [Route("api/[controller]/[action]")] - public class <%= $CLI_PARAM_Tenant %>Controller : ControllerBase - { - private const string OBJECT_TYPE_NAME = "<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Services.<%= $CLI_PARAM_Tenant %>Management"; - } -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/Properties/AssemblyInfo.cs b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/Properties/AssemblyInfo.cs deleted file mode 100644 index ad180bd86..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Services")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Services")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fa684ab7-3bb6-47cb-acd8-48ca53f2dcef")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/app.config b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/app.config deleted file mode 100644 index c920e93ac..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/%Org%.%Product%.Services/app.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/Business.sln b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/Business.sln deleted file mode 100644 index 563029475..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/Business.sln +++ /dev/null @@ -1,43 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30907.101 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Common", "<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.Common\<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Common.csproj", "{6C3D698D-7F9E-4E39-A571-DEB63582CA52}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Services", "<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.Services\<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Services.csproj", "{FA684AB7-3BB6-47CB-ACD8-48CA53F2DCEF}" - ProjectSection(ProjectDependencies) = postProject - {4F4342A5-3D64-4D54-B83B-368F768E2A95} = {4F4342A5-3D64-4D54-B83B-368F768E2A95} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Orchestration", "<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.Orchestration\<%= $CLI_PARAM_Organization %>.<%= $CLI_PARAM_Product %>.<%= $CLI_PARAM_idSegment %>.Orchestration.csproj", "{4F4342A5-3D64-4D54-B83B-368F768E2A95}" - ProjectSection(ProjectDependencies) = postProject - {6C3D698D-7F9E-4E39-A571-DEB63582CA52} = {6C3D698D-7F9E-4E39-A571-DEB63582CA52} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6C3D698D-7F9E-4E39-A571-DEB63582CA52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C3D698D-7F9E-4E39-A571-DEB63582CA52}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C3D698D-7F9E-4E39-A571-DEB63582CA52}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C3D698D-7F9E-4E39-A571-DEB63582CA52}.Release|Any CPU.Build.0 = Release|Any CPU - {FA684AB7-3BB6-47CB-ACD8-48CA53F2DCEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FA684AB7-3BB6-47CB-ACD8-48CA53F2DCEF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FA684AB7-3BB6-47CB-ACD8-48CA53F2DCEF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FA684AB7-3BB6-47CB-ACD8-48CA53F2DCEF}.Release|Any CPU.Build.0 = Release|Any CPU - {4F4342A5-3D64-4D54-B83B-368F768E2A95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F4342A5-3D64-4D54-B83B-368F768E2A95}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F4342A5-3D64-4D54-B83B-368F768E2A95}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F4342A5-3D64-4D54-B83B-368F768E2A95}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9DB2EC4C-B3DB-4A52-9748-BD2E6472D456} - EndGlobalSection -EndGlobal diff --git a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/cmfpackage.json b/cmf-cli/resources/template_feed/business/upto8x/Business.Package/cmfpackage.json deleted file mode 100644 index 348a025f8..000000000 --- a/cmf-cli/resources/template_feed/business/upto8x/Business.Package/cmfpackage.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "packageId": "<%= $CLI_PARAM_CustomPackageName %>", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>", - "description": "<%= $CLI_PARAM_Organization %> <%= $CLI_PARAM_Product %> <%= $CLI_PARAM_Tenant %> <%= $CLI_PARAM_CustomPackageName %> Package", - "packageType": "Business", - "isInstallable": true, - "isUniqueInstall": false, - "contentToPack": [ - { - "source": "Release/*.dll", - "target": "" - } - ] -} diff --git a/cmf-cli/resources/template_feed/help/upTo9x/.template.config/template.json b/cmf-cli/resources/template_feed/help/upTo9x/.template.config/template.json deleted file mode 100644 index b33f08f1f..000000000 --- a/cmf-cli/resources/template_feed/help/upTo9x/.template.config/template.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/template", - "author": "Critical Manufacturing", - "classifications": [ - "cli" - ], - "description": "Generate a new help/documentation package", - "name": "Help Package", - "identity": "cmf-cli.new.help", - "groupIdentity": "cmf-cli.new.help", - "shortName": "help", - // You can create the project using this short name instead of the one above. - "tags": { - "language": "C#", - // Specify that this template is in C#. - "type": "project" - }, - "sourceName": "Help.Package", - // Will replace the string 'MyProject.StarterWeb' with the value provided via -n. - "preferNameDirectory": true, - "symbols": { - "name": { - "type": "parameter", - "datatype": "string", - "description": "The custom package name", - "displayName": "Package Name", - "replaces": "<%= $CLI_PARAM_CustomPackageName %>" - }, - "packageVersion": { - "type": "parameter", - "datatype": "string", - "description": "The custom package version", - "displayName": "Package Version", - "replaces": "<%= $CLI_PARAM_CustomPackageVersion %>", - "fileRename": "%version%" - }, - "Tenant": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_Tenant %>", - "fileRename": "%Tenant%" - }, - "idSegment": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_idSegment %>", - "fileRename": "%idSegment%" - }, - "rootRelativePath": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_rootRelativePath %>" - } - } -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/help/upTo9x/Help.Package/.nvmrc b/cmf-cli/resources/template_feed/help/upTo9x/Help.Package/.nvmrc deleted file mode 100644 index 76c257078..000000000 --- a/cmf-cli/resources/template_feed/help/upTo9x/Help.Package/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v12.20.2 diff --git a/cmf-cli/resources/template_feed/help/upTo9x/Help.Package/cmfpackage.json b/cmf-cli/resources/template_feed/help/upTo9x/Help.Package/cmfpackage.json deleted file mode 100644 index 090058113..000000000 --- a/cmf-cli/resources/template_feed/help/upTo9x/Help.Package/cmfpackage.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "packageId": "<%= $CLI_PARAM_CustomPackageName %>", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>", - "description": "Cmf Custom <%= $CLI_PARAM_Tenant %> <%= $CLI_PARAM_CustomPackageName %> Package", - "packageType": "Help", - "isInstallable": true, - "isUniqueInstall": false, - "contentToPack": [ - { - "source": "src/packages/*", - "target": "node_modules", - "ignoreFiles": [ - ".npmignore" - ] - } - ] -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/html/upto9x/.template.config/template.json b/cmf-cli/resources/template_feed/html/upto9x/.template.config/template.json deleted file mode 100644 index bdfbcd044..000000000 --- a/cmf-cli/resources/template_feed/html/upto9x/.template.config/template.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/template", - "author": "Critical Manufacturing", - "classifications": [ - "cli" - ], - "description": "Generate a new HTML package", - "name": "HTML Package", - "identity": "cmf-cli.new.html", - "groupIdentity": "cmf-cli.new.html", - "shortName": "html", - // You can create the project using this short name instead of the one above. - "tags": { - "language": "C#", - // Specify that this template is in C#. - "type": "project" - }, - "sourceName": "HTML.Package", - // Will replace the string 'MyProject.StarterWeb' with the value provided via -n. - "preferNameDirectory": true, - "symbols": { - "name": { - "type": "parameter", - "datatype": "string", - "description": "The custom package name", - "displayName": "Package Name", - "replaces": "<%= $CLI_PARAM_CustomPackageName %>" - }, - "packageVersion": { - "type": "parameter", - "datatype": "string", - "description": "The custom package version", - "displayName": "Package Version", - "replaces": "<%= $CLI_PARAM_CustomPackageVersion %>", - "fileRename": "%version%" - }, - "Tenant": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_Tenant %>", - "fileRename": "%Tenant%" - }, - "Product": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_Product %>", - "fileRename": "%Product%" - }, - "Organization": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_Organization %>", - "fileRename": "%Org%" - }, - "idSegment": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_idSegment %>", - "fileRename": "%idSegment%" - }, - "rootRelativePath": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_rootRelativePath %>" - }, - "baseWebPackage": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_baseWebPackage %>" - } - } -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/html/upto9x/HTML.Package/.nvmrc b/cmf-cli/resources/template_feed/html/upto9x/HTML.Package/.nvmrc deleted file mode 100644 index 76c257078..000000000 --- a/cmf-cli/resources/template_feed/html/upto9x/HTML.Package/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v12.20.2 diff --git a/cmf-cli/resources/template_feed/html/upto9x/HTML.Package/cmfpackage.json b/cmf-cli/resources/template_feed/html/upto9x/HTML.Package/cmfpackage.json deleted file mode 100644 index ad97e589d..000000000 --- a/cmf-cli/resources/template_feed/html/upto9x/HTML.Package/cmfpackage.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "packageId": "<%= $CLI_PARAM_CustomPackageName %>", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>", - "description": "<%= $CLI_PARAM_Organization %> <%= $CLI_PARAM_Product %> <%= $CLI_PARAM_Tenant %> <%= $CLI_PARAM_CustomPackageName %> Package", - "packageType": "Html", - "isInstallable": true, - "isUniqueInstall": false, - "contentToPack": [ - { - "source": "src/packages/*", - "target": "node_modules", - "ignoreFiles": [ - ".npmignore" - ] - }, - { - "source": "apps/customization.web/node_modules/<%= $CLI_PARAM_baseWebPackage %>/bundles", - "target": "" - }, - { - "source": "<%= $CLI_PARAM_rootRelativePath %>/Libs/LBOs/TypeScript/APIReference*", - "target": "node_modules/cmf.lbos" - }, - { - "source": "<%= $CLI_PARAM_rootRelativePath %>/Libs/LBOs/TypeScript/cmf.lbos.*", - "target": "node_modules/cmf.lbos" - }, - { - "source": "<%= $CLI_PARAM_rootRelativePath %>/Libs/LBOs/TypeScript/package.json", - "target": "node_modules/cmf.lbos" - } - ] -} diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/.template.config/template.json b/cmf-cli/resources/template_feed/iot/upTo9x/.template.config/template.json deleted file mode 100644 index 442015a3d..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/.template.config/template.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/template", - "author": "Critical Manufacturing", - "classifications": [ - "cli" - ], - "description": "Generate a new IoT package", - "name": "IoT Package", - "identity": "cmf-cli.new.iot", - "groupIdentity": "cmf-cli.new.iot", - "shortName": "iot-upto9x", - // You can create the project using this short name instead of the one above. - "tags": { - "language": "C#", - // Specify that this template is in C#. - "type": "project" - }, - "sourceName": "IoT.Package", - // Will replace the string 'MyProject.StarterWeb' with the value provided via -n. - "preferNameDirectory": true, - "symbols": { - "name": { - "type": "parameter", - "datatype": "string", - "description": "The custom package name", - "displayName": "Package Name", - "replaces": "<%= $CLI_PARAM_CustomPackageName %>" - }, - "packageVersion": { - "type": "parameter", - "datatype": "string", - "description": "The custom package version", - "displayName": "Package Version", - "replaces": "<%= $CLI_PARAM_CustomPackageVersion %>", - "fileRename": "%version%" - }, - "Tenant": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_Tenant %>", - "fileRename": "%Tenant%" - }, - "idSegment": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_idSegment %>", - "fileRename": "%idSegment%" - }, - "rootInnerRelativePath": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_rootInnerRelativePath %>" - }, - "DevTasksVersion": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_DevTasksVersion %>" - }, - "npmRegistry": { - "type": "parameter", - "datatype": "string", - "replaces": "<%= $CLI_PARAM_NPMRegistry %>" - }, - "repositoryType": { - "type": "parameter", - "datatype": "string", - "description": "The type of repository this package will be included in", - "displayName": "Repository Type" - } - } -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/AutomationWorkFlows/.gitkeep b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/AutomationWorkFlows/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/MasterData/%version%/.gitkeep b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/MasterData/%version%/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/cmfpackage.json b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/cmfpackage.json deleted file mode 100644 index 95c77f317..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTData/cmfpackage.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "packageId": "<%= $CLI_PARAM_CustomPackageName %>.Data", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>", - "description": "Cmf Custom <%= $CLI_PARAM_Tenant %> <%= $CLI_PARAM_CustomPackageName %>.Data Package", - "packageType": "IoTData", - "isInstallable": true, - "isUniqueInstall": true, - "contentToPack": [ - { - "source": "MasterData/$(version)/*", - "target": "MasterData/$(version)", - "contentType": "MasterData" - }, - { - "source": "AutomationWorkFlows/*", - "target": "AutomationWorkFlows", - "contentType": "AutomationWorkFlows" - } - ] -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/.dev-tasks.json b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/.dev-tasks.json deleted file mode 100644 index 7f3f1e0d5..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/.dev-tasks.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "isWebAppCompilable": false, - "dependencies": [ - ], - "packages": [ - ], - "registry": "<%= $CLI_PARAM_NPMRegistry %>", - "channel": "*" -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/.gitignore b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/.gitignore deleted file mode 100644 index 3a264e904..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/.gitignore +++ /dev/null @@ -1 +0,0 @@ -**/*.tgz \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/cmfpackage.json b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/cmfpackage.json deleted file mode 100644 index aa7f0e035..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/cmfpackage.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "packageId": "<%= $CLI_PARAM_CustomPackageName %>.Packages", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>", - "description": "Cmf Custom <%= $CLI_PARAM_Tenant %> <%= $CLI_PARAM_CustomPackageName %>.Packages Package", - "packageType": "IoT", - "isInstallable": true, - "isUniqueInstall": false, - "contentToPack": [ - { - "source": "src/*", - "target": "node_modules", - "ignoreFiles": [ - ".npmignore" - ] - } - ], - "xmlInjection": [ - "ui.xml" - ] -} diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/gulpfile.js b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/gulpfile.js deleted file mode 100644 index b91c93188..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/gulpfile.js +++ /dev/null @@ -1,203 +0,0 @@ -var gulp = require('gulp'), - rootUtils = require("@criticalmanufacturing/dev-tasks/root.main"), - childProcess = require('child_process'), - pluginRunSequence = require('run-sequence'), - pluginYargs = require('yargs').argv, - _config = require('./.dev-tasks.json'), - _packagesPath = './src/', //note the ending / - _dependenciesPath = './dependencies/', - _framework = _config.framework, - //NOTE: order matters in these arrays! - _dependencies = _config.dependencies, - _packages = _config.packages, - _apps = [`${_config.webAppPrefix}.web`], - tasks = null, - pluginUtil = require('gulp-util'); -applyOps = null; - -if (typeof _framework === "string" && _framework !== "") { - tasks = require("./src/" + _framework + "/gulpfile.js")(gulp, _framework); -} -if (_dependencies != null && _dependencies.length > 0) { - _dependencies.forEach(function (dep) { - require(_dependenciesPath + dep + "/gulpfile.js")(gulp, dep); - }); -} -if (_packages != null && _packages.length > 0) { - _packages.forEach(function (pkg) { - require(_packagesPath + pkg + "/gulpfile.js")(gulp, pkg); - }); -} - -//require(`./apps/${_config.webAppPrefix}.web/gulpfile.js`)(gulp, `${_config.webAppPrefix}.web`); - -applyOps = function (actions) { - if (!Array.isArray(actions)) { actions = [actions]; } - var operations = []; - var dependencyOperations = []; - var packageOperations = []; - if (_dependencies != null && _dependencies.length > 0) { - _dependencies.forEach(function (dep) { - actions.forEach(function (action) { - operations.push(dep + ">" + action); - }); - }); - } - - actions.forEach(function (action) { - if (typeof _framework === "string" && _framework !== "") { - operations.push(_framework + '>' + action); - } - }) - - _packages.forEach(function (mod) { - actions.forEach(function (action) { - operations.push(mod + ">" + action) - }); - }); - - return operations; -}; - -/* - * Build all - */ -gulp.task('build', function (callback) { - if (pluginYargs.server) { - var isWebAppCompilable = true; - rootUtils.runOperation(__dirname, _dependencies, _framework, _packages, _apps, "build", callback, typeof _framework === "string" && _framework !== "", isWebAppCompilable); - } else { - var ops = [] - if (pluginYargs.parallelBuild !== false) { - pluginUtil.log(pluginUtil.colors.yellow(`building in parallel`)); - if (Number.isInteger(pluginYargs.parallelBuild)) { - pluginUtil.log(pluginUtil.colors.yellow(`Using ${pluginYargs.parallelBuild} tasks in parallel`)); - // split in tasks - var opsToSliceArray = applyOps('build'); - for (i = 0; i < opsToSliceArray.length; i += pluginYargs.parallelBuild) { - ops.push(opsToSliceArray.slice(i, i + pluginYargs.parallelBuild)); - } - } else { - // all the tasks at the same time! - ops = [applyOps('build')] - } - } else { - ops = applyOps('build'); - } - // On customized projects we would only require to compile the web if the project defined a framework on their own - var isWebAppCompilable = _config.isWebAppCompilable; - if (isWebAppCompilable === true) { - ops = ops.concat([`${_config.webAppPrefix}.web>build`]); - } - - if (ops.length > 0 && ops[0].length > 0) { - ops = ops.concat(callback); - pluginRunSequence.apply(this, ops); - } else { - callback(); - } - } - -}); - -/* - * start running the tests - */ -gulp.task('cliTest', function (callback) { - - let pkgPromises = _packages.map(pkg => { - return new Promise((resolve, reject) => { - try { - childProcess.execSync("npm run test", { stdio: ['inherit', 'inherit', 'pipe'], cwd: `src\\${pkg}` }); - resolve(); - } catch (e) { - reject(e); - } - }) - }); - - Promise.allSettled(pkgPromises).then((results) => { - - let stacks = ""; - for (const result of results) { - - if (result.status === "rejected" && typeof (result.reason.stderr) != "undefined" && - !result.reason.stderr.toString().includes("Error: No test files found")) { - stacks = stacks + result.reason.stack; - } - } - if (stacks !== "") { - throw new Error(stacks); - } - }); -}); - -/* - * Install all - */ -gulp.task('install', function (callback) { - - if (pluginYargs.server) { - rootUtils.runOperation(__dirname, _dependencies, _framework, _packages, _apps, "install", callback, typeof _framework === "string" && _framework !== "", true); - - } else { - var ops = applyOps(['install']); - - if (ops.length > 0) { - ops = ops.concat(callback); - pluginRunSequence.apply(this, ops); - } else { - callback(); - } - } -}); - -/* - * Install and build apps - */ -gulp.task('apps', function (callback) { pluginRunSequence.apply(this, ['build', `${_config.webAppPrefix}.web>build`, callback]); }); - -/* - * start serving the web app - */ -gulp.task('start', function (callback) { pluginRunSequence(`${_config.webAppPrefix}.web>start`); }); - -/* - * start running the tests - */ -gulp.task('test', function (callback) { pluginRunSequence.apply(this, applyOps('test').concat(callback)); }); - -/* - * clean the workspace - */ -gulp.task('clean', function (callback) { pluginRunSequence.apply(this, applyOps('clean').concat(callback)); }) - -gulp.task('clean-libs', function (callback) { pluginRunSequence.apply(this, applyOps('clean-libs').concat(callback)); }) - -gulp.task('purge', function (callback) { pluginRunSequence.apply(this, applyOps('purge').concat(callback)); }) - -gulp.task('watch', function (callback) { pluginRunSequence.apply(this, applyOps('watch').concat(callback)); }); - -/** - * i18n generators - */ -gulp.task('create-missing-i18n', function (callback) { pluginRunSequence.apply(this, applyOps('create-missing-i18n').concat(callback)); }); -gulp.task('i18n-ts2po', function (callback) { pluginRunSequence.apply(this, applyOps('i18n-ts2po').concat(callback)); }); -gulp.task('i18n-po2ts', function (callback) { pluginRunSequence.apply(this, applyOps('i18n-po2ts').concat(callback)); }); - -/** - * CI - */ -gulp.task('publish', function (callback) { pluginRunSequence.apply(this, applyOps('publish').concat(callback)); }); - -gulp.task('check-version', function (callback) { pluginRunSequence.apply(this, applyOps('check-version').concat(callback)); }); -gulp.task('set-version', function (callback) { pluginRunSequence.apply(this, applyOps('set-version').concat(callback)); }); -gulp.task('npm-dist-tag-add', function (callback) { pluginRunSequence.apply(this, applyOps('npm-dist-tag-add').concat(callback)); }); -gulp.task('npm-dist-tag-rm', function (callback) { pluginRunSequence.apply(this, applyOps('npm-dist-tag-rm').concat(callback)); }); -gulp.task('npm-dist-tag-ls', function (callback) { pluginRunSequence.apply(this, applyOps('npm-dist-tag-ls').concat(callback)); }); -gulp.task('npm-dist-tag-copy-version', function (callback) { pluginRunSequence.apply(this, applyOps('npm-dist-tag-copy-version').concat(callback)); }); - -gulp.task('bump-version', function (callback) { pluginRunSequence.apply(this, applyOps('bump-version').concat(callback)); }); -gulp.task('generate-package-lock', function (callback) { pluginRunSequence.apply(this, applyOps('generate-package-lock').concat(callback)); }); - -gulp.task('check-circular-imports', function (callback) { pluginRunSequence.apply(this, applyOps('check-circular-imports').concat(callback)); }); \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/npm.postinstall.js b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/npm.postinstall.js deleted file mode 100644 index 26f811772..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/npm.postinstall.js +++ /dev/null @@ -1,24 +0,0 @@ -var Path = require("path"); -var fs = require('fs'); -var fileContent = `{ "dependencies": { "graceful-fs": { "version": "4.2.2" }, "ttf2woff2": { "version": "3.0.0" } } }`; -var filePath = Path.join(__dirname, "package-lock"); - -// Clean package lock backup -fs.exists(`${filePath}-original.json`, (exists) => { - if (exists) { - fs.readFile(`${filePath}.json`, { encoding: 'utf-8' }, (err, data) => { - if (!err) { - if (data.length === fileContent.length) { - // It means that the package-lock wasn't changed (npm ci) - fs.unlinkSync(`${filePath}.json`); - fs.renameSync(`${filePath}-original.json`, `${filePath}.json`); - } - else { - fs.unlinkSync(`${filePath}-original.json`); - } - } else { - console.log(err); - } - }); - } -}); \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/npm.preinstall.js b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/npm.preinstall.js deleted file mode 100644 index fac42f212..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/npm.preinstall.js +++ /dev/null @@ -1,16 +0,0 @@ -var Path = require("path"); -var fs = require('fs'); -var fileContent = `{ "dependencies": { "graceful-fs": { "version": "4.2.2" }, "ttf2woff2": { "version": "3.0.0" } } }`; -var filePath = Path.join(__dirname, "package-lock"); - -// Check if package lock exists and then, create a backup -fs.exists(`${filePath}.json`, (exists) => { - if (exists) { - fs.copyFileSync(`${filePath}.json`, `${filePath}-original.json`, (err) => { - if (err) return console.log(err); - }); - } - fs.writeFileSync(`${filePath}.json`, fileContent, 'utf8', (err) => { - if (err) return console.log(err); - }); -}); \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/package.json b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/package.json deleted file mode 100644 index 336986977..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "private": true, - "packageId": "<%= $CLI_PARAM_CustomPackageName %>.Packages", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>", - "scripts": { - "preinstall": "node npm.preinstall.js", - "postinstall": "node npm.postinstall.js" - }, - "devDependencies": { - "@criticalmanufacturing/dev-tasks": "<%= $CLI_PARAM_DevTasksVersion %>", - "@criticalmanufacturing/generator-iot": "91x", - "gulp": "^3.9.1", - "run-sequence": "~1.1.0", - "yargs": "~4.8.0", - "yeoman-environment": "2.7.0" - } -} \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/src/.gitkeep b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/src/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/ui.xml b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/ui.xml deleted file mode 100644 index a98572c0c..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/IoTPackages/ui.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/cmfpackage.json b/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/cmfpackage.json deleted file mode 100644 index 6096187d2..000000000 --- a/cmf-cli/resources/template_feed/iot/upTo9x/IoT.Package/cmfpackage.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "packageId": "<%= $CLI_PARAM_CustomPackageName %>", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>", - "description": "Cmf Custom <%= $CLI_PARAM_Tenant %> <%= $CLI_PARAM_CustomPackageName %> Package", - "packageType": "Root", - "isInstallable": true, - "isUniqueInstall": false, - "dependencies": [ - { - "id": "Cmf.Environment", - "version": "<%= $CLI_PARAM_MESVersion %>", - "mandatory": false - }, -//#if (repositoryType == "Customization") { - { - "id": "CriticalManufacturing.DeploymentMetadata", - "version": "<%= $CLI_PARAM_MESVersion %>", - "mandatory": false - }, -//#endif - { - "id": "<%= $CLI_PARAM_CustomPackageName %>.Packages", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>" - }, - { - "id": "<%= $CLI_PARAM_CustomPackageName %>.Data", - "version": "<%= $CLI_PARAM_CustomPackageVersion %>" - } - ] -} diff --git a/cmf-cli/services/DependencyVersionService.cs b/cmf-cli/services/DependencyVersionService.cs index 505c90548..bf408f460 100644 --- a/cmf-cli/services/DependencyVersionService.cs +++ b/cmf-cli/services/DependencyVersionService.cs @@ -22,6 +22,13 @@ public interface IDependencyVersionService /// The product version to use /// String representing the .NET SDK version string DotNetSdk(Version productVersion); + + /// + /// Returns the expected .NET Target Framework for the given product version + /// + /// + /// String representing the .NET Target Framework + string DotNetTargetFramework(Version productVersion); /// /// Returns the expected Node.js version for the given product version @@ -50,12 +57,12 @@ public interface IDependencyVersionService /// public class DependencyVersionService : IDependencyVersionService { - public const string NET3SDK = "3.1.102"; + public const string NET6TARGETFRAMEWORK = "net6.0"; + public const string NET8TARGETFRAMEWORK = "net8.0"; public const string NET6SDK = "6.0.201"; // avoid >2xx as it requires HTTPS for nuget pulls public const string NET8SDK = "8.0.301"; public const string NODE20 = "20"; public const string NODE18 = "18"; - public const string NODE12 = "12.20.2"; public const string NG15 = "15.2.1"; public const string NG17 = "17.2.1"; public const string NG21 = "21.1.0"; @@ -72,8 +79,9 @@ public class DependencyVersionService : IDependencyVersionService public const string NG17_TS = "5.3.3"; public const string NG21_TS = "5.9.3"; - public string DotNetSdk(Version productVersion) => productVersion.Major > 10 ? NET8SDK : productVersion.Major > 8 ? NET6SDK : NET3SDK; - public string Node(Version productVersion) => productVersion.Major > 10 ? NODE20 : productVersion.Major > 9 ? NODE18 : NODE12; + public string DotNetSdk(Version productVersion) => productVersion.Major >= 11 ? NET8SDK : NET6SDK; + public string DotNetTargetFramework(Version productVersion) => productVersion.Major >= 11 ? NET8TARGETFRAMEWORK : NET6TARGETFRAMEWORK; + public string Node(Version productVersion) => productVersion.Major >= 11 ? NODE20 : NODE18; public AngularDeps Angular(Version productVersion) => productVersion.Major switch diff --git a/tests/Fixtures/new/.project-config.json b/tests/Fixtures/new/.project-config.json index 7e16fdf01..cf10701bf 100644 --- a/tests/Fixtures/new/.project-config.json +++ b/tests/Fixtures/new/.project-config.json @@ -8,13 +8,13 @@ "DefaultDomain": "DOMAIN", "RESTPort": "1234", "Tenant": "tenant", - "MESVersion": "8.2.0", - "DevTasksVersion": "8.1.0", - "HTMLStarterVersion": "8.0.0", - "YoGeneratorVersion": "8.1.0", + "MESVersion": "11.2.2", + "DevTasksVersion": "10.1.0", + "HTMLStarterVersion": "10.0.0", + "YoGeneratorVersion": "10.1.0", "NGXSchematicsVersion": "10.0.0", - "NugetVersion": "8.2.0", - "TestScenariosNugetVersion": "8.2.0", + "NugetVersion": "10.2.0", + "TestScenariosNugetVersion": "10.2.0", "IsSslEnabled": "True", "vmHostname": "app_server_address", "DBReplica1": "server1\\instance", diff --git a/tests/Fixtures/pack/app/.project-config.json b/tests/Fixtures/pack/app/.project-config.json index 718987470..824ccff07 100644 --- a/tests/Fixtures/pack/app/.project-config.json +++ b/tests/Fixtures/pack/app/.project-config.json @@ -1,17 +1,18 @@ { "ProjectName": "CF58AABF", + "RepositoryType": "Customization", + "BaseLayer": "MES", "NPMRegistry": "http://npm_registry/", "RepositoryType": "App", "BaseLayer": "Core", - "NuGetRegistry": "htt://nuget_registry/", - "RepositoryURL": "https://repo_url/collection/project/_git/repo", + "NuGetRegistry": "http://nuget_registry/", "EnvironmentName": "system_name", "DefaultDomain": "DOMAIN", "RESTPort": "1234", "Tenant": "tenant", "MESVersion": "10.2.1", - "NugetVersion": "10.0.0", - "TestScenariosNugetVersion": "10.0.0", + "NGXSchematicsVersion": "10.0.0", + "TestScenariosNugetVersion": "8.2.0", "IsSslEnabled": "True", "vmHostname": "app_server_address", "DBReplica1": "server1\\instance", diff --git a/tests/Fixtures/pack/securityPortal/.project-config.json b/tests/Fixtures/pack/securityPortal/.project-config.json index 67c1282af..db321b2f8 100644 --- a/tests/Fixtures/pack/securityPortal/.project-config.json +++ b/tests/Fixtures/pack/securityPortal/.project-config.json @@ -10,12 +10,12 @@ "DefaultDomain": "DOMAIN", "RESTPort": "1234", "Tenant": "tenant", - "MESVersion": "8.2.0", - "DevTasksVersion": "8.1.0", - "HTMLStarterVersion": "8.0.0", - "YoGeneratorVersion": "8.1.0", - "NugetVersion": "8.2.0", - "TestScenariosNugetVersion": "8.2.0", + "MESVersion": "10.0.0", + "DevTasksVersion": "10.0.0", + "HTMLStarterVersion": "10.0.0", + "YoGeneratorVersion": "10.0.0", + "NugetVersion": "10.0.0", + "TestScenariosNugetVersion": "10.0.0", "IsSslEnabled": "True", "vmHostname": "app_server_address", "DBReplica1": "server1\\instance", diff --git a/tests/Fixtures/pack/securityPortalV2/.project-config.json b/tests/Fixtures/pack/securityPortalV2/.project-config.json index 9080288a7..708610425 100644 --- a/tests/Fixtures/pack/securityPortalV2/.project-config.json +++ b/tests/Fixtures/pack/securityPortalV2/.project-config.json @@ -11,11 +11,11 @@ "RESTPort": "1234", "Tenant": "tenant", "MESVersion": "10.2.0", - "DevTasksVersion": "8.1.0", - "HTMLStarterVersion": "8.0.0", - "YoGeneratorVersion": "8.1.0", - "NugetVersion": "8.2.0", - "TestScenariosNugetVersion": "8.2.0", + "DevTasksVersion": "10.1.0", + "HTMLStarterVersion": "10.0.0", + "YoGeneratorVersion": "10.1.0", + "NugetVersion": "10.2.0", + "TestScenariosNugetVersion": "10.2.0", "IsSslEnabled": "True", "vmHostname": "app_server_address", "DBReplica1": "server1\\instance", diff --git a/tests/Fixtures/prodPkg/Cmf.Documentation.9.9.9.zip b/tests/Fixtures/prodPkg/Cmf.Documentation.9.9.9.zip deleted file mode 100644 index 75b26e2c0f5ece1637949f20e57e43461fd0fcd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmWIWW@Zs#U|`^2*p@mk_<`>Oe@7tC35dCYI5|HrEi+v&t2jST_mm@-gP=(3L&H@5 z^}8FkGel23xN!Cnhl!nU?uM!@KX-k9PuLX!ZlUr`_y2YoOw@Kt6;xL;+0p;MwdCaK zoW7EmCp-yHdLw)0NM}-#9Tm}nU|7Up_fsTn`7JK$km`A;_}_GTtNQ;>zdH+ zbqg&QF8Fss{^Hx$yEDGFRUW=^LiPOP1mzfks_P3Lb=F==bG7T4cJ0rsL!S#5zSUas z#v(A(yvCd7W~u(d|N8>G8JX-EaQRUMXg3HbfJqb|b3p|e86+5fUCYp@{(GJAi1vKm zULfs1hxt_%kVZBf(_6@fX8|ohcoNxcHKCG9keM+0Lqm}+h#%n1$_8>36Arm(auI0(p#17dC|&NV8Fw2pqTq_ z^AnxghV>uxp?&POrki23o6LSAi*$YmZ;ah Z(3^} diff --git a/tests/Specs/Build.cs b/tests/Specs/Build.cs index 3c6c51637..a7803e155 100644 --- a/tests/Specs/Build.cs +++ b/tests/Specs/Build.cs @@ -207,7 +207,7 @@ public void BusinessBuildWith_TestFromInputTrue_CommandWithTestFalse() ""DefaultDomain"": ""DOMAIN"", ""RESTPort"": ""1234"", ""Tenant"": ""tenant"", - ""MESVersion"": ""8.2.0"", + ""MESVersion"": ""10.2.0"", ""DevTasksVersion"": ""8.1.0"", ""HTMLStarterVersion"": ""8.0.0"", ""YoGeneratorVersion"": ""8.1.0"", @@ -305,7 +305,7 @@ public void BusinessBuildWith_TestFromInputTrue_CommandWithTestTrue() ""DefaultDomain"": ""DOMAIN"", ""RESTPort"": ""1234"", ""Tenant"": ""tenant"", - ""MESVersion"": ""8.2.0"", + ""MESVersion"": ""10.2.0"", ""DevTasksVersion"": ""8.1.0"", ""HTMLStarterVersion"": ""8.0.0"", ""YoGeneratorVersion"": ""8.1.0"", @@ -403,7 +403,7 @@ public void BusinessBuildWith_TestFromInputFalse_CommandWithTestTrue() ""DefaultDomain"": ""DOMAIN"", ""RESTPort"": ""1234"", ""Tenant"": ""tenant"", - ""MESVersion"": ""8.2.0"", + ""MESVersion"": ""10.2.0"", ""DevTasksVersion"": ""8.1.0"", ""HTMLStarterVersion"": ""8.0.0"", ""YoGeneratorVersion"": ""8.1.0"", @@ -765,14 +765,11 @@ public void GenericBuildWith_BuildSteps() [Theory] [InlineData("10.0.0")] // MES version > 9: uses projects/cmf-docs-area-* layout - [InlineData("9.0.0")] // MES version <= 9: uses src/packages/cmf.docs.area.* layout public void GenerateMenuItems_FilesAreOrderedAlphabetically(string mesVersion) { - bool isNewLayout = new Version(mesVersion).Major > 9; - // Build the package directory prefix based on MES version layout - string packageDirName = isNewLayout ? "cmf-docs-area-cmf-custom-help" : "cmf.docs.area.cmf.custom.help"; - string packagesRoot = isNewLayout ? "/help/projects" : "/help/src/packages"; + string packageDirName = "cmf-docs-area-cmf-custom-help"; + string packagesRoot = "/help/projects"; string packageDir = $"{packagesRoot}/{packageDirName}"; string assetsDir = $"{packageDir}/assets"; string topicDir = $"{assetsDir}/equipment"; @@ -825,13 +822,10 @@ public void GenerateMenuItems_FilesAreOrderedAlphabetically(string mesVersion) [Theory] [InlineData("10.0.0")] // MES version > 9: uses projects/cmf-docs-area-* layout - [InlineData("9.0.0")] // MES version <= 9: uses src/packages/cmf.docs.area.* layout public void GenerateMenuItems_FoldersAreOrderedAlphabetically(string mesVersion) { - bool isNewLayout = new Version(mesVersion).Major > 9; - - string packageDirName = isNewLayout ? "cmf-docs-area-cmf-custom-help" : "cmf.docs.area.cmf.custom.help"; - string packagesRoot = isNewLayout ? "/help/projects" : "/help/src/packages"; + string packageDirName = "cmf-docs-area-cmf-custom-help"; + string packagesRoot = "/help/projects"; string packageDir = $"{packagesRoot}/{packageDirName}"; string assetsDir = $"{packageDir}/assets"; diff --git a/tests/Specs/Bump.cs b/tests/Specs/Bump.cs index f858089ad..e958259f8 100644 --- a/tests/Specs/Bump.cs +++ b/tests/Specs/Bump.cs @@ -15,95 +15,6 @@ namespace tests.Specs; public class Bump { - [Theory] - [InlineData("'", "1.0.0")] - [InlineData("\"", "1.0.0")] - [InlineData("'", "")] - public void Bump_MetadataWithAnyQuoteType(string quoteType, string version) - { - // files - string cmfPackageJson = $"help/{CliConstants.CmfPackageFileName}"; - string npmPackageJson = "/help/package.json"; - string metadataTS = - "/help/src/packages/cmf.docs.area.cmf.custom.help/src/cmf.docs.area.cmf.custom.help.metadata.ts"; - - string bumpVersion = "1.0.1"; - - var fileSystem = new MockFileSystem(new Dictionary - { - { - MockUnixSupport.Path(@"c:\.project-config.json"), new MockFileData( - @"{ - ""MESVersion"": ""9.0.0"" - }") - }, - { - cmfPackageJson, new MockFileData( - @$"{{ - ""packageId"": ""Cmf.Custom.Help"", - ""version"": ""{version}"", - ""description"": ""Cmf Custom Cmf.Custom.Help Package"", - ""packageType"": ""Help"", - ""isInstallable"": true, - ""isUniqueInstall"": false, - ""contentToPack"": [ - {{ - ""source"": ""src/packages/*"", - ""target"": ""node_modules"", - ""ignoreFiles"": [ - "".npmignore"" - ] - }} - ] - }}") - }, - { - npmPackageJson, new MockFileData( - @$"{{ - ""name"": ""cmf.docs.area"", - ""version"": ""{version}"", - ""description"": ""Help customization package"", - ""private"": true, - ""scripts"": {{ - ""preinstall"": ""node npm.preinstall.js"", - ""postinstall"": ""node npm.postinstall.js"" - }}, - ""repository"": {{ - ""type"": ""git"", - ""url"": ""https://url/git"" - }} - }}") - }, - { - metadataTS, new MockFileData( - @$" - (...) - function applyConfig (packageName: string) {{ - const config: PackageMetadata = {{ - version: {quoteType}{version}{quoteType}, - (...) - ") - } - }); - - ExecutionContext.ServiceProvider = (new ServiceCollection()) - .AddSingleton(new ProjectConfigService()) - .BuildServiceProvider(); - ExecutionContext.Initialize(fileSystem); - - IFileInfo cmfpackageFile = fileSystem.FileInfo.New(cmfPackageJson); - IPackageTypeHandler packageTypeHandler = PackageTypeFactory.GetPackageTypeHandler(cmfpackageFile); - packageTypeHandler.Bump(bumpVersion, ""); - - string cmfPackageVersion = (packageTypeHandler as HelpGulpPackageTypeHandler).CmfPackage.Version; - dynamic packageFile = JsonConvert.DeserializeObject(fileSystem.File.ReadAllText(npmPackageJson)); - string packageFileVersion = packageFile.version; - string metadataFile = fileSystem.File.ReadAllText(metadataTS); - - cmfPackageVersion.Should().Be(bumpVersion); - packageFileVersion.Should().Be(bumpVersion); - metadataFile.Should().Contain($"version: \"{bumpVersion}\""); - } [Theory] [InlineData("alpha.1")] diff --git a/tests/Specs/Init.cs b/tests/Specs/Init.cs index a42b2c30d..dcfed78d7 100644 --- a/tests/Specs/Init.cs +++ b/tests/Specs/Init.cs @@ -38,7 +38,6 @@ public Init() } [Theory] - [InlineData("8.2.0", DependencyVersionService.NET3SDK)] [InlineData("10.2.0", DependencyVersionService.NET6SDK)] [InlineData("11.0.0", DependencyVersionService.NET8SDK)] public void Init_(string baseVersionStr, string dotnetSDKVersion) @@ -156,7 +155,7 @@ public void Init_Fail_MissingMandatoryArgumentsAndOptions() } [Fact] - public void Init_Fail_MissingOptionsForLTv10() + public void Init_Fail_ForLTv10() { var console = new TestConsole(); var tmp = TestUtilities.GetTmpDirectory(); @@ -183,13 +182,11 @@ public void Init_Fail_MissingOptionsForLTv10() "--nugetRegistry", "http://nuget.example/feed", "--npmRegistry", "http://npm.example/feed", "--ISOLocation", "dummy", + "--ngxSchematicsVersion", "1.3.7", "--deploymentDir", deploymentDir, }, console); - Assert.Contains("DevTasksVersion is required", console.Error.ToString()); - Assert.Contains("HTMLStarterVersion is required", console.Error.ToString()); - Assert.Contains("yoGeneratorVersion is required", console.Error.ToString()); - console.Error.ToString().Should().NotContain("ngxSchematicsVersion is required"); + console.Error.ToString().Should().Contain("MES Versions under 10 are no longer supported with the newest version of the CLI. Please use cmf-cli 5.8.0 or lower."); } finally { @@ -229,7 +226,7 @@ public void Init_Fail_MissingOptionsForGTv10() "--deploymentDir", deploymentDir, }, console); - Assert.Contains("ngxSchematicsVersion is required", console.Error.ToString()); + Assert.Contains("--ngxSchematicsVersion is missing, please specify it.", console.Error.ToString()); console.Error.ToString().Should().NotContain("DevTasksVersion is required"); console.Error.ToString().Should().NotContain("HTMLStarterVersion is required"); console.Error.ToString().Should().NotContain("yoGeneratorVersion is required"); @@ -558,16 +555,17 @@ public void Init_With_Unknown_Option_Instead_Of_Argument() projectName, "--infra", TestUtilities.GetFixturePath("init", "infrastructure.json"), "-c", TestUtilities.GetFixturePath("init", "config.json"), - "--MESVersion", "8.2.0", - "--DevTasksVersion", "8.1.0", - "--HTMLStarterVersion", "8.0.0", - "--yoGeneratorVersion", "8.1.0", - "--nugetVersion", "8.2.0", - "--testScenariosNugetVersion", "8.2.0", + "--MESVersion", "10.2.0", + "--DevTasksVersion", "10.2.0", + "--HTMLStarterVersion", "10.2.0", + "--yoGeneratorVersion", "10.2.0", + "--nugetVersion", "10.2.0", + "--testScenariosNugetVersion", "10.2.0", "--deploymentDir", deploymentDir, "--ISOLocation", isoLocation, "--version", pkgVersion, - "--UnknownOption", "RandomValue" + "--UnknownOption", "RandomValue", + "--ngxSchematicsVersion", "10.2.0" }, console); console.Error.ToString().Should().BeEmpty(); @@ -606,15 +604,16 @@ public void Init_With_Env_Without_Domain() projectName, "--infra", TestUtilities.GetFixturePath("init", "infrastructure.json"), "-c", TestUtilities.GetFixturePath("init", "config_no_AD.json"), - "--MESVersion", "8.2.0", - "--DevTasksVersion", "8.1.0", - "--HTMLStarterVersion", "8.0.0", - "--yoGeneratorVersion", "8.1.0", - "--nugetVersion", "8.2.0", - "--testScenariosNugetVersion", "8.2.0", + "--MESVersion", "10.2.0", + "--DevTasksVersion", "10.2.0", + "--HTMLStarterVersion", "10.0.0", + "--yoGeneratorVersion", "10.1.0", + "--nugetVersion", "10.2.0", + "--testScenariosNugetVersion", "10.2.0", "--deploymentDir", deploymentDir, "--ISOLocation", isoLocation, "--version", pkgVersion, + "--ngxSchematicsVersion", "10.2.0", "Cmf.Custom.Package", tmp }, console); diff --git a/tests/Specs/MESVersionCommandValidation.cs b/tests/Specs/MESVersionCommandValidation.cs index e19674f4e..b8dd43d4e 100644 --- a/tests/Specs/MESVersionCommandValidation.cs +++ b/tests/Specs/MESVersionCommandValidation.cs @@ -1,9 +1,7 @@ using System; using System.Collections.Generic; using System.CommandLine; -using System.CommandLine.Parsing; using System.IO.Abstractions.TestingHelpers; -using Cmf.CLI.Core; using Cmf.CLI.Core.Attributes; using Cmf.CLI.Core.Commands; using Cmf.CLI.Core.Objects; @@ -63,10 +61,12 @@ public void CommandWithMinimumVersion_CurrentVersionMeets_ShouldExecute() catch (MESVersionValidationException ex) { commandResult.AddError(ex.Message); + commandResult.AddError(ex.Message); } catch (Exception ex) { commandResult.AddError($"Version validation error: {ex.Message}"); + commandResult.AddError($"Version validation error: {ex.Message}"); } }); } diff --git a/tests/Specs/New.cs b/tests/Specs/New.cs index 984c2c820..c50282f5b 100644 --- a/tests/Specs/New.cs +++ b/tests/Specs/New.cs @@ -26,8 +26,6 @@ using Cmf.CLI.Core.Services; using Spectre.Console; using Cmf.CLI.Core; -using Cmf.CLI.Commands.New.IoT; -using TestingConsole = Spectre.Console.Testing; namespace tests.Specs { @@ -35,7 +33,7 @@ public class NpmLoginFixture : IAsyncLifetime { internal const string NPM_USER_ENV_VAR = "CRITICALMANUFACTURING_IO_USER"; internal const string NPM_TOKEN_ENV_VAR = "CRITICALMANUFACTURING_IO_TOKEN"; - internal static string NPM_REGISTRY => System.Environment.GetEnvironmentVariable("CRITICALMANUFACTURING_NPM_REGISTRY") ?? "https://dev.criticalmanufacturing.io/repository/npm-public/"; + internal static string NPM_REGISTRY => Environment.GetEnvironmentVariable("CRITICALMANUFACTURING_NPM_REGISTRY") ?? "https://dev.criticalmanufacturing.io/repository/npm-public/"; public Task InitializeAsync() { @@ -67,23 +65,23 @@ private void NpmLogin() .AddSingleton(RepositoryAuthStore.FromEnvironmentConfig(fs)) .BuildServiceProvider(); - Spectre.Console.AnsiConsole.Console.MarkupLine("Finished building tests' service provider."); + AnsiConsole.Console.MarkupLine("Finished building tests' service provider."); - var npmUser = System.Environment.GetEnvironmentVariable(NPM_USER_ENV_VAR); - var npmToken = System.Environment.GetEnvironmentVariable(NPM_TOKEN_ENV_VAR); + var npmUser = Environment.GetEnvironmentVariable(NPM_USER_ENV_VAR); + var npmToken = Environment.GetEnvironmentVariable(NPM_TOKEN_ENV_VAR); if (!NPM_REGISTRY.IsNullOrEmpty() && !npmUser.IsNullOrEmpty() && !npmToken.IsNullOrEmpty()) { - Spectre.Console.AnsiConsole.Console.MarkupLine($"Running cmf login command for '{NPM_REGISTRY}'..."); + AnsiConsole.Console.MarkupLine($"Running cmf login command for '{NPM_REGISTRY}'..."); // We just want to login into NPM // If we log onto Portal then the command will attempt to login into all the derived credentials as well var loginCmd = new LoginCommand(); loginCmd.Execute( - Cmf.CLI.Core.Repository.Credentials.RepositoryCredentialsType.NPM, NPM_REGISTRY, - Cmf.CLI.Core.Repository.Credentials.AuthType.Basic, null, + RepositoryCredentialsType.NPM, NPM_REGISTRY, + AuthType.Basic, null, npmUser, npmToken, null, null, false, true); - Spectre.Console.AnsiConsole.Console.MarkupLine($"Successfully logged in on '{NPM_REGISTRY}'."); + AnsiConsole.Console.MarkupLine($"Successfully logged in on '{NPM_REGISTRY}'."); } } } @@ -94,7 +92,8 @@ public class New : IClassFixture public New(NpmLoginFixture npmLoginFixture) { - System.Environment.SetEnvironmentVariable("cmf_cli_internal_disable_projectconfig_cache", "1"); + Environment.SetEnvironmentVariable("cmf_cli_internal_disable_projectconfig_cache", "1"); + Environment.SetEnvironmentVariable("NPM_CONFIG_YES", "true"); var newCommand = new NewCommand(); var cmd = new Command("x"); @@ -119,7 +118,7 @@ public void Business(BaseLayer layer, RepositoryType repositoryType = Repository RunNew(new BusinessCommand(), "Cmf.Custom.Business", repositoryType: repositoryType, - mesVersion: "9.1.0", + mesVersion: "10.2.5", baseLayer: layer, extraArguments: appContext ? new[] { "--addApplicationVersionAssembly" } : null, extraAsserts: args => @@ -225,22 +224,27 @@ public void Data_WithBusiness() }); } - [Theory, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node12"), Trait("TestCategory", "Integration")] - [InlineData(BaseLayer.MES)] - [InlineData(BaseLayer.Core)] - public void UI(BaseLayer layer) + [Theory, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node18"), Trait("TestCategory", "Integration")] + [InlineData(BaseLayer.MES, "10.2.10", "1.3.7")] + [InlineData(BaseLayer.Core, "10.2.10", "1.3.7")] + public void UI_v10(BaseLayer layer, string mesVersion, string ngxSchematicsVersion) { - UI_internal(null, layer); + UI_internal(null, layer, mesVersion, ngxSchematicsVersion); } - private void UI_internal(string scaffoldingDir, BaseLayer layer) + [Theory, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node20"), Trait("TestCategory", "Integration")] + [InlineData(BaseLayer.MES, "11.2.5", "11.0.14")] + [InlineData(BaseLayer.Core, "11.2.5", "11.0.14")] + public void UI_v11(BaseLayer layer, string mesVersion, string ngxSchematicsVersion) { - RunNew(new HTMLCommand(), "Cmf.Custom.HTML", scaffoldingDir: scaffoldingDir, baseLayer: layer, extraArguments: new string[] - { - "--htmlPkg", TestUtilities.GetFixturePath("prodPkg", "Cmf.Presentation.HTML.9.9.9.zip"), - }, extraAsserts: args => + UI_internal(null, layer, mesVersion, ngxSchematicsVersion); + } + + private void UI_internal(string scaffoldingDir, BaseLayer layer, string mesVersion, string ngxSchematicsVersion) + { + RunNew(new HTMLCommand(), "Cmf.Custom.HTML", scaffoldingDir: scaffoldingDir, mesVersion: mesVersion, ngxSchematicsVersion: ngxSchematicsVersion, baseLayer: layer, extraAsserts: args => { - var configJson = File.ReadAllText("Cmf.Custom.HTML/apps/customization.web/config.json"); + var configJson = File.ReadAllText("Cmf.Custom.HTML/src/assets/config.json"); try { JsonConvert.DeserializeObject(configJson); @@ -249,124 +253,66 @@ private void UI_internal(string scaffoldingDir, BaseLayer layer) { Assert.Fail($"config.json is malformed: {e.Message}"); } - Assert.True(File.Exists($"Cmf.Custom.HTML/.dev-tasks.json"), "dev-tasks file is missing or has wrong name. Was cloning HTML-starter unsuccessful?"); - Assert.True(File.ReadAllText("Cmf.Custom.HTML/.dev-tasks.json").Contains("\"isWebAppCompilable\": true"), "Web app is not compilable"); - Assert.True(Directory.Exists($"Cmf.Custom.HTML/apps/customization.web"), "WebApp dir is missing or has wrong name. Was running the application generator unsuccessful?"); - Assert.True(File.Exists($"Cmf.Custom.HTML/apps/customization.web/config.json"), "Config file is missing or has wrong name"); - Assert.True(configJson.Contains("test.package"), "Product package is not in config.json"); - Assert.True(File.Exists($"Cmf.Custom.HTML/apps/customization.web/index.html"), "Index file is missing or has wrong name"); - if (layer == BaseLayer.Core) - { - configJson - .Should().Contain("core-ui-web", "wrong base package in config.json"); - File.ReadAllText($"Cmf.Custom.HTML/apps/customization.web/package.json").Should() - .Contain("@criticalmanufacturing/core-ui-web"); - File.ReadAllText($"Cmf.Custom.HTML/cmfpackage.json").Should() - .Contain("node_modules/@criticalmanufacturing/core-ui-web/bundles"); - configJson - .Should().NotContain("cmf.mes", "config.json should not have any MES packages"); - } - else + Assert.True(Directory.Exists($"Cmf.Custom.HTML/src/app"), "WebApp dir is missing or has wrong name. Was running the application generator unsuccessful?"); + Assert.True(File.Exists($"Cmf.Custom.HTML/src/assets/config.json"), "Config file is missing or has wrong name"); + Assert.True(File.ReadAllText("Cmf.Custom.HTML/src/assets/config.json").Contains(mesVersion), $"Version {mesVersion} is not in config.json"); + Assert.True(File.Exists($"Cmf.Custom.HTML/src/index.html"), "Index file is missing or has wrong name"); + Assert.True(File.ReadAllText("Cmf.Custom.HTML/src/index.html").Contains("MES"), "Index content is not expected"); + Assert.True(File.ReadAllText("Cmf.Custom.HTML/src/index.html").Contains(""), "Index base path was not changed correctly"); + if(new Version(mesVersion) < new Version(11,0,0)) { - configJson - .Should().Contain("mes-ui-web", "wrong base package in config.json"); - File.ReadAllText($"Cmf.Custom.HTML/apps/customization.web/package.json").Should() - .Contain("@criticalmanufacturing/mes-ui-web"); - File.ReadAllText($"Cmf.Custom.HTML/cmfpackage.json").Should() - .Contain("node_modules/@criticalmanufacturing/mes-ui-web/bundles"); - configJson - .Should().Contain("cmf.mes", "config.json should not have a MES packages"); + if (layer == BaseLayer.Core) + { + File.ReadAllText($"Cmf.Custom.HTML/src/app/app.module.ts").Should() + .Contain("import { CoreUIModule } from 'cmf-core-ui';"); + } + else + { + File.ReadAllText($"Cmf.Custom.HTML/src/app/app.module.ts").Should() + .Contain("import { MesUIModule } from 'cmf-mes-ui';"); + } } }); } - [Theory, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node12"), Trait("TestCategory", "Integration")] - [InlineData("8.2.0", false)] - [InlineData("9.1.0", true)] - public void UI_WithAppsPackage(string mesVersion, bool isCoreAppPresent) - { - RunNew(new HTMLCommand(), "Cmf.Custom.HTML", mesVersion: mesVersion, extraArguments: new string[] - { - "--htmlPkg", TestUtilities.GetFixturePath("prodPkg", "Cmf.Presentation.HTML.9.9.9.zip"), - }, extraAsserts: args => - { - Assert.True(File.Exists($"Cmf.Custom.HTML/.dev-tasks.json"), "dev-tasks file is missing or has wrong name. Was cloning HTML-starter unsuccessful?"); - Assert.True(File.ReadAllText("Cmf.Custom.HTML/.dev-tasks.json").Contains("\"isWebAppCompilable\": true"), "Web app is not compilable"); - Assert.True(Directory.Exists($"Cmf.Custom.HTML/apps/customization.web"), "WebApp dir is missing or has wrong name. Was running the application generator unsuccessful?"); - Assert.True(File.Exists($"Cmf.Custom.HTML/apps/customization.web/config.json"), "Config file is missing or has wrong name"); - Assert.True(File.ReadAllText("Cmf.Custom.HTML/apps/customization.web/config.json").Contains("test.package"), "Product package is not in config.json"); - File.ReadAllText("Cmf.Custom.HTML/apps/customization.web/config.json").Contains("cmf.core.app").Should() - .Be(isCoreAppPresent, $"Apps package {(isCoreAppPresent ? "is not" : "is")} in config.json even though we are targeting {mesVersion}"); - Assert.True(File.Exists($"Cmf.Custom.HTML/apps/customization.web/index.html"), "Index file is missing or has wrong name"); - }); - } - - [Theory, Trait("TestCategory", "Integration")] - [InlineData("9.0.0", true)] - [InlineData("10.0.0", false), Trait("TestCategory", "LongRunning")] - public void UI_FailNoPackage(string mesVersion, bool shouldDisplayError) + [Theory, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node18"), Trait("TestCategory", "Integration")] + [InlineData("10.2.10", "1.3.7")] + public void Help_v10(string mesVersion, string ngxSchematicsVersion) { - var console = RunNew(new HTMLCommand(), "Cmf.Custom.HTML", defaultAsserts: false, mesVersion: mesVersion); - var stderr = console.Error.ToString(); - if (shouldDisplayError) - { - (stderr ?? "").Trim() - .Should().Contain("--htmlPkg option is required for MES versions up to 9.x", - "Should exit with missing package error"); - } - else - { - (stderr ?? "").Trim() - .Should().NotContain("--htmlPkg option is required for MES versions up to 9.x", - "Should exit with missing package error"); - } + Help_internal(mesVersion: mesVersion, ngxSchematicsVersion: ngxSchematicsVersion); } - [Fact, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node12"), Trait("TestCategory", "Integration")] - public void Help() + [Theory, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node20"), Trait("TestCategory", "Integration")] + [InlineData("11.2.5", "11.0.14")] + public void Help_v11(string mesVersion, string ngxSchematicsVersion) { - Help_internal(); + Help_internal(mesVersion: mesVersion, ngxSchematicsVersion: ngxSchematicsVersion); } - private void Help_internal(string scaffoldingDir = null) + private void Help_internal(string mesVersion, string ngxSchematicsVersion, string scaffoldingDir = null) { - RunNew(new Cmf.CLI.Commands.New.HelpCommand(), "Cmf.Custom.Help", scaffoldingDir: scaffoldingDir, extraArguments: new string[] { - "--docPkg", TestUtilities.GetFixturePath("prodPkg", "Cmf.Documentation.9.9.9.zip"), - }, extraAsserts: args => + RunNew(new Cmf.CLI.Commands.New.HelpCommand(), "Cmf.Custom.Help", scaffoldingDir: scaffoldingDir, mesVersion: mesVersion, ngxSchematicsVersion: ngxSchematicsVersion, extraAsserts: args => { - Assert.True(File.Exists($"Cmf.Custom.Help/.dev-tasks.json"), "dev-tasks file is missing or has wrong name. Was cloning HTML-starter unsuccessful?"); - Assert.True(Directory.Exists($"Cmf.Custom.Help/apps/cmf.docs.area.web"), "WebApp dir is missing or has wrong name. Was running the application generator unsuccessful?"); - Assert.True(File.Exists($"Cmf.Custom.Help/apps/cmf.docs.area.web/config.json"), "Config file is missing or has wrong name"); - Assert.True(File.ReadAllText("Cmf.Custom.Help/apps/cmf.docs.area.web/config.json").Contains("test.package"), "Product package is not in config.json"); - Assert.True(File.Exists($"Cmf.Custom.Help/apps/cmf.docs.area.web/index.html"), "Index file is missing or has wrong name"); - Assert.True(File.ReadAllText("Cmf.Custom.Help/apps/cmf.docs.area.web/index.html").Contains("Documentation website"), "Index content is not expected"); - Assert.True(File.ReadAllText("Cmf.Custom.Help/apps/cmf.docs.area.web/index.html").Contains(""), "Index base path was not changed correctly"); + Assert.True(Directory.Exists($"Cmf.Custom.Help/src/app"), "WebApp dir is missing or has wrong name. Was running the application generator unsuccessful?"); + Assert.True(File.Exists($"Cmf.Custom.Help/src/assets/config.json"), "Config file is missing or has wrong name"); + Assert.True(File.ReadAllText("Cmf.Custom.Help/src/assets/config.json").Contains(mesVersion), $"Version {mesVersion} is not in config.json"); + Assert.True(File.Exists($"Cmf.Custom.Help/src/index.html"), "Index file is missing or has wrong name"); + Assert.True(File.ReadAllText("Cmf.Custom.Help/src/index.html").Contains("DocumentationPortal"), "Index content is not expected"); + Assert.True(File.ReadAllText("Cmf.Custom.Help/src/index.html").Contains(""), "Index base path was not changed correctly"); }); } [Theory, Trait("TestCategory", "Integration")] - [InlineData("9.0.0", true)] - [InlineData("10.0.0", false), Trait("TestCategory", "LongRunning")] - public void Help_FailNoPackage(string mesVersion, bool shouldDisplayError) + [InlineData("10.2.10"), Trait("TestCategory", "LongRunning")] + public void Help_FailNoPackage(string mesVersion) { var console = RunNew(new Cmf.CLI.Commands.New.HelpCommand(), "Cmf.Custom.Help", defaultAsserts: false, mesVersion: mesVersion); var stderr = console.Error.ToString(); - if (shouldDisplayError) - { - (stderr ?? "").Trim() - .Should().Contain("--docPkg option is required for MES versions up to 9.x", - "Should exit with missing package error"); - } - else - { - (stderr ?? "").Trim() - .Should().NotContain("--docPkg option is required for MES versions up to 9.x", - "Should exit with missing package error"); - } + (stderr ?? "").Trim() + .Should().BeEmpty(); } [Theory, Trait("TestCategory", "Integration")] - [InlineData("9.0.0")] [InlineData("10.2.5", true), Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node18")] [InlineData("10.2.5", true, true), Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node18")] [InlineData("10.2.7", true, true), Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node18")] @@ -377,20 +323,16 @@ public void IoT(string mesVersion, bool htmlPackageLocationFullPath = false, boo string packageId = "Cmf.Custom.IoT"; string packageIdPackages = "Cmf.Custom.IoT.Packages"; - string packageFolderPackages = mesVersion == "9.0.0" ? "IoTPackages" : packageIdPackages; + string packageFolderPackages = packageIdPackages; string packageIdData = "Cmf.Custom.IoT.Data"; - string packageFolderData = mesVersion == "9.0.0" ? "IoTData" : packageIdData; + string packageFolderData = packageIdData; // Before v10.2.7, all packages were Angular packages, even if the flag was not passed explicitly bool isAngularPackage = isAngularPackageFlag || Version.Parse(mesVersion) < new Version(10, 2, 7); CopyNewFixture(dir, mesVersion: mesVersion); - if (mesVersion == "9.0.0") - { - RunNew(new IoTCommand(), packageId, scaffoldingDir: dir); - } - else if (isAngularPackage) + if (isAngularPackage) { var htmlPackageName = "Cmf.Custom.HTML"; var targetDir = new DirectoryInfo(dir); @@ -427,36 +369,28 @@ public void IoT(string mesVersion, bool htmlPackageLocationFullPath = false, boo Directory.Exists($"{packageId}/{packageFolderData}/MasterData").Should().BeTrue(); Directory.Exists($"{packageId}/{packageFolderData}/AutomationWorkFlows").Should().BeTrue(); - if (mesVersion == "9.0.0") + Directory.Exists($"{packageId}/{packageFolderPackages}/.vscode").Should().BeTrue(); + File.Exists($"{packageId}/{packageFolderPackages}/.vscode/extensions.json").Should().BeTrue(); + File.Exists($"{packageId}/{packageFolderPackages}/.vscode/launch.json").Should().BeTrue(); + File.Exists($"{packageId}/{packageFolderPackages}/.vscode/settings.json").Should().BeTrue(); + File.Exists($"{packageId}/{packageFolderPackages}/.vscode/tasks.json").Should().BeTrue(); + + if (isAngularPackage) { - File.Exists($"{packageId}/{packageFolderPackages}/.dev-tasks.json").Should().BeTrue(); - Directory.Exists($"{packageId}/{packageFolderPackages}/src").Should().BeTrue(); + var relatedPackages = TestUtilities.GetPackage($"{packageId}/{packageFolderPackages}/cmfpackage.json").GetProperty("relatedPackages")[0]; + relatedPackages.GetProperty("path").GetString().Should().Be(MockUnixSupport.Path("..\\..\\Cmf.Custom.HTML")); + relatedPackages.GetProperty("preBuild").GetBoolean().Should().BeFalse(); + relatedPackages.GetProperty("postBuild").GetBoolean().Should().BeTrue(); + relatedPackages.GetProperty("prePack").GetBoolean().Should().BeFalse(); + relatedPackages.GetProperty("postPack").GetBoolean().Should().BeTrue(); + + File.Exists($"{packageId}/{packageFolderPackages}/angular.json").Should().BeTrue(); } - else { - Directory.Exists($"{packageId}/{packageFolderPackages}/.vscode").Should().BeTrue(); - File.Exists($"{packageId}/{packageFolderPackages}/.vscode/extensions.json").Should().BeTrue(); - File.Exists($"{packageId}/{packageFolderPackages}/.vscode/launch.json").Should().BeTrue(); - File.Exists($"{packageId}/{packageFolderPackages}/.vscode/settings.json").Should().BeTrue(); - File.Exists($"{packageId}/{packageFolderPackages}/.vscode/tasks.json").Should().BeTrue(); - File.Exists($"{packageId}/{packageFolderPackages}/.gitattributes").Should().BeTrue(); - - if (isAngularPackage) - { - var relatedPackages = TestUtilities.GetPackage($"{packageId}/{packageFolderPackages}/cmfpackage.json").GetProperty("relatedPackages")[0]; - relatedPackages.GetProperty("path").GetString().Should().Be(MockUnixSupport.Path("..\\..\\Cmf.Custom.HTML")); - relatedPackages.GetProperty("preBuild").GetBoolean().Should().BeFalse(); - relatedPackages.GetProperty("postBuild").GetBoolean().Should().BeTrue(); - relatedPackages.GetProperty("prePack").GetBoolean().Should().BeFalse(); - relatedPackages.GetProperty("postPack").GetBoolean().Should().BeTrue(); - - File.Exists($"{packageId}/{packageFolderPackages}/angular.json").Should().BeTrue(); - } - else - { - File.Exists($"{packageId}/{packageFolderPackages}/angular.json").Should().BeFalse(); - File.Exists($"{packageId}/{packageFolderPackages}/.eslintrc.json").Should().BeTrue(); - File.Exists($"{packageId}/{packageFolderPackages}/ui.xml").Should().BeTrue(); - } + else + { + File.Exists($"{packageId}/{packageFolderPackages}/angular.json").Should().BeFalse(); + File.Exists($"{packageId}/{packageFolderPackages}/.eslintrc.json").Should().BeTrue(); + File.Exists($"{packageId}/{packageFolderPackages}/ui.xml").Should().BeTrue(); } } @@ -884,7 +818,7 @@ public void Features_RootPackageWithFeature() } RunFeature_WithoutPrefix(scaffoldingDir: dir); - var console = RunNew(new BusinessCommand(), "Cmf.Custom.Business", scaffoldingDir: dir, defaultAsserts: false); + RunNew(new BusinessCommand(), "Cmf.Custom.Business", scaffoldingDir: dir, defaultAsserts: false); // TODO: logger isn't using IConsole. This means we can only catch errors coming from Exception, which is not the case here //string errors = console.Error.ToString().Trim(); //Assert.True(errors.Contains("Cannot create a root-level layer package when features already exist."), "Expected to find specific error in console but instead found: {0}", errors); @@ -926,7 +860,7 @@ public void Features_Business() var pkgDir = Path.Join(dir, "Features", "TestFeature"); const string packageId = "Cmf.Custom.TestFeature.Business"; - var console = RunNew(new BusinessCommand(), packageId, scaffoldingDir: pkgDir, extraAsserts: args => + var console = RunNew(new BusinessCommand(), packageId, scaffoldingDir: pkgDir, mesVersion: "10.2.10", extraAsserts: args => { var (pkgVersion, _) = args; Assert.True(File.Exists(Path.Join(dir, "Features/TestFeature", $"{packageId}/Cmf.Custom.Common/tenantConstants.cs")), "Constants file is missing or has wrong name"); @@ -944,7 +878,7 @@ public void Features_Business() } } - [Fact, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node12"), Trait("TestCategory", "Integration")] + [Fact, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node18"), Trait("TestCategory", "Integration")] public void Features_Help() { var dir = TestUtilities.GetTmpDirectory(); @@ -960,6 +894,7 @@ public void Features_Help() TestUtilities.CopyFixture("new", new DirectoryInfo(dir)); TestUtilities.CopyFixture("featureBase", new DirectoryInfo(dir)); + ReplaceConfigForFeaturesTest(dir, mesVersion: "10.2.10"); var projCfg = Path.Join(dir, ".project-config.json"); if (File.Exists(projCfg)) { @@ -972,12 +907,10 @@ public void Features_Help() var pkgDir = Path.Join(dir, "Features", "TestFeature"); const string packageId = "Cmf.Custom.TestFeature.Help"; - var console = RunNew(new Cmf.CLI.Commands.New.HelpCommand(), packageId, extraArguments: new string[] { - "--docPkg", TestUtilities.GetFixturePath("prodPkg", "Cmf.Documentation.9.9.9.zip"), - }, scaffoldingDir: pkgDir, extraAsserts: args => + var console = RunNew(new Cmf.CLI.Commands.New.HelpCommand(), packageId, scaffoldingDir: pkgDir, mesVersion: "10.2.10", extraAsserts: args => { var (pkgVersion, _) = args; - Assert.True(Directory.Exists(Path.Join(dir, "Features/TestFeature", $"{packageId}/src/packages/cmf.docs.area.{packageId.ToLowerInvariant()}")), "Help package is missing or has wrong name"); + Assert.True(Directory.Exists(Path.Join(dir, "Features/TestFeature", $"{packageId}/projects/cmf-docs-area-cmf-custom-testfeature-help")), "Help package is missing or has wrong name"); }); } finally @@ -999,7 +932,7 @@ public void Features_Help() } } - [Fact, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node12"), Trait("TestCategory", "Integration")] + [Fact, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Node18"), Trait("TestCategory", "Integration")] public void Features_UI() { var dir = TestUtilities.GetTmpDirectory(); @@ -1014,6 +947,8 @@ public void Features_UI() Directory.SetCurrentDirectory(dir); TestUtilities.CopyFixture("new", new DirectoryInfo(dir)); TestUtilities.CopyFixture("featureBase", new DirectoryInfo(dir)); + + ReplaceConfigForFeaturesTest(dir, mesVersion: "10.2.10"); var projCfg = Path.Join(dir, ".project-config.json"); if (File.Exists(projCfg)) { @@ -1026,9 +961,7 @@ public void Features_UI() var pkgDir = Path.Join(dir, "Features", "TestFeature"); const string packageId = "Cmf.Custom.TestFeature.HTML"; - var console = RunNew(new Cmf.CLI.Commands.New.HTMLCommand(), packageId, extraArguments: new string[] { - "--htmlPkg", TestUtilities.GetFixturePath("prodPkg", "Cmf.Presentation.HTML.9.9.9.zip"), - }, scaffoldingDir: pkgDir); + RunNew(new HTMLCommand(), packageId, scaffoldingDir: pkgDir, mesVersion: "10.2.10"); } finally { @@ -1076,31 +1009,9 @@ public void SecurityPortal() Assert.True(File.Exists($"{dir}/Cmf.Custom.SecurityPortal/config.json"), "Package config.json is missing"); } - [Fact, Trait("TestCategory", "LongRunning"), Trait("TestCategory", "Integration"), Trait("TestCategory", "Node18")] - public void UI_v10() - { - UI_internal_v10(); - } - - private void UI_internal_v10() - { - RunNew(new HTMLCommand(), "Cmf.Custom.HTML", mesVersion: "10.1.2", extraAsserts: args => - { - var configJson = File.ReadAllText("Cmf.Custom.HTML/src/assets/config.json"); - try - { - JsonConvert.DeserializeObject(configJson); - } - catch (Exception e) - { - Assert.Fail($"config.json is malformed: {e.Message}"); - } - }); - } - private TestConsole RunNew(T newCommand, string packageId, string scaffoldingDir = null, string[] extraArguments = null, bool defaultAsserts = true, Action<(string, string)> extraAsserts = null, - string mesVersion = "8.2.0", + string mesVersion = "11.2.2", string ngxSchematicsVersion = NGX_SCHEMATICS_VERSION, BaseLayer baseLayer = BaseLayer.MES, RepositoryType repositoryType = RepositoryType.Customization) where T : TemplateCommand @@ -1122,6 +1033,11 @@ private TestConsole RunNew(T newCommand, string packageId, string scaffolding CopyNewFixture(dir, mesVersion, ngxSchematicsVersion, baseLayer, repositoryType); } + if (File.Exists(Path.Join(dir, ".project-config.json"))) + { + Console.WriteLine(File.ReadAllText(Path.Join(dir, ".project-config.json"))); + } + ExecutionContext.Initialize(new FileSystem()); var cmd = new Command("x"); @@ -1179,7 +1095,7 @@ private TestConsole RunNew(T newCommand, string packageId, string scaffolding } private void CopyNewFixture(string dir, - string mesVersion = "8.2.0", + string mesVersion = "11.2.2", string ngxSchematicsVersion = NGX_SCHEMATICS_VERSION, BaseLayer baseLayer = BaseLayer.MES, RepositoryType repositoryType = RepositoryType.Customization) @@ -1189,7 +1105,7 @@ private void CopyNewFixture(string dir, if (File.Exists(projCfg)) { File.WriteAllText(projCfg, File.ReadAllText(projCfg) - .Replace(@"""MESVersion"": ""8.2.0""", $@"""MESVersion"": ""{mesVersion}""") + .Replace(@"""MESVersion"": ""11.2.2""", $@"""MESVersion"": ""{mesVersion}""") .Replace(@"""BaseLayer"": ""MES""", $@"""BaseLayer"": ""{baseLayer}""") .Replace(@"""RepositoryType"": ""Customization""", $@"""RepositoryType"": ""{repositoryType}""") .Replace(@"""NGXSchematicsVersion"": ""10.0.0""", $@"""NGXSchematicsVersion"": ""{ngxSchematicsVersion}""") @@ -1205,5 +1121,18 @@ private void CopyNewFixture(string dir, TestUtilities.CopyFixture("app", new DirectoryInfo(dir)); } } + + private void ReplaceConfigForFeaturesTest(string dir, string mesVersion, string ngxSchematicsVersion = NGX_SCHEMATICS_VERSION) + { + var projCfg = Path.Join(dir, ".project-config.json"); + if (File.Exists(projCfg)) + { + File.WriteAllText(projCfg, File.ReadAllText(projCfg) + .Replace(@"""MESVersion"": ""11.2.2""", $@"""MESVersion"": ""{mesVersion}""") + .Replace(@"""NPMRegistry"": ""http://npm_registry/""", $@"""NPMRegistry"": ""{NpmLoginFixture.NPM_REGISTRY}""") + .Replace(@"""NGXSchematicsVersion"": ""10.0.0""", $@"""NGXSchematicsVersion"": ""{ngxSchematicsVersion}""") + ); + } + } } } \ No newline at end of file diff --git a/tests/Specs/NodeVersionUtilities.cs b/tests/Specs/NodeVersionUtilities.cs index d032f902b..494b43975 100644 --- a/tests/Specs/NodeVersionUtilities.cs +++ b/tests/Specs/NodeVersionUtilities.cs @@ -22,8 +22,6 @@ public void GetInstalledNodeVersion_ReturnsVersion_WhenNodeIsInstalled() } [Theory] - [InlineData("8.0.0", "12")] // MES v8.x requires Node.js v12 - [InlineData("9.0.0", "12")] // MES v9.x requires Node.js v12 [InlineData("10.0.0", "18")] // MES v10.x requires Node.js v18 [InlineData("11.0.0", "20")] // MES v11.x requires Node.js v20 [InlineData("12.0.0", "20")] // MES v12.x and later require Node.js v20 diff --git a/tests/Specs/Pack.cs b/tests/Specs/Pack.cs index 94a572d9a..634d2b59b 100644 --- a/tests/Specs/Pack.cs +++ b/tests/Specs/Pack.cs @@ -293,7 +293,6 @@ public void HTML() List expectedFiles = new() { - "config.json", "manifest.xml", "node_modules/customization.package/package.json", "node_modules/customization.package/customization.common.js" @@ -357,10 +356,11 @@ public void CheckThatContentWasPacked_DoNothingBecauseContentWasAlreadyPacked() var fileSystem = MockPackage.Html; var outputDir = fileSystem.DirectoryInfo.New("output"); - var packCommand = new PackCommand(fileSystem); - packCommand.Execute(fileSystem.DirectoryInfo.New(MockUnixSupport.Path("c:\\ui")), outputDir, false, false); + var firstPackCommand = new PackCommand(fileSystem); + firstPackCommand.Execute(fileSystem.DirectoryInfo.New(MockUnixSupport.Path("c:\\ui")), outputDir, false, false); IEnumerable assembledFiles = fileSystem.DirectoryInfo.New("output").EnumerateFiles("Cmf.Custom.HTML.1.1.0.zip").ToList(); - packCommand.Execute(fileSystem.DirectoryInfo.New(MockUnixSupport.Path("c:\\ui")), outputDir, false, false); + var secondPackCommand = new PackCommand(fileSystem); + secondPackCommand.Execute(fileSystem.DirectoryInfo.New(MockUnixSupport.Path("c:\\ui")), outputDir, false, false); IEnumerable assembledFilesOnSecondRun = fileSystem.DirectoryInfo.New("output").EnumerateFiles("Cmf.Custom.HTML.1.1.0.zip").ToList(); assembledFilesOnSecondRun.Should().HaveCount(1); @@ -620,35 +620,6 @@ public void Pack_SecurityPortalV2() Assert.Contains("", manifestXMLContent); } - [Theory] - [InlineData("8.1.0", new[] { StepType.DeployRepositoryFiles, StepType.GenerateRepositoryIndex })] - [InlineData("9.1.0", new StepType[0])] - public void IoTDFStepsForVersion(string version, StepType[] forbiddenStepTypes) - { - var mockFS = new MockFileSystem(new Dictionary - {{ MockUnixSupport.Path(@"c:\.project-config.json"), new MockFileData( - $@"{{ - ""MESVersion"": ""{version}"" - }}") - }, { - MockUnixSupport.Path(@"c:\.pkg.json"), new MockFileData( - $@"{{ - ""type"": ""{PackageType.IoT}"", - ""packageId"": ""xxxxx"", - ""version"": ""9.9.9"", - ""contentToPack"": [{{}}] - }}") - }}); - - ExecutionContext.Initialize(mockFS); - var pkg = CmfPackage.Load(mockFS.FileSystem.FileInfo.New(MockUnixSupport.Path(@"c:\.pkg.json")), true, - mockFS); - var _ = new IoTPackageTypeHandler(pkg); - - pkg.Steps.Any(step => forbiddenStepTypes.ToList().Contains(step.Type ?? StepType.Generic)).Should() - .BeFalse(); - } - [Theory] [InlineData("10.2.7", StepType.IoTAutomationTaskLibrariesSync)] public void IoTATLDFNoStepsForVersion(string version, StepType mustNotHave) @@ -872,7 +843,6 @@ public void IoTATLAndBizScenariosDFStepsForVersion(string version) } [Theory] - [InlineData("Html", "1.1.0")] [InlineData("IoT", null)] public void GeneratePresentationConfigFile(string packageType, string version) { @@ -880,10 +850,11 @@ public void GeneratePresentationConfigFile(string packageType, string version) var fileSystem = new MockFileSystem(new Dictionary { + { $"output/assets", new MockDirectoryData() }, // project config file { ".project-config.json", new MockFileData( @$"{{ - ""MESVersion"": ""9.0.0"" + ""MESVersion"": ""10.0.0"" }}")}, // root cmfpackage file @@ -920,6 +891,27 @@ public void GeneratePresentationConfigFile(string packageType, string version) ] }}")}, + // angular file (html case) + { $"Cmf.Custom.{packageType}/angular.json", new MockFileData( + $@"{{ + ""$schema"": ""./node_modules/@angular/cli/lib/config/schema.json"", + ""version"": 1, + ""newProjectRoot"": ""projects"", + ""projects"": {{ + ""Cmf.Custom.HTML"": {{ + ""projectType"": ""application"", + ""schematics"": {{ + ""@schematics/angular:component"": {{ + ""style"": ""less"" + }} + }}, + ""root"": """", + ""sourceRoot"": ""src"", + }} + }} + }}") + }, + // js package { $"Cmf.Custom.{packageType}/src/packages/customization.common/package.json", new MockFileData(@"{""name"": ""customization.package""}")}, { $"Cmf.Custom.{packageType}/src/packages/customization.common/customization.common.js", new MockFileData("")}, @@ -932,11 +924,16 @@ public void GeneratePresentationConfigFile(string packageType, string version) ExecutionContext.Initialize(fileSystem); IFileInfo cmfpackageFile = fileSystem.FileInfo.New($"Cmf.Custom.{packageType}/cmfpackage.json"); - PresentationPackageTypeHandler packageTypeHandler = PackageTypeFactory.GetPackageTypeHandler(cmfpackageFile, true) as PresentationPackageTypeHandler; + Cmf.CLI.Handlers.IoTPackageTypeHandler packageTypeHandler = PackageTypeFactory.GetPackageTypeHandler(cmfpackageFile, true) as Cmf.CLI.Handlers.IoTPackageTypeHandler; packageTypeHandler.GeneratePresentationConfigFile(fileSystem.DirectoryInfo.New("output")); + string htmlPath = MockUnixSupport.Path(@"output\\assets\\config.json").Replace("\\", "\\\\"); IFileInfo configJsonFile = fileSystem.FileInfo.New(MockUnixSupport.Path(@"output\\config.json").Replace("\\", "\\\\")); + if(packageType.Equals("Html")) + { + configJsonFile = fileSystem.FileInfo.New(htmlPath); + } dynamic configJsonFileContent = JsonConvert.DeserializeObject(fileSystem.File.ReadAllText(configJsonFile.FullName)); string customizationVersion = configJsonFileContent.customizationVersion?.ToString(); @@ -1512,7 +1509,6 @@ public void DryRun_Option_IsParsed() [Fact] public void DryRun_Html_DoesNotCreatePackage() { - // Arrange: Html package (MES 9.x → HtmlGulpPackageTypeHandler) with a JS sub-package // Use a fresh MockFileSystem (not the shared static) to avoid state pollution from other tests var fileSystem = new MockFileSystem(new Dictionary { @@ -1536,6 +1532,25 @@ public void DryRun_Html_DoesNotCreatePackage() }} ] }}") }, + { MockUnixSupport.Path(@"c:\ui\angular.json"), new MockFileData( + $@"{{ + ""$schema"": ""./node_modules/@angular/cli/lib/config/schema.json"", + ""version"": 1, + ""newProjectRoot"": ""projects"", + ""projects"": {{ + ""Cmf.Custom.HTML"": {{ + ""projectType"": ""application"", + ""schematics"": {{ + ""@schematics/angular:component"": {{ + ""style"": ""less"" + }} + }}, + ""root"": """", + ""sourceRoot"": ""src"", + }} + }} + }}") + }, }); var packCommand = new PackCommand(fileSystem); var outputDir = fileSystem.DirectoryInfo.New("output"); diff --git a/tests/Specs/PackageTypeHandler.cs b/tests/Specs/PackageTypeHandler.cs index 3191cda7d..7f2dcce82 100644 --- a/tests/Specs/PackageTypeHandler.cs +++ b/tests/Specs/PackageTypeHandler.cs @@ -39,7 +39,7 @@ public void GetContentToPack_WithNonExistentIgnoreFiles() try { var cmfPackage = fileSystem.FileInfo.New(CliConstants.CmfPackageFileName); - var packageTypeHandler = PackageTypeFactory.GetPackageTypeHandler(cmfPackage) as PresentationPackageTypeHandler; + Cmf.CLI.Handlers.PackageTypeHandler packageTypeHandler = PackageTypeFactory.GetPackageTypeHandler(cmfPackage) as Cmf.CLI.Handlers.PackageTypeHandler; packageTypeHandler.GetContentToPack(fileSystem.DirectoryInfo.New("output")); } diff --git a/tests/Specs/ProgramTests.cs b/tests/Specs/ProgramTests.cs new file mode 100644 index 000000000..57f616ffe --- /dev/null +++ b/tests/Specs/ProgramTests.cs @@ -0,0 +1,32 @@ +using Cmf.CLI; +using Cmf.CLI.Utilities; +using Xunit; + + +namespace tests.Specs +{ + public class ProgramTests + { + [Theory] + [InlineData(10)] + [InlineData(11)] + public void Should_NotThrow_For_Valid_Versions(int version) + { + Program.ValidateMesVersion(version); + } + + [Theory] + [InlineData(0)] + [InlineData(9)] + public void Should_Throw_For_Invalid_Versions(int version) + { + Assert.Throws(() => Program.ValidateMesVersion(version)); + } + + [Fact] + public void Should_NotThrow_When_Version_Is_Null() + { + Program.ValidateMesVersion(null); + } + } +} diff --git a/tests/Specs/ProjectConfig.cs b/tests/Specs/ProjectConfig.cs deleted file mode 100644 index 0a121f316..000000000 --- a/tests/Specs/ProjectConfig.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System.Collections.Generic; -using System.IO.Abstractions.TestingHelpers; -using Cmf.CLI.Core.Objects; -using FluentAssertions; -using Xunit; - -namespace tests.Specs; - -public class ProjectConfig -{ - const string projCfgTpl = @"{ - ""ProjectName"": ""ExampleProject"", - ""NPMRegistry"": ""http://npmrepo/"", - ""NuGetRegistry"": ""https://nuget-repo/"", - ""AzureDevopsCollectionURL"": ""https://azuredevops.server/ExampleCollection"", - ""AgentPool"": ""ExamplePool"", - - ""RepositoryURL"": ""https://azuredevops.server/ExampleCollection/ExampleProject/_git/ExampleRepo"", - ""EnvironmentName"": ""ExampleIntegration"", - ""DefaultDomain"": ""AD"", - ""RESTPort"": ""443"", - ""Tenant"": ""ExampleClient"", - ""MESVersion"": ""9.0.5"", - ""DevTasksVersion"": ""{DEV_TASKS_VERSION}"", - ""HTMLStarterVersion"": ""8.0.0"", - ""YoGeneratorVersion"": ""8.1.1"", - ""NugetVersion"": ""9.0.5"", - ""TestScenariosNugetVersion"": ""9.0.5"", - ""IsSslEnabled"": ""True"", - ""vmHostname"": ""exampleintegration.int.local"", - ""DBReplica1"": ""SERV\\INSTANCE"", - ""DBReplica2"": ""SERV\\INSTANCE"", - ""DBServerOnline"": ""SERV\\INSTANCE"", - ""DBServerODS"": ""SERV\\INSTANCE"", - ""DBServerDWH"": ""SERV\\INSTANCE"", - ""ReportServerURI"": ""http://serv/Reports"", - ""AlwaysOn"": ""False"", - ""InstallationPath"": """", - ""DBBackupPath"": """", - ""TemporaryPath"": """", - ""HTMLPort"": ""443"", - ""GatewayPort"": ""443"", - ""ReleaseEnvironmentConfig"": ""ExampleIntegration_Development_parameters.json"" - }"; - - [Theory] - [InlineData("9.0.0")] - [InlineData("9.0.0-5")] - [InlineData("9.0.0-pre.5")] - public void ClassicProjectConfig(string devTasksVersion) - { - var projConfig = projCfgTpl.Replace("{DEV_TASKS_VERSION}", devTasksVersion); - - var fileSystem = new MockFileSystem(new Dictionary - { - { "/.project-config.json", new MockFileData(projConfig)} - }); - - var pc = (new ProjectConfigService()).Load(fileSystem); - - pc.Should().NotBeNull("project config was not loaded"); - pc.HTMLPort.Should().Be(443, "could not load HTML port"); - pc.AlwaysOn.Should().BeFalse("AlwaysOn should be false"); - pc.IsSslEnabled.Should().BeTrue("IsSslEnabled should be true"); - } -} \ No newline at end of file From 3ff3c191d127d110c6cc289f0b6cf953d1528896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Thu, 26 Mar 2026 22:38:24 +0000 Subject: [PATCH 09/20] test: add Invoke method for single string argument in CommandWrapper --- tests/Specs/New.cs | 2 ++ tests/TestConsole.cs | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/tests/Specs/New.cs b/tests/Specs/New.cs index c50282f5b..320d598c6 100644 --- a/tests/Specs/New.cs +++ b/tests/Specs/New.cs @@ -26,6 +26,8 @@ using Cmf.CLI.Core.Services; using Spectre.Console; using Cmf.CLI.Core; +using Cmf.CLI.Commands.New.IoT; +using TestingConsole = Spectre.Console.Testing; namespace tests.Specs { diff --git a/tests/TestConsole.cs b/tests/TestConsole.cs index 199962af9..ff36e7f2f 100644 --- a/tests/TestConsole.cs +++ b/tests/TestConsole.cs @@ -34,6 +34,11 @@ public CommandWrapper(Command command) _command = command; } + public int Invoke(string args) + { + return _command.Parse(args).Invoke(); + } + public int Invoke(string[] args, TestConsole console) { var parseResult = _command.Parse(args); From 69c5c8c3efdeed0b79c4af779b34b2957a3f6ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Thu, 26 Mar 2026 22:39:20 +0000 Subject: [PATCH 10/20] chore(devcontainer): minor improvements --- .devcontainer/devcontainer.json | 71 +++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 435b46e96..7f78062b6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,36 +1,45 @@ { - "name": "CLI devcontainer", - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", - "features": { - "ghcr.io/devcontainers/features/dotnet": { - "version": "10.0", - "additionalVersions": ["6.0","8.0"] - }, - "ghcr.io/devcontainers/features/node": { - "version": "18", - "additionalVersions": ["20"] - }, - "ghcr.io/devcontainers/features/github-cli": {}, - "ghcr.io/nils-geistmann/devcontainers-features/zsh": { - "plugins": "git dotnet node npm" - } + "name": "CLI devcontainer", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", + "features": { + "ghcr.io/devcontainers/features/dotnet": { + "version": "10.0", + "additionalVersions": ["6.0", "8.0"] }, - "customizations": { - "vscode": { - "extensions": [ - "ms-dotnettools.csdevkit", - "mhutchie.git-graph", - "actboy168.tasks", - "esbenp.prettier-vscode", - "EditorConfig.EditorConfig", - "redhat.vscode-yaml", - "davidanson.vscode-markdownlint", - "github.vscode-github-actions" - ] - } + "ghcr.io/devcontainers/features/node": { + "version": "18", + "additionalVersions": ["20"] }, - "containerEnv": { - "NPM_CONFIG_MIN_RELEASE_AGE": "3" + "ghcr.io/devcontainers/features/github-cli": {}, + "ghcr.io/nils-geistmann/devcontainers-features/zsh": { + "plugins": "git dotnet node npm" }, - "postCreateCommand": "npm ci && echo \"alias 'cmf=/workspaces/cli/cmf-cli/bin/Debug/cmf'\" >> /home/$USER/.bashrc" + "ghcr.io/stuartleeks/dev-container-features/shell-history": {} + }, + "customizations": { + "vscode": { + "extensions": [ + "ms-dotnettools.csdevkit", + "mhutchie.git-graph", + "actboy168.tasks", + "esbenp.prettier-vscode", + "EditorConfig.EditorConfig", + "redhat.vscode-yaml", + "davidanson.vscode-markdownlint", + "github.vscode-github-actions" + ] + }, + "settings": { + "dotnet.defaultSolution": "src/cmf-cli.slnx", + "editor.formatOnSave": true, + "editor.rulers": [120], + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true + } + }, + "containerEnv": { + "DOTNET_CLI_TELEMETRY_OPTOUT": "1", + "NPM_CONFIG_MIN_RELEASE_AGE": "3" + }, + "postCreateCommand": "npm ci && echo \"alias 'cmf=/workspaces/cli/cmf-cli/bin/Debug/cmf'\" >> /home/$USER/.bashrc" } From 1994821b399ce82411812ac4377df12d42ef68ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Thu, 26 Mar 2026 22:39:43 +0000 Subject: [PATCH 11/20] chore(agents): add cmf-cli-dotnet agent and dotnet best practices skill --- .github/agents/cmf-cli-dotnet.agent.md | 79 +++++++++++++++++ .../skills/dotnet-best-practices/SKILL.md | 85 +++++++++++++++++++ skills-lock.json | 10 +++ 3 files changed, 174 insertions(+) create mode 100644 .github/agents/cmf-cli-dotnet.agent.md create mode 100644 .github/agents/skills/dotnet-best-practices/SKILL.md create mode 100644 skills-lock.json diff --git a/.github/agents/cmf-cli-dotnet.agent.md b/.github/agents/cmf-cli-dotnet.agent.md new file mode 100644 index 000000000..d3b8acd73 --- /dev/null +++ b/.github/agents/cmf-cli-dotnet.agent.md @@ -0,0 +1,79 @@ +--- +name: cmf-cli-dotnet +description: .NET/C# developer for the cmf-cli repository. Use this agent when implementing CLI commands, fixing C# bugs, writing tests, or refactoring code in core/, cmf-cli/, features/, or tests/. +tools: + - codebase + - editFiles + - fetch + - findTestFiles + - problems + - runCommands + - runTasks + - runTests + - search + - usages +--- + +You are a senior .NET/C# developer working exclusively on the **Critical Manufacturing CLI** (`cmf-cli` repository). + +## Repository Layout + +- `core/` – shared CLI infrastructure (base commands, utilities, services, constants) +- `cmf-cli/` – main executable (commands, handlers, builders, factories) +- `features/` – CLI feature implementations (src + test sub-folders) +- `tests/` – automated tests (MSTest + FluentAssertions + Moq) +- `docs/` – documentation (update when behaviour changes) + +Always explore the relevant folder before modifying code. Prefer existing abstractions in `core/` over creating new ones. + +## Skills + +Apply the **dotnet-best-practices** skill for all C# code you write or review. + +## C# Conventions + +- Follow existing namespace structure: `Cmf.CLI.{Feature}` or `Cmf.Common.CLI.{Area}` +- Use primary constructor syntax for dependency injection +- Use async/await for I/O and long-running tasks; return `Task` or `Task` +- Use `ResourceManager` for user-facing strings (see `CliMessages.resx` / `CoreMessages.resx`) +- Keep methods small and focused; avoid large classes +- Prefer `ArgumentNullException.ThrowIfNull` for guard clauses + +## CLI Command Design + +Every command must have: +- A clear `[CmfCommand]` attribute with description, examples, and parent binding +- Input argument/option validation with helpful error messages +- A corresponding test in `tests/Specs/` + +Follow the pattern in existing commands under `cmf-cli/Commands/`. + +## Testing Rules + +- Framework: **MSTest** with **FluentAssertions** assertions +- Pattern: **Arrange / Act / Assert** +- Mock dependencies with **Moq** +- Cover both success and failure scenarios, including null-argument validation +- Never break existing tests; update them when behaviour intentionally changes + +## Safety Constraints + +- Do NOT change licensing or publishing workflows +- Do NOT introduce breaking changes to existing CLI commands +- Do NOT remove commands without providing a migration path +- Do NOT add external NuGet dependencies without justification + +## Build & Validate + +Use the workspace **build** task (`dotnet build cmf-cli/cmf.csproj`) to verify changes compile. +Use the **runTests** tool or `dotnet test tests/tests.csproj` to validate test results. +Always check for compiler errors and warnings (`problems` tool) after editing. + +## Commit Messages + +Follow [Conventional Commits](https://www.conventionalcommits.org/): +- `feat(scope): description` for new features +- `fix(scope): description` for bug fixes +- `test(scope): description` for test additions +- `docs(scope): description` for documentation updates +- `refactor(scope): description` for refactors diff --git a/.github/agents/skills/dotnet-best-practices/SKILL.md b/.github/agents/skills/dotnet-best-practices/SKILL.md new file mode 100644 index 000000000..183d3beb1 --- /dev/null +++ b/.github/agents/skills/dotnet-best-practices/SKILL.md @@ -0,0 +1,85 @@ +--- +name: dotnet-best-practices +description: 'Ensure .NET/C# code meets best practices for the solution/project.' +--- + +# .NET/C# Best Practices + +Your task is to ensure .NET/C# code in ${selection} meets the best practices specific to this solution/project. This includes: + +## Documentation & Structure + +- Create comprehensive XML documentation comments for all public classes, interfaces, methods, and properties +- Include parameter descriptions and return value descriptions in XML comments +- Follow the established namespace structure: {Core|Console|App|Service}.{Feature} + +## Design Patterns & Architecture + +- Use primary constructor syntax for dependency injection (e.g., `public class MyClass(IDependency dependency)`) +- Implement the Command Handler pattern with generic base classes (e.g., `CommandHandler`) +- Use interface segregation with clear naming conventions (prefix interfaces with 'I') +- Follow the Factory pattern for complex object creation. + +## Dependency Injection & Services + +- Use constructor dependency injection with null checks via ArgumentNullException +- Register services with appropriate lifetimes (Singleton, Scoped, Transient) +- Use Microsoft.Extensions.DependencyInjection patterns +- Implement service interfaces for testability + +## Resource Management & Localization + +- Use ResourceManager for localized messages and error strings +- Separate LogMessages and ErrorMessages resource files +- Access resources via `_resourceManager.GetString("MessageKey")` + +## Async/Await Patterns + +- Use async/await for all I/O operations and long-running tasks +- Return Task or Task from async methods +- Use ConfigureAwait(false) where appropriate +- Handle async exceptions properly + +## Testing Standards + +- Use MSTest framework with FluentAssertions for assertions +- Follow AAA pattern (Arrange, Act, Assert) +- Use Moq for mocking dependencies +- Test both success and failure scenarios +- Include null parameter validation tests + +## Configuration & Settings + +- Use strongly-typed configuration classes with data annotations +- Implement validation attributes (Required, NotEmptyOrWhitespace) +- Use IConfiguration binding for settings +- Support appsettings.json configuration files + +## Semantic Kernel & AI Integration + +- Use Microsoft.SemanticKernel for AI operations +- Implement proper kernel configuration and service registration +- Handle AI model settings (ChatCompletion, Embedding, etc.) +- Use structured output patterns for reliable AI responses + +## Error Handling & Logging + +- Use structured logging with Microsoft.Extensions.Logging +- Include scoped logging with meaningful context +- Throw specific exceptions with descriptive messages +- Use try-catch blocks for expected failure scenarios + +## Performance & Security + +- Use C# 12+ features and .NET 8 optimizations where applicable +- Implement proper input validation and sanitization +- Use parameterized queries for database operations +- Follow secure coding practices for AI/ML operations + +## Code Quality + +- Ensure SOLID principles compliance +- Avoid code duplication through base classes and utilities +- Use meaningful names that reflect domain concepts +- Keep methods focused and cohesive +- Implement proper disposal patterns for resources diff --git a/skills-lock.json b/skills-lock.json new file mode 100644 index 000000000..8216247bd --- /dev/null +++ b/skills-lock.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "skills": { + "dotnet-best-practices": { + "source": "github/awesome-copilot", + "sourceType": "github", + "computedHash": "9ef94db7f06c167d544369817e5a4415eeb7886dcff0d47026837a1aada260e3" + } + } +} From acce2cec8dd55b45a08c50174406f0c5c436f9b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Mon, 30 Mar 2026 15:43:07 +0000 Subject: [PATCH 12/20] chore(help): remove v10 metadata support and related files --- cmf-cli/Commands/new/HelpCommand.cs | 1 - .../helpSrcPkg/.template.config/template.json | 26 +--- .../src/%packageName%.metadata.ts | 116 ------------------ 3 files changed, 1 insertion(+), 142 deletions(-) delete mode 100644 cmf-cli/resources/template_feed/helpSrcPkg/Help.Src.Package/src/%packageName%.metadata.ts diff --git a/cmf-cli/Commands/new/HelpCommand.cs b/cmf-cli/Commands/new/HelpCommand.cs index 42ba4837f..df4f4cf86 100644 --- a/cmf-cli/Commands/new/HelpCommand.cs +++ b/cmf-cli/Commands/new/HelpCommand.cs @@ -155,7 +155,6 @@ public void Execute(IDirectoryInfo workingDir, string version) "--name", assetsPkgName, "--dfPackageName", projectName, "--Tenant", tenant, - "--v10metadata", true.ToString(), "--dfPackageNamePascalCase", string.Join("", projectName.Split("-").Select(seg => Regex.Replace(seg, @"\b(\w)", m => m.Value.ToUpper()))) }); diff --git a/cmf-cli/resources/template_feed/helpSrcPkg/.template.config/template.json b/cmf-cli/resources/template_feed/helpSrcPkg/.template.config/template.json index 3b4f1d20e..81e2813aa 100644 --- a/cmf-cli/resources/template_feed/helpSrcPkg/.template.config/template.json +++ b/cmf-cli/resources/template_feed/helpSrcPkg/.template.config/template.json @@ -70,30 +70,6 @@ "type": "parameter", "datatype": "string", "replaces": "<%= $CLI_PARAM_DFPackageNamePascalCase %>" - }, - "v10metadata": { - "type": "parameter", - "datatype": "bool", - "defaultValue": false, - "description": "Generates MES v10 metadata if true, v9 if false" - } - }, - "sources": [ - { - "modifiers": [ - { - "condition": "!v10metadata", - "exclude": [ - "Help.Src.Package/metadata/src/lib/**" - ] - }, - { - "condition": "v10metadata", - "exclude": [ - "Help.Src.Package/src/*.ts" - ] - } - ] } - ] + } } \ No newline at end of file diff --git a/cmf-cli/resources/template_feed/helpSrcPkg/Help.Src.Package/src/%packageName%.metadata.ts b/cmf-cli/resources/template_feed/helpSrcPkg/Help.Src.Package/src/%packageName%.metadata.ts deleted file mode 100644 index 09a4af532..000000000 --- a/cmf-cli/resources/template_feed/helpSrcPkg/Help.Src.Package/src/%packageName%.metadata.ts +++ /dev/null @@ -1,116 +0,0 @@ -// #region Import statements - -/** Core */ -import { PackageMetadata, Framework } from 'cmf.core/src/core' -import { MenuItem } from 'cmf.core/src/domain/metadata/menu' - -/** i18n */ -import i18n from './i18n/main.default' - -declare var SystemJS: { import: any } - -// #endregion - -function applyConfig (packageName: string) { - const config: PackageMetadata = { - version: '', - name: `${packageName}`, - components: [ - // Below this line all components are attached automatically during build - // inject:components - // endinject:components - ], - directives: [ - // Below this line all directives are attached automatically during build - // inject:directives - // endinject:directives - ], - pipes: [ - // Below this line all pipes are attached automatically during build - // inject:pipes - // endinject:pipes - ], - i18n: [ - // Below this line all i18n are attached automatically during build - // inject:i18n - // endinject:i18n - ], - widgets: [ - // Below this line all widgets are attached automatically during build - // inject:widgets - // endinject:widgets - ], - dataSources: [ - // Below this line all dataSources are attached automatically during build - // inject:dataSources - // endinject:dataSources - ], - converters: [ - // Below this line all converters are attached automatically during build - // inject:converters - // endinject:converters - ], - metadataLoadedHandler: () => { - // Place here the specific module loader configs to load the dependencies of this package - }, - flex: { - actionButtonGroups: [], - actionButtons: [], - actions: [], - menuGroups: [ - { - position: 2000, - id: 'Shell.<%= $CLI_PARAM_DFPackageName %>', - iconClass: 'icon-docs-st-lg-userguide', - route: '<%= $CLI_PARAM_DFPackageName %>', - itemsGenerator: class MenuGen { - public items (framework: Framework): Promise { - return SystemJS.import('./node_modules/<%= $CLI_PARAM_CustomPackageName %>/assets/__generatedMenuItems.json').then((jsonContent) => { - return jsonContent - }) - } - }.prototype, - title: '<%= $CLI_PARAM_Tenant %>' - }], - menuItems: [ - { - id: '<%= $CLI_PARAM_DFPackageName %>.index', - menuGroupId: 'Shell.<%= $CLI_PARAM_DFPackageName %>', - title: 'Index', - actionId: '' - }, - { - id: '<%= $CLI_PARAM_DFPackageName %>.techspec', - menuGroupId: 'Shell.<%= $CLI_PARAM_DFPackageName %>', - title: 'Technical Specification', - actionId: '' - }, - { - id: '<%= $CLI_PARAM_DFPackageName %>.userguide', - menuGroupId: 'Shell.<%= $CLI_PARAM_DFPackageName %>', - title: 'User Guide', - actionId: '' - }, - { - id: '<%= $CLI_PARAM_DFPackageName %>.releasenotes', - menuGroupId: 'Shell.<%= $CLI_PARAM_DFPackageName %>', - title: 'Release Notes', - actionId: '' - }, - { - id: '<%= $CLI_PARAM_DFPackageName %>.faq', - menuGroupId: 'Shell.<%= $CLI_PARAM_DFPackageName %>', - title: 'FAQ', - actionId: '' - } - ], - entityTypes: [], - routes: [{ - routeConfig: [] - }] - } - } - return config -} - -export default applyConfig From 1c8a9dc411992a5227f109a7c5fe2a02db4730a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Mon, 30 Mar 2026 15:43:52 +0000 Subject: [PATCH 13/20] test: update Bump tests to use new metadata structure and versioning --- tests/Specs/Bump.cs | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/tests/Specs/Bump.cs b/tests/Specs/Bump.cs index e958259f8..2b81531a7 100644 --- a/tests/Specs/Bump.cs +++ b/tests/Specs/Bump.cs @@ -26,8 +26,7 @@ public void Bump_PreRelease(string preRelease) // files string cmfPackageJson = $"help/{CliConstants.CmfPackageFileName}"; string npmPackageJson = "/help/package.json"; - string metadataTS = - "/help/src/packages/cmf.docs.area.cmf.custom.help/src/cmf.docs.area.cmf.custom.help.metadata.ts"; + string angularJson = "/help/angular.json"; string bumpVersion = "1.0.1"; string expectedVersion = $"{bumpVersion}-{preRelease}"; @@ -37,7 +36,7 @@ public void Bump_PreRelease(string preRelease) { MockUnixSupport.Path(@"c:\.project-config.json"), new MockFileData( @"{ - ""MESVersion"": ""9.0.0"" + ""MESVersion"": ""11.0.0"" }") }, { @@ -63,7 +62,7 @@ public void Bump_PreRelease(string preRelease) { npmPackageJson, new MockFileData( @$"{{ - ""name"": ""cmf.docs.area"", + ""name"": ""documentation-portal"", ""version"": ""1.0.0"", ""description"": ""Help customization package"", ""private"": true, @@ -78,18 +77,20 @@ public void Bump_PreRelease(string preRelease) }}") }, { - metadataTS, new MockFileData( - @$" - (...) - function applyConfig (packageName: string) {{ - const config: PackageMetadata = {{ - version: ""1.0.0"", - (...) - ") + angularJson, new MockFileData( + @$"{{ + ""version"": 1, + ""projects"": {{ + ""cmf.docs.area.cmf.custom.help"": {{ + ""projectType"": ""library"", + ""schematics"": ""./src/schematics/collection.json"" + }} + }} + }}") } }); - ExecutionContext.ServiceProvider = (new ServiceCollection()) + ExecutionContext.ServiceProvider = new ServiceCollection() .AddSingleton(new ProjectConfigService()) .BuildServiceProvider(); ExecutionContext.Initialize(fileSystem); @@ -98,14 +99,12 @@ function applyConfig (packageName: string) {{ IPackageTypeHandler packageTypeHandler = PackageTypeFactory.GetPackageTypeHandler(cmfpackageFile); packageTypeHandler.Bump(bumpVersion, preRelease); - string cmfPackageVersion = (packageTypeHandler as HelpGulpPackageTypeHandler).CmfPackage.Version; + string cmfPackageVersion = (packageTypeHandler as HelpNgCliPackageTypeHandler).CmfPackage.Version; dynamic packageFile = JsonConvert.DeserializeObject(fileSystem.File.ReadAllText(npmPackageJson)); string packageFileVersion = packageFile.version; - string metadataFile = fileSystem.File.ReadAllText(metadataTS); cmfPackageVersion.Should().Be(expectedVersion); packageFileVersion.Should().Be(expectedVersion); - metadataFile.Should().Contain($"version: \"{expectedVersion}\""); } [Theory] From 2fde74eea04aaa5ab229b82a1d39fdec5ac457a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Mon, 30 Mar 2026 15:44:35 +0000 Subject: [PATCH 14/20] chore(devcontainer): add SYS_PTRACE capability to CLI devcontainer --- .devcontainer/devcontainer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7f78062b6..0e2e81f68 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,7 @@ { "name": "CLI devcontainer", "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", + "capAdd": ["SYS_PTRACE"], "features": { "ghcr.io/devcontainers/features/dotnet": { "version": "10.0", From 1b91478398d2e56eafc92f7bebfb1716f95fc18c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Tue, 14 Apr 2026 09:19:18 +0000 Subject: [PATCH 15/20] chore: migration left-overs --- .devcontainer/devcontainer.json | 2 +- cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs | 8 -------- .../template_feed/init/.template.config/template.json | 6 ------ tests/Fixtures/new/global.json | 2 +- 4 files changed, 2 insertions(+), 16 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 0e2e81f68..aa6c164c8 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,7 +5,7 @@ "features": { "ghcr.io/devcontainers/features/dotnet": { "version": "10.0", - "additionalVersions": ["6.0", "8.0"] + "additionalVersions": ["8.0"] }, "ghcr.io/devcontainers/features/node": { "version": "18", diff --git a/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs b/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs index 05a6a752e..640ece42e 100644 --- a/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs +++ b/cmf-cli/Handlers/PackageType/IoTPackageTypeHandler.cs @@ -277,15 +277,7 @@ public override void Pack(IDirectoryInfo packageOutputDir, IDirectoryInfo output IDirectoryInfo outputDirPath = this.fileSystem.DirectoryInfo.New($"{packageOutputDir}/runtimePackages"); outputDirPath.Create(); - NPMCommand npmCommand = new NPMCommand() - { - DisplayName = "npm shrinkwrap", - Args = new string[] { "shrinkwrap" }, - WorkingDirectory = packDirectory - }; - string debugFlag = Log.Level <= LogLevel.Debug ? "-d" : ""; - npmCommand.Exec(); if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major < 11) { diff --git a/cmf-cli/resources/template_feed/init/.template.config/template.json b/cmf-cli/resources/template_feed/init/.template.config/template.json index 5455e9562..af8ebda82 100644 --- a/cmf-cli/resources/template_feed/init/.template.config/template.json +++ b/cmf-cli/resources/template_feed/init/.template.config/template.json @@ -638,12 +638,6 @@ "assets/**", "assets/" ] - }, - { - "condition": "MESVersion-Major < 10", - "exclude": [ - ".devcontainer/*" - ] } ] } diff --git a/tests/Fixtures/new/global.json b/tests/Fixtures/new/global.json index ffffdc0ce..408e96b08 100644 --- a/tests/Fixtures/new/global.json +++ b/tests/Fixtures/new/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "6.0.201", + "version": "8.0.201", "rollForward": "latestFeature" } } \ No newline at end of file From 96575a126a89c0e5a8ff3fe90e2c5523294e51e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Tue, 14 Apr 2026 09:25:24 +0000 Subject: [PATCH 16/20] test: add manual mock for http-proxy-agent to support Jest testing --- npm/__mocks__/http-proxy-agent.js | 8 ++++++++ npm/postinstall.test.js | 1 + 2 files changed, 9 insertions(+) create mode 100644 npm/__mocks__/http-proxy-agent.js diff --git a/npm/__mocks__/http-proxy-agent.js b/npm/__mocks__/http-proxy-agent.js new file mode 100644 index 000000000..b01596094 --- /dev/null +++ b/npm/__mocks__/http-proxy-agent.js @@ -0,0 +1,8 @@ +// Manual CJS mock for http-proxy-agent v9+ +// Needed because http-proxy-agent v9+ uses ES modules which Jest (CommonJS mode) cannot auto-mock. +// jest.mock('http-proxy-agent') in test files will use this file instead of the real module. +const HttpProxyAgent = jest.fn().mockImplementation(function (proxy) { + return { proxy }; +}); + +module.exports = HttpProxyAgent; diff --git a/npm/postinstall.test.js b/npm/postinstall.test.js index 6ebd36d06..359c9cf28 100644 --- a/npm/postinstall.test.js +++ b/npm/postinstall.test.js @@ -15,6 +15,7 @@ jest.mock('tmp'); jest.mock('mkdirp'); jest.mock('rimraf'); jest.mock('proxy-from-env'); +jest.mock('http-proxy-agent'); jest.mock('fs'); const mockMkdirp = require('mkdirp'); From 0008eb447bcf0fa4c9ffd0f5759d1adce20fea8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Tue, 14 Apr 2026 09:57:48 +0000 Subject: [PATCH 17/20] chore: solve rebase conflicts --- .github/workflows/ci-tests.yml | 4 +++- .github/workflows/pr-tests.yml | 2 +- cmf-cli/Commands/pack/PackCommand.cs | 2 +- tests/Fixtures/pack/app/.project-config.json | 2 -- tests/Specs/MESVersionCommandValidation.cs | 2 -- 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index eb37f1afa..1603ae846 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -27,7 +27,9 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: 8.0.x + dotnet-version: | + 8.0.x + 10.0.x - name: Setup Node ${{ matrix.node-version }} uses: actions/setup-node@v4 diff --git a/.github/workflows/pr-tests.yml b/.github/workflows/pr-tests.yml index 245b9a889..e4fb8de10 100644 --- a/.github/workflows/pr-tests.yml +++ b/.github/workflows/pr-tests.yml @@ -45,7 +45,7 @@ jobs: - name: Setup node versions uses: actions/setup-node@v4 with: - node-version: '12' + node-version: '18' - name: Check NuGet minimum package age run: npm run check:nuget:min-age - name: Install dependencies diff --git a/cmf-cli/Commands/pack/PackCommand.cs b/cmf-cli/Commands/pack/PackCommand.cs index 687e55664..ed7b2b692 100644 --- a/cmf-cli/Commands/pack/PackCommand.cs +++ b/cmf-cli/Commands/pack/PackCommand.cs @@ -83,7 +83,7 @@ public override void Configure(Command cmd) var force = parseResult.GetValue(forceOption); var dryRun = parseResult.GetValue(dryRunOption); - Execute(workDir, outputDir, force); + Execute(workDir, outputDir, force, dryRun); return Task.FromResult(0); }); } diff --git a/tests/Fixtures/pack/app/.project-config.json b/tests/Fixtures/pack/app/.project-config.json index 824ccff07..4af58cbda 100644 --- a/tests/Fixtures/pack/app/.project-config.json +++ b/tests/Fixtures/pack/app/.project-config.json @@ -1,7 +1,5 @@ { "ProjectName": "CF58AABF", - "RepositoryType": "Customization", - "BaseLayer": "MES", "NPMRegistry": "http://npm_registry/", "RepositoryType": "App", "BaseLayer": "Core", diff --git a/tests/Specs/MESVersionCommandValidation.cs b/tests/Specs/MESVersionCommandValidation.cs index b8dd43d4e..0b317a8d2 100644 --- a/tests/Specs/MESVersionCommandValidation.cs +++ b/tests/Specs/MESVersionCommandValidation.cs @@ -61,12 +61,10 @@ public void CommandWithMinimumVersion_CurrentVersionMeets_ShouldExecute() catch (MESVersionValidationException ex) { commandResult.AddError(ex.Message); - commandResult.AddError(ex.Message); } catch (Exception ex) { commandResult.AddError($"Version validation error: {ex.Message}"); - commandResult.AddError($"Version validation error: {ex.Message}"); } }); } From 04516f6f1c8930d380fd8c9679ac7cfae839567c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Tue, 14 Apr 2026 09:25:12 +0000 Subject: [PATCH 18/20] chore: update dependencies for improved performance and security --- .devcontainer/devcontainer.json | 5 +- .gitignore | 4 +- .vscode/tasks.json | 24 + npm/__mocks__/https-proxy-agent.js | 5 + npm/package-lock.json | 5663 ++++++++++++++++++---------- npm/package.json | 12 +- npm/postinstall.js | 16 +- npm/postinstall.test.js | 10 +- package-lock.json | 5282 +++++++++++++++----------- package.json | 11 +- 10 files changed, 6829 insertions(+), 4203 deletions(-) create mode 100644 npm/__mocks__/https-proxy-agent.js diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index aa6c164c8..f81737178 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -13,7 +13,7 @@ }, "ghcr.io/devcontainers/features/github-cli": {}, "ghcr.io/nils-geistmann/devcontainers-features/zsh": { - "plugins": "git dotnet node npm" + "plugins": "git dotnet node npm dotenv" }, "ghcr.io/stuartleeks/dev-container-features/shell-history": {} }, @@ -40,7 +40,8 @@ }, "containerEnv": { "DOTNET_CLI_TELEMETRY_OPTOUT": "1", - "NPM_CONFIG_MIN_RELEASE_AGE": "3" + "NPM_CONFIG_MIN_RELEASE_AGE": "3", + "ZSH_DOTENV_PROMPT": "false" }, "postCreateCommand": "npm ci && echo \"alias 'cmf=/workspaces/cli/cmf-cli/bin/Debug/cmf'\" >> /home/$USER/.bashrc" } diff --git a/.gitignore b/.gitignore index 95f4bb0b9..bf60b00a2 100644 --- a/.gitignore +++ b/.gitignore @@ -367,4 +367,6 @@ npm/*.tgz #vendors !**/vendors/** -.DS_Store \ No newline at end of file +.DS_Store + +.env \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 35017f5c2..6c49d638b 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -37,6 +37,30 @@ "/consoleloggerparameters:NoSummary" ], "problemMatcher": "$msCompile" + }, + { + "label": "use-node", + "type": "shell", + "hide": true, + "command": ". /usr/local/share/nvm/nvm.sh && nvm use ${input:NodeVersion} && if [ \"${input:NodeVersion}\" = \"20\" ]; then echo \"Node18\" > /tmp/TEST_CATEGORY; else echo \"Node20\" > /tmp/TEST_CATEGORY; fi" + }, + { + "label": "integration-tests", + "type": "shell", + "command": "dotnet test --configuration Release -verbosity diagnostic", + "dependsOn": "use-node" + } + ], + "inputs": [ + { + "id": "NodeVersion", + "type": "pickString", + "description": "Select Node.js version", + "options": [ + "18", + "20" + ], + "default": "18" } ] } \ No newline at end of file diff --git a/npm/__mocks__/https-proxy-agent.js b/npm/__mocks__/https-proxy-agent.js new file mode 100644 index 000000000..1dfa23f86 --- /dev/null +++ b/npm/__mocks__/https-proxy-agent.js @@ -0,0 +1,5 @@ +const HttpsProxyAgent = jest.fn().mockImplementation(function (proxy) { + return { proxy }; +}); + +module.exports = HttpsProxyAgent; diff --git a/npm/package-lock.json b/npm/package-lock.json index c48863bdf..43f391221 100644 --- a/npm/package-lock.json +++ b/npm/package-lock.json @@ -1,32 +1,66 @@ { "name": "@criticalmanufacturing/cli", "version": "5.10.7", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { + "packages": { + "": { + "name": "@criticalmanufacturing/cli", + "version": "5.10.7", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "adm-zip": "^0.5.12", + "axios": "^1.7.9", + "debug": "^4.3.4", + "global-dirs": "3.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "mkdirp": "^2.1.6", + "proxy-agent": "^6.5.0", + "proxy-from-env": "^1.1.0", + "rimraf": "^3.0.2", + "tmp": "^0.2.5" + }, + "bin": { + "cmf": "run.js" + }, + "devDependencies": { + "jest": "^30.3.0" + } + }, + "node_modules/@babel/code-frame": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { + "node_modules/@babel/compat-data": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/core": { + "node_modules/@babel/core": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", @@ -43,272 +77,421 @@ "json5": "^2.2.3", "semver": "^6.3.1" }, - "dependencies": { - "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 - } + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/generator": { + "node_modules/@babel/generator": { "version": "7.29.1", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-globals": { + "node_modules/@babel/helper-globals": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-module-imports": { + "node_modules/@babel/helper-module-imports": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { + "node_modules/@babel/helper-module-transforms": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-plugin-utils": { + "node_modules/@babel/helper-plugin-utils": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-string-parser": { + "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-option": { + "node_modules/@babel/helper-validator-option": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.29.2", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { + "node_modules/@babel/parser": { "version": "7.29.2", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-syntax-async-generators": { + "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-bigint": { + "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-properties": { + "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-static-block": { + "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-attributes": { + "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-meta": { + "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-json-strings": { + "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-logical-assignment-operators": { + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-numeric-separator": { + "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { + "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-catch-binding": { + "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-chaining": { + "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-private-property-in-object": { + "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-top-level-await": { + "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-typescript": { + "node_modules/@babel/plugin-syntax-typescript": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/template": { + "node_modules/@babel/template": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/traverse": { + "node_modules/@babel/traverse": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", @@ -316,305 +499,589 @@ "@babel/template": "^7.28.6", "@babel/types": "^7.29.0", "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { + "node_modules/@babel/types": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@bcoe/v8-coverage": { + "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } }, - "@istanbuljs/load-nyc-config": { + "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "@istanbuljs/schema": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "node_modules/@jest/console": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.3.0.tgz", + "integrity": "sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "chalk": "^4.1.2", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "node_modules/@jest/core": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.3.0.tgz", + "integrity": "sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==", "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/console": "30.3.0", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-changed-files": "30.3.0", + "jest-config": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-resolve-dependencies": "30.3.0", + "jest-runner": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "jest-watcher": "30.3.0", + "pretty-format": "30.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "node_modules/@jest/diff-sequences": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", "dev": true, - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.3.0.tgz", + "integrity": "sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-mock": "^27.5.1" + "jest-mock": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "30.3.0", + "jest-snapshot": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz", + "integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "node_modules/@jest/fake-timers": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.3.0.tgz", + "integrity": "sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@sinonjs/fake-timers": "^15.0.0", "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.3.0.tgz", + "integrity": "sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/types": "30.3.0", + "jest-mock": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "node_modules/@jest/reporters": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.3.0.tgz", + "integrity": "sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", + "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "string-length": "^4.0.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/snapshot-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.3.0.tgz", + "integrity": "sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "natural-compare": "^1.4.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "callsites": "^3.1.0", + "graceful-fs": "^4.2.11" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.3.0.tgz", + "integrity": "sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.3.0", + "@jest/types": "30.3.0", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.3.0.tgz", + "integrity": "sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "30.3.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", + "node_modules/@jest/transform": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.3.0.tgz", + "integrity": "sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/types": "30.3.0", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.1", + "chalk": "^4.1.2", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.3.0", + "pirates": "^4.0.7", "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "node_modules/@jest/types": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz", + "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "license": "MIT", + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "@jridgewell/gen-mapping": { + "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, - "requires": { + "license": "MIT", + "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, - "@jridgewell/remapping": { + "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, - "requires": { + "license": "MIT", + "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, - "@jridgewell/resolve-uri": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/sourcemap-codec": { + "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 + "dev": true, + "license": "MIT" }, - "@jridgewell/trace-mapping": { + "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, - "requires": { + "license": "MIT", + "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.34.49", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", + "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", "dev": true, - "requires": { + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { "type-detect": "4.0.8" } }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "node_modules/@sinonjs/fake-timers": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.3.2.tgz", + "integrity": "sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==", "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1" } }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } }, - "@types/babel__core": { + "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", @@ -622,279 +1089,574 @@ "@types/babel__traverse": "*" } }, - "@types/babel__generator": { + "node_modules/@types/babel__generator": { "version": "7.27.0", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/types": "^7.0.0" } }, - "@types/babel__template": { + "node_modules/@types/babel__template": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, - "@types/babel__traverse": { + "node_modules/@types/babel__traverse": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/types": "^7.28.2" } }, - "@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { + "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/istanbul-lib-report": { + "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/istanbul-lib-coverage": "*" } }, - "@types/istanbul-reports": { + "node_modules/@types/istanbul-reports": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/istanbul-lib-report": "*" } }, - "@types/node": { + "node_modules/@types/node": { "version": "25.6.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "undici-types": "~7.19.0" } }, - "@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, - "@types/stack-utils": { + "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/yargs": { - "version": "16.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.11.tgz", - "integrity": "sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g==", + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/yargs-parser": "*" } }, - "@types/yargs-parser": { + "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - } - } - }, - "acorn-walk": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", - "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", - "requires": { - "acorn": "^8.11.0" - } + "license": "MIT" }, - "adm-zip": { + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/adm-zip": { "version": "0.5.17", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.17.tgz", - "integrity": "sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==" + "integrity": "sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==", + "license": "MIT", + "engines": { + "node": ">=12.0" + } }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" + "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==", + "license": "MIT", + "engines": { + "node": ">= 14" } }, - "ansi-escapes": { + "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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 + "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" + } }, - "ansi-styles": { + "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, - "requires": { + "license": "MIT", + "dependencies": { "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "anymatch": { + "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "argparse": { + "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "sprintf-js": "~1.0.2" } }, - "ast-types": { + "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "requires": { + "license": "MIT", + "dependencies": { "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" } }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz", - "integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==", - "requires": { + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.1.tgz", + "integrity": "sha512-WOG+Jj8ZOvR0a3rAn+Tuf1UQJRxw5venr6DgdbJzngJE3qG7X0kL83CZGpdHMxEm+ZK3seAbvFsw4FfOfP9vxg==", + "license": "MIT", + "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" - }, - "dependencies": { - "proxy-from-env": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", - "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==" - } } }, - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "node_modules/axios/node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-jest": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.3.0.tgz", + "integrity": "sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==", "dev": true, - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", + "license": "MIT", + "dependencies": { + "@jest/transform": "30.3.0", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.1", + "babel-preset-jest": "30.3.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0 || ^8.0.0-0" } }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/babel-plugin-istanbul": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", "dev": true, - "requires": { + "license": "BSD-3-Clause", + "workspaces": [ + "test/babel-8" + ], + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=12" } }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "node_modules/babel-plugin-jest-hoist": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.3.0.tgz", + "integrity": "sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==", "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "license": "MIT", + "dependencies": { + "@types/babel__core": "^7.20.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "babel-preset-current-node-syntax": { + "node_modules/babel-preset-current-node-syntax": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -910,445 +1672,643 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" } }, - "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "node_modules/babel-preset-jest": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.3.0.tgz", + "integrity": "sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==", "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "30.3.0", + "babel-preset-current-node-syntax": "^1.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0 || ^8.0.0-beta.1" } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, - "baseline-browser-mapping": { - "version": "2.10.19", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz", - "integrity": "sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==", - "dev": true + "node_modules/baseline-browser-mapping": { + "version": "2.10.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.20.tgz", + "integrity": "sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } }, - "brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/basic-ftp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.3.0.tgz", + "integrity": "sha512-5K9eNNn7ywHPsYnFwjKgYH8Hf8B5emh7JKcPaVjjrMJFQQwGpwowEnZNEtHs7DfR7hCZsmaK3VA4HUK0YarT+w==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" } }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, - "requires": { - "fill-range": "^7.1.1" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserslist": { + "node_modules/browserslist": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "dev": true, - "requires": { + "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.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "bser": { + "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "node-int64": "^0.4.0" } }, - "buffer-from": { + "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 - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "dev": true, + "license": "MIT" }, - "call-bind-apply-helpers": { + "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==", - "requires": { + "license": "MIT", + "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "camelcase": { + "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "caniuse-lite": { + "node_modules/caniuse-lite": { "version": "1.0.30001788", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", - "dev": true + "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" }, - "chalk": { + "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "char-regex": { + "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", + "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/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/cliui/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/cliui/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/cliui/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" } }, - "co": { + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } }, - "collect-v8-coverage": { + "node_modules/collect-v8-coverage": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", - "dev": true + "dev": true, + "license": "MIT" }, - "color-convert": { + "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, - "requires": { + "license": "MIT", + "dependencies": { "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "color-name": { + "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 + "dev": true, + "license": "MIT" }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { + "license": "MIT", + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, - "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 - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "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" }, - "cross-spawn": { + "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, - "requires": { + "license": "MIT", + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } + "engines": { + "node": ">= 8" } }, - "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "license": "MIT", + "engines": { + "node": ">= 14" } }, - "debug": { + "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "requires": { + "license": "MIT", + "dependencies": { "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decimal.js": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", - "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "node_modules/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, - "deepmerge": { + "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "degenerator": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.4.tgz", - "integrity": "sha512-Z66uPeBfHZAHVmue3HPfyKu2Q0rC2cRxbTOsvmU/po5fvvcx27W4mIu9n0PUlQih4oUYvcG1BsbtVv8x7KDOSw==", - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.17" + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" } }, - "delayed-stream": { + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, - "detect-newline": { + "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=8" } }, - "dunder-proto": { + "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==", - "requires": { + "license": "MIT", + "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" } }, - "electron-to-chromium": { + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { "version": "1.5.340", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.340.tgz", "integrity": "sha512-908qahOGocRMinT2nM3ajCEM99H4iPdv84eagPP3FfZy/1ZGeOy2CZYzjhms81ckOPCXPlW7LkY4XpxD8r1DrA==", - "dev": true + "dev": true, + "license": "ISC" }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" }, - "error-ex": { + "node_modules/error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-arrayish": "^0.2.1" } }, - "es-define-property": { + "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==" + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "es-errors": { + "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==" + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "es-object-atoms": { + "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "requires": { + "license": "MIT", + "dependencies": { "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "es-set-tostringtag": { + "node_modules/es-set-tostringtag": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "requires": { + "license": "MIT", + "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "escalade": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { "source-map": "~0.6.1" } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "execa": { + "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", @@ -1358,140 +2318,189 @@ "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "node_modules/expect": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "30.3.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "dev": true, + "license": "MIT" }, - "fb-watchman": { + "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "bser": "2.1.1" } }, - "file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { + "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "follow-redirects": { + "node_modules/follow-redirects": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==" + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "form-data": { + "node_modules/form-data": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "requires": { + "license": "MIT", + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, - "fsevents": { + "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, - "optional": true - }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "function-bind": { + "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==" + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "gensync": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "get-caller-file": { + "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 + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-intrinsic": { + "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==", - "requires": { + "license": "MIT", + "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", @@ -1502,1994 +2511,2500 @@ "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" } }, - "get-package-type": { + "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } }, - "get-proto": { + "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==", - "requires": { + "license": "MIT", + "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "get-stream": { + "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "dependencies": { - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - } + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "global-dirs": { + "node_modules/global-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "requires": { + "license": "MIT", + "dependencies": { "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "gopd": { + "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "graceful-fs": { + "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==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" }, - "has-flag": { + "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "has-symbols": { + "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==" + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "requires": { + "license": "MIT", + "dependencies": { "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { + "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "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==", - "requires": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - } + "dev": true, + "license": "MIT" }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "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==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", + "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==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "human-signals": { + "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" } }, - "import-local": { + "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, - "ini": { + "node_modules/ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - }, - "ip": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "ip-address": { + "node_modules/ip-address": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==" + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "engines": { + "node": ">= 12" + } }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, - "requires": { - "hasown": "^2.0.2" - } + "license": "MIT" }, - "is-fullwidth-code-point": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "is-generator-fn": { + "node_modules/is-generator-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "is-stream": { + "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, - "istanbul-lib-coverage": { + "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 + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "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, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "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": "^6.3.0" + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/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" } }, - "istanbul-lib-report": { + "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "requires": { + "license": "BSD-3-Clause", + "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" } }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, - "requires": { + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" } }, - "istanbul-reports": { + "node_modules/istanbul-reports": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, - "requires": { + "license": "BSD-3-Clause", + "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "dependencies": { - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } + "node_modules/jest": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.3.0.tgz", + "integrity": "sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "30.3.0", + "@jest/types": "30.3.0", + "import-local": "^3.2.0", + "jest-cli": "30.3.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "node_modules/jest-changed-files": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.3.0.tgz", + "integrity": "sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" + "license": "MIT", + "dependencies": { + "execa": "^5.1.1", + "jest-util": "30.3.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "node_modules/jest-circus": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.3.0.tgz", + "integrity": "sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==", "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "chalk": "^4.0.0", + "chalk": "^4.1.2", "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "p-limit": "^3.1.0", + "pretty-format": "30.3.0", + "pure-rand": "^7.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-cli": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.3.0.tgz", + "integrity": "sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "yargs": "^17.7.2" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.3.0.tgz", + "integrity": "sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.3.0", + "@jest/types": "30.3.0", + "babel-jest": "30.3.0", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", + "jest-circus": "30.3.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-runner": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", + "pretty-format": "30.3.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "esbuild-register": ">=3.4.0", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "esbuild-register": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "node_modules/jest-diff": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.3.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "node_modules/jest-docblock": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", "dev": true, - "requires": { - "detect-newline": "^3.0.0" + "license": "MIT", + "dependencies": { + "detect-newline": "^3.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "node_modules/jest-each": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.3.0.tgz", + "integrity": "sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "jest-util": "30.3.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "node_modules/jest-environment-node": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.3.0.tgz", + "integrity": "sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==", "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" + "jest-mock": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "node_modules/jest-haste-map": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", + "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", + "picomatch": "^4.0.3", + "walker": "^1.0.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.3" } }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true + "node_modules/jest-leak-detector": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz", + "integrity": "sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "node_modules/jest-matcher-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", + "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.3.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.3.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3", + "pretty-format": "30.3.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "node_modules/jest-mock": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz", + "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-util": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-pnp-resolver": { + "node_modules/jest-pnp-resolver": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true - }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true - }, - "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.3.0.tgz", + "integrity": "sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.3.0.tgz", + "integrity": "sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "node_modules/jest-runner": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.3.0.tgz", + "integrity": "sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" + "license": "MIT", + "dependencies": { + "@jest/console": "30.3.0", + "@jest/environment": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-leak-detector": "30.3.0", + "jest-message-util": "30.3.0", + "jest-resolve": "30.3.0", + "jest-runtime": "30.3.0", + "jest-util": "30.3.0", + "jest-watcher": "30.3.0", + "jest-worker": "30.3.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "node_modules/jest-runtime": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.3.0.tgz", + "integrity": "sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==", "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/globals": "30.3.0", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "node_modules/jest-snapshot": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.3.0.tgz", + "integrity": "sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==", "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true - } + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/generator": "^7.27.5", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.3", + "@jest/expect-utils": "30.3.0", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "babel-preset-current-node-syntax": "^1.2.0", + "chalk": "^4.1.2", + "expect": "30.3.0", + "graceful-fs": "^4.2.11", + "jest-diff": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "pretty-format": "30.3.0", + "semver": "^7.7.2", + "synckit": "^0.11.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot/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" } }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "node_modules/jest-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz", + "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3" }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-validate": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.3.0.tgz", + "integrity": "sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==", + "dev": true, + "license": "MIT", "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } + "@jest/get-type": "30.1.0", + "@jest/types": "30.3.0", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", + "leven": "^3.1.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "node_modules/jest-watcher": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.3.0.tgz", + "integrity": "sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==", "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "license": "MIT", + "dependencies": { + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "jest-util": "30.3.0", + "string-length": "^4.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/jest-worker": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz", + "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/node": "*", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.3.0", "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "supports-color": "^8.1.1" }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "js-tokens": { + "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 + "dev": true, + "license": "MIT" }, - "js-yaml": { + "node_modules/js-yaml": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "source-map": "~0.6.1" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "form-data": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz", - "integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.35" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - } - } - }, - "jsesc": { + "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } }, - "json-parse-even-better-errors": { + "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, - "json5": { + "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 - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { + "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "lines-and-columns": { + "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, - "locate-path": { + "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "lodash": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", - "dev": true - }, - "lru-cache": { + "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==", - "requires": { + "dev": true, + "license": "ISC", + "dependencies": { "yallist": "^3.0.2" } }, - "make-dir": { + "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "semver": "^7.5.3" }, - "dependencies": { - "semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/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" } }, - "makeerror": { + "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "requires": { + "license": "BSD-3-Clause", + "dependencies": { "tmpl": "1.0.5" } }, - "math-intrinsics": { + "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==" + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "merge-stream": { + "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - } + "license": "MIT" }, - "mime-db": { + "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { + "license": "MIT", + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mimic-fn": { + "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "requires": { - "brace-expansion": "^1.1.7" + "node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "mkdirp": { + "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/mkdirp": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==" + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "ms": { + "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==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, - "natural-compare": { + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, - "netmask": { + "node_modules/netmask": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.1.1.tgz", - "integrity": "sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==" + "integrity": "sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } }, - "node-int64": { + "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "dev": true, + "license": "MIT" }, - "node-releases": { + "node_modules/node-releases": { "version": "2.0.37", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", - "dev": true + "dev": true, + "license": "MIT" }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "npm-run-path": { + "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "nwsapi": { - "version": "2.2.23", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", - "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", - "dev": true - }, - "once": { + "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==", - "requires": { + "license": "ISC", + "dependencies": { "wrappy": "1" } }, - "onetime": { + "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { - "p-try": "^2.0.0" + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { + "node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "p-try": { + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "dependencies": { - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - } + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" } }, - "pac-resolver": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz", - "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==", - "requires": { - "degenerator": "^3.0.2", - "ip": "^1.1.5", + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" } }, - "parse-json": { + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "path-exists": { + "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "picocolors": { + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "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 + "dev": true, + "license": "ISC" }, - "picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true + "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" + } }, - "pirates": { + "node_modules/pirates": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } }, - "pkg-dir": { + "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, + "license": "MIT", "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "requires": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "license": "MIT", "dependencies": { - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - } + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" } }, - "proxy-from-env": { + "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" }, - "psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "requires": { - "punycode": "^2.3.1" - } + "license": "MIT" }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "raw-body": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", - "requires": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "unpipe": "~1.0.0" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "resolve": { - "version": "1.22.12", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", - "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "dev": true, - "requires": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "resolve-cwd": { + "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "semver": { + "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 - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } }, - "shebang-command": { + "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, - "requires": { + "license": "MIT", + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "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 - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "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" + } }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "smart-buffer": { + "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==" + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } }, - "socks": { + "node_modules/socks": { "version": "2.8.7", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "requires": { + "license": "MIT", + "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" + "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==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" } }, - "source-map": { + "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==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "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==", + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, - "stack-utils": { + "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==" - }, - "string-length": { + "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "string-width": { + "node_modules/string-length/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/string-length/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/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "strip-ansi": { + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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/strip-ansi-cjs": { + "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "strip-final-newline": { + "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "supports-color": { + "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "node_modules/synckit": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" } }, - "test-exclude": { + "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "requires": { - "is-number": "^7.0.0" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "dependencies": { - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true - } + "node_modules/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "license": "MIT", + "engines": { + "node": ">=14.14" } }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true, - "requires": { - "punycode": "^2.1.1" - } + "license": "BSD-3-Clause" }, - "tslib": { + "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==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "requires": { - "prelude-ls": "~1.1.2" - } + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, - "type-detect": { + "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "type-fest": { + "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, - "requires": { - "is-typedarray": "^1.0.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "undici-types": { + "node_modules/undici-types": { "version": "7.19.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "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" }, - "update-browserslist-db": { + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, + "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, - "requires": { + "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" } }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "convert-source-map": "^2.0.0" }, - "dependencies": { - "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 - } - } - }, - "vm2": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.10.5.tgz", - "integrity": "sha512-3P/2QDccVFBcujfCOeP8vVNuGfuBJHEuvGR8eMmI10p/iwLL2UwF5PDaNaoOS2pRGQEDmJRyeEcc8kmm2Z59RA==", - "requires": { - "acorn": "^8.15.0", - "acorn-walk": "^8.3.4" - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" + "engines": { + "node": ">=10.12.0" } }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { + "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "makeerror": "1.0.12" } }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { + "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, - "requires": { + "license": "ISC", + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==" + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } }, - "wrap-ansi": { + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "dev": true + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "node_modules/wrap-ansi/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" + } }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==" + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "y18n": { + "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 + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "yallist": { + "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "requires": { - "cliui": "^7.0.2", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/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/yargs/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/yargs/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" } }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "node_modules/yargs/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/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/npm/package.json b/npm/package.json index c10937e78..76edb7296 100644 --- a/npm/package.json +++ b/npm/package.json @@ -36,17 +36,17 @@ "dependencies": { "adm-zip": "^0.5.12", "axios": "^1.7.9", - "proxy-agent": "^5.0.0", "debug": "^4.3.4", "global-dirs": "3.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", "mkdirp": "^2.1.6", + "proxy-agent": "^6.5.0", + "proxy-from-env": "^1.1.0", "rimraf": "^3.0.2", - "tmp": "0.2.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1" + "tmp": "^0.2.5" }, "devDependencies": { - "jest": "^27.5.1", - "proxy-from-env": "^1.1.0" + "jest": "^30.3.0" } } diff --git a/npm/postinstall.js b/npm/postinstall.js index 68febf2d6..279585e29 100644 --- a/npm/postinstall.js +++ b/npm/postinstall.js @@ -7,14 +7,17 @@ const path = require('path'), rimraf = require('rimraf'), fs = require('fs'), axios = require('axios'), - HttpsProxyAgent = require('https-proxy-agent'), - HttpProxyAgent = require('http-proxy-agent'), + HttpsProxyAgentModule = require('https-proxy-agent'), + HttpProxyAgentModule = require('http-proxy-agent'), proxyFromEnv = require('proxy-from-env'), AdmZip = require("adm-zip"), tmp = require('tmp'), dbg = require('debug'), { parsePackageJson, PLATFORM_MAPPING, ARCH_MAPPING } = require('./utils'); +const HttpsProxyAgent = HttpsProxyAgentModule.HttpsProxyAgent || HttpsProxyAgentModule; +const HttpProxyAgent = HttpProxyAgentModule.HttpProxyAgent || HttpProxyAgentModule; + const debug = dbg("cmf:debug"); const error = dbg("cmf:debug:error"); @@ -83,9 +86,12 @@ async function install(callback) { var opts = parsePackageJson("."); if (!opts) return callback(INVALID_INPUT); console.info(`Copying the relevant binary for your platform ${process.platform}`); - const src= `./dist/${PLATFORM_MAPPING[process.platform]}-${ARCH_MAPPING[process.arch]}`; + const src = `./dist/${PLATFORM_MAPPING[process.platform]}-${ARCH_MAPPING[process.arch]}`; + const sourceBinaryPath = path.join(src, opts.binName); - if (!fs.existsSync("./dist")) { + // If dist exists but does not contain the expected binary for this platform, + // fetch the release archive and hydrate the platform folder. + if (!fs.existsSync(sourceBinaryPath)) { // download respective release zip from github or fallback repositories const primaryUrl = opts.binUrl.replace("{{version}}", opts.version).replace("{{platform}}", PLATFORM_MAPPING[process.platform]).replace("{{arch}}", ARCH_MAPPING[process.arch]); const versionedFallbackName = `cmf-cli.${PLATFORM_MAPPING[process.platform]}-${ARCH_MAPPING[process.arch]}-${opts.version}.zip`; @@ -126,7 +132,7 @@ async function install(callback) { await execShellCommand(`robocopy ${src.replace(/\//g, "\\")} "${installPath}" /e /is /it`, [1]); } else { debug("Installing for *NIX: " + process.platform); - await execShellCommand(`cp -r ${src}/** "${installPath}"`); + await execShellCommand(`cp -r ${src}/. "${installPath}"`); await execShellCommand(`chmod +x "${installPath}/cmf"`); } await verifyAndPlaceBinary(opts.binName, installPath, callback); diff --git a/npm/postinstall.test.js b/npm/postinstall.test.js index 359c9cf28..67f488911 100644 --- a/npm/postinstall.test.js +++ b/npm/postinstall.test.js @@ -16,6 +16,7 @@ jest.mock('mkdirp'); jest.mock('rimraf'); jest.mock('proxy-from-env'); jest.mock('http-proxy-agent'); +jest.mock('https-proxy-agent'); jest.mock('fs'); const mockMkdirp = require('mkdirp'); @@ -276,8 +277,10 @@ describe('postinstall.js', () => { // Helper function to create a mock downloadAndExtract function function createDownloadAndExtractFunction() { const proxyFromEnv = require('proxy-from-env'); - const HttpProxyAgent = require('http-proxy-agent'); - const HttpsProxyAgent = require('https-proxy-agent'); + const HttpProxyAgentModule = require('http-proxy-agent'); + const HttpsProxyAgentModule = require('https-proxy-agent'); + const HttpProxyAgent = HttpProxyAgentModule.HttpProxyAgent || HttpProxyAgentModule; + const HttpsProxyAgent = HttpsProxyAgentModule.HttpsProxyAgent || HttpsProxyAgentModule; async function downloadAndExtract(pkgUrl, dest) { const proxy = proxyFromEnv.getProxyForUrl(pkgUrl); @@ -328,8 +331,9 @@ function createMockInstallFunction() { }; const src = `./dist/${PLATFORM_MAPPING[process.platform]}-${ARCH_MAPPING[process.arch]}`; + const sourceBinaryPath = `${src}/${opts.binName}`; - if (!fs.existsSync("./dist")) { + if (!fs.existsSync(sourceBinaryPath)) { const primaryUrl = opts.binUrl .replace("{{version}}", opts.version) .replace("{{platform}}", PLATFORM_MAPPING[process.platform]) diff --git a/package-lock.json b/package-lock.json index 49598e28a..24bf58a55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,773 +1,766 @@ { "name": "cmf-cli-builder", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { + "packages": { + "": { + "name": "cmf-cli-builder", + "version": "1.0.0", + "license": "BSD-3-Clause", + "dependencies": { + "dotnet-bump": "^1.6.0", + "rimraf": "^3.0.2" + }, + "devDependencies": { + "@commitlint/cli": "^20.5.0", + "@commitlint/config-conventional": "^20.5.0", + "husky": "^7.0.4", + "standard-version": "^9.5.0" + } + }, + "node_modules/@babel/code-frame": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true - }, - "@commitlint/cli": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.3.0.tgz", - "integrity": "sha512-P+kvONlfsuTMnxSwWE1H+ZcPMY3STFaHb2kAacsqoIkNx66O0T7sTpBxpxkMrFPyhkJiLJnJWMhk4bbvYD3BMA==", - "dev": true, - "requires": { - "@commitlint/format": "^16.2.1", - "@commitlint/lint": "^16.2.4", - "@commitlint/load": "^16.3.0", - "@commitlint/read": "^16.2.1", - "@commitlint/types": "^16.2.1", - "lodash": "^4.17.19", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@commitlint/cli": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-20.5.0.tgz", + "integrity": "sha512-yNkyN/tuKTJS3wdVfsZ2tXDM4G4Gi7z+jW54Cki8N8tZqwKBltbIvUUrSbT4hz1bhW/h0CdR+5sCSpXD+wMKaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/format": "^20.5.0", + "@commitlint/lint": "^20.5.0", + "@commitlint/load": "^20.5.0", + "@commitlint/read": "^20.5.0", + "@commitlint/types": "^20.5.0", + "tinyexec": "^1.0.0", "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v18" } }, - "@commitlint/config-conventional": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-16.2.4.tgz", - "integrity": "sha512-av2UQJa3CuE5P0dzxj/o/B9XVALqYzEViHrMXtDrW9iuflrqCStWBAioijppj9URyz6ONpohJKAtSdgAOE0gkA==", + "node_modules/@commitlint/config-conventional": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-20.5.0.tgz", + "integrity": "sha512-t3Ni88rFw1XMa4nZHgOKJ8fIAT9M2j5TnKyTqJzsxea7FUetlNdYFus9dz+MhIRZmc16P0PPyEfh6X2d/qw8SA==", "dev": true, - "requires": { - "conventional-changelog-conventionalcommits": "^4.3.1" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^20.5.0", + "conventional-changelog-conventionalcommits": "^9.2.0" + }, + "engines": { + "node": ">=v18" } }, - "@commitlint/config-validator": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-16.2.1.tgz", - "integrity": "sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw==", + "node_modules/@commitlint/config-validator": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-20.5.0.tgz", + "integrity": "sha512-T/Uh6iJUzyx7j35GmHWdIiGRQB+ouZDk0pwAaYq4SXgB54KZhFdJ0vYmxiW6AMYICTIWuyMxDBl1jK74oFp/Gw==", "dev": true, - "requires": { - "@commitlint/types": "^16.2.1", - "ajv": "^6.12.6" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^20.5.0", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v18" } }, - "@commitlint/cz-commitlint": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/cz-commitlint/-/cz-commitlint-16.3.0.tgz", - "integrity": "sha512-Q+QLQmSIHEgzI18F3/7mqq3vwL0IN9k+Tjp9Um4adFnRXMtUTnEa0er0CXAXxWvoA/x/6nt3t7faAv2HugDIGg==", + "node_modules/@commitlint/ensure": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-20.5.0.tgz", + "integrity": "sha512-IpHqAUesBeW1EDDdjzJeaOxU9tnogLAyXLRBn03SHlj1SGENn2JGZqSWGkFvBJkJzfXAuCNtsoYzax+ZPS+puw==", "dev": true, - "requires": { - "@commitlint/ensure": "^16.2.1", - "@commitlint/load": "^16.3.0", - "@commitlint/types": "^16.2.1", - "chalk": "^4.1.0", - "lodash": "^4.17.21", - "word-wrap": "^1.2.3" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^20.5.0", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v18" } }, - "@commitlint/ensure": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-16.2.1.tgz", - "integrity": "sha512-/h+lBTgf1r5fhbDNHOViLuej38i3rZqTQnBTk+xEg+ehOwQDXUuissQ5GsYXXqI5uGy+261ew++sT4EA3uBJ+A==", + "node_modules/@commitlint/execute-rule": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-20.0.0.tgz", + "integrity": "sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==", "dev": true, - "requires": { - "@commitlint/types": "^16.2.1", - "lodash": "^4.17.19" + "license": "MIT", + "engines": { + "node": ">=v18" } }, - "@commitlint/execute-rule": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-16.2.1.tgz", - "integrity": "sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g==", - "dev": true + "node_modules/@commitlint/format": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-20.5.0.tgz", + "integrity": "sha512-TI9EwFU/qZWSK7a5qyXMpKPPv3qta7FO4tKW+Wt2al7sgMbLWTsAcDpX1cU8k16TRdsiiet9aOw0zpvRXNJu7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^20.5.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=v18" + } }, - "@commitlint/format": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-16.2.1.tgz", - "integrity": "sha512-Yyio9bdHWmNDRlEJrxHKglamIk3d6hC0NkEUW6Ti6ipEh2g0BAhy8Od6t4vLhdZRa1I2n+gY13foy+tUgk0i1Q==", + "node_modules/@commitlint/is-ignored": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-20.5.0.tgz", + "integrity": "sha512-JWLarAsurHJhPozbuAH6GbP4p/hdOCoqS9zJMfqwswne+/GPs5V0+rrsfOkP68Y8PSLphwtFXV0EzJ+GTXTTGg==", "dev": true, - "requires": { - "@commitlint/types": "^16.2.1", - "chalk": "^4.0.0" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^20.5.0", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=v18" } }, - "@commitlint/is-ignored": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-16.2.4.tgz", - "integrity": "sha512-Lxdq9aOAYCOOOjKi58ulbwK/oBiiKz+7Sq0+/SpFIEFwhHkIVugvDvWjh2VRBXmRC/x5lNcjDcYEwS/uYUvlYQ==", + "node_modules/@commitlint/lint": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-20.5.0.tgz", + "integrity": "sha512-jiM3hNUdu04jFBf1VgPdjtIPvbuVfDTBAc6L98AWcoLjF5sYqkulBHBzlVWll4rMF1T5zeQFB6r//a+s+BBKlA==", "dev": true, - "requires": { - "@commitlint/types": "^16.2.1", - "semver": "7.3.7" + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^20.5.0", + "@commitlint/parse": "^20.5.0", + "@commitlint/rules": "^20.5.0", + "@commitlint/types": "^20.5.0" }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-20.5.0.tgz", + "integrity": "sha512-sLhhYTL/KxeOTZjjabKDhwidGZan84XKK1+XFkwDYL/4883kIajcz/dZFAhBJmZPtL8+nBx6bnkzA95YxPeDPw==", + "dev": true, + "license": "MIT", "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "@commitlint/config-validator": "^20.5.0", + "@commitlint/execute-rule": "^20.0.0", + "@commitlint/resolve-extends": "^20.5.0", + "@commitlint/types": "^20.5.0", + "cosmiconfig": "^9.0.1", + "cosmiconfig-typescript-loader": "^6.1.0", + "is-plain-obj": "^4.1.0", + "lodash.mergewith": "^4.6.2", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=v18" } }, - "@commitlint/lint": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-16.2.4.tgz", - "integrity": "sha512-AUDuwOxb2eGqsXbTMON3imUGkc1jRdtXrbbohiLSCSk3jFVXgJLTMaEcr39pR00N8nE9uZ+V2sYaiILByZVmxQ==", - "dev": true, - "requires": { - "@commitlint/is-ignored": "^16.2.4", - "@commitlint/parse": "^16.2.1", - "@commitlint/rules": "^16.2.4", - "@commitlint/types": "^16.2.1" - } - }, - "@commitlint/load": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.3.0.tgz", - "integrity": "sha512-3tykjV/iwbkv2FU9DG+NZ/JqmP0Nm3b7aDwgCNQhhKV5P74JAuByULkafnhn+zsFGypG1qMtI5u+BZoa9APm0A==", - "dev": true, - "requires": { - "@commitlint/config-validator": "^16.2.1", - "@commitlint/execute-rule": "^16.2.1", - "@commitlint/resolve-extends": "^16.2.1", - "@commitlint/types": "^16.2.1", - "@types/node": ">=12", - "chalk": "^4.0.0", - "cosmiconfig": "^7.0.0", - "cosmiconfig-typescript-loader": "^2.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "typescript": "^4.4.3" - } - }, - "@commitlint/message": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-16.2.1.tgz", - "integrity": "sha512-2eWX/47rftViYg7a3axYDdrgwKv32mxbycBJT6OQY/MJM7SUfYNYYvbMFOQFaA4xIVZt7t2Alyqslbl6blVwWw==", - "dev": true - }, - "@commitlint/parse": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-16.2.1.tgz", - "integrity": "sha512-2NP2dDQNL378VZYioLrgGVZhWdnJO4nAxQl5LXwYb08nEcN+cgxHN1dJV8OLJ5uxlGJtDeR8UZZ1mnQ1gSAD/g==", - "dev": true, - "requires": { - "@commitlint/types": "^16.2.1", - "conventional-changelog-angular": "^5.0.11", - "conventional-commits-parser": "^3.2.2" - } - }, - "@commitlint/read": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-16.2.1.tgz", - "integrity": "sha512-tViXGuaxLTrw2r7PiYMQOFA2fueZxnnt0lkOWqKyxT+n2XdEMGYcI9ID5ndJKXnfPGPppD0w/IItKsIXlZ+alw==", - "dev": true, - "requires": { - "@commitlint/top-level": "^16.2.1", - "@commitlint/types": "^16.2.1", - "fs-extra": "^10.0.0", - "git-raw-commits": "^2.0.0" - } - }, - "@commitlint/resolve-extends": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-16.2.1.tgz", - "integrity": "sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg==", - "dev": true, - "requires": { - "@commitlint/config-validator": "^16.2.1", - "@commitlint/types": "^16.2.1", - "import-fresh": "^3.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - } - }, - "@commitlint/rules": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-16.2.4.tgz", - "integrity": "sha512-rK5rNBIN2ZQNQK+I6trRPK3dWa0MtaTN4xnwOma1qxa4d5wQMQJtScwTZjTJeallFxhOgbNOgr48AMHkdounVg==", - "dev": true, - "requires": { - "@commitlint/ensure": "^16.2.1", - "@commitlint/message": "^16.2.1", - "@commitlint/to-lines": "^16.2.1", - "@commitlint/types": "^16.2.1", - "execa": "^5.0.0" - } - }, - "@commitlint/to-lines": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-16.2.1.tgz", - "integrity": "sha512-9/VjpYj5j1QeY3eiog1zQWY6axsdWAc0AonUUfyZ7B0MVcRI0R56YsHAfzF6uK/g/WwPZaoe4Lb1QCyDVnpVaQ==", - "dev": true - }, - "@commitlint/top-level": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-16.2.1.tgz", - "integrity": "sha512-lS6GSieHW9y6ePL73ied71Z9bOKyK+Ib9hTkRsB8oZFAyQZcyRwq2w6nIa6Fngir1QW51oKzzaXfJL94qwImyw==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - } + "node_modules/@commitlint/message": { + "version": "20.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-20.4.3.tgz", + "integrity": "sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" } }, - "@commitlint/types": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-16.2.1.tgz", - "integrity": "sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA==", + "node_modules/@commitlint/parse": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-20.5.0.tgz", + "integrity": "sha512-SeKWHBMk7YOTnnEWUhx+d1a9vHsjjuo6Uo1xRfPNfeY4bdYFasCH1dDpAv13Lyn+dDPOels+jP6D2GRZqzc5fA==", "dev": true, - "requires": { - "chalk": "^4.0.0" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^20.5.0", + "conventional-changelog-angular": "^8.2.0", + "conventional-commits-parser": "^6.3.0" + }, + "engines": { + "node": ">=v18" } }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@commitlint/read": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-20.5.0.tgz", + "integrity": "sha512-JDEIJ2+GnWpK8QqwfmW7O42h0aycJEWNqcdkJnyzLD11nf9dW2dWLTVEa8Wtlo4IZFGLPATjR5neA5QlOvIH1w==", "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^20.4.3", + "@commitlint/types": "^20.5.0", + "git-raw-commits": "^5.0.0", + "minimist": "^1.2.8", + "tinyexec": "^1.0.0" + }, + "engines": { + "node": ">=v18" } }, - "@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true + "node_modules/@commitlint/resolve-extends": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.5.0.tgz", + "integrity": "sha512-3SHPWUW2v0tyspCTcfSsYml0gses92l6TlogwzvM2cbxDgmhSRc+fldDjvGkCXJrjSM87BBaWYTPWwwyASZRrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^20.5.0", + "@commitlint/types": "^20.5.0", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } }, - "@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 + "node_modules/@commitlint/rules": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-20.5.0.tgz", + "integrity": "sha512-5NdQXQEdnDPT5pK8O39ZA7HohzPRHEsDGU23cyVCNPQy4WegAbAwrQk3nIu7p2sl3dutPk8RZd91yKTrMTnRkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^20.5.0", + "@commitlint/message": "^20.4.3", + "@commitlint/to-lines": "^20.0.0", + "@commitlint/types": "^20.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-20.0.0.tgz", + "integrity": "sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level": { + "version": "20.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-20.4.3.tgz", + "integrity": "sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0" + }, + "engines": { + "node": ">=v18" + } }, - "@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 + "node_modules/@commitlint/types": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-20.5.0.tgz", + "integrity": "sha512-ZJoS8oSq2CAZEpc/YI9SulLrdiIyXeHb/OGqGrkUP6Q7YV+0ouNAa7GjqRdXeQPncHQIDz/jbCTlHScvYvO/gA==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-parser": "^6.3.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@conventional-changelog/git-client": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-2.7.0.tgz", + "integrity": "sha512-j7A8/LBEQ+3rugMzPXoKYzyUPpw/0CBQCyvtTR7Lmu4olG4yRC/Tfkq79Mr3yuPs0SUitlO2HwGP3gitMJnRFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/child-process-utils": "^1.0.0", + "@simple-libs/stream-utils": "^1.2.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.4.0" + }, + "peerDependenciesMeta": { + "conventional-commits-filter": { + "optional": true + }, + "conventional-commits-parser": { + "optional": true + } + } }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "license": "Apache-2.0", + "engines": { + "node": ">=6.9.0" } }, - "@redis/bloom": { + "node_modules/@redis/bloom": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-5.12.1.tgz", - "integrity": "sha512-PUUfv+ms7jgPSBVoo/DN4AkPHj4D5TZSd6SbJX7egzBplkYUcKmHRE8RKia7UtZ8bSQbLguLvxVO+asKtQfZWA==" + "integrity": "sha512-PUUfv+ms7jgPSBVoo/DN4AkPHj4D5TZSd6SbJX7egzBplkYUcKmHRE8RKia7UtZ8bSQbLguLvxVO+asKtQfZWA==", + "license": "MIT", + "engines": { + "node": ">= 18.19.0" + }, + "peerDependencies": { + "@redis/client": "^5.12.1" + } }, - "@redis/client": { + "node_modules/@redis/client": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/@redis/client/-/client-5.12.1.tgz", "integrity": "sha512-7aPGWeqA3uFm43o19umzdl16CEjK/JQGtSXVPevplTaOU3VJA/rseBC1QvYUz9lLDIMBimc4SW/zrW4S89BaCA==", - "requires": { + "license": "MIT", + "dependencies": { "cluster-key-slot": "1.1.2" + }, + "engines": { + "node": ">= 18.19.0" + }, + "peerDependencies": { + "@node-rs/xxhash": "^1.1.0", + "@opentelemetry/api": ">=1 <2" + }, + "peerDependenciesMeta": { + "@node-rs/xxhash": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + } } }, - "@redis/json": { + "node_modules/@redis/json": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/@redis/json/-/json-5.12.1.tgz", - "integrity": "sha512-eOze75esLve4vfqDel7aMX08CNaiLLQS2fV8mpRN9NxPe1rVR4vQyYiW/OgtGUysF6QOr9ANhfxABKNOJfXdKg==" + "integrity": "sha512-eOze75esLve4vfqDel7aMX08CNaiLLQS2fV8mpRN9NxPe1rVR4vQyYiW/OgtGUysF6QOr9ANhfxABKNOJfXdKg==", + "license": "MIT", + "engines": { + "node": ">= 18.19.0" + }, + "peerDependencies": { + "@redis/client": "^5.12.1" + } }, - "@redis/search": { + "node_modules/@redis/search": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/@redis/search/-/search-5.12.1.tgz", - "integrity": "sha512-ItlxbxC9cKI6IU1TLWoczwJCRb6TdmkEpWv05UrPawqaAnWGRu3rcIqsc5vN483T2fSociuyV1UkWIL5I4//2w==" + "integrity": "sha512-ItlxbxC9cKI6IU1TLWoczwJCRb6TdmkEpWv05UrPawqaAnWGRu3rcIqsc5vN483T2fSociuyV1UkWIL5I4//2w==", + "license": "MIT", + "engines": { + "node": ">= 18.19.0" + }, + "peerDependencies": { + "@redis/client": "^5.12.1" + } }, - "@redis/time-series": { + "node_modules/@redis/time-series": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-5.12.1.tgz", - "integrity": "sha512-c6JL6E3EcZJuNqKFz+KM+l9l5mpcQiKvTwgA3blt5glWJ8hjDk0yeHN3beE/MpqYIQ8UEX44ItQzgkE/gCBELQ==" - }, - "@tsconfig/node10": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", - "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "integrity": "sha512-c6JL6E3EcZJuNqKFz+KM+l9l5mpcQiKvTwgA3blt5glWJ8hjDk0yeHN3beE/MpqYIQ8UEX44ItQzgkE/gCBELQ==", + "license": "MIT", + "engines": { + "node": ">= 18.19.0" + }, + "peerDependencies": { + "@redis/client": "^5.12.1" + } }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "node_modules/@simple-libs/child-process-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@simple-libs/child-process-utils/-/child-process-utils-1.0.2.tgz", + "integrity": "sha512-/4R8QKnd/8agJynkNdJmNw2MBxuFTRcNFnE5Sg/G+jkSsV8/UBgULMzhizWWW42p8L5H7flImV2ATi79Ove2Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/stream-utils": "^1.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://ko-fi.com/dangreen" + } }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "node_modules/@simple-libs/stream-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@simple-libs/stream-utils/-/stream-utils-1.2.0.tgz", + "integrity": "sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://ko-fi.com/dangreen" + } }, - "@types/minimist": { + "node_modules/@types/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/node": { + "node_modules/@types/node": { "version": "25.6.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "dev": true, - "requires": { + "license": "MIT", + "peer": true, + "dependencies": { "undici-types": "~7.19.0" } }, - "@types/normalize-package-data": { + "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true - }, - "acorn-walk": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", - "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", "dev": true, - "requires": { - "acorn": "^8.11.0" - } + "license": "MIT" }, - "add-stream": { + "node_modules/add-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "after": { + "node_modules/after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==" + "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", + "license": "MIT" }, - "ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, + "license": "MIT", "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } + "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" } }, - "ansi-regex": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { - "color-convert": "^2.0.1" + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" }, - "array-ify": { + "node_modules/array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true + "dev": true, + "license": "MIT" }, - "arrify": { + "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "assembly-source": { + "node_modules/assembly-source": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assembly-source/-/assembly-source-1.0.0.tgz", "integrity": "sha512-G54OWV9A4xBC1iuUjOGAtNHr2R+IDS6MV+EuNyZLKb4NmRkOVTLhbAHfg0dDKTNWsco81aSMDMKHLnjytr62mw==", - "requires": { + "license": "MIT", + "dependencies": { "esprima": "^4.0.0", "is-options": "^1.0.1", "pascal-case": "^3.1.1" + }, + "engines": { + "node": ">=10" } }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "b4a": { + "node_modules/b4a": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", - "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==" + "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", - "requires": { + "license": "MIT", + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "requires": { - "fill-range": "^7.1.1" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { + "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 - }, - "cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "dev": true + "dev": true, + "license": "MIT" }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "camelcase": { + "node_modules/camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==" + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "camelcase-keys": { + "node_modules/camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", "quick-lru": "^4.0.1" }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } }, - "classifier": { + "node_modules/classifier": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/classifier/-/classifier-0.1.0.tgz", "integrity": "sha512-lHoacZqTxberxbsaT/bDkvUicTl6nVTqnM5X6PhCTCg6Y3uhd/lWqbtMvHwe0W0vGkPWCVw5NTUTi3SOlccaSA==", - "requires": { + "deprecated": "Package no longer supported. Contact support@npmjs.com for more info.", + "dependencies": { "redis": ">=0.7.0", "underscore": ">=1.1.0" + }, + "engines": { + "node": "*" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { + "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true - }, - "cluster-key-slot": { + "node_modules/cluster-key-slot": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==" + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } }, - "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==", + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { - "color-name": "~1.1.4" + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" } }, - "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 - }, - "commitizen": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.1.tgz", - "integrity": "sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==", - "dev": true, - "requires": { - "cachedir": "2.3.0", - "cz-conventional-changelog": "3.3.0", - "dedent": "0.7.0", - "detect-indent": "6.1.0", - "find-node-modules": "^2.1.2", - "find-root": "1.1.0", - "fs-extra": "9.1.0", - "glob": "7.2.3", - "inquirer": "8.2.5", - "is-utf8": "^0.2.1", - "lodash": "4.17.21", - "minimist": "1.2.7", - "strip-bom": "4.0.0", - "strip-json-comments": "3.1.1" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true - } - } + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" }, - "common-roots": { + "node_modules/common-roots": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/common-roots/-/common-roots-0.0.2.tgz", "integrity": "sha512-ZnqiSLPHOR+KheKcg1K4y31iVx8N3lmflfEtLUztmMR4bLE+0dSH9Notp31vZBpnCVdnmW8FycfKKW8NKFo1tg==", - "requires": { + "license": "MIT", + "dependencies": { "find-file-up": "~1.0.2", "path-is-inside": "~1.0.2" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=2.0.0" } }, - "compare-func": { + "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" } }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, - "concat-stream": { + "node_modules/concat-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, - "requires": { + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.0.2", "typedarray": "^0.0.6" } }, - "conventional-changelog": { + "node_modules/conventional-changelog": { "version": "3.1.25", "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "conventional-changelog-angular": "^5.0.12", "conventional-changelog-atom": "^2.0.8", "conventional-changelog-codemirror": "^2.0.8", @@ -779,59 +772,77 @@ "conventional-changelog-jquery": "^3.0.11", "conventional-changelog-jshint": "^2.0.9", "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" } }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "node_modules/conventional-changelog-angular": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.3.1.tgz", + "integrity": "sha512-6gfI3otXK5Ph5DfCOI1dblr+kN3FAm5a97hYoQkqNZxOaYa5WKfXH+AnpsmS+iUH2mgVC2Cg2Qw9m5OKcmNrIg==", "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" } }, - "conventional-changelog-atom": { + "node_modules/conventional-changelog-atom": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "conventional-changelog-codemirror": { + "node_modules/conventional-changelog-codemirror": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "conventional-changelog-config-spec": { + "node_modules/conventional-changelog-config-spec": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "node_modules/conventional-changelog-conventionalcommits": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-9.3.1.tgz", + "integrity": "sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw==", "dev": true, - "requires": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" } }, - "conventional-changelog-core": { + "node_modules/conventional-changelog-core": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "add-stream": "^1.0.0", "conventional-changelog-writer": "^5.0.0", "conventional-commits-parser": "^3.2.0", @@ -847,502 +858,1043 @@ "read-pkg-up": "^3.0.0", "through2": "^4.0.0" }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - } + "engines": { + "node": ">=10" } }, - "conventional-changelog-ember": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", - "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "node_modules/conventional-changelog-core/node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, - "requires": { - "q": "^1.5.1" - } - }, - "conventional-changelog-eslint": { - "version": "3.0.9", + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-core/node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-changelog-core/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-core/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-core/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/conventional-changelog-core/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-eslint": { + "version": "3.0.9", "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "conventional-changelog-express": { + "node_modules/conventional-changelog-express": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-changelog-writer/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-writer/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-writer/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-writer/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-writer/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/conventional-changelog-writer/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog/node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog/node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.4.0.tgz", + "integrity": "sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/stream-utils": "^1.2.0", + "meow": "^13.0.0" + }, + "bin": { + "conventional-commits-parser": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump/node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-recommended-bump/node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-recommended-bump/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-recommended-bump/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-recommended-bump/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-recommended-bump/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-recommended-bump/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" } }, - "conventional-changelog-jquery": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", - "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "requires": { - "q": "^1.5.1" + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "conventional-changelog-jshint": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", - "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true - }, - "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, + "license": "BSD-2-Clause", "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "conventional-commit-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", - "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", - "dev": true - }, - "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "node_modules/conventional-recommended-bump/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "node_modules/conventional-recommended-bump/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "requires": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" + "license": "ISC", + "engines": { + "node": ">=10" } }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } + "license": "MIT" }, - "cosmiconfig-typescript-loader": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-2.0.2.tgz", - "integrity": "sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==", + "node_modules/cosmiconfig": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", "dev": true, - "requires": { - "cosmiconfig": "^7", - "ts-node": "^10.8.1" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "cz-conventional-changelog": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", - "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", - "dev": true, - "requires": { - "@commitlint/load": ">6.1.1", - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "node_modules/cosmiconfig-typescript-loader": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.3.0.tgz", + "integrity": "sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jiti": "2.6.1" + }, + "engines": { + "node": ">=v18" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=9", + "typescript": ">=5" } }, - "dargs": { + "node_modules/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "dateformat": { + "node_modules/dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "decamelize-keys": { + "node_modules/decamelize-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, - "requires": { - "clone": "^1.0.2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true - }, - "detect-indent": { + "node_modules/detect-indent": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "detect-newline": { + "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", - "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "dot-prop": { + "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "dotgitignore": { + "node_modules/dotgitignore": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "find-up": "^3.0.0", "minimatch": "^3.0.4" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotgitignore/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "dotnet-bump": { + "node_modules/dotnet-bump": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/dotnet-bump/-/dotnet-bump-1.6.0.tgz", "integrity": "sha512-ILccmPZu2NmQ4Q1nIHDmILGsIbUsS0CbN4hW7SKMVcsOIQGP89kHIdpM3Z8BfRWYd+xz8+RMfkcQ3jlMiFcH8Q==", - "requires": { + "license": "MIT", + "dependencies": { "after": "0.8.2", "assembly-source": "^1.0.0", "common-roots": "0.0.2", @@ -1358,56 +1910,96 @@ "saxophonist": "^2.0.0", "semver": "^7.3.2", "vssln-parser": "0.1.4" + }, + "bin": { + "dotnet-bump": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "duplexer": { + "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" }, - "emoji-regex": { + "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 + "dev": true, + "license": "MIT" }, - "error-ex": { + "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/error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-arrayish": "^0.2.1" } }, - "es-errors": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "escalade": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "event-stream": { + "node_modules/event-stream": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.5.tgz", "integrity": "sha512-vyibDcu5JL20Me1fP734QBH/kenBGLZap2n0+XXM7mvuUPzJ20Ydqj1aKcIeMdri1p+PU+4yAKugjN8KCVst+g==", - "requires": { + "license": "MIT", + "dependencies": { "duplexer": "^0.1.1", "from": "^0.1.7", "map-stream": "0.0.7", @@ -1417,1388 +2009,1877 @@ "through": "^2.3.8" } }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "expand-tilde": { + "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "requires": { + "license": "MIT", + "dependencies": { "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "extend": { + "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "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.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-file-up": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-1.0.2.tgz", + "integrity": "sha512-spzIszRVDalArjm9/ZVRK1q9YW6WdX92RUIni/VqmhUqSvTkq6H+TgCarqvaJHOVt5fLpeIKJgb0L0pbCK2/9g==", + "license": "MIT", + "dependencies": { + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "license": "MIT" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "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/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-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "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 - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/get-pkg-repo/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/get-pkg-repo/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "requires": { - "to-regex-range": "^5.0.1" + "license": "ISC", + "engines": { + "node": ">=10" } }, - "find-file-up": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-1.0.2.tgz", - "integrity": "sha512-spzIszRVDalArjm9/ZVRK1q9YW6WdX92RUIni/VqmhUqSvTkq6H+TgCarqvaJHOVt5fLpeIKJgb0L0pbCK2/9g==", - "requires": { - "resolve-dir": "^1.0.0" + "node_modules/git-raw-commits": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-5.0.1.tgz", + "integrity": "sha512-Y+csSm2GD/PCSh6Isd/WiMjNAydu0VBiG9J7EdQsNA5P9uXvLayqjmTsNlK5Gs9IhblFZqOU0yid5Il5JPoLiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@conventional-changelog/git-client": "^2.6.0", + "meow": "^13.0.0" + }, + "bin": { + "git-raw-commits": "src/cli.js" + }, + "engines": { + "node": ">=18" } }, - "find-node-modules": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", - "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", "dev": true, - "requires": { - "findup-sync": "^4.0.0", - "merge": "^2.1.1" + "license": "MIT", + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } }, - "find-up": { + "node_modules/git-semver-tags/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "node_modules/git-semver-tags/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" - } + "license": "ISC" }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==" + "node_modules/git-semver-tags/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "node_modules/git-semver-tags/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "node_modules/git-semver-tags/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "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 + "node_modules/git-semver-tags/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } }, - "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 + "node_modules/git-semver-tags/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } }, - "get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "node_modules/git-semver-tags/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "requires": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-semver-tags/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "requires": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "node_modules/git-semver-tags/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, - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "node_modules/git-semver-tags/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "requires": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "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", + "engines": { + "node": ">=10" } }, - "gitconfiglocal": { + "node_modules/gitconfiglocal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", "dev": true, - "requires": { + "license": "BSD", + "dependencies": { "ini": "^1.3.2" } }, - "glob": { + "node_modules/gitconfiglocal/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dev": true, - "requires": { - "ini": "^1.3.4" + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "global-modules": { + "node_modules/global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { + "license": "MIT", + "dependencies": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "global-prefix": { + "node_modules/global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "requires": { + "license": "MIT", + "dependencies": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", "ini": "^1.3.4", "is-windows": "^1.0.1", "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" } }, - "graceful-fs": { + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "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 + "dev": true, + "license": "ISC" }, - "handlebars": { + "node_modules/handlebars": { "version": "4.7.9", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.9.tgz", "integrity": "sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", - "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "hard-rejection": { + "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "homedir-polyfill": { + "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { + "license": "MIT", + "dependencies": { "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "hosted-git-info": { + "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "husky": { + "node_modules/husky": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "import-fresh": { + "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "indent-string": { + "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, - "is-core-module": { + "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { + "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 + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "is-glob": { + "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==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } }, - "is-obj": { + "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "is-options": { + "node_modules/is-options": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-options/-/is-options-1.0.2.tgz", "integrity": "sha512-u+Ai74c8Q74aS8BuHwPdI1jptGOT1FQXgCq8/zv0xRuE+wRgSMEJLj8lVO8Zp9BeGb29BXY6AsNPinfqjkr7Fg==", - "requires": { + "license": "MIT", + "dependencies": { "b4a": "^1.1.1" } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-text-path": { + "node_modules/is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "is-windows": { + "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } }, - "js-tokens": { + "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 + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, - "json-parse-better-errors": { + "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, - "json-parse-even-better-errors": { + "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/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" }, - "json-stringify-safe": { + "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "dev": true, + "license": "ISC" }, - "json5": { + "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" - }, - "jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "jsonparse": { + "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 + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } }, - "kind-of": { + "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "language-classifier": { + "node_modules/language-classifier": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/language-classifier/-/language-classifier-0.0.1.tgz", "integrity": "sha512-myU10NLx/dfATa7b0NJiycU4jlU15fMLcnfXYEO6NPMhH1vHYKMp9eoRZaQMDTu3bz25bD31Q9klsf26oOW1BQ==", - "requires": { + "dependencies": { "classifier": "~0.1.0" } }, - "language-detect": { + "node_modules/language-detect": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/language-detect/-/language-detect-1.1.0.tgz", "integrity": "sha512-2kXHOATTovlwlh1LJE21DLyGiuvX6bK8CYw9kEyui2FeNBV3EYD2OE9h1ChuWNGXe/TGcm7PqpK/32S614R1Kg==", - "requires": { + "license": "MIT", + "dependencies": { "language-classifier": "0.0.1" } }, - "lines-and-columns": { + "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, - "load-json-file": { + "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", "pify": "^3.0.0", "strip-bom": "^3.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "requires": { - "p-locate": "^4.1.0" + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lodash": { + "node_modules/lodash": { "version": "4.18.1", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" }, - "lodash.ismatch": { + "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true + "dev": true, + "license": "MIT" }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", - "dev": true + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true, + "license": "MIT" }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } + "license": "MIT" }, - "longest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", - "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", - "dev": true + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true, + "license": "MIT" }, - "lower-case": { + "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { + "license": "MIT", + "dependencies": { "tslib": "^2.0.3" } }, - "lru-cache": { + "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "map-obj": { + "node_modules/map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==" - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "merge": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", + "license": "MIT" }, - "micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "min-indent": { + "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "requires": { + "license": "ISC", + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "minimist-options": { + "node_modules/minimist-options": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" } }, - "modify-values": { + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "neo-async": { + "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, - "no-case": { + "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { + "license": "MIT", + "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, - "normalize-package-data": { + "node_modules/normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, - "requires": { + "license": "BSD-2-Clause", + "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" } }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "once": { + "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==", - "requires": { + "license": "ISC", + "dependencies": { "wrappy": "1" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { - "p-try": "^2.0.0" + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "requires": { - "p-limit": "^2.2.0" + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-try": { + "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "parent-module": { + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-git-status": { + "node_modules/parse-git-status": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/parse-git-status/-/parse-git-status-0.1.0.tgz", - "integrity": "sha512-ngjxaxWtYrNIDYUWrCDcSAgtai3sELojyTauZVMyawYf+J9Cd6BvGQ/clGXrpmmFXkXj81E5zbOkGt8afsb+dw==" + "integrity": "sha512-ngjxaxWtYrNIDYUWrCDcSAgtai3sELojyTauZVMyawYf+J9Cd6BvGQ/clGXrpmmFXkXj81E5zbOkGt8afsb+dw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "parse-json": { + "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "parse-passwd": { + "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "pascal-case": { + "node_modules/pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { + "license": "MIT", + "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, - "path-exists": { + "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "path-is-inside": { + "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" - }, - "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 + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "pause-stream": { + "node_modules/pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "requires": { + "license": [ + "MIT", + "Apache2" + ], + "dependencies": { "through": "~2.3" } }, - "picocolors": { + "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 - }, - "picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true + "dev": true, + "license": "ISC" }, - "pify": { + "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, + "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "readable-stream": { + "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { + "license": "MIT", + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "redent": { + "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "redis": { + "node_modules/redis": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/redis/-/redis-5.12.1.tgz", "integrity": "sha512-LDsoVvb/CpoV9EN3FXvgvSHNJWuCIzl9MiO3ppOevuGLpSGJhwfQjpEwfFJcQvNSddHADDdZaWx0HnmMxRXG7g==", - "requires": { + "license": "MIT", + "dependencies": { "@redis/bloom": "5.12.1", "@redis/client": "5.12.1", "@redis/json": "5.12.1", "@redis/search": "5.12.1", "@redis/time-series": "5.12.1" + }, + "engines": { + "node": ">= 18.19.0" } }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "resolve": { + "node_modules/resolve": { "version": "1.22.12", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-dir": { + "node_modules/resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "requires": { + "license": "MIT", + "dependencies": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", "dev": true, - "requires": { - "global-dirs": "^0.1.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-series": { + "node_modules/run-series": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", - "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==" - }, - "rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } + "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "sax": { + "node_modules/sax": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", - "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==" + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } }, - "saxophonist": { + "node_modules/saxophonist": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/saxophonist/-/saxophonist-2.0.0.tgz", "integrity": "sha512-giWxUqGm3VdFxO4LaD+BTgec8dEEmm8Ysh6hRHn4r3VOw4yoz7hfOZWPteFu7vSXdK2BY5qAXdcwtAeziRH5OQ==", - "requires": { + "license": "MIT", + "dependencies": { "inherits": "^2.0.1", "readable-stream": "^3.5.0", "sax": "^1.1.4" } }, - "semver": { + "node_modules/semver": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" - }, - "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, - "requires": { - "shebang-regex": "^3.0.0" + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "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 - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "source-map": { + "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 + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "spdx-correct": { + "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-exceptions": { + "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 + "dev": true, + "license": "CC-BY-3.0" }, - "spdx-expression-parse": { + "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-license-ids": { + "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 + "dev": true, + "license": "CC0-1.0" }, - "split": { + "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { + "license": "MIT", + "dependencies": { "through": "2" + }, + "engines": { + "node": "*" } }, - "split2": { + "node_modules/split2": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "readable-stream": "^3.0.0" } }, - "standard-version": { + "node_modules/standard-version": { "version": "9.5.0", "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "chalk": "^2.4.2", "conventional-changelog": "3.1.25", "conventional-changelog-config-spec": "2.1.0", @@ -2814,434 +3895,429 @@ "stringify-package": "^1.0.1", "yargs": "^16.0.0" }, + "bin": { + "standard-version": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" } }, - "stream-combiner": { + "node_modules/stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "requires": { + "license": "MIT", + "dependencies": { "duplexer": "~0.1.1", "through": "~2.3.4" } }, - "string-width": { + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "stringify-package": { + "node_modules/stringify-package": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", - "dev": true + "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json", + "dev": true, + "license": "ISC" }, - "strip-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, - "requires": { + "license": "MIT", + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "strip-indent": { + "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { - "has-flag": "^4.0.0" + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "supports-preserve-symlinks-flag": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "text-extensions": { + "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" }, - "through2": { + "node_modules/through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "readable-stream": "3" } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/tinyexec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", "dev": true, - "requires": { - "is-number": "^7.0.0" + "license": "MIT", + "engines": { + "node": ">=18" } }, - "trim-newlines": { + "node_modules/trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "tslib": { + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, - "type-fest": { + "node_modules/type-fest": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "typedarray": { + "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "dev": true, + "license": "MIT" }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } }, - "uglify-js": { + "node_modules/uglify-js": { "version": "3.19.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, - "optional": true + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } }, - "underscore": { + "node_modules/underscore": { "version": "1.13.8", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", - "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==" + "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==", + "license": "MIT" }, - "undici-types": { + "node_modules/undici-types": { "version": "7.19.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", - "dev": true - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { - "punycode": "^2.1.0" - } + "license": "MIT", + "peer": true }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, - "validate-npm-package-license": { + "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, - "vssln-parser": { + "node_modules/vssln-parser": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/vssln-parser/-/vssln-parser-0.1.4.tgz", "integrity": "sha512-5t0IDc03/pKFY1iC5LTv0DLQgvo5Oa9e9FoqvuyisJwqxH4FepzcSen+/xmaBMsZNjKWzKnIpMeFzKQiL7TpWA==", - "requires": { + "license": "MIT", + "dependencies": { "camelcase": "^3.0.0", "event-stream": "^3.3.4", "extend": "^3.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { + "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { + "license": "ISC", + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true - }, - "wordwrap": { + "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT" }, - "wrap-ansi": { + "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/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" } }, - "wrappy": { + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "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==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "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 + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "yallist": { + "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 - }, - "yaml": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", - "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", - "dev": true + "dev": true, + "license": "ISC" }, - "yargs": { + "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -3250,32 +4326,32 @@ "y18n": "^5.0.5", "yargs-parser": "^21.1.1" }, - "dependencies": { - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } + "engines": { + "node": ">=12" } }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } }, - "yocto-queue": { + "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 2a7c76831..d645ee6d7 100644 --- a/package.json +++ b/package.json @@ -45,11 +45,6 @@ "gen:changelog": "cd npm && standard-version && cd ..", "commit": "git-cz" }, - "config": { - "commitizen": { - "path": "@commitlint/cz-commitlint" - } - }, "author": "Marco Silva", "license": "BSD-3-Clause", "dependencies": { @@ -57,10 +52,8 @@ "rimraf": "^3.0.2" }, "devDependencies": { - "@commitlint/cli": "^16.3.0", - "@commitlint/config-conventional": "^16.2.4", - "@commitlint/cz-commitlint": "^16.3.0", - "commitizen": "^4.2.5", + "@commitlint/cli": "^20.5.0", + "@commitlint/config-conventional": "^20.5.0", "husky": "^7.0.4", "standard-version": "^9.5.0" } From b874e118f951c2c93be1b435b3449fcd374e6812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Thu, 16 Apr 2026 13:07:05 +0000 Subject: [PATCH 19/20] build: update CI workflow to trigger on development branch only --- .github/workflows/ci-tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 1603ae846..c518ca1d3 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -4,7 +4,6 @@ on: workflow_dispatch: push: branches: - - main - development paths-ignore: - 'features/**' From 9a9df3f06fb8910d07c1eded436f794573e05b67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oct=C3=A1vio=20Pereira?= Date: Mon, 4 May 2026 10:08:03 +0000 Subject: [PATCH 20/20] chore: add missing dotnet6 --- .devcontainer/devcontainer.json | 8 +++++--- tests/Fixtures/new/global.json | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f81737178..ab2c2ef71 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,7 +5,7 @@ "features": { "ghcr.io/devcontainers/features/dotnet": { "version": "10.0", - "additionalVersions": ["8.0"] + "additionalVersions": ["6.0", "8.0"] }, "ghcr.io/devcontainers/features/node": { "version": "18", @@ -27,11 +27,13 @@ "EditorConfig.EditorConfig", "redhat.vscode-yaml", "davidanson.vscode-markdownlint", - "github.vscode-github-actions" + "github.vscode-github-actions", + "FullStackSpider.visual-nuget" ] }, "settings": { - "dotnet.defaultSolution": "src/cmf-cli.slnx", + "dotnet.solution.autoOpen": "src/cmf-cli.slnx", + "csharp.experimental.debug.hotReload": true, "editor.formatOnSave": true, "editor.rulers": [120], "files.trimTrailingWhitespace": true, diff --git a/tests/Fixtures/new/global.json b/tests/Fixtures/new/global.json index 408e96b08..ffffdc0ce 100644 --- a/tests/Fixtures/new/global.json +++ b/tests/Fixtures/new/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.201", + "version": "6.0.201", "rollForward": "latestFeature" } } \ No newline at end of file