diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 79f899d7..2e38af4a 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "fantomas": { - "version": "6.3.15", + "version": "7.0.0", "commands": [ "fantomas" ], diff --git a/build.fsx b/build.fsx index 04370b25..045455a4 100644 --- a/build.fsx +++ b/build.fsx @@ -13,9 +13,9 @@ let astPort = 7412 let oakPort = 8904 let fantomasMainPort = 11084 let fantomasPreviewPort = 12007 -let fantomasV4Port = 10707 let fantomasV5Port = 11009 let fantomasV6Port = 13042 +let fantomasV7Port = 10707 let pwd = __SOURCE_DIRECTORY__ let fantomasDepDir = pwd ".deps" "fantomas" let previewBranch = "v7.0" @@ -101,9 +101,9 @@ let setViteToProduction () = setEnv "VITE_AST_BACKEND" $"{mainStageUrl}/ast-viewer" setEnv "VITE_OAK_BACKEND" $"{mainStageUrl}/oak-viewer" - setEnv "VITE_FANTOMAS_V4" $"{mainStageUrl}/fantomas/v4" setEnv "VITE_FANTOMAS_V5" $"{mainStageUrl}/fantomas/v5" setEnv "VITE_FANTOMAS_V6" $"{mainStageUrl}/fantomas/v6" + setEnv "VITE_FANTOMAS_V7" $"{mainStageUrl}/fantomas/v7" setEnv "VITE_FANTOMAS_MAIN" $"{mainStageUrl}/fantomas/main" setEnv "VITE_FANTOMAS_PREVIEW" $"{mainStageUrl}/fantomas/preview" @@ -139,9 +139,9 @@ pipeline "Build" { stage "publish lambdas" { stage "parallel ones" { paralle - run (publishLambda "FantomasOnlineV4") run (publishLambda "FantomasOnlineV5") run (publishLambda "FantomasOnlineV6") + run (publishLambda "FantomasOnlineV7") run (publishLambda "ASTViewer") } run (publishLambda "FantomasOnlineMain") @@ -245,9 +245,9 @@ let prepareEnvironmentVariables = setEnv "NODE_ENV" "development" setEnv "VITE_AST_BACKEND" (localhostBackend astPort "ast-viewer") setEnv "VITE_OAK_BACKEND" (localhostBackend oakPort "oak-viewer") - setEnv "VITE_FANTOMAS_V4" (localhostBackend fantomasV4Port "fantomas/v4") setEnv "VITE_FANTOMAS_V5" (localhostBackend fantomasV5Port "fantomas/v5") setEnv "VITE_FANTOMAS_V6" (localhostBackend fantomasV6Port "fantomas/v6") + setEnv "VITE_FANTOMAS_V7" (localhostBackend fantomasV7Port "fantomas/v7") setEnv "VITE_FANTOMAS_MAIN" (localhostBackend fantomasMainPort "fantomas/main") setEnv "VITE_FANTOMAS_PREVIEW" (localhostBackend fantomasPreviewPort "fantomas/preview") return 0 @@ -262,9 +262,9 @@ pipeline "Watch" { paralle run (runLambda "ASTViewer") run (runLambda "OakViewer") - run (runLambda "FantomasOnlineV4") run (runLambda "FantomasOnlineV5") run (runLambda "FantomasOnlineV6") + run (runLambda "FantomasOnlineV7") run (runLambda "FantomasOnlineMain") run (runLambda "FantomasOnlinePreview") stage "frontend" { @@ -297,9 +297,9 @@ pipeline "Start" { paralle runPublishedLambda "ASTViewer" runPublishedLambda "OakViewer" - runPublishedLambda "FantomasOnlineV4" runPublishedLambda "FantomasOnlineV5" runPublishedLambda "FantomasOnlineV6" + runPublishedLambda "FantomasOnlineV7" runPublishedLambda "FantomasOnlineMain" runPublishedLambda "FantomasOnlinePreview" stage "frontend" { diff --git a/fantomas-tools.sln b/fantomas-tools.sln index 98dafa51..d24bdc76 100644 --- a/fantomas-tools.sln +++ b/fantomas-tools.sln @@ -13,7 +13,7 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "ASTViewer", "src\server\AST EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FantomasOnlineMain", "src\server\FantomasOnlineMain\FantomasOnlineMain.fsproj", "{5D394D9E-CBEF-40CD-9EBD-ECC624A68665}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FantomasOnlineV4", "src\server\FantomasOnlineV4\FantomasOnlineV4.fsproj", "{691DC36D-C0CC-481B-AA25-4E7C6C35E73D}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FantomasOnlineV7", "src\server\FantomasOnlineV7\FantomasOnlineV7.fsproj", "{691DC36D-C0CC-481B-AA25-4E7C6C35E73D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".deps", ".deps", "{9F0DEF2C-4315-4E09-AE92-A5A422C24709}" EndProject diff --git a/infrastructure/Program.fs b/infrastructure/Program.fs index 1bacc484..0a6e2606 100644 --- a/infrastructure/Program.fs +++ b/infrastructure/Program.fs @@ -94,11 +94,6 @@ let getAllLambdas (lastSha, lastTime) = "OakViewer" [ mkLambdaInfo "GetVersion" "GET" "/oak-viewer/version" List.empty mkLambdaInfo "GetOak" "POST" "/oak-viewer/get-oak" List.empty ] - mkLambdaProject - "FantomasOnlineV4" - [ mkLambdaInfo "GetVersion" "GET" "/fantomas/v4/version" List.empty - mkLambdaInfo "GetOptions" "GET" "/fantomas/v4/options" List.empty - mkLambdaInfo "PostFormat" "POST" "/fantomas/v4/format" List.empty ] mkLambdaProject "FantomasOnlineV5" [ mkLambdaInfo "GetVersion" "GET" "/fantomas/v5/version" List.empty @@ -109,6 +104,11 @@ let getAllLambdas (lastSha, lastTime) = [ mkLambdaInfo "GetVersion" "GET" "/fantomas/v6/version" List.empty mkLambdaInfo "GetOptions" "GET" "/fantomas/v6/options" List.empty mkLambdaInfo "PostFormat" "POST" "/fantomas/v6/format" List.empty ] + mkLambdaProject + "FantomasOnlineV7" + [ mkLambdaInfo "GetVersion" "GET" "/fantomas/v7/version" List.empty + mkLambdaInfo "GetOptions" "GET" "/fantomas/v7/options" List.empty + mkLambdaInfo "PostFormat" "POST" "/fantomas/v7/format" List.empty ] mkLambdaProject "FantomasOnlineMain" [ mkLambdaInfo diff --git a/src/client/fsharp/FantomasOnline/Model.fs b/src/client/fsharp/FantomasOnline/Model.fs index 6918213a..3db25fb1 100644 --- a/src/client/fsharp/FantomasOnline/Model.fs +++ b/src/client/fsharp/FantomasOnline/Model.fs @@ -4,11 +4,11 @@ open FantomasOnline.Shared open FantomasTools.Client type FantomasMode = - | V4 | V5 | V6 + | V7 | Main // main branch - | Preview // v7.0 branch + | Preview // also main branch type Msg = | Bubble of BubbleMessage diff --git a/src/client/fsharp/FantomasOnline/State.fs b/src/client/fsharp/FantomasOnline/State.fs index 754cf847..78d8d95f 100644 --- a/src/client/fsharp/FantomasOnline/State.fs +++ b/src/client/fsharp/FantomasOnline/State.fs @@ -9,21 +9,15 @@ open FantomasTools.Client.FantomasOnline.Model open Fetch open Thoth.Json -[] -let private v2Backend: string = jsNative - -[] -let private v3Backend: string = jsNative - -[] -let private v4Backend: string = jsNative - [] let private v5Backend: string = jsNative [] let private v6Backend: string = jsNative +[] +let private v7Backend: string = jsNative + [] let private mainBackend: string = jsNative @@ -32,9 +26,9 @@ let private previewBackend: string = jsNative let private backend = Map.ofList - [ (FantomasMode.V4, v4Backend) - (FantomasMode.V5, v5Backend) + [ (FantomasMode.V5, v5Backend) (FantomasMode.V6, v6Backend) + (FantomasMode.V7, v7Backend) (FantomasMode.Main, mainBackend) (FantomasMode.Preview, previewBackend) ] diff --git a/src/client/fsharp/FantomasOnline/View.fs b/src/client/fsharp/FantomasOnline/View.fs index b80e1d9a..ce15b60a 100644 --- a/src/client/fsharp/FantomasOnline/View.fs +++ b/src/client/fsharp/FantomasOnline/View.fs @@ -87,11 +87,7 @@ let options model dispatch = optionList else let settingsFilter = - model.SettingsFilter - .Replace("fsharp_", "") - .Replace("_", "") - .Replace(" ", "") - .ToLowerInvariant() + model.SettingsFilter.Replace("fsharp_", "").Replace("_", "").Replace(" ", "").ToLowerInvariant() optionList |> List.filter (fun (n, _) -> @@ -307,11 +303,11 @@ let settings isFsi model dispatch = | FantomasTabState.LoadingOptions -> Loader.loading | _ -> let fantomasMode = - [ FantomasMode.V4, "4.x" - FantomasMode.V5, "5.x" + [ FantomasMode.V5, "5.x" FantomasMode.V6, "6.x" + FantomasMode.V7, "7.x" FantomasMode.Main, "Main" - FantomasMode.Preview, "7.0 preview" ] + FantomasMode.Preview, "Preview" ] |> List.map (fun (m, l) -> { IsActive = model.Mode = m Label = l diff --git a/src/client/fsharp/Navigation.fs b/src/client/fsharp/Navigation.fs index 069c4c9b..dd54aac4 100644 --- a/src/client/fsharp/Navigation.fs +++ b/src/client/fsharp/Navigation.fs @@ -29,9 +29,9 @@ let toHash = | HomeTab -> "#/" | OakTab -> "#/oak" | ASTTab -> "#/ast" - | FantomasTab FantomasOnline.Model.V4 -> "#/fantomas/v4" | FantomasTab FantomasOnline.Model.V5 -> "#/fantomas/v5" | FantomasTab FantomasOnline.Model.V6 -> "#/fantomas/v6" + | FantomasTab FantomasOnline.Model.V7 -> "#/fantomas/v7" | FantomasTab FantomasOnline.Model.Main -> "#/fantomas/main" | FantomasTab FantomasOnline.Model.Preview -> "#/fantomas/preview" @@ -41,8 +41,12 @@ let parseUrl segments = | [ "ast"; Route.Query [ "data", _ ] ] -> ActiveTab.ASTTab | [ "oak" ] | [ "oak"; Route.Query [ "data", _ ] ] -> ActiveTab.OakTab - | [ "fantomas"; "v4" ] - | [ "fantomas"; "v4"; Route.Query [ "data", _ ] ] -> ActiveTab.FantomasTab(FantomasOnline.Model.V4) + | [ "fantomas"; "v5" ] + | [ "fantomas"; "v5"; Route.Query [ "data", _ ] ] -> ActiveTab.FantomasTab(FantomasOnline.Model.V5) + | [ "fantomas"; "v6" ] + | [ "fantomas"; "v6"; Route.Query [ "data", _ ] ] -> ActiveTab.FantomasTab(FantomasOnline.Model.V6) + | [ "fantomas"; "v7" ] + | [ "fantomas"; "v7"; Route.Query [ "data", _ ] ] -> ActiveTab.FantomasTab(FantomasOnline.Model.V7) | [ "fantomas"; "main" ] | [ "fantomas"; "main"; Route.Query [ "data", _ ] ] -> ActiveTab.FantomasTab(FantomasOnline.Model.Main) | [ "fantomas"; "preview" ] diff --git a/src/client/fsharp/State.fs b/src/client/fsharp/State.fs index 5c1bee7e..9b448449 100644 --- a/src/client/fsharp/State.fs +++ b/src/client/fsharp/State.fs @@ -137,9 +137,9 @@ let update msg model = let changeVersion (hashWithoutQuery: string) = let version m = match m with - | FantomasOnline.Model.V4 -> "v4" | FantomasOnline.Model.V5 -> "v5" | FantomasOnline.Model.V6 -> "v6" + | FantomasOnline.Model.V7 -> "v7" | FantomasOnline.Model.Main -> "main" | FantomasOnline.Model.Preview -> "preview" diff --git a/src/server/FantomasOnlineV4/FormatCode.fs b/src/server/FantomasOnlineV4/FormatCode.fs deleted file mode 100644 index 06b0e7e6..00000000 --- a/src/server/FantomasOnlineV4/FormatCode.fs +++ /dev/null @@ -1,86 +0,0 @@ -module FantomasOnlineV4.FormatCode - -open FSharp.Compiler.CodeAnalysis -open Fantomas -open Fantomas.FormatConfig -open FantomasOnline.Shared -open FantomasOnline.Server.Shared.Http -open FantomasTools.Client - -let private checker = CodeFormatterImpl.sharedChecker.Force() - -let private mapFantomasOptionsToRecord options = - let newValues = - options - |> Seq.map (function - | BoolOption(_, _, v) -> box v - | IntOption(_, _, v) -> box v - | MultilineFormatterTypeOption(_, _, v) -> - MultilineFormatterType.OfConfigString(v) - |> Option.defaultValue (box CharacterWidth) - | EndOfLineStyleOption(_, _, v) -> - EndOfLineStyle.OfConfigString(v) - |> Option.defaultValue EndOfLineStyle.CRLF - |> box - | MultilineBracketStyleOption _ -> failwith "Version 4 does not accept fsharp_multiline_bracket_style") - |> Seq.toArray - - let formatConfigType = typeof - Microsoft.FSharp.Reflection.FSharpValue.MakeRecord(formatConfigType, newValues) :?> FormatConfig.FormatConfig - -let private format fileName code config = - let options = CodeFormatterImpl.createParsingOptionsFromFile fileName - let source = SourceOrigin.SourceString code - CodeFormatter.FormatDocumentAsync(fileName, source, config, options, checker) - -let private validate fileName code = - let options = - { FSharpParsingOptions.Default with - SourceFiles = [| fileName |] } - - let sourceCode = FSharp.Compiler.Text.SourceText.ofString code - - async { - let! result = checker.ParseFile(fileName, sourceCode, options) - - return - result.Diagnostics - |> Array.map (fun e -> - { SubCategory = e.Subcategory - Range = - { StartLine = e.Range.StartLine - StartColumn = e.Range.StartColumn - EndLine = e.Range.EndLine - EndColumn = e.Range.EndColumn } - Severity = $"{e.Severity}".ToLower() - ErrorNumber = e.ErrorNumber - Message = e.Message } - : Diagnostic) - |> Array.toList - } - -let getVersion () = - let assembly = typeof.Assembly - - let version = assembly.GetName().Version - $"%i{version.Major}.%i{version.Minor}.%i{version.Build}" - -let getOptions () : string = - Reflection.getRecordFields FormatConfig.FormatConfig.Default - |> Seq.indexed - |> Seq.choose (fun (idx, (k: string, v: obj)) -> - match v with - | :? int as i -> FantomasOption.IntOption(idx, k, i) |> Some - | :? bool as b -> FantomasOption.BoolOption(idx, k, b) |> Some - | :? MultilineFormatterType as mft -> - FantomasOption.MultilineFormatterTypeOption(idx, k, (MultilineFormatterType.ToConfigString mft)) - |> Some - | :? EndOfLineStyle as eol -> - FantomasOption.EndOfLineStyleOption(idx, k, (EndOfLineStyle.ToConfigString eol)) - |> Some - | _ -> None) - |> Seq.toList - |> mapOptionsToJson - -let formatCode: string -> Async = - formatCode mapFantomasOptionsToRecord format validate diff --git a/src/server/FantomasOnlineV4/packages.lock.json b/src/server/FantomasOnlineV4/packages.lock.json deleted file mode 100644 index 78736567..00000000 --- a/src/server/FantomasOnlineV4/packages.lock.json +++ /dev/null @@ -1,1436 +0,0 @@ -{ - "version": 1, - "dependencies": { - "net8.0": { - "Amazon.Lambda.APIGatewayEvents": { - "type": "Direct", - "requested": "[2.5.0, )", - "resolved": "2.5.0", - "contentHash": "u2M1e8e+eahgwSpa2jhBaakH37EgIZcHqmqpK/9DD/PMygxK5g7LPyUl6SRFnVnmVyD0zvjEh8lYnpYULY6WIQ==" - }, - "Amazon.Lambda.Core": { - "type": "Direct", - "requested": "[2.1.0, )", - "resolved": "2.1.0", - "contentHash": "ok06UhfBZw6j6+PhiJR9C0EOMuJvnq8rMCHVkaFmPFrlI/q447ukwGZQKaAKqodV+MNTfpb/iPxjgUPVbSlVVw==" - }, - "Amazon.Lambda.Serialization.SystemTextJson": { - "type": "Direct", - "requested": "[2.3.0, )", - "resolved": "2.3.0", - "contentHash": "qgFCDJp5lyUNqCq1z18U7fZ/+rmMyw6RJf9nKfnJrf79YupDj02klQAjxymEYN66NykWXyc68SGkow6fy53hfg==", - "dependencies": { - "Amazon.Lambda.Core": "2.1.0" - } - }, - "Fantomas": { - "type": "Direct", - "requested": "[4.7.9, )", - "resolved": "4.7.9", - "contentHash": "G0wz4U/ZN30RffZDLMfA/jJUcTgHhEW9ZZAoEbubLl3O2QocKw02WnV49zOMs1wmsYI8G/5mZpiW4LZwRPk8yg==", - "dependencies": { - "FSharp.Compiler.Service": "[41.0.3]", - "FSharp.Core": "6.0.3" - } - }, - "Fantomas.Extras": { - "type": "Direct", - "requested": "[4.7.9, )", - "resolved": "4.7.9", - "contentHash": "ylNJGelWdCwBAUcmyZvup0aZL7f9n9kIjXeKVHTjovX/DHexELiMbl4pxOu2M1Zfv1Hu1tQDcXA5KxWK/VYtoA==", - "dependencies": { - "FSharp.Core": "6.0.3", - "Fantomas": "1.0.0", - "MAB.DotIgnore": "3.0.2", - "System.IO.Abstractions": "16.1.25", - "editorconfig": "0.12.2" - } - }, - "FSharp.Compiler.Service": { - "type": "Direct", - "requested": "[41.0.3, )", - "resolved": "41.0.3", - "contentHash": "NB4KnejTJ2iCiYo+XhnI+hv7XDwzDjdSlY1xG3giIgtfG6eHkqEOvocpy+UuaKNZE2tj4hppkwTJD6WGoZIzIA==", - "dependencies": { - "FSharp.Core": "[6.0.3]", - "Microsoft.Build.Framework": "17.0.0", - "Microsoft.Build.Tasks.Core": "17.0.0", - "Microsoft.Build.Utilities.Core": "17.0.0", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "5.0.0", - "System.Diagnostics.Process": "4.3.0", - "System.Diagnostics.TraceSource": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Linq.Queryable": "4.3.0", - "System.Memory": "4.5.4", - "System.Net.Requests": "4.3.0", - "System.Net.Security": "4.3.1", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Metadata": "5.0.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Loader": "4.3.0", - "System.Security.Claims": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Principal": "4.3.0", - "System.Threading.Tasks.Parallel": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Threading.ThreadPool": "4.3.0" - } - }, - "FSharp.Core": { - "type": "Direct", - "requested": "[6.0.3, )", - "resolved": "6.0.3", - "contentHash": "ywxwMhsA1nG2hsRSMl3IzYvdugrSoFg/ZY99cuBqV0SX0yp8ubD6Hee8Bh3YwaF2Ucyq/Jz8lZ0MY5VjxgogbA==" - }, - "Microsoft.Build.Utilities.Core": { - "type": "Direct", - "requested": "[17.0.0, )", - "resolved": "17.0.0", - "contentHash": "+eqDvecetKfsZR9WqLQ96F9xhxFb3m9VOjkyzuaA/2D1cub1aW9XyegZb8+gEpBa+o7dHnIN9FskC+tRXtqLSQ==", - "dependencies": { - "Microsoft.Build.Framework": "17.0.0", - "Microsoft.NET.StringTools": "1.0.0", - "Microsoft.Win32.Registry": "4.3.0", - "System.Collections.Immutable": "5.0.0", - "System.Configuration.ConfigurationManager": "4.7.0", - "System.Security.Permissions": "4.7.0", - "System.Text.Encoding.CodePages": "4.0.1" - } - }, - "Microsoft.Net.Http.Headers": { - "type": "Direct", - "requested": "[2.2.8, )", - "resolved": "2.2.8", - "contentHash": "wHdwMv0QDDG2NWDSwax9cjkeQceGC1Qq53a31+31XpvTXVljKXRjWISlMoS/wZYKiqdqzuEvKFKwGHl+mt2jCA==", - "dependencies": { - "Microsoft.Extensions.Primitives": "2.2.0", - "System.Buffers": "4.5.0" - } - }, - "Suave": { - "type": "Direct", - "requested": "[2.6.2, )", - "resolved": "2.6.2", - "contentHash": "JNTsgb3FrFnvsp7G93Y9XLIGVa47fG4GZ8un/+/iMMVBTRWl8l6Rlnqjo/PsQP6NojtkrLEM4SLz9AhfQIPNag==", - "dependencies": { - "FSharp.Core": "0.0.0" - } - }, - "Thoth.Json.Net": { - "type": "Direct", - "requested": "[5.0.0, )", - "resolved": "5.0.0", - "contentHash": "O04hJBNkdmeGdIer2U/tB8Pp/C0AGOkhzEr4Me4byiKyJ/RXXYgQrlICrc0Dr+1e2YqgFoqS5BZeP036M9qP3g==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "[3.0.0, 4.0.0)", - "Newtonsoft.Json": "11.0.2" - } - }, - "editorconfig": { - "type": "Transitive", - "resolved": "0.12.2", - "contentHash": "WfrSJdgV8YjXFDBlKOnVyKI+ErKFSzR8tlWIsJklmMSuTmFaIOQCu4+S9h5PHMPXf/fkeTeYwDg8g31ErhNJGQ==" - }, - "Fable.Core": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "pkCOWJKAkCk36f5+q4F3XqlfsgCJL6i2lTLl4ZZVDswn8rjXo21EBG/gJ296a88LVBkI5LL2VwxQYqGZncomJw==", - "dependencies": { - "FSharp.Core": "4.5.2" - } - }, - "MAB.DotIgnore": { - "type": "Transitive", - "resolved": "3.0.2", - "contentHash": "mWyvQmmZuTVCKoxynfia2US+47IDPTGeOZJ2qi5JJ5ylNhnQIHBkZ2wuDiHxxNZA1n7GHLLEbKnGf5AdOCWuyg==", - "dependencies": { - "NETStandard.Library": "1.6.1" - } - }, - "Microsoft.Build.Framework": { - "type": "Transitive", - "resolved": "17.0.0", - "contentHash": "XbFA0z+6Ws2pNeRXYcDF3lKlNgRoSGMm2Q5HKzZD+EbwYMKPKrl/BJnnkMuDJHU0KravYHfhzBnLLJpPeZ3E7A==", - "dependencies": { - "System.Security.Permissions": "4.7.0" - } - }, - "Microsoft.Build.Tasks.Core": { - "type": "Transitive", - "resolved": "17.0.0", - "contentHash": "6772b15xCfwBRkz8MzGZb1YpyvvZmAtCbSx9frZJ0bpXKrhyN/+BP9mOjp2xVaJPyNBOfh9CwUOo+mnJheO/pw==", - "dependencies": { - "Microsoft.Build.Framework": "17.0.0", - "Microsoft.Build.Utilities.Core": "17.0.0", - "Microsoft.NET.StringTools": "1.0.0", - "Microsoft.Win32.Registry": "4.3.0", - "System.CodeDom": "4.4.0", - "System.Collections.Immutable": "5.0.0", - "System.Reflection.Metadata": "1.6.0", - "System.Resources.Extensions": "4.6.0", - "System.Security.Cryptography.Pkcs": "4.7.0", - "System.Security.Cryptography.Xml": "4.7.0", - "System.Security.Permissions": "4.7.0", - "System.Threading.Tasks.Dataflow": "4.9.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", - "dependencies": { - "System.Memory": "4.5.1", - "System.Runtime.CompilerServices.Unsafe": "4.5.1" - } - }, - "Microsoft.NET.StringTools": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "ZYVcoDM0LnSyT5nWoRGfShYdOecCw2sOXWwP6j1Z0u48Xq3+BVvZ+EiPCX9/8Gz439giW+O1H1kWF9Eb/w6rVg==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "Microsoft.NETCore.Platforms": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==" - }, - "Microsoft.NETCore.Targets": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" - }, - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "Lw1/VwLH1yxz6SfFEjVRCN0pnflLEsWgnV4qsdJ512/HhTwnKXUG+zDQ4yTO3K/EJQemGoNaBHX5InISNKTzUQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "mtVirZr++rq+XCDITMUdnETD59XoeMxSpLRIII7JRI6Yj0LEDiO1pPn0ktlnIj12Ix8bfvQqQDMMIF9wC98oCA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "3.1.0" - } - }, - "NETStandard.Library": { - "type": "Transitive", - "resolved": "1.6.1", - "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.AppContext": "4.3.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Console": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.Compression.ZipFile": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.Sockets": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Timer": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XDocument": "4.3.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "11.0.2", - "contentHash": "IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==" - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==" - }, - "runtime.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.IO.Compression": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Security": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "M2nN92ePS8BgQ2oi6Jj3PlTUzadYSIWLdZrHY1n1ZcW9o4wAQQ6W+aQ2lfq1ysZQfVCgDwY58alUdowrzezztg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==" - }, - "System.AppContext": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.CodeDom": { - "type": "Transitive", - "resolved": "4.4.0", - "contentHash": "2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==" - }, - "System.Collections": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==" - }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "/anOTeSZCNNI2zDilogWrZ8pNqCmYbzGNexUnNhjW8k0sHqEZ2nHJBp147jBV3hGYswu5lINpNg1vxR7bnqvVA==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "4.7.0", - "System.Security.Permissions": "4.7.0" - } - }, - "System.Console": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Diagnostics.Debug": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Diagnostics.Process": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "Microsoft.Win32.Registry": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Threading.ThreadPool": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Diagnostics.Tools": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.TraceSource": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VnYp1NxGx8Ww731y2LJ1vpfb/DKVNKEZ8Jsh5SgQTZREL/YpWRArgh9pI8CDLmgHspZmLL697CaLvH85qQpRiw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Diagnostics.Tracing": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "v+XbyYHaZjDfn0ENmJEV1VYLgGgCTx1gnfOBcppowbpOAriglYgGCvFCPr2EEZyBvXlpxbEsTwkOlInl107ahA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "3.1.0", - "Microsoft.Win32.SystemEvents": "4.7.0" - } - }, - "System.Globalization": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.Abstractions": { - "type": "Transitive", - "resolved": "16.1.25", - "contentHash": "PZ3y8SgASqtIlJyhss47FGLwBMXMWvxL9MKk9dEqIZT/vrfQr5yhKwdJ/vNm2H8FqsWJoxu0P12nYGXFj0irkA==" - }, - "System.IO.Compression": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Buffers": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.IO.Compression": "4.3.0" - } - }, - "System.IO.Compression.ZipFile": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", - "dependencies": { - "System.Buffers": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.IO.FileSystem": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Linq": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Linq.Expressions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Linq.Queryable": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "In1Bmmvl/j52yPu3xgakQSI0YIckPUr870w4K5+Lak3JCCa8hl+my65lABOuKfYs4ugmZy25ScFerC4nz8+b6g==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==" - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Net.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Net.Requests": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.WebHeaderCollection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.Security": { - "type": "Transitive", - "resolved": "4.3.1", - "contentHash": "qYnDntmrrHXUAhA+v2Kve8onMjJ2ZryQvx7kjGhW88c0IgA9B+q2M8b3l76HFBeotufDbAJfOvLEP32PS4XIKA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Claims": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Security.Principal": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.ThreadPool": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Security": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Net.Sockets": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.WebHeaderCollection": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.ObjectModel": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Reflection": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit.ILGeneration": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit.Lightweight": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Metadata": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==" - }, - "System.Reflection.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Resources.Extensions": { - "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "6aVCk8oTFZNT3Tx1jjiPi6+aipiJ3qMZYttAREKTRJidP50YvNeOn4PXrqzfA5qC23fLReq2JYp+nJwzj62HGw==" - }, - "System.Resources.ResourceManager": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Runtime.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.InteropServices.RuntimeInformation": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Runtime.Loader": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==", - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Numerics": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "3.1.0", - "System.Security.Principal.Windows": "4.7.0" - } - }, - "System.Security.Claims": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "P/+BR/2lnc4PNDHt/TPBAWHVMLMRHsyYZbU1NphW4HIWzCggz8mJbTQQ3MKljFE7LS3WagmVFuBgoLcFzYXlkA==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Security.Principal": "4.3.0" - } - }, - "System.Security.Cryptography.Algorithms": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "4WQjFuypWtxb/bl/YwEE7LYGn4fgpsikFfBU6xwEm4YBYiRAhXAEJ62lILBu2JJSFbClIAntFTGfDZafn8yZTg==" - }, - "System.Security.Cryptography.Csp": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Pkcs": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "0Srzh6YlhjuMxaqMyeCCdZs22cucaUAG6SKDd3gNHBJmre0VZ71ekzWu9rvLD4YXPetyNdPvV6Qst+8C++9v3Q==", - "dependencies": { - "System.Security.Cryptography.Cng": "4.7.0" - } - }, - "System.Security.Cryptography.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "ehYW0m9ptxpGWvE4zgqongBVWpSDU/JCFD4K7krxkQwSz/sFQjEXCUqpvencjy6DYDbn7Ig09R8GFffu8TtneQ==" - }, - "System.Security.Cryptography.X509Certificates": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Xml": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "B6pAyxMvXGbZemb+ER877KSr6OKis+qAdxhhKKK36I6sgj2js8mbcEVviZEHYV8XRTWjbKsAq8Z/zoaegA30dA==", - "dependencies": { - "System.Security.Cryptography.Pkcs": "4.7.0", - "System.Security.Permissions": "4.7.0" - } - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "dkOV6YYVBnYRa15/yv004eCGRBVADXw8qRbbNiCn/XpdJSUXkkUeIvdvFHkvnko4CdKMqG8yRHC4ox83LSlMsQ==", - "dependencies": { - "System.Security.AccessControl": "4.7.0", - "System.Windows.Extensions": "4.7.0" - } - }, - "System.Security.Principal": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==" - }, - "System.Text.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encoding.CodePages": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "h4z6rrA/hxWf4655D18IIZ0eaLRa3tQC/j+e26W+VinIHY0l07iEXaAvO0YSYq3MvCjMYy8Zs5AdC1sxNQOB7Q==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.0.1", - "System.Collections": "4.0.11", - "System.Globalization": "4.0.11", - "System.IO": "4.1.0", - "System.Reflection": "4.1.0", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Runtime.Handles": "4.0.1", - "System.Runtime.InteropServices": "4.1.0", - "System.Text.Encoding": "4.0.11", - "System.Threading": "4.0.11" - } - }, - "System.Text.Encoding.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.RegularExpressions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Threading": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Tasks": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "4.9.0", - "contentHash": "dTS+3D/GtG2/Pvc3E5YzVvAa7aQJgLDlZDIzukMOJjYudVOQOUXEU68y6Zi3Nn/jqIeB5kOCwrGbQFAKHVzXEQ==" - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Tasks.Parallel": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "cbjBNZHf/vQCfcdhzx7knsiygoCKgxL8mZOeocXZn5gWhCdzHIq6bYNKWX0LAJCWYP7bds4yBK8p06YkP0oa0g==", - "dependencies": { - "System.Collections.Concurrent": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Thread": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Threading.ThreadPool": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Threading.Timer": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "CeWTdRNfRaSh0pm2gDTJFwVaXfTq6Xwv/sA887iwPTneW7oMtMlpvDIO+U60+3GWTB7Aom6oQwv5VZVUhQRdPQ==", - "dependencies": { - "System.Drawing.Common": "4.7.0" - } - }, - "System.Xml.ReaderWriter": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" - } - }, - "System.Xml.XDocument": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - } - } - } -} \ No newline at end of file diff --git a/src/server/FantomasOnlineV6/FantomasOnlineV6.fsproj b/src/server/FantomasOnlineV6/FantomasOnlineV6.fsproj index 4165c023..642ad4f0 100755 --- a/src/server/FantomasOnlineV6/FantomasOnlineV6.fsproj +++ b/src/server/FantomasOnlineV6/FantomasOnlineV6.fsproj @@ -23,7 +23,7 @@ - + diff --git a/src/server/FantomasOnlineV6/packages.lock.json b/src/server/FantomasOnlineV6/packages.lock.json index a112ab39..a90058b0 100644 --- a/src/server/FantomasOnlineV6/packages.lock.json +++ b/src/server/FantomasOnlineV6/packages.lock.json @@ -25,16 +25,12 @@ }, "Fantomas.Core": { "type": "Direct", - "requested": "[7.0.0, )", - "resolved": "7.0.0", - "contentHash": "Ozji9rXlLTUOJUV2inkDK7XWxyIIGGvowUkwoWY9oBHdjYf+md+w3p7nolhnLtasa4N4J8X7s8sRE9e50/RcIw==", + "requested": "[6.3.16, )", + "resolved": "6.3.16", + "contentHash": "t4x1Y5CKzFe8gXGe8QzrJKsmJszX8E5/o+LTUNCqoA7WX6hUyX69PxL1rGBM1sndEP5ThOVa5f5E6CFR7+Ce+w==", "dependencies": { - "FSharp.Core": "8.0.100", - "Fantomas.FCS": "7.0.0", - "System.Collections.Immutable": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.1", - "System.Memory": "4.6.0", - "System.Runtime": "4.3.1" + "FSharp.Core": "6.0.1", + "Fantomas.FCS": "6.3.16" } }, "FSharp.Core": { @@ -83,13 +79,13 @@ }, "Fantomas.FCS": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "yboo4E9OmfMDpKG2JmBm8XU0XAo2wVAYlmN+SNYnviiRekZKj8vUI22fiN+HZVdKYwTzpArrlaG8VhbVKyU8Mg==", + "resolved": "6.3.16", + "contentHash": "rKkiQsqtGZTqxTg4YwXvRWJJ56GTQ//8ceSggMDeBrqgKSuDndZefp3+bLKqSPzMj2++ZW9XGWgoJkYbGIYe+Q==", "dependencies": { - "FSharp.Core": "8.0.100", - "System.Collections.Immutable": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.1", - "System.Memory": "4.6.0", + "FSharp.Core": "6.0.1", + "System.Collections.Immutable": "7.0.0", + "System.Diagnostics.DiagnosticSource": "7.0.0", + "System.Memory": "4.5.5", "System.Runtime": "4.3.1" } }, @@ -124,18 +120,18 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "7.0.0", + "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==" }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", - "resolved": "8.0.1", - "contentHash": "vaoWjvkG1aenR2XdjaVivlCV9fADfgyhW5bZtXT23qaEea0lWiUljdQuze4E31vKM7ZWJaSUsbYIKE3rnzfZUg==" + "resolved": "7.0.0", + "contentHash": "9W0ewWDuAyDqS2PigdTxk6jDKonfgscY/hP8hm7VpxYhNHZHKvZTdRckberlFk3VnCmr3xBUyMBut12Q+T2aOw==" }, "System.Memory": { "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "OEkbBQoklHngJ8UD8ez2AERSk2g+/qpAaSWWCBFbpH727HxDq5ydVkuncBaKcKfwRqXGWx64dS6G1SUScMsitg==" + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Runtime": { "type": "Transitive", diff --git a/src/server/FantomasOnlineV4/.gitignore b/src/server/FantomasOnlineV7/.gitignore similarity index 100% rename from src/server/FantomasOnlineV4/.gitignore rename to src/server/FantomasOnlineV7/.gitignore diff --git a/src/server/FantomasOnlineV4/FantomasOnlineV4.fsproj b/src/server/FantomasOnlineV7/FantomasOnlineV7.fsproj similarity index 74% rename from src/server/FantomasOnlineV4/FantomasOnlineV4.fsproj rename to src/server/FantomasOnlineV7/FantomasOnlineV7.fsproj index 1d5894bd..4165c023 100755 --- a/src/server/FantomasOnlineV4/FantomasOnlineV4.fsproj +++ b/src/server/FantomasOnlineV7/FantomasOnlineV7.fsproj @@ -23,11 +23,8 @@ - - - - - - + + + \ No newline at end of file diff --git a/src/server/FantomasOnlineV7/FormatCode.fs b/src/server/FantomasOnlineV7/FormatCode.fs new file mode 100644 index 00000000..c20683ab --- /dev/null +++ b/src/server/FantomasOnlineV7/FormatCode.fs @@ -0,0 +1,91 @@ +module FantomasOnlineV7.FormatCode + +open FantomasTools.Client +open Fantomas.FCS +open Fantomas.FCS.Parse +open Fantomas.Core +open FantomasOnline.Shared +open FantomasOnline.Server.Shared.Http + +let private mapFantomasOptionsToRecord options = + let newValues = + options + |> Seq.map (function + | BoolOption(_, _, v) -> box v + | IntOption(_, _, v) -> box v + | MultilineFormatterTypeOption(_, _, v) -> + MultilineFormatterType.OfConfigString(v) + |> Option.defaultValue CharacterWidth + |> box + | EndOfLineStyleOption(_, _, v) -> + EndOfLineStyle.OfConfigString(v) + |> Option.defaultValue EndOfLineStyle.CRLF + |> box + | MultilineBracketStyleOption(_, _, v) -> + MultilineBracketStyle.OfConfigString(v) + |> Option.defaultValue MultilineBracketStyle.Cramped + |> box) + |> Seq.toArray + + let formatConfigType = typeof + Microsoft.FSharp.Reflection.FSharpValue.MakeRecord(formatConfigType, newValues) :?> FormatConfig + +let private format (fileName: string) code config = + let isSignature = fileName.EndsWith(".fsi") + + async { + let! result = CodeFormatter.FormatDocumentAsync(isSignature, code, config) + return result.Code + } + +let private validate (fileName: string) code = + async { + let isSignature = fileName.EndsWith(".fsi") + + let _tree, diagnostics = parseFile isSignature (Text.SourceText.ofString code) [] + + return + diagnostics + |> List.map (fun (e: FSharpParserDiagnostic) -> + let orZero f = Option.map f e.Range |> Option.defaultValue 0 + + { SubCategory = e.SubCategory + Range = + { StartLine = orZero (fun r -> r.StartLine) + StartColumn = orZero (fun r -> r.StartColumn) + EndLine = orZero (fun r -> r.EndLine) + EndColumn = orZero (fun r -> r.EndColumn) } + Severity = $"{e.Severity}".ToLower() + ErrorNumber = Option.defaultValue 0 e.ErrorNumber + Message = e.Message } + : Diagnostic) + } + +let getVersion () = + let assembly = typeof.Assembly + + let version = assembly.GetName().Version + sprintf "%i.%i.%i" version.Major version.Minor version.Build + +let getOptions () : string = + Reflection.getRecordFields FormatConfig.Default + |> Seq.indexed + |> Seq.choose (fun (idx, (k: string, v: obj)) -> + match v with + | :? int as i -> FantomasOption.IntOption(idx, k, i) |> Some + | :? bool as b -> FantomasOption.BoolOption(idx, k, b) |> Some + | :? MultilineFormatterType as mft -> + FantomasOption.MultilineFormatterTypeOption(idx, k, (MultilineFormatterType.ToConfigString mft)) + |> Some + | :? EndOfLineStyle as eol -> + FantomasOption.EndOfLineStyleOption(idx, k, (EndOfLineStyle.ToConfigString eol)) + |> Some + | :? MultilineBracketStyle as mbs -> + FantomasOption.MultilineBracketStyleOption(idx, k, (MultilineBracketStyle.ToConfigString mbs)) + |> Some + | _ -> None) + |> Seq.toList + |> mapOptionsToJson + +let formatCode: string -> Async = + formatCode mapFantomasOptionsToRecord format validate diff --git a/src/server/FantomasOnlineV4/Lambda.fs b/src/server/FantomasOnlineV7/Lambda.fs similarity index 93% rename from src/server/FantomasOnlineV4/Lambda.fs rename to src/server/FantomasOnlineV7/Lambda.fs index df743eb1..a0816cc0 100644 --- a/src/server/FantomasOnlineV4/Lambda.fs +++ b/src/server/FantomasOnlineV7/Lambda.fs @@ -1,4 +1,4 @@ -module FantomasOnlineV4.Lambda +module FantomasOnlineV7.Lambda open System.Net open Amazon.Lambda.APIGatewayEvents @@ -6,7 +6,7 @@ open Amazon.Lambda.Core open AWSLambdaExtensions open HttpConstants open FantomasOnline.Server.Shared.Http -open FantomasOnlineV4.FormatCode +open FantomasOnlineV7.FormatCode // Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. [)>] diff --git a/src/server/FantomasOnlineV4/Program.fs b/src/server/FantomasOnlineV7/Program.fs similarity index 73% rename from src/server/FantomasOnlineV4/Program.fs rename to src/server/FantomasOnlineV7/Program.fs index 616a5878..7eb43d01 100644 --- a/src/server/FantomasOnlineV4/Program.fs +++ b/src/server/FantomasOnlineV7/Program.fs @@ -18,14 +18,14 @@ let main argv = request (fun req ctx -> async { let json = req.BodyText - let! formatResponse = FantomasOnlineV4.FormatCode.formatCode json + let! formatResponse = FantomasOnlineV7.FormatCode.formatCode json return! (mapFormatResponseToWebPart formatResponse) ctx }) let routes = - [ GET >=> path "/fantomas/v4/version" >=> textPlain >=> OK(FantomasOnlineV4.FormatCode.getVersion ()) - GET >=> path "/fantomas/v4/options" >=> applicationJson >=> OK(FantomasOnlineV4.FormatCode.getOptions ()) - POST >=> path "/fantomas/v4/format" >=> formatWebPart ] + [ GET >=> path "/fantomas/v7/version" >=> textPlain >=> OK(FantomasOnlineV7.FormatCode.getVersion ()) + GET >=> path "/fantomas/v7/options" >=> applicationJson >=> OK(FantomasOnlineV7.FormatCode.getOptions ()) + POST >=> path "/fantomas/v7/format" >=> formatWebPart ] let port = match List.ofArray argv with diff --git a/src/server/FantomasOnlineV4/host.json b/src/server/FantomasOnlineV7/host.json similarity index 100% rename from src/server/FantomasOnlineV4/host.json rename to src/server/FantomasOnlineV7/host.json diff --git a/src/server/FantomasOnlineV7/packages.lock.json b/src/server/FantomasOnlineV7/packages.lock.json new file mode 100644 index 00000000..a112ab39 --- /dev/null +++ b/src/server/FantomasOnlineV7/packages.lock.json @@ -0,0 +1,156 @@ +{ + "version": 1, + "dependencies": { + "net8.0": { + "Amazon.Lambda.APIGatewayEvents": { + "type": "Direct", + "requested": "[2.5.0, )", + "resolved": "2.5.0", + "contentHash": "u2M1e8e+eahgwSpa2jhBaakH37EgIZcHqmqpK/9DD/PMygxK5g7LPyUl6SRFnVnmVyD0zvjEh8lYnpYULY6WIQ==" + }, + "Amazon.Lambda.Core": { + "type": "Direct", + "requested": "[2.1.0, )", + "resolved": "2.1.0", + "contentHash": "ok06UhfBZw6j6+PhiJR9C0EOMuJvnq8rMCHVkaFmPFrlI/q447ukwGZQKaAKqodV+MNTfpb/iPxjgUPVbSlVVw==" + }, + "Amazon.Lambda.Serialization.SystemTextJson": { + "type": "Direct", + "requested": "[2.3.0, )", + "resolved": "2.3.0", + "contentHash": "qgFCDJp5lyUNqCq1z18U7fZ/+rmMyw6RJf9nKfnJrf79YupDj02klQAjxymEYN66NykWXyc68SGkow6fy53hfg==", + "dependencies": { + "Amazon.Lambda.Core": "2.1.0" + } + }, + "Fantomas.Core": { + "type": "Direct", + "requested": "[7.0.0, )", + "resolved": "7.0.0", + "contentHash": "Ozji9rXlLTUOJUV2inkDK7XWxyIIGGvowUkwoWY9oBHdjYf+md+w3p7nolhnLtasa4N4J8X7s8sRE9e50/RcIw==", + "dependencies": { + "FSharp.Core": "8.0.100", + "Fantomas.FCS": "7.0.0", + "System.Collections.Immutable": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.1", + "System.Memory": "4.6.0", + "System.Runtime": "4.3.1" + } + }, + "FSharp.Core": { + "type": "Direct", + "requested": "[8.0.403, )", + "resolved": "8.0.403", + "contentHash": "t1Pvv2++3zMQKKNuiQc1Lz4TCdaBajgG4mLhOE8AoFzborHQ/JbjIaJr6Mrq8m2z15KLu4r6Qz7E3oeACpljTg==" + }, + "Microsoft.Net.Http.Headers": { + "type": "Direct", + "requested": "[2.2.8, )", + "resolved": "2.2.8", + "contentHash": "wHdwMv0QDDG2NWDSwax9cjkeQceGC1Qq53a31+31XpvTXVljKXRjWISlMoS/wZYKiqdqzuEvKFKwGHl+mt2jCA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0", + "System.Buffers": "4.5.0" + } + }, + "Suave": { + "type": "Direct", + "requested": "[2.6.2, )", + "resolved": "2.6.2", + "contentHash": "JNTsgb3FrFnvsp7G93Y9XLIGVa47fG4GZ8un/+/iMMVBTRWl8l6Rlnqjo/PsQP6NojtkrLEM4SLz9AhfQIPNag==", + "dependencies": { + "FSharp.Core": "0.0.0" + } + }, + "Thoth.Json.Net": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "C/b+8g/xUTJTn7pbKC4bMAOy2tyolXAuHTXguT5TNzDKQ6sjnUfFa9B81fTt9PuUOdWFLyRKlXASuFhSQciJGQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[3.0.0, 4.0.0)", + "Newtonsoft.Json": "11.0.2" + } + }, + "Fable.Core": { + "type": "Transitive", + "resolved": "3.0.0", + "contentHash": "pkCOWJKAkCk36f5+q4F3XqlfsgCJL6i2lTLl4ZZVDswn8rjXo21EBG/gJ296a88LVBkI5LL2VwxQYqGZncomJw==", + "dependencies": { + "FSharp.Core": "4.5.2" + } + }, + "Fantomas.FCS": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "yboo4E9OmfMDpKG2JmBm8XU0XAo2wVAYlmN+SNYnviiRekZKj8vUI22fiN+HZVdKYwTzpArrlaG8VhbVKyU8Mg==", + "dependencies": { + "FSharp.Core": "8.0.100", + "System.Collections.Immutable": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.1", + "System.Memory": "4.6.0", + "System.Runtime": "4.3.1" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" + }, + "Microsoft.NETCore.Targets": { + "type": "Transitive", + "resolved": "1.1.3", + "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "11.0.2", + "contentHash": "IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "vaoWjvkG1aenR2XdjaVivlCV9fADfgyhW5bZtXT23qaEea0lWiUljdQuze4E31vKM7ZWJaSUsbYIKE3rnzfZUg==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.6.0", + "contentHash": "OEkbBQoklHngJ8UD8ez2AERSk2g+/qpAaSWWCBFbpH727HxDq5ydVkuncBaKcKfwRqXGWx64dS6G1SUScMsitg==" + }, + "System.Runtime": { + "type": "Transitive", + "resolved": "4.3.1", + "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + } + } + } +} \ No newline at end of file diff --git a/src/server/SuaveExtensions.fs b/src/server/SuaveExtensions.fs index e21622cb..564043da 100644 --- a/src/server/SuaveExtensions.fs +++ b/src/server/SuaveExtensions.fs @@ -1,6 +1,7 @@ module SuaveExtensions open System.Net +open System.Net.Sockets open Suave open Suave.Operators open Suave.Writers @@ -27,8 +28,11 @@ let setCORSHeaders = >=> addHeader "Access-Control-Allow-Methods" "*" let startFantomasTool port routes = - setCORSHeaders - >=> choose [ OPTIONS >=> no_content; yield! routes; NOT_FOUND "Not found" ] - |> startWebServer - { defaultConfig with - bindings = [ HttpBinding.create HTTP IPAddress.Loopback port ] } + try + setCORSHeaders + >=> choose [ OPTIONS >=> no_content; yield! routes; NOT_FOUND "Not found" ] + |> startWebServer + { defaultConfig with + bindings = [ HttpBinding.create HTTP IPAddress.Loopback port ] } + with :? SocketException -> + printfn $"Port {port} is already in use"