diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index a84619a4..00000000 --- a/.appveyor.yml +++ /dev/null @@ -1,17 +0,0 @@ -image: Visual Studio 2019 -init: - - git config --global core.autocrlf input -build_script: - - cmd: choco install dotnetcore-sdk --version=3.1.102 - - ps: .\build.ps1 -test: off -after_build: - - "SET PATH=C:\\Python34;C:\\Python34\\Scripts;%PATH%" - - pip install codecov - - codecov -f "./coverage/solution.cobertura" -artifacts: - - path: ./artifacts/nuget/*.nupkg -cache: - - tools -> build.cake, tools/packages.config -nuget: - project_feed: true diff --git a/.build/.build.csproj b/.build/.build.csproj index f535b669..4d4b4594 100644 --- a/.build/.build.csproj +++ b/.build/.build.csproj @@ -2,7 +2,7 @@ Exe net8.0 - + False CS0649;CS0169 @@ -12,7 +12,7 @@ - + diff --git a/.build/Build.cs b/.build/Build.cs index b4b5e1b7..f100cf38 100644 --- a/.build/Build.cs +++ b/.build/Build.cs @@ -1,4 +1,3 @@ -using JetBrains.Annotations; using Nuke.Common; using Nuke.Common.CI; using Nuke.Common.Execution; @@ -13,7 +12,6 @@ [UnsetVisualStudioEnvironmentVariables] [PackageIcon("https://raw.githubusercontent.com/RocketSurgeonsGuild/graphics/master/png/social-square-thrust-rounded.png")] //[EnsureGitHooks(GitHook.PreCommit)] -[EnsureReadmeIsUpdated("Readme.md")] [DotNetVerbosityMapping] [MSBuildVerbosityMapping] [NuGetVerbosityMapping] @@ -26,13 +24,11 @@ public partial class Pipeline : NukeBuild, ICanPackWithDotNetCore, IHaveDataCollector, ICanClean, - ICanLintStagedFiles, - ICanDotNetFormat, - ICanUpdateReadme, + IHaveCommonLintTargets, + // IHavePublicApis, IGenerateCodeCoverageReport, IGenerateCodeCoverageSummary, IGenerateCodeCoverageBadges, - ICanRegenerateBuildConfiguration, IHaveConfiguration { @@ -43,10 +39,7 @@ public partial class Pipeline : NukeBuild, /// - Microsoft VisualStudio https://nuke.build/visualstudio /// - Microsoft VSCode https://nuke.build/vscode /// - public static int Main() - { - return Execute(x => x.Default); - } + public static int Main() => Execute(x => x.Default); public Target Default => _ => _ .DependsOn(Restore) @@ -54,28 +47,24 @@ public static int Main() .DependsOn(Test) .DependsOn(Pack); - [OptionalGitRepository] - public GitRepository? GitRepository { get; } + public Target Build => _ => _; + public Target Pack => _ => _; + public Target Clean => _ => _; + public Target Lint => _ => _.Inherit(x => x.Lint); + public Target Restore => _ => _; + public Target Test => _ => _; - [Solution(GenerateProjects = true)] - private Solution Solution { get; } = null!; - - public Target Build => _ => _.Inherit(x => x.CoreBuild); - - public Target Pack => _ => _ - .Inherit(x => x.CorePack) - .DependsOn(Clean) - .After(Test); + /// + /// Only run the JetBrains cleanup code when running on the server + /// + public Target JetBrainsCleanupCode => _ => _ + .Inherit(x => x.JetBrainsCleanupCode) + .OnlyWhenStatic(() => IsServerBuild); - public Target Clean => _ => _.Inherit(x => x.Clean); - public Target Restore => _ => _.Inherit(x => x.CoreRestore); + [Solution(GenerateProjects = true)] private Solution Solution { get; } = null!; Nuke.Common.ProjectModel.Solution IHaveSolution.Solution => Solution; - [ComputedGitVersion] - public GitVersion GitVersion { get; } = null!; - - public Target Test => _ => _.Inherit(x => x.CoreTest); - - [Parameter("Configuration to build")] - public Configuration Configuration { get; } = IsLocalBuild ? Configuration.Debug : Configuration.Release; -} \ No newline at end of file + [OptionalGitRepository] public GitRepository? GitRepository { get; } + [GitVersion(NoFetch = true, NoCache = false)] public GitVersion GitVersion { get; } = null!; + [Parameter("Configuration to build")] public Configuration Configuration { get; } = IsLocalBuild ? Configuration.Debug : Configuration.Release; +} diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index cf27026f..9f705bc9 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -4,31 +4,43 @@ "tools": { "gitversion.tool": { "version": "6.0.2", - "commands": ["dotnet-gitversion"] + "commands": ["dotnet-gitversion"], + "rollForward": false }, "dotnet-reportgenerator-globaltool": { "version": "5.3.9", - "commands": ["reportgenerator"] + "commands": ["reportgenerator"], + "rollForward": false }, "nuke.globaltool": { "version": "8.0.0", - "commands": ["nuke"] + "commands": ["nuke"], + "rollForward": false }, "codecov.tool": { "version": "1.13.0", - "commands": ["codecov"] + "commands": ["codecov"], + "rollForward": false }, "jetbrains.resharper.globaltools": { "version": "2024.2.3", - "commands": ["jb"] + "commands": ["jb"], + "rollForward": false }, "nukeeper": { "version": "0.35.0", - "commands": ["nukeeper"] + "commands": ["nukeeper"], + "rollForward": false }, "dotnet-outdated-tool": { "version": "4.6.4", - "commands": ["dotnet-outdated"] + "commands": ["dotnet-outdated"], + "rollForward": false + }, + "husky": { + "version": "0.7.1", + "commands": ["husky"], + "rollForward": false } } } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ea52de29..fb26cf26 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -118,19 +118,19 @@ jobs: - name: 🎁 Restore id: restore run: | - dotnet nuke Restore --skip + dotnet nuke DotnetCoreRestore Restore --skip - name: ⚙️ Build id: build run: | - dotnet nuke Build --skip + dotnet nuke DotnetCoreBuild Build --skip - name: 🚦 Test id: test run: | - dotnet nuke Test TriggerCodeCoverageReports GenerateCodeCoverageReportCobertura GenerateCodeCoverageBadges GenerateCodeCoverageSummary GenerateCodeCoverageReport --skip + dotnet nuke DotnetCoreTest Test TriggerCodeCoverageReports GenerateCodeCoverageReportCobertura GenerateCodeCoverageBadges GenerateCodeCoverageSummary GenerateCodeCoverageReport --skip - name: 📦 Pack id: pack run: | - dotnet nuke Pack --skip + dotnet nuke DotnetCorePack Pack --skip - name: 🏺 Publish coverage data if: always() uses: actions/upload-artifact@v4.4.0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 80dfd633..2d10dbf8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -56,9 +56,6 @@ jobs: id: commit-message run: | echo "message=$(git show -s --format=%s)" >> "$GITHUB_OUTPUT" - - name: npm ci - run: | - npm ci --ignore-scripts - name: 🔨 Use .NET Core 6.0 SDK uses: actions/setup-dotnet@v4 with: @@ -74,18 +71,54 @@ jobs: - name: ⚒️ dotnet tool restore run: | dotnet tool restore + - name: 🎁 Restore + id: restore + run: | + dotnet nuke DotnetCoreRestore Restore --skip + - name: Lint + id: lint + run: | + dotnet nuke Lint --skip - name: Regenerate Build Configurations id: regenerateBuildConfigurations run: | dotnet nuke RegenerateBuildConfigurations --skip - - name: Lint Staged - id: lintStaged + - name: Lint Public Api Analyzers + id: lintPublicApiAnalyzers + run: | + dotnet nuke LintPublicApiAnalyzers --skip + - name: Prettier + id: prettier + run: | + dotnet nuke Prettier --skip + - name: Dotnet Format + id: dotnetFormat + run: | + dotnet nuke DotnetFormat --skip + - name: Jet Brains Cleanup Code + id: jetBrainsCleanupCode + run: | + dotnet nuke JetBrainsCleanupCode --skip + - name: Generate Solution Items + id: generateSolutionItems + run: | + dotnet nuke GenerateSolutionItems --skip + - name: Generate Readme + id: generateReadme + run: | + dotnet nuke GenerateReadme --skip + - name: Move Unshipped to Shipped + id: moveUnshippedToShipped + run: | + dotnet nuke MoveUnshippedToShipped --skip + - name: Lint Git Add + id: lintGitAdd run: | - dotnet nuke LintStaged --skip + dotnet nuke LintGitAdd --skip - name: Add & Commit env: GITHUB_TOKEN: '${{ secrets.RSG_BOT_TOKEN }}' - if: "'${{ steps.commit-message.outputs.message }}' == 'Automatically linting code'" + if: "contains('${{ steps.commit-message.outputs.message }}', 'Automatically linting code')" uses: planetscale/ghcommit-action@v0.1.44 with: commit_message: 'Automatically linting code' diff --git a/.husky/pre-commit b/.husky/pre-commit index 8a1d88cc..6edafb37 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,8 +1,5 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -output=$(git diff --cached --name-only | wc -l) -if [ $output -gt 0 ]; then - dotnet nuke lint-staged -fi - +dotnet nuke lint +dotnet husky run --group pre-commit diff --git a/.husky/task-runner.json b/.husky/task-runner.json new file mode 100644 index 00000000..29f0a0c6 --- /dev/null +++ b/.husky/task-runner.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://alirezanet.github.io/Husky.Net/schema.json", + "variables": [], + "tasks": [] +} diff --git a/.lintstagedrc.js b/.lintstagedrc.js deleted file mode 100644 index bfc63864..00000000 --- a/.lintstagedrc.js +++ /dev/null @@ -1,9 +0,0 @@ -if (!process.env.NUKE_BUILD_ASSEMBLY) { - throw new Error("Environment variable 'NUKE_BUILD_ASSEMBLY' is not set."); -} - -module.exports = { - '!(*verified|*received).cs': filenames => [`dotnet ${process.env.NUKE_BUILD_ASSEMBLY} lint --lint-files ${filenames.join(' ')}`], - '*.{csproj,targets,props,xml}': filenames => [`prettier --write '${filenames.join(`' '`)}'`], - '*.{js,ts,jsx,tsx,json,yml,yaml}': filenames => [`prettier --write '${filenames.join(`' '`)}'`], -}; diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index 5ee82590..9315b67a 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -89,26 +89,32 @@ "enum": [ "Build", "Clean", - "CoreBuild", - "CorePack", - "CoreRestore", - "CoreTest", + "CleanWellKnownTemporaryFiles", "Default", - "DotNetFormat", + "DotnetCoreBuild", + "DotnetCorePack", + "DotnetCoreRestore", + "DotnetCoreTest", + "DotnetFormat", "DotnetToolRestore", "GenerateCodeCoverageBadges", "GenerateCodeCoverageReport", "GenerateCodeCoverageReportCobertura", "GenerateCodeCoverageSummary", "GenerateReadme", + "GenerateSolutionItems", + "HuskyLint", "JetBrainsCleanupCode", "Lint", "LintGitAdd", - "LintStaged", + "LintPublicApiAnalyzers", + "MoveUnshippedToShipped", "Pack", "PostLint", + "Prettier", "RegenerateBuildConfigurations", "Restore", + "ShipPublicApis", "Test", "TriggerCodeCoverageReports" ] @@ -126,26 +132,32 @@ "enum": [ "Build", "Clean", - "CoreBuild", - "CorePack", - "CoreRestore", - "CoreTest", + "CleanWellKnownTemporaryFiles", "Default", - "DotNetFormat", + "DotnetCoreBuild", + "DotnetCorePack", + "DotnetCoreRestore", + "DotnetCoreTest", + "DotnetFormat", "DotnetToolRestore", "GenerateCodeCoverageBadges", "GenerateCodeCoverageReport", "GenerateCodeCoverageReportCobertura", "GenerateCodeCoverageSummary", "GenerateReadme", + "GenerateSolutionItems", + "HuskyLint", "JetBrainsCleanupCode", "Lint", "LintGitAdd", - "LintStaged", + "LintPublicApiAnalyzers", + "MoveUnshippedToShipped", "Pack", "PostLint", + "Prettier", "RegenerateBuildConfigurations", "Restore", + "ShipPublicApis", "Test", "TriggerCodeCoverageReports" ] diff --git a/Directory.Build.props b/Directory.Build.props index ae5cc7eb..8e8d7f2f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -14,7 +14,6 @@ Tags --> preview - true strict enable AllEnabledByDefault @@ -47,6 +46,9 @@ + + + diff --git a/Directory.Build.targets b/Directory.Build.targets index ec49c280..0a62ed6b 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,33 +1,7 @@  - - - - - - - - - + + + + diff --git a/Directory.Packages.props b/Directory.Packages.props index 89eb203b..586d95d5 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,31 +1,37 @@ - + + + true + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + - - - @@ -44,29 +50,23 @@ - - - - - - + Project="$(MSBuildThisFileDirectory)/Directory.Packages.support.props" + Condition="Exists('$(MSBuildThisFileDirectory)/Directory.Packages.support.props')" + /> diff --git a/NuGet.config b/NuGet.config index 1ee7be86..224fd5b2 100644 --- a/NuGet.config +++ b/NuGet.config @@ -1,4 +1,4 @@ - + diff --git a/Testing.sln b/Testing.sln index 351ec5df..84230442 100644 --- a/Testing.sln +++ b/Testing.sln @@ -89,6 +89,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".husky", ".husky", "{13ED04AE-B6C9-4D28-B768-2740E053BC69}" ProjectSection(SolutionItems) = preProject .husky/pre-commit = .husky/pre-commit + .husky/task-runner.json = .husky/task-runner.json EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".vscode", ".vscode", "{2E4EA52F-4835-4D34-A6F5-650042213443}" diff --git a/build.ps1 b/build.ps1 index 61754e89..2e271e0a 100755 --- a/build.ps1 +++ b/build.ps1 @@ -1,6 +1,6 @@ [CmdletBinding()] Param( - [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] + [Parameter(Position = 0, Mandatory = $false, ValueFromRemainingArguments = $true)] [string[]]$BuildArguments ) @@ -13,7 +13,9 @@ $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent # CONFIGURATION ########################################################################### +$IsCI = $env:CI -eq "true" $BuildProjectFile = "$PSScriptRoot\.build\.build.csproj" +$ExePath = "$PSScriptRoot\.build\bin\Debug\.build.exe" $TempDirectory = "$PSScriptRoot\\.nuke\temp" $DotNetGlobalFile = "$PSScriptRoot\\global.json" @@ -35,7 +37,7 @@ function ExecSafe([scriptblock] $cmd) { # If dotnet CLI is installed globally and it matches requested version, use for execution if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and ` - $(dotnet --version) -and $LASTEXITCODE -eq 0) { + $(dotnet --version) -and $LASTEXITCODE -eq 0) { $env:DOTNET_EXE = (Get-Command "dotnet").Path } else { @@ -57,13 +59,23 @@ else { $DotNetDirectory = "$TempDirectory\dotnet-win" if (!(Test-Path variable:DotNetVersion)) { ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath } - } else { + } + else { ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath } } $env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe" } -Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)" +# only execute the build if not running in CI or if running in CI and the project has not been built +if ($IsCI) { + if (-not (Test-Path "$ExePath")) { + ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } + New-Item -Type File = "$PSScriptRoot\.nuke\temp\ci" | Out-Null + } +} +else { + Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)" + ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } +} -ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments } diff --git a/build.sh b/build.sh index 75f7d993..c485bd5e 100755 --- a/build.sh +++ b/build.sh @@ -9,6 +9,11 @@ SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) # CONFIGURATION ########################################################################### +ISCI=false +if [ "$CI" == "true" ]; then + ISCI=true +fi +EXEPATH="$SCRIPT_DIR/.build/bin/Debug/.build" BUILD_PROJECT_FILE="$SCRIPT_DIR/.build/.build.csproj" TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp" @@ -56,7 +61,16 @@ else export DOTNET_EXE="$DOTNET_DIRECTORY/dotnet" fi -echo "Microsoft (R) .NET Core SDK version $("$DOTNET_EXE" --version)" -"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet +# only execute the build if not running in CI or if running in CI and the project has not been built +if [ "$ISCI" == "true" ]; then + if [ ! -f "$EXEPATH" ]; then + echo "Microsoft (R) .NET Core SDK version $("$DOTNET_EXE" --version)" + "$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet + fi +else + echo "Microsoft (R) .NET Core SDK version $("$DOTNET_EXE" --version)" + "$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet +fi + "$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@" diff --git a/package-lock.json b/package-lock.json index 4dbeee57..edfe4acc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,10 +6,7 @@ "": { "devDependencies": { "@prettier/plugin-xml": "3.4.1", - "husky": "9.1.5", - "lint-staged": "^15.1.0", - "prettier": "3.3.3", - "which": "^4.0.0" + "prettier": "3.3.3" } }, "node_modules/@prettier/plugin-xml": { @@ -33,71 +30,6 @@ "chevrotain": "7.1.1" } }, - "node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/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, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/chevrotain": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", @@ -107,499 +39,6 @@ "regexp-to-ast": "0.5.0" } }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", - "dev": true, - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true - }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/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, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/husky": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.5.tgz", - "integrity": "sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==", - "dev": true, - "license": "MIT", - "bin": { - "husky": "bin.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lint-staged": { - "version": "15.2.10", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz", - "integrity": "sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "~5.3.0", - "commander": "~12.1.0", - "debug": "~4.3.6", - "execa": "~8.0.1", - "lilconfig": "~3.1.2", - "listr2": "~8.2.4", - "micromatch": "~4.0.8", - "pidtree": "~0.6.0", - "string-argv": "~0.3.2", - "yaml": "~2.5.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": ">=18.12.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/listr2": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/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/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/prettier": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", @@ -621,208 +60,6 @@ "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", "dev": true - }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", - "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", - "dev": true, - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } } } } diff --git a/package.json b/package.json index 7530e99d..479aa7f1 100644 --- a/package.json +++ b/package.json @@ -2,12 +2,6 @@ "private": true, "devDependencies": { "@prettier/plugin-xml": "3.4.1", - "husky": "9.1.5", - "lint-staged": "^15.1.0", - "prettier": "3.3.3", - "which": "^4.0.0" - }, - "scripts": { - "prepare": "husky" + "prettier": "3.3.3" } } diff --git a/src/Analyzers/Rocket.Surgery.Extensions.Testing.Analyzers.csproj b/src/Analyzers/Rocket.Surgery.Extensions.Testing.Analyzers.csproj index c5219af2..7fd96ce4 100644 --- a/src/Analyzers/Rocket.Surgery.Extensions.Testing.Analyzers.csproj +++ b/src/Analyzers/Rocket.Surgery.Extensions.Testing.Analyzers.csproj @@ -5,7 +5,6 @@ true - diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index cfebec20..1cd1db7f 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -1,3 +1,7 @@ - - + + + + + \ No newline at end of file diff --git a/src/Testing.AutoFixtures/Rocket.Surgery.Extensions.Testing.AutoFixtures.csproj b/src/Testing.AutoFixtures/Rocket.Surgery.Extensions.Testing.AutoFixtures.csproj index 6102b959..8015625f 100644 --- a/src/Testing.AutoFixtures/Rocket.Surgery.Extensions.Testing.AutoFixtures.csproj +++ b/src/Testing.AutoFixtures/Rocket.Surgery.Extensions.Testing.AutoFixtures.csproj @@ -7,13 +7,12 @@ true true Generated - + - diff --git a/src/Testing.FakeItEasy/Rocket.Surgery.Extensions.Testing.FakeItEasy.csproj b/src/Testing.FakeItEasy/Rocket.Surgery.Extensions.Testing.FakeItEasy.csproj index 387f43cf..4c3674d3 100644 --- a/src/Testing.FakeItEasy/Rocket.Surgery.Extensions.Testing.FakeItEasy.csproj +++ b/src/Testing.FakeItEasy/Rocket.Surgery.Extensions.Testing.FakeItEasy.csproj @@ -8,7 +8,6 @@ - diff --git a/src/Testing.NSubstitute/Rocket.Surgery.Extensions.Testing.NSubstitute.csproj b/src/Testing.NSubstitute/Rocket.Surgery.Extensions.Testing.NSubstitute.csproj index 49b4790e..6dc0462d 100644 --- a/src/Testing.NSubstitute/Rocket.Surgery.Extensions.Testing.NSubstitute.csproj +++ b/src/Testing.NSubstitute/Rocket.Surgery.Extensions.Testing.NSubstitute.csproj @@ -9,7 +9,6 @@ - diff --git a/src/Testing.SourceGenerators/Rocket.Surgery.Extensions.Testing.SourceGenerators.csproj b/src/Testing.SourceGenerators/Rocket.Surgery.Extensions.Testing.SourceGenerators.csproj index f6323d6f..9b667c51 100644 --- a/src/Testing.SourceGenerators/Rocket.Surgery.Extensions.Testing.SourceGenerators.csproj +++ b/src/Testing.SourceGenerators/Rocket.Surgery.Extensions.Testing.SourceGenerators.csproj @@ -5,9 +5,8 @@ false true - - - + + diff --git a/src/Testing/Rocket.Surgery.Extensions.Testing.csproj b/src/Testing/Rocket.Surgery.Extensions.Testing.csproj index dc3d3217..1289fa11 100644 --- a/src/Testing/Rocket.Surgery.Extensions.Testing.csproj +++ b/src/Testing/Rocket.Surgery.Extensions.Testing.csproj @@ -7,7 +7,6 @@ - diff --git a/test/Analyzers.Tests/Analyzers.Tests.csproj b/test/Analyzers.Tests/Analyzers.Tests.csproj index 7d83a581..866f0a76 100644 --- a/test/Analyzers.Tests/Analyzers.Tests.csproj +++ b/test/Analyzers.Tests/Analyzers.Tests.csproj @@ -3,7 +3,6 @@ net6.0;net8.0 - diff --git a/test/Directory.Build.targets b/test/Directory.Build.targets index d8d35253..1da5db5f 100644 --- a/test/Directory.Build.targets +++ b/test/Directory.Build.targets @@ -3,12 +3,9 @@ - - - @@ -17,4 +14,4 @@ Project="../src/Testing.Coverlet/build/Rocket.Surgery.Extensions.Testing.Coverlet.targets" /> - \ No newline at end of file + diff --git a/test/Testing.AutoFixtures.Tests/Rocket.Surgery.Extensions.Testing.AutoFixtures.Tests.csproj b/test/Testing.AutoFixtures.Tests/Rocket.Surgery.Extensions.Testing.AutoFixtures.Tests.csproj index b30c38f0..6a7be878 100644 --- a/test/Testing.AutoFixtures.Tests/Rocket.Surgery.Extensions.Testing.AutoFixtures.Tests.csproj +++ b/test/Testing.AutoFixtures.Tests/Rocket.Surgery.Extensions.Testing.AutoFixtures.Tests.csproj @@ -10,7 +10,6 @@ - @@ -20,8 +19,8 @@ - - + + diff --git a/test/Testing.Tests/Fixtures/Includes_XUnit_Implictly/FakeXUnit.csproj b/test/Testing.Tests/Fixtures/Includes_XUnit_Implictly/FakeXUnit.csproj index e2acc5d1..41b97d78 100644 --- a/test/Testing.Tests/Fixtures/Includes_XUnit_Implictly/FakeXUnit.csproj +++ b/test/Testing.Tests/Fixtures/Includes_XUnit_Implictly/FakeXUnit.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 enable enable false