diff --git a/.gitignore b/.gitignore index 843c48f..2d5d3e3 100644 --- a/.gitignore +++ b/.gitignore @@ -255,4 +255,5 @@ paket-files/ # Elm temporary files src/elm-stuff # Compiled application -src/wwwroot/app.js \ No newline at end of file +src/wwwroot/app.js +build/ \ No newline at end of file diff --git a/.paket/Paket.Restore.targets b/.paket/Paket.Restore.targets new file mode 100644 index 0000000..e48e078 --- /dev/null +++ b/.paket/Paket.Restore.targets @@ -0,0 +1,108 @@ + + + + true + $(MSBuildThisFileDirectory) + /Library/Frameworks/Mono.framework/Commands/mono + mono + + $(PaketRootPath)paket.exe + $(PaketToolsPath)paket.exe + "$(PaketExePath)" + $(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" + + + + + + + + $(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).references + + + + + + + + + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) + + + %(PaketReferencesFileLinesInfo.PackageVersion) + + + + + $(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).NuGet.Config + + + + + + + false + + + + + + $(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).references + true + + + + <_NuspecFiles Include="$(BaseIntermediateOutputPath)*.nuspec"/> + + + + + + + + + + + + + \ No newline at end of file diff --git a/.paket/paket.bootstrapper.exe b/.paket/paket.bootstrapper.exe new file mode 100644 index 0000000..c46d0bf Binary files /dev/null and b/.paket/paket.bootstrapper.exe differ diff --git a/build-au.bat b/build-au.bat new file mode 100644 index 0000000..6990159 --- /dev/null +++ b/build-au.bat @@ -0,0 +1,5 @@ +@echo off +cd .\src\app +au build +cd ..\.. +exit %errorlevel% \ No newline at end of file diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..2c4d43c --- /dev/null +++ b/build.bat @@ -0,0 +1,8 @@ +@echo off +cls +.paket\paket.exe restore +if errorlevel 1 ( + exit /b %errorlevel% +) +"packages\FAKE\tools\Fake.exe" build.fsx %1 +pause \ No newline at end of file diff --git a/build.fsx b/build.fsx new file mode 100644 index 0000000..d0e690a --- /dev/null +++ b/build.fsx @@ -0,0 +1,69 @@ +#r "packages/FAKE/tools/FakeLib.dll" +open Fake +open System + +let buildDir = "./build/" + +/// Path to the Aurelia app +let appPath = "src" @@ "app" + +/// Path to the Suave API +let apiPath = "src" @@ "api" + +// --- Targets --- + +Target "Clean" (fun _ -> + CleanDir buildDir +) + +Target "BuildApp" (fun _ -> + let result = + ExecProcessAndReturnMessages (fun info -> + info.UseShellExecute <- false + info.FileName <- "." @@ "build-au.bat") (TimeSpan.FromMinutes 2.) + match result.ExitCode with + | 0 -> Log "AppBuild-Output: " result.Messages + | _ -> failwith "Aurelia build failed" +) + +Target "CopyApp" (fun _ -> + let apiWebPath = apiPath @@ "wwwroot" + [ "scripts" @@ "app-bundle.js" + "scripts" @@ "vendor-bundle.js" + "index.html" + ] + |> List.iter (fun file -> + IO.File.Copy (appPath @@ file, apiWebPath @@ file, true) + Log "CopyApp--Output: " (Seq.singleton file)) +) + +Target "BuildApi" (fun _ -> + !! "src/api/*.fsproj" + |> MSBuildRelease buildDir "Build" + |> Log "ApiBuild-Output: " +) + +Target "Run" (fun _ -> + ExecProcess (fun info -> + info.FileName <- "dotnet" + info.Arguments <- "myPrayerJournal.dll" + info.WorkingDirectory <- "build") TimeSpan.MaxValue + |> ignore +) + +Target "Default" (fun _ -> + Log "" Seq.empty +) + +// --- Dependencies --- + +"Clean" + ==> "BuildApp" + ==> "CopyApp" + ==> "BuildApi" + ==> "Default" + +"BuildApi" + ==> "Run" + +RunTargetOrDefault "Default" \ No newline at end of file diff --git a/paket.dependencies b/paket.dependencies new file mode 100644 index 0000000..919be99 --- /dev/null +++ b/paket.dependencies @@ -0,0 +1,11 @@ +source https://api.nuget.org/v3/index.json +nuget Auth0.AuthenticationApi +nuget FAKE +nuget FSharp.Core +nuget FSharp.NET.Sdk +nuget jose-jwt +nuget Microsoft.EntityFrameworkCore.Tools +nuget Newtonsoft.Json +nuget Npgsql.EntityFrameworkCore.PostgreSQL +nuget Suave +nuget Suave.Experimental diff --git a/paket.lock b/paket.lock new file mode 100644 index 0000000..f5bfe1b --- /dev/null +++ b/paket.lock @@ -0,0 +1,1065 @@ +NUGET + remote: https://api.nuget.org/v3/index.json + Auth0.AuthenticationApi (4.1) + Auth0.Core (>= 4.0) - framework: >= net45, >= netstandard11 + System.Net.Http (>= 4.3) - framework: >= net45, >= netstandard11 + System.Net.Primitives (>= 4.3) - framework: >= net45, >= netstandard11 + Auth0.Core (4.0) - framework: >= net45, >= netstandard11 + Newtonsoft.Json (>= 10.0.2) - framework: >= net45, >= netstandard11 + System.Net.Http (>= 4.3) - framework: >= net45, >= netstandard11 + System.Net.Primitives (>= 4.3) - framework: >= net45, >= netstandard11 + FAKE (4.61.2) + FSharp.Compiler.Tools (4.1.17) - framework: >= net40, >= netstandard13 + FSharp.Core (4.1.17) + System.Collections (>= 4.0.11) - framework: >= netstandard16 + System.Console (>= 4.0) - framework: >= netstandard16 + System.Diagnostics.Debug (>= 4.0.11) - framework: >= netstandard16 + System.Diagnostics.Tools (>= 4.0.1) - framework: >= netstandard16 + System.Globalization (>= 4.0.11) - framework: >= netstandard16 + System.IO (>= 4.1) - framework: >= netstandard16 + System.Linq (>= 4.1) - framework: >= netstandard16 + System.Linq.Expressions (>= 4.1) - framework: >= netstandard16 + System.Linq.Queryable (>= 4.0.1) - framework: >= netstandard16 + System.Net.Requests (>= 4.0.11) - framework: >= netstandard16 + System.Reflection (>= 4.1) - framework: >= netstandard16 + System.Reflection.Extensions (>= 4.0.1) - framework: >= netstandard16 + System.Resources.ResourceManager (>= 4.0.1) - framework: >= netstandard16 + System.Runtime (>= 4.1) - framework: >= netstandard16 + System.Runtime.Extensions (>= 4.1) - framework: >= netstandard16 + System.Runtime.Numerics (>= 4.0.1) - framework: >= netstandard16 + System.Text.RegularExpressions (>= 4.1) - framework: >= netstandard16 + System.Threading (>= 4.0.11) - framework: >= netstandard16 + System.Threading.Tasks (>= 4.0.11) - framework: >= netstandard16 + System.Threading.Tasks.Parallel (>= 4.0.1) - framework: >= netstandard16 + System.Threading.Thread (>= 4.0) - framework: >= netstandard16 + System.Threading.ThreadPool (>= 4.0.10) - framework: >= netstandard16 + System.Threading.Timer (>= 4.0.1) - framework: >= netstandard16 + System.ValueTuple (>= 4.3) - framework: >= net10, netstandard10, netstandard11, netstandard12, netstandard13, netstandard14, netstandard15 + FSharp.NET.Sdk (1.0.4) + FSharp.Compiler.Tools (>= 4.1.15) - framework: >= net40, >= netstandard13 + jose-jwt (2.3) + Newtonsoft.Json (>= 9.0.1) - framework: >= netstandard14 + System.IO.Compression (>= 4.3) - framework: >= netstandard14 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard14 + System.Runtime.Serialization.Primitives (>= 4.3) - framework: >= netstandard14 + System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= netstandard14 + System.Security.Cryptography.Cng (>= 4.3) - framework: >= netstandard14 + System.Security.Cryptography.Csp (>= 4.3) - framework: >= netstandard14 + System.Security.Cryptography.X509Certificates (>= 4.3) - framework: >= netstandard14 + Microsoft.AspNetCore.Hosting.Abstractions (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.AspNetCore.Hosting.Server.Abstractions (>= 1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.AspNetCore.Http.Abstractions (>= 1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Configuration.Abstractions (>= 1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.DependencyInjection.Abstractions (>= 1.1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.FileProviders.Abstractions (>= 1.1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Logging.Abstractions (>= 1.1.2) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + Microsoft.AspNetCore.Hosting.Server.Abstractions (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.AspNetCore.Http.Features (>= 1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Configuration.Abstractions (>= 1.1.2) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + Microsoft.AspNetCore.Http.Abstractions (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.AspNetCore.Http.Features (>= 1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Primitives (>= 1.1.1) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + System.Globalization.Extensions (>= 4.3) - framework: >= netstandard13 + System.Reflection.TypeExtensions (>= 4.3) - framework: >= netstandard13 + System.Text.Encodings.Web (>= 4.3.1) - framework: >= net451, >= netstandard13 + Microsoft.AspNetCore.Http.Features (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Primitives (>= 1.1.1) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + System.ComponentModel (>= 4.3) - framework: >= netstandard13 + System.Net.WebSockets (>= 4.3) - framework: >= netstandard13 + System.Security.Claims (>= 4.3) - framework: >= netstandard13 + System.Security.Principal (>= 4.3) - framework: >= netstandard13 + Microsoft.CSharp (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Dynamic.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Linq (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Linq.Expressions (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.ObjectModel (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.TypeExtensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + Microsoft.EntityFrameworkCore (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Caching.Memory (>= 1.1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.DependencyInjection (>= 1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Logging (>= 1.1.1) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + Remotion.Linq (>= 2.1.1) - framework: >= net451, >= netstandard13 + System.Collections.Immutable (>= 1.3) - framework: >= net451, >= netstandard13 + System.ComponentModel.Annotations (>= 4.3) - framework: >= netstandard13 + System.Interactive.Async (>= 3.0) - framework: >= net451, >= netstandard13 + System.Linq.Queryable (>= 4.3) - framework: >= netstandard13 + Microsoft.EntityFrameworkCore.Design (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.AspNetCore.Hosting.Abstractions (>= 1.1.1) - framework: >= net451, >= netstandard13 + Microsoft.EntityFrameworkCore.Relational.Design (>= 1.1.2) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + System.Collections.NonGeneric (>= 4.3) - framework: >= netstandard13 + Microsoft.EntityFrameworkCore.Relational (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.CSharp (>= 4.3) - framework: >= netstandard13 + Microsoft.EntityFrameworkCore (>= 1.1.2) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + System.Data.Common (>= 4.3) - framework: >= netstandard13 + System.Diagnostics.DiagnosticSource (>= 4.3.1) - framework: >= net451, >= netstandard13 + Microsoft.EntityFrameworkCore.Relational.Design (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.EntityFrameworkCore.Relational (>= 1.1.2) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + Microsoft.EntityFrameworkCore.Tools (1.1.1) + Microsoft.EntityFrameworkCore.Design (>= 1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Caching.Abstractions (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Primitives (>= 1.1.1) - framework: >= netstandard10 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard10 + Microsoft.Extensions.Caching.Memory (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Caching.Abstractions (>= 1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.DependencyInjection.Abstractions (>= 1.1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Options (>= 1.1.2) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Configuration.Abstractions (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Primitives (>= 1.1.1) - framework: >= netstandard10 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard10 + Microsoft.Extensions.DependencyInjection (1.1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.DependencyInjection.Abstractions (>= 1.1.1) - framework: >= net45, >= netstandard11 + NETStandard.Library (>= 1.6.1) - framework: >= net45, >= netstandard11 + Microsoft.Extensions.DependencyInjection.Abstractions (1.1.1) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard10 + System.ComponentModel (>= 4.3) - framework: >= netstandard10 + Microsoft.Extensions.FileProviders.Abstractions (1.1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.Primitives (>= 1.1.1) - framework: >= netstandard10 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard10 + Microsoft.Extensions.Logging (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.DependencyInjection.Abstractions (>= 1.1.1) - framework: >= net45, >= netstandard11 + Microsoft.Extensions.Logging.Abstractions (>= 1.1.2) - framework: >= net45, >= netstandard11 + NETStandard.Library (>= 1.6.1) - framework: >= net45, >= netstandard11 + Microsoft.Extensions.Logging.Abstractions (1.1.2) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= net45, >= netstandard11 + Microsoft.Extensions.Options (1.1.2) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.DependencyInjection.Abstractions (>= 1.1.1) - framework: >= netstandard10 + Microsoft.Extensions.Primitives (>= 1.1.1) - framework: >= netstandard10 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard10 + System.ComponentModel (>= 4.3) - framework: >= netstandard10 + Microsoft.Extensions.Primitives (1.1.1) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard10 + System.Runtime.CompilerServices.Unsafe (>= 4.3) - framework: >= netstandard10 + Microsoft.NETCore.Platforms (1.1) - framework: >= net10, >= netstandard10, netstandard11, netstandard13, netstandard14, netstandard15 + Microsoft.NETCore.Targets (1.1) - framework: >= net10, >= netstandard10, netstandard11, netstandard13, netstandard14, netstandard15 + Microsoft.Win32.Primitives (4.3) - framework: >= net45, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + Microsoft.Win32.Registry (4.3) - framework: >= net451, >= netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard13 + System.Globalization (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard13 + NETStandard.Library (1.6.1) - framework: >= net451, netstandard10, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard10 + Microsoft.Win32.Primitives (>= 4.3) - framework: >= net46, >= netstandard13 + System.AppContext (>= 4.3) - framework: >= net46, >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard10 + System.Collections.Concurrent (>= 4.3) - framework: >= net45, >= netstandard11 + System.Console (>= 4.3) - framework: >= net46, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard10 + System.Diagnostics.Tools (>= 4.3) - framework: >= netstandard10 + System.Diagnostics.Tracing (>= 4.3) - framework: >= net45, >= netstandard11 + System.Globalization (>= 4.3) - framework: >= netstandard10 + System.Globalization.Calendars (>= 4.3) - framework: >= net46, >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard10 + System.IO.Compression (>= 4.3) - framework: >= net45, >= netstandard11 + System.IO.Compression.ZipFile (>= 4.3) - framework: >= net46, >= netstandard13 + System.IO.FileSystem (>= 4.3) - framework: >= net46, >= netstandard13 + System.IO.FileSystem.Primitives (>= 4.3) - framework: >= net46, >= netstandard13 + System.Linq (>= 4.3) - framework: >= netstandard10 + System.Linq.Expressions (>= 4.3) - framework: >= netstandard10 + System.Net.Http (>= 4.3) - framework: >= net45, >= netstandard11 + System.Net.Primitives (>= 4.3) - framework: >= netstandard10 + System.Net.Sockets (>= 4.3) - framework: >= net46, >= netstandard13 + System.ObjectModel (>= 4.3) - framework: >= netstandard10 + System.Reflection (>= 4.3) - framework: >= netstandard10 + System.Reflection.Extensions (>= 4.3) - framework: >= netstandard10 + System.Reflection.Primitives (>= 4.3) - framework: >= netstandard10 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard10 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard10 + System.Runtime.Handles (>= 4.3) - framework: >= net46, >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: >= net45, >= netstandard11 + System.Runtime.InteropServices.RuntimeInformation (>= 4.3) - framework: >= net45, >= netstandard11 + System.Runtime.Numerics (>= 4.3) - framework: >= net45, >= netstandard11 + System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= net46, >= netstandard13 + System.Security.Cryptography.Encoding (>= 4.3) - framework: >= net46, >= netstandard13 + System.Security.Cryptography.Primitives (>= 4.3) - framework: >= net46, >= netstandard13 + System.Security.Cryptography.X509Certificates (>= 4.3) - framework: >= net46, >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: >= netstandard10 + System.Text.Encoding.Extensions (>= 4.3) - framework: >= netstandard10 + System.Text.RegularExpressions (>= 4.3) - framework: >= netstandard10 + System.Threading (>= 4.3) - framework: >= netstandard10 + System.Threading.Tasks (>= 4.3) - framework: >= netstandard10 + System.Threading.Timer (>= 4.3) - framework: >= net451, >= netstandard12 + System.Xml.ReaderWriter (>= 4.3) - framework: >= netstandard10 + System.Xml.XDocument (>= 4.3) - framework: >= netstandard10 + Newtonsoft.Json (10.0.2) + Microsoft.CSharp (>= 4.3) - framework: netstandard10, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: netstandard10, >= netstandard13 + System.ComponentModel.TypeConverter (>= 4.3) - framework: netstandard10, >= netstandard13 + System.Runtime.Serialization.Formatters (>= 4.3) - framework: >= netstandard13 + System.Runtime.Serialization.Primitives (>= 4.3) - framework: netstandard10, >= netstandard13 + System.Xml.XmlDocument (>= 4.3) - framework: >= netstandard13 + Npgsql (3.2.2) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard13 + System.Collections.Specialized (>= 4.3) - framework: >= netstandard13 + System.ComponentModel.TypeConverter (>= 4.3) - framework: >= netstandard13 + System.Data.Common (>= 4.3) - framework: >= netstandard13 + System.Diagnostics.Process (>= 4.3) - framework: >= netstandard13 + System.Globalization.Extensions (>= 4.3) - framework: >= netstandard13 + System.Net.NameResolution (>= 4.3) - framework: >= netstandard13 + System.Net.NetworkInformation (>= 4.3) - framework: >= netstandard13 + System.Net.Security (>= 4.3) - framework: >= netstandard13 + System.Reflection.TypeExtensions (>= 4.3) - framework: >= netstandard13 + System.Threading.Tasks.Extensions (>= 4.3) - framework: net45, >= net451, >= netstandard13 + System.Threading.Thread (>= 4.3) - framework: >= netstandard13 + Npgsql.EntityFrameworkCore.PostgreSQL (1.1) + Microsoft.EntityFrameworkCore (>= 1.1) - framework: >= net451, >= netstandard13 + Microsoft.EntityFrameworkCore.Relational (>= 1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.DependencyInjection (>= 1.1) - framework: >= net451, >= netstandard13 + Microsoft.Extensions.DependencyInjection.Abstractions (>= 1.1) - framework: >= net451, >= netstandard13 + Npgsql (>= 3.1.9) - framework: >= net451, >= netstandard13 + Remotion.Linq (2.1.1) - framework: >= net451, >= netstandard13 + System.Collections (>= 4.0.11) - framework: >= netstandard10 + System.Diagnostics.Debug (>= 4.0.11) - framework: >= netstandard10 + System.Linq (>= 4.1) - framework: >= netstandard10 + System.Linq.Expressions (>= 4.1) - framework: >= netstandard10 + System.Linq.Queryable (>= 4.0.1) - framework: >= netstandard10 + System.ObjectModel (>= 4.0.12) - framework: >= netstandard10 + System.Reflection (>= 4.1) - framework: >= netstandard10 + System.Reflection.Extensions (>= 4.0.1) - framework: >= netstandard10 + System.Runtime (>= 4.1) - framework: >= netstandard10 + System.Runtime.Extensions (>= 4.1) - framework: >= netstandard10 + System.Threading (>= 4.0.11) - framework: >= netstandard10 + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.native.System (4.3) - framework: >= net45, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + runtime.native.System.IO.Compression (4.3) - framework: >= net45, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + runtime.native.System.Net.Http (4.3) - framework: >= net45, >= netstandard16 + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + runtime.native.System.Net.Security (4.3) - framework: >= net451, >= netstandard16 + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + runtime.native.System.Security.Cryptography.Apple (4.3) - framework: >= net45, >= netstandard16 + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3) - framework: >= net45, >= netstandard16 + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net45, >= netstandard13, netstandard14 + Suave (2.1) + FSharp.Core (>= 4.0.0.1) - framework: >= net10, netstandard10, netstandard11, netstandard12, netstandard13, netstandard14, netstandard15 + FSharp.Core (>= 4.1.2) - framework: >= netstandard16 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard16 + System.Data.Common (>= 4.1) - framework: >= netstandard16 + System.Diagnostics.Process (>= 4.1) - framework: >= netstandard16 + System.Globalization.Extensions (>= 4.3) - framework: >= netstandard16 + System.Net.Security (>= 4.0) - framework: >= netstandard16 + System.Runtime.Serialization.Json (>= 4.0.2) - framework: >= netstandard16 + System.Security.Claims (>= 4.0.1) - framework: >= netstandard16 + System.Security.Cryptography.Primitives (>= 4.3) - framework: >= netstandard16 + Suave.Experimental (2.1) + FSharp.Core (>= 4.0.0.1) - framework: >= net10, netstandard10, netstandard11, netstandard12, netstandard13, netstandard14, netstandard15 + FSharp.Core (>= 4.1.2) - framework: >= netstandard16 + NETStandard.Library (>= 1.6.1) - framework: >= netstandard16 + Newtonsoft.Json (>= 9.0.1) - framework: >= netstandard16 + Suave (>= 2.0.1) - framework: >= netstandard16 + Suave (>= 2.1) - framework: >= net10, netstandard10, netstandard11, netstandard12, netstandard13, netstandard14, netstandard15 + System.Net.Mail (>= 1.0.0-rtm-00002) - framework: >= netstandard16 + System.Reflection (>= 4.3) - framework: >= netstandard16 + System.Reflection.TypeExtensions (>= 4.3) - framework: >= netstandard16 + System.Xml.ReaderWriter (>= 4.3) - framework: >= netstandard16 + System.AppContext (4.3) - framework: >= net46, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Buffers (4.3) - framework: >= net45, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard11 + System.Diagnostics.Tracing (>= 4.3) - framework: >= netstandard11 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard11 + System.Runtime (>= 4.3) - framework: >= netstandard11 + System.Threading (>= 4.3) - framework: >= netstandard11 + System.Collections (4.3) - framework: >= net10, >= netstandard10, netstandard13, netstandard14, netstandard15 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Collections.Concurrent (4.3) - framework: >= net45, >= netstandard13, netstandard14 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Collections.Immutable (1.3.1) - framework: >= net451, >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard10 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard10 + System.Globalization (>= 4.3) - framework: >= netstandard10 + System.Linq (>= 4.3) - framework: >= netstandard10 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard10 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard10 + System.Threading (>= 4.3) - framework: >= netstandard10 + System.Collections.NonGeneric (4.3) - framework: >= net451, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard13 + System.Globalization (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Threading (>= 4.3) - framework: >= netstandard13 + System.Collections.Specialized (4.3) - framework: >= net451, >= netstandard13 + System.Collections.NonGeneric (>= 4.3) - framework: >= netstandard13 + System.Globalization (>= 4.3) - framework: >= netstandard13 + System.Globalization.Extensions (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Threading (>= 4.3) - framework: >= netstandard13 + System.ComponentModel (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.ComponentModel.Annotations (4.3) - framework: >= net451, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.ComponentModel (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.Linq (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.Text.RegularExpressions (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard14 + System.ComponentModel.Primitives (4.3) - framework: >= net462, netstandard10, >= netstandard15 + System.ComponentModel (>= 4.3) - framework: >= netstandard10 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard10 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.ComponentModel.TypeConverter (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Collections (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Collections.NonGeneric (>= 4.3) - framework: >= net462, >= netstandard15 + System.Collections.Specialized (>= 4.3) - framework: >= netstandard15 + System.ComponentModel (>= 4.3) - framework: netstandard10, >= netstandard15 + System.ComponentModel.Primitives (>= 4.3) - framework: net45, >= net462, netstandard10, >= netstandard15, winv4.5, wpv8.0, wpav8.1 + System.Globalization (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Linq (>= 4.3) - framework: >= netstandard15 + System.Reflection (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Reflection.Extensions (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Reflection.Primitives (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Reflection.TypeExtensions (>= 4.3) - framework: >= netstandard15 + System.Resources.ResourceManager (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Runtime (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Runtime.Extensions (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Threading (>= 4.3) - framework: netstandard10, >= netstandard15 + System.Console (4.3) - framework: >= net46, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: >= netstandard13 + System.Data.Common (4.3) - framework: >= net451, >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard12 + System.Globalization (>= 4.3) - framework: >= netstandard12 + System.IO (>= 4.3) - framework: >= netstandard12 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard12 + System.Runtime (>= 4.3) - framework: >= netstandard12 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard12 + System.Text.RegularExpressions (>= 4.3) - framework: >= netstandard12 + System.Threading.Tasks (>= 4.3) - framework: >= netstandard12 + System.Diagnostics.Debug (4.3) - framework: >= net45, netstandard10, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Diagnostics.DiagnosticSource (4.3.1) - framework: >= net45, >= netstandard13 + System.Collections (>= 4.3) - framework: netstandard11, >= netstandard13 + System.Diagnostics.Tracing (>= 4.3) - framework: netstandard11, >= netstandard13 + System.Reflection (>= 4.3) - framework: netstandard11, >= netstandard13 + System.Runtime (>= 4.3) - framework: netstandard11, >= netstandard13 + System.Threading (>= 4.3) - framework: netstandard11, >= netstandard13 + System.Diagnostics.Process (4.3) - framework: >= net451, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard14 + Microsoft.Win32.Primitives (>= 4.3) - framework: >= netstandard14 + Microsoft.Win32.Registry (>= 4.3) - framework: >= netstandard14 + runtime.native.System (>= 4.3) - framework: >= netstandard14 + System.Collections (>= 4.3) - framework: >= netstandard14 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard14 + System.Globalization (>= 4.3) - framework: >= netstandard14 + System.IO (>= 4.3) - framework: >= netstandard13 + System.IO.FileSystem (>= 4.3) - framework: >= netstandard14 + System.IO.FileSystem.Primitives (>= 4.3) - framework: >= netstandard14 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard14 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard14 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard14 + System.Text.Encoding (>= 4.3) - framework: >= netstandard13 + System.Text.Encoding.Extensions (>= 4.3) - framework: >= netstandard14 + System.Threading (>= 4.3) - framework: >= netstandard14 + System.Threading.Tasks (>= 4.3) - framework: >= netstandard14 + System.Threading.Thread (>= 4.3) - framework: >= netstandard14 + System.Threading.ThreadPool (>= 4.3) - framework: >= netstandard14 + System.Diagnostics.Tools (4.3) - framework: >= net451, netstandard10, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard10 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard10 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10 + System.Diagnostics.Tracing (4.3) - framework: >= net45, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15 + System.Dynamic.Runtime (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Linq (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Linq.Expressions (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.ObjectModel (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Reflection (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Reflection.Emit (>= 4.3) - framework: >= netstandard13 + System.Reflection.Emit.ILGeneration (>= 4.3) - framework: >= netstandard13 + System.Reflection.Primitives (>= 4.3) - framework: >= netstandard13 + System.Reflection.TypeExtensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (4.3) - framework: >= net10, >= netstandard10, netstandard13, netstandard14, netstandard15 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Globalization.Calendars (4.3) - framework: >= net46, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13 + System.Globalization (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Globalization.Extensions (4.3) - framework: >= net45, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + System.Globalization (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard13 + System.Interactive.Async (3.1.1) - framework: >= net451, >= netstandard13 + NETStandard.Library (>= 1.6) - framework: >= netstandard10 + System.IO (4.3) - framework: >= net10, netstandard10, netstandard11, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.IO.Compression (4.3) - framework: >= net45, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + runtime.native.System (>= 4.3) - framework: >= netstandard13 + runtime.native.System.IO.Compression (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Buffers (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO.Compression.ZipFile (4.3) - framework: >= net46, >= netstandard13 + System.Buffers (>= 4.3) - framework: >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.IO.Compression (>= 4.3) - framework: >= netstandard13 + System.IO.FileSystem (>= 4.3) - framework: >= netstandard13 + System.IO.FileSystem.Primitives (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: >= netstandard13 + System.IO.FileSystem (4.3) - framework: >= net45, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.IO.FileSystem.Primitives (>= 4.3) - framework: >= net46, >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: >= netstandard13 + System.IO.FileSystem.Primitives (4.3) - framework: >= net451, >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Linq (4.3) - framework: >= net45, netstandard10, >= netstandard13, netstandard14 + System.Collections (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard16 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard16 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Linq.Expressions (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.IO (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Linq (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.ObjectModel (>= 4.3) - framework: >= netstandard16 + System.Reflection (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard16 + System.Reflection.Emit (>= 4.3) - framework: >= netstandard16 + System.Reflection.Emit.ILGeneration (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Reflection.Emit.Lightweight (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Reflection.TypeExtensions (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard16 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Linq.Queryable (4.3) - framework: >= net451, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Linq (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Linq.Expressions (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Net.Http (4.3.2) - framework: >= net45, >= netstandard11 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard13, >= netstandard16 + Microsoft.Win32.Primitives (>= 4.3) - framework: netstandard13 + runtime.native.System (>= 4.3) - framework: >= netstandard16 + runtime.native.System.Net.Http (>= 4.3) - framework: >= netstandard16 + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16 + System.Collections (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Diagnostics.DiagnosticSource (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Globalization (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Globalization.Extensions (>= 4.3) - framework: >= netstandard16 + System.IO (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16 + System.IO.Compression (>= 4.3) - framework: netstandard13 + System.IO.FileSystem (>= 4.3) - framework: >= netstandard16 + System.Net.Primitives (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Runtime.Handles (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Encoding (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Primitives (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.X509Certificates (>= 4.3) - framework: >= net46, dnxcore50, netstandard13, >= netstandard16 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16 + System.Threading (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16 + System.Net.Mail (1.0.0-rtm-00002) - framework: >= netstandard16 + Newtonsoft.Json (>= 8.0.3) - framework: >= net451, >= netstandard13 + System.Collections (>= 4.0.11) - framework: >= netstandard13 + System.Collections.Specialized (>= 4.0.1) - framework: >= netstandard13 + System.Data.Common (>= 4.0.1) - framework: >= netstandard13 + System.Diagnostics.Debug (>= 4.0.11) - framework: >= netstandard13 + System.Globalization (>= 4.0.11) - framework: >= netstandard13 + System.Globalization.Extensions (>= 4.0.1) - framework: >= netstandard13 + System.IO.FileSystem (>= 4.0.1) - framework: >= netstandard13 + System.Net.Primitives (>= 4.0.11) - framework: >= netstandard13 + System.Runtime (>= 4.1) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.1) - framework: >= netstandard13 + System.Text.Encoding.Extensions (>= 4.0.11) - framework: >= netstandard13 + System.Threading (>= 4.0.11) - framework: >= netstandard13 + System.Threading.Thread (>= 4.0) - framework: >= netstandard13 + System.Threading.ThreadPool (>= 4.0.10) - framework: >= netstandard13 + System.Net.NameResolution (4.3) - framework: >= net451, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard13 + runtime.native.System (>= 4.3) - framework: >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Net.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Security.Principal.Windows (>= 4.3) - framework: >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Net.NetworkInformation (4.3) - framework: >= net451, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard13 + Microsoft.Win32.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard13 + runtime.native.System (>= 4.3) - framework: >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.IO.FileSystem (>= 4.3) - framework: >= netstandard13 + System.IO.FileSystem.Primitives (>= 4.3) - framework: >= netstandard13 + System.Linq (>= 4.3) - framework: >= netstandard13 + System.Net.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Net.Sockets (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Security.Principal.Windows (>= 4.3) - framework: >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Overlapped (>= 4.3) - framework: >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Thread (>= 4.3) - framework: >= netstandard13 + System.Threading.ThreadPool (>= 4.3) - framework: >= netstandard13 + System.Net.Primitives (4.3) - framework: >= net45, >= netstandard10, netstandard11, netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Net.Requests (4.3) - framework: >= netstandard16 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO (>= 4.3) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13 + System.Net.Http (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Net.Primitives (>= 4.3) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13 + System.Net.WebHeaderCollection (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Net.Security (4.3.1) - framework: >= net451, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: netstandard13, >= netstandard16 + Microsoft.Win32.Primitives (>= 4.3) - framework: netstandard13, >= netstandard16 + runtime.native.System (>= 4.3) - framework: >= netstandard16 + runtime.native.System.Net.Security (>= 4.3) - framework: >= netstandard16 + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16 + System.Collections (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Collections.Concurrent (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Diagnostics.Tracing (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Globalization (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Globalization.Extensions (>= 4.3) - framework: >= netstandard16 + System.IO (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Net.Primitives (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Runtime (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Runtime.Extensions (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Runtime.Handles (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Runtime.InteropServices (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Security.Claims (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Encoding (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Primitives (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Security.Cryptography.X509Certificates (>= 4.3) - framework: >= net46, netstandard13, >= netstandard16 + System.Security.Principal (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Text.Encoding (>= 4.3) - framework: >= netstandard16 + System.Threading (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Threading.Tasks (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Threading.ThreadPool (>= 4.3) - framework: netstandard13, >= netstandard16 + System.Net.Sockets (4.3) - framework: >= net451, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.Net.Primitives (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: >= netstandard13 + System.Net.WebHeaderCollection (4.3) - framework: >= netstandard16 + System.Collections (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Net.WebSockets (4.3) - framework: >= net451, >= netstandard13 + Microsoft.Win32.Primitives (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: >= netstandard13 + System.ObjectModel (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Private.DataContractSerialization (4.3) - framework: >= netstandard16 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Collections.Concurrent (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Linq (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Emit.ILGeneration (>= 4.3) - framework: >= netstandard13 + System.Reflection.Emit.Lightweight (>= 4.3) - framework: >= netstandard13 + System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.TypeExtensions (>= 4.3) - framework: >= net46, dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.Serialization.Primitives (>= 4.3) - framework: >= net46, dnxcore50, >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Text.Encoding.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Text.RegularExpressions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Xml.ReaderWriter (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Xml.XDocument (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Xml.XmlDocument (>= 4.3) - framework: >= net46, dnxcore50, >= netstandard13 + System.Xml.XmlSerializer (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection (4.3) - framework: >= net10, >= netstandard10, netstandard13, netstandard14, netstandard15 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.IO (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.Reflection.Emit (4.3) - framework: >= net451, >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard11 + System.Reflection (>= 4.3) - framework: >= netstandard11 + System.Reflection.Emit.ILGeneration (>= 4.3) - framework: >= netstandard11 + System.Reflection.Primitives (>= 4.3) - framework: >= netstandard11 + System.Runtime (>= 4.3) - framework: >= netstandard11 + System.Reflection.Emit.ILGeneration (4.3) - framework: >= net451, >= netstandard13 + System.Reflection (>= 4.3) - framework: >= netstandard10 + System.Reflection.Primitives (>= 4.3) - framework: >= netstandard10 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.Reflection.Emit.Lightweight (4.3) - framework: >= net451, >= netstandard16 + System.Reflection (>= 4.3) - framework: >= netstandard10 + System.Reflection.Emit.ILGeneration (>= 4.3) - framework: >= netstandard10 + System.Reflection.Primitives (>= 4.3) - framework: >= netstandard10 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.Reflection.Extensions (4.3) - framework: >= net451, netstandard10, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard10 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard10 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard10 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10 + System.Reflection.Primitives (4.3) - framework: >= net10, netstandard10, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard10 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard10 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10 + System.Reflection.TypeExtensions (4.3) - framework: >= net451, >= netstandard13 + System.Reflection (>= 4.3) - framework: >= net462, dnxcore50, netstandard13, >= netstandard15 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard15 + System.Resources.ResourceManager (4.3) - framework: >= net10, >= netstandard10, netstandard13, netstandard14, netstandard15 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard10 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard10 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard10 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard10 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10 + System.Runtime (4.3) - framework: >= net10, >= netstandard10, netstandard11, netstandard13, netstandard14, netstandard15 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard12, netstandard13, >= netstandard15 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard12, netstandard13, >= netstandard15 + System.Runtime.CompilerServices.Unsafe (4.3) - framework: >= net451, >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.Runtime.Extensions (4.3) - framework: >= net45, netstandard10, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15 + System.Runtime.Handles (4.3) - framework: >= net45, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.InteropServices (4.3) - framework: >= net45, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11 + System.Reflection (>= 4.3) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11 + System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11 + System.Runtime (>= 4.3) - framework: net462, >= net463, dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11 + System.Runtime.Handles (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard15, netcore11 + System.Runtime.InteropServices.RuntimeInformation (4.3) - framework: >= net451, >= netstandard13 + runtime.native.System (>= 4.3) - framework: >= netstandard11 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard11 + System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard11 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard11 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard11 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard11 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard11 + System.Runtime.Numerics (4.3) - framework: >= net45, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.Serialization.Formatters (4.3) - framework: >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard14 + System.Reflection (>= 4.3) - framework: >= netstandard14 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard14 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Serialization.Primitives (>= 4.3) - framework: >= net46, >= netstandard13 + System.Runtime.Serialization.Json (4.3) - framework: >= netstandard16 + System.IO (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Private.DataContractSerialization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime.Serialization.Primitives (4.3) - framework: netstandard10, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Security.Claims (4.3) - framework: >= net451, >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard13 + System.Globalization (>= 4.3) - framework: >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Security.Principal (>= 4.3) - framework: >= netstandard13 + System.Security.Cryptography.Algorithms (4.3) - framework: >= net45, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard16 + runtime.native.System.Security.Cryptography.Apple (>= 4.3) - framework: >= netstandard16 + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16 + System.Collections (>= 4.3) - framework: >= netstandard16 + System.IO (>= 4.3) - framework: >= net463, dnxcore50, netstandard13, netstandard14, >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime (>= 4.3) - framework: >= net463, dnxcore50, netstandard13, netstandard14, >= netstandard16 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime.Handles (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime.Numerics (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Encoding (>= 4.3) - framework: >= net463, dnxcore50, >= netstandard16 + System.Security.Cryptography.Primitives (>= 4.3) - framework: net46, net461, >= net463, dnxcore50, netstandard13, netstandard14, >= netstandard16 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Security.Cryptography.Cng (4.3) - framework: >= net46, >= netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: netstandard14, >= netstandard16 + System.IO (>= 4.3) - framework: netstandard13, netstandard14, >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: netstandard14, >= netstandard16 + System.Runtime (>= 4.3) - framework: netstandard13, netstandard14, >= netstandard16 + System.Runtime.Extensions (>= 4.3) - framework: netstandard14, >= netstandard16 + System.Runtime.Handles (>= 4.3) - framework: netstandard13, netstandard14, >= netstandard16 + System.Runtime.InteropServices (>= 4.3) - framework: netstandard14, >= netstandard16 + System.Security.Cryptography.Algorithms (>= 4.3) - framework: net46, net461, >= net463, netstandard13, netstandard14, >= netstandard16 + System.Security.Cryptography.Encoding (>= 4.3) - framework: netstandard14, >= netstandard16 + System.Security.Cryptography.Primitives (>= 4.3) - framework: net46, net461, >= net463, netstandard13, netstandard14, >= netstandard16 + System.Text.Encoding (>= 4.3) - framework: netstandard14, >= netstandard16 + System.Security.Cryptography.Csp (4.3) - framework: >= net46, >= netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.Reflection (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard13 + System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= net46, >= netstandard13 + System.Security.Cryptography.Encoding (>= 4.3) - framework: >= netstandard13 + System.Security.Cryptography.Primitives (>= 4.3) - framework: >= net46, >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: >= netstandard13 + System.Threading (>= 4.3) - framework: >= netstandard13 + System.Security.Cryptography.Encoding (4.3) - framework: >= net45, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard13 + System.Collections.Concurrent (>= 4.3) - framework: >= netstandard13 + System.Linq (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard13 + System.Security.Cryptography.Primitives (>= 4.3) - framework: >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: >= netstandard13 + System.Security.Cryptography.OpenSsl (4.3) - framework: >= net45, >= netstandard16 + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= net463, >= netstandard16, monoandroid, monotouch, xamarinios, xamarinmac + System.Collections (>= 4.3) - framework: >= netstandard16 + System.IO (>= 4.3) - framework: >= net463, >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard16 + System.Runtime (>= 4.3) - framework: >= net463, >= netstandard16 + System.Runtime.Extensions (>= 4.3) - framework: >= net463, >= netstandard16 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard16 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard16 + System.Runtime.Numerics (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= net463, >= netstandard16 + System.Security.Cryptography.Encoding (>= 4.3) - framework: >= net463, >= netstandard16 + System.Security.Cryptography.Primitives (>= 4.3) - framework: >= net463, >= netstandard16 + System.Text.Encoding (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Primitives (4.3) - framework: >= net45, >= netstandard13, netstandard14 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard13 + System.Globalization (>= 4.3) - framework: >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Threading (>= 4.3) - framework: >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: >= netstandard13 + System.Security.Cryptography.X509Certificates (4.3) - framework: >= net46, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard16 + runtime.native.System (>= 4.3) - framework: >= netstandard16 + runtime.native.System.Net.Http (>= 4.3) - framework: >= netstandard16 + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard16 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Globalization.Calendars (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.IO (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.IO.FileSystem (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.IO.FileSystem.Primitives (>= 4.3) - framework: >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard13, netstandard14, >= netstandard16 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime.Handles (>= 4.3) - framework: dnxcore50, netstandard13, netstandard14, >= netstandard16 + System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime.Numerics (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Security.Cryptography.Algorithms (>= 4.3) - framework: net46, >= net461, dnxcore50, netstandard13, netstandard14, >= netstandard16 + System.Security.Cryptography.Cng (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Security.Cryptography.Csp (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Encoding (>= 4.3) - framework: net46, >= net461, dnxcore50, netstandard13, netstandard14, >= netstandard16 + System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16 + System.Security.Cryptography.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Security.Principal (4.3) - framework: >= net451, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10 + System.Security.Principal.Windows (4.3) - framework: >= net451, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13 + Microsoft.Win32.Primitives (>= 4.3) - framework: >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard13 + System.Reflection (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard13 + System.Security.Claims (>= 4.3) - framework: >= net46, >= netstandard13 + System.Security.Principal (>= 4.3) - framework: >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: >= netstandard13 + System.Threading (>= 4.3) - framework: >= netstandard13 + System.Text.Encoding (4.3) - framework: >= net10, netstandard10, netstandard11, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Text.Encoding.Extensions (4.3) - framework: >= net451, netstandard10, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Text.Encodings.Web (4.3.1) - framework: >= net451, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard10 + System.IO (>= 4.3) - framework: >= netstandard10 + System.Reflection (>= 4.3) - framework: >= netstandard10 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard10 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard10 + System.Threading (>= 4.3) - framework: >= netstandard10 + System.Text.RegularExpressions (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard16, netcore11 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard16 + System.Threading (4.3) - framework: >= net45, netstandard10, >= netstandard13, netstandard14 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Threading.Overlapped (4.3) - framework: >= net451, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Tasks (4.3) - framework: >= net10, netstandard10, netstandard11, >= netstandard13, netstandard14 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Threading.Tasks.Extensions (4.3) - framework: >= net451, >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard10 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.Threading.Tasks (>= 4.3) - framework: >= netstandard10 + System.Threading.Tasks.Parallel (4.3) - framework: >= netstandard16 + System.Collections.Concurrent (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13 + System.Threading.Thread (4.3) - framework: >= net451, >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Threading.ThreadPool (4.3) - framework: >= net451, >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Handles (>= 4.3) - framework: >= netstandard13 + System.Threading.Timer (4.3) - framework: >= net451, >= netstandard13 + Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard12 + Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard12 + System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard12 + System.ValueTuple (4.3.1) - framework: >= net10, netstandard10, netstandard11, netstandard12, netstandard13, netstandard14, netstandard15 + System.Collections (>= 4.3) - framework: >= netstandard10 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard10 + System.Runtime (>= 4.3) - framework: >= netstandard10 + System.Xml.ReaderWriter (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.IO.FileSystem (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO.FileSystem.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Text.Encoding.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Text.RegularExpressions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Threading.Tasks.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Xml.XDocument (4.3) - framework: >= net451, netstandard10, >= netstandard13 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Diagnostics.Tools (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Xml.ReaderWriter (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Xml.XmlDocument (4.3) - framework: >= netstandard13 + System.Collections (>= 4.3) - framework: >= netstandard13 + System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard13 + System.Globalization (>= 4.3) - framework: >= netstandard13 + System.IO (>= 4.3) - framework: >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13 + System.Runtime (>= 4.3) - framework: >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13 + System.Text.Encoding (>= 4.3) - framework: >= netstandard13 + System.Threading (>= 4.3) - framework: >= netstandard13 + System.Xml.ReaderWriter (>= 4.3) - framework: >= netstandard13 + System.Xml.XmlSerializer (4.3) - framework: >= netstandard16 + System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.IO (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Linq (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Emit (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Emit.ILGeneration (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Reflection.TypeExtensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Text.RegularExpressions (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13 + System.Xml.ReaderWriter (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13 + System.Xml.XmlDocument (>= 4.3) - framework: dnxcore50, >= netstandard13 diff --git a/src/api/App.fs b/src/api/App.fs index 1e80967..edf148d 100644 --- a/src/api/App.fs +++ b/src/api/App.fs @@ -176,16 +176,20 @@ let viewJournal = let reqs = Data.Requests.allForUser (defaultArg (read ctx "user") "") dataCtx OK (Views.journal reqs |> html ctx)) +let idx = + context (fun ctx -> + Console.WriteLine "serving index" + succeed) /// Suave application let app = statefulForSession >=> Auth.loggedOn >=> choose [ - path Route.home >=> viewHome + path Route.home >=> Files.browseFileHome "index.html" path Route.journal >=> viewJournal path Route.User.logOn >=> Auth.handleSignIn path Route.User.logOff >=> Auth.handleSignOut - Files.browseHome + Writers.setHeader "Cache-Control" "no-cache" >=> Files.browseHome NOT_FOUND "Page not found." ] @@ -203,12 +207,18 @@ let suaveCfg = serverKey = Text.Encoding.UTF8.GetBytes("12345678901234567890123456789012") cookieSerialiser = JsonNetCookieSerializer () } +open Suave.Utils [] let main argv = // Establish the data environment //liftDep getConn (Data.establishEnvironment >> Async.RunSynchronously) //|> run deps + let writeKey key = File.WriteAllText ("key.txt", key) + Crypto.generateKey Crypto.KeySize + |> Convert.ToBase64String + |> writeKey + ensureDatabase () startWebServer suaveCfg app 0 diff --git a/src/api/MyPrayerJournal.fsproj b/src/api/MyPrayerJournal.fsproj index baa4b07..ecebe79 100644 --- a/src/api/MyPrayerJournal.fsproj +++ b/src/api/MyPrayerJournal.fsproj @@ -1,13 +1,11 @@ - + 0.8.1 netcoreapp1.1 - portable myPrayerJournal Exe - src - $(PackageTargetFallback);dnxcore50 + MyPrayerJournal 1.1.1 @@ -24,27 +22,15 @@ PreserveNewest + + Always + + + + - - - - - - - - - All - - - - - - - - - diff --git a/src/api/paket.references b/src/api/paket.references new file mode 100644 index 0000000..c219201 --- /dev/null +++ b/src/api/paket.references @@ -0,0 +1,6 @@ +Auth0.AuthenticationApi +jose-jwt +Newtonsoft.Json +Npgsql.EntityFrameworkCore.PostgreSQL +Suave +Suave.Experimental \ No newline at end of file diff --git a/src/app/.editorconfig b/src/app/.editorconfig new file mode 100644 index 0000000..26692da --- /dev/null +++ b/src/app/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: http://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +# 2 space indentation +indent_style = space +indent_size = 2 diff --git a/src/app/aurelia_project/aurelia.json b/src/app/aurelia_project/aurelia.json new file mode 100644 index 0000000..676c9a9 --- /dev/null +++ b/src/app/aurelia_project/aurelia.json @@ -0,0 +1,159 @@ +{ + "name": "my-prayer-journal", + "type": "project:application", + "platform": { + "id": "web", + "displayName": "Web", + "output": "scripts", + "index": "index.html", + "baseDir": "." + }, + "transpiler": { + "id": "typescript", + "displayName": "TypeScript", + "fileExtension": ".ts", + "dtsSource": [ + "./custom_typings/**/*.d.ts" + ], + "source": "src/**/*.ts" + }, + "markupProcessor": { + "id": "minimum", + "displayName": "Minimal Minification", + "fileExtension": ".html", + "source": "src/**/*.html" + }, + "cssProcessor": { + "id": "none", + "displayName": "None", + "fileExtension": ".css", + "source": "src/**/*.css" + }, + "editor": { + "id": "vscode", + "displayName": "Visual Studio Code" + }, + "unitTestRunner": { + "id": "karma", + "displayName": "Karma", + "source": "test/unit/**/*.ts" + }, + "paths": { + "root": "src", + "resources": "resources", + "elements": "resources/elements", + "attributes": "resources/attributes", + "valueConverters": "resources/value-converters", + "bindingBehaviors": "resources/binding-behaviors" + }, + "testFramework": { + "id": "jasmine", + "displayName": "Jasmine" + }, + "build": { + "targets": [ + { + "id": "web", + "displayName": "Web", + "output": "scripts", + "index": "index.html", + "baseDir": "." + } + ], + "loader": { + "type": "require", + "configTarget": "vendor-bundle.js", + "includeBundleMetadataInConfig": "auto", + "plugins": [ + { + "name": "text", + "extensions": [ + ".html", + ".css" + ], + "stub": true + } + ] + }, + "options": { + "minify": "stage & prod", + "sourcemaps": "dev & stage" + }, + "bundles": [ + { + "name": "app-bundle.js", + "source": [ + "[**/*.js]", + "**/*.{css,html}" + ] + }, + { + "name": "vendor-bundle.js", + "prepend": [ + "node_modules/bluebird/js/browser/bluebird.core.js", + "node_modules/aurelia-cli/lib/resources/scripts/configure-bluebird.js", + "node_modules/requirejs/require.js" + ], + "dependencies": [ + "aurelia-binding", + "aurelia-bootstrapper", + "aurelia-dependency-injection", + "aurelia-event-aggregator", + "aurelia-framework", + "aurelia-history", + "aurelia-history-browser", + "aurelia-loader", + "aurelia-loader-default", + "aurelia-logging", + "aurelia-logging-console", + "aurelia-metadata", + "aurelia-pal", + "aurelia-pal-browser", + "aurelia-path", + "aurelia-polyfills", + "aurelia-route-recognizer", + "aurelia-router", + "aurelia-task-queue", + "aurelia-templating", + "aurelia-templating-binding", + "text", + { + "name": "aurelia-templating-resources", + "path": "../node_modules/aurelia-templating-resources/dist/amd", + "main": "aurelia-templating-resources" + }, + { + "name": "aurelia-templating-router", + "path": "../node_modules/aurelia-templating-router/dist/amd", + "main": "aurelia-templating-router" + }, + { + "name": "aurelia-testing", + "path": "../node_modules/aurelia-testing/dist/amd", + "main": "aurelia-testing", + "env": "dev" + }, + "jquery", + { + "name": "bootstrap", + "path": "../node_modules/bootstrap/dist", + "main": "js/bootstrap.min", + "deps": ["jquery"], + "exports": "$", + "resources": [ + "css/bootstrap.css" + ] + }, + { + "name": "nprogress", + "path": "../node_modules/nprogress", + "main": "nprogress", + "resources": [ + "nprogress.css" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/src/app/aurelia_project/environments/dev.ts b/src/app/aurelia_project/environments/dev.ts new file mode 100644 index 0000000..3495e9a --- /dev/null +++ b/src/app/aurelia_project/environments/dev.ts @@ -0,0 +1,4 @@ +export default { + debug: true, + testing: true +}; diff --git a/src/app/aurelia_project/environments/prod.ts b/src/app/aurelia_project/environments/prod.ts new file mode 100644 index 0000000..da32a4b --- /dev/null +++ b/src/app/aurelia_project/environments/prod.ts @@ -0,0 +1,4 @@ +export default { + debug: false, + testing: false +}; diff --git a/src/app/aurelia_project/environments/stage.ts b/src/app/aurelia_project/environments/stage.ts new file mode 100644 index 0000000..dafe69b --- /dev/null +++ b/src/app/aurelia_project/environments/stage.ts @@ -0,0 +1,4 @@ +export default { + debug: true, + testing: false +}; diff --git a/src/app/aurelia_project/generators/attribute.json b/src/app/aurelia_project/generators/attribute.json new file mode 100644 index 0000000..ddf940c --- /dev/null +++ b/src/app/aurelia_project/generators/attribute.json @@ -0,0 +1,4 @@ +{ + "name": "attribute", + "description": "Creates a custom attribute class and places it in the project resources." +} diff --git a/src/app/aurelia_project/generators/attribute.ts b/src/app/aurelia_project/generators/attribute.ts new file mode 100644 index 0000000..e661241 --- /dev/null +++ b/src/app/aurelia_project/generators/attribute.ts @@ -0,0 +1,38 @@ +import {inject} from 'aurelia-dependency-injection'; +import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; + +@inject(Project, CLIOptions, UI) +export default class AttributeGenerator { + constructor(private project: Project, private options: CLIOptions, private ui: UI) { } + + execute() { + return this.ui + .ensureAnswer(this.options.args[0], 'What would you like to call the custom attribute?') + .then(name => { + let fileName = this.project.makeFileName(name); + let className = this.project.makeClassName(name); + + this.project.attributes.add( + ProjectItem.text(`${fileName}.ts`, this.generateSource(className)) + ); + + return this.project.commitChanges() + .then(() => this.ui.log(`Created ${fileName}.`)); + }); + } + + generateSource(className) { +return `import {autoinject} from 'aurelia-framework'; + +@autoinject() +export class ${className}CustomAttribute { + constructor(private element: Element) { } + + valueChanged(newValue, oldValue) { + + } +} + +` + } +} diff --git a/src/app/aurelia_project/generators/binding-behavior.json b/src/app/aurelia_project/generators/binding-behavior.json new file mode 100644 index 0000000..60906a1 --- /dev/null +++ b/src/app/aurelia_project/generators/binding-behavior.json @@ -0,0 +1,4 @@ +{ + "name": "binding-behavior", + "description": "Creates a binding behavior class and places it in the project resources." +} diff --git a/src/app/aurelia_project/generators/binding-behavior.ts b/src/app/aurelia_project/generators/binding-behavior.ts new file mode 100644 index 0000000..c7a7277 --- /dev/null +++ b/src/app/aurelia_project/generators/binding-behavior.ts @@ -0,0 +1,37 @@ +import {inject} from 'aurelia-dependency-injection'; +import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; + +@inject(Project, CLIOptions, UI) +export default class BindingBehaviorGenerator { + constructor(private project: Project, private options: CLIOptions, private ui: UI) { } + + execute() { + return this.ui + .ensureAnswer(this.options.args[0], 'What would you like to call the binding behavior?') + .then(name => { + let fileName = this.project.makeFileName(name); + let className = this.project.makeClassName(name); + + this.project.bindingBehaviors.add( + ProjectItem.text(`${fileName}.ts`, this.generateSource(className)) + ); + + return this.project.commitChanges() + .then(() => this.ui.log(`Created ${fileName}.`)); + }); + } + + generateSource(className) { +return `export class ${className}BindingBehavior { + bind(binding, source) { + + } + + unbind(binding, source) { + + } +} + +` + } +} diff --git a/src/app/aurelia_project/generators/component.json b/src/app/aurelia_project/generators/component.json new file mode 100644 index 0000000..ec39075 --- /dev/null +++ b/src/app/aurelia_project/generators/component.json @@ -0,0 +1,4 @@ +{ + "name": "component", + "description": "Creates a custom component class and template (view model and view), placing them in the project source folder (or optionally in sub folders)." +} \ No newline at end of file diff --git a/src/app/aurelia_project/generators/component.ts b/src/app/aurelia_project/generators/component.ts new file mode 100644 index 0000000..57e0a96 --- /dev/null +++ b/src/app/aurelia_project/generators/component.ts @@ -0,0 +1,49 @@ +import { inject } from 'aurelia-dependency-injection'; +import { Project, ProjectItem, CLIOptions, UI } from 'aurelia-cli'; + +var path = require('path'); + +@inject(Project, CLIOptions, UI) +export default class ElementGenerator { + constructor(private project: Project, private options: CLIOptions, private ui: UI) { } + + execute() { + let self = this; + + return this.ui + .ensureAnswer(this.options.args[0], 'What would you like to call the component?') + .then(name => { + + return self.ui.ensureAnswer(this.options.args[1], 'What sub-folder would you like to add it to?\nIf it doesn\'t exist it will be created for you.\n\nDefault folder is the source folder (src).', ".") + .then(subFolders => { + + let fileName = this.project.makeFileName(name); + let className = this.project.makeClassName(name); + + self.project.root.add( + ProjectItem.text(path.join(subFolders, fileName + ".ts"), this.generateJSSource(className)), + ProjectItem.text(path.join(subFolders, fileName + ".html"), this.generateHTMLSource(className)) + ); + + return this.project.commitChanges() + .then(() => this.ui.log(`Created ${name} in the '${path.join(self.project.root.name, subFolders)}' folder`)); + }); + }); + } + + generateJSSource(className) { + return `export class ${className} { + message: string; + + constructor() { + this.message = 'Hello world'; + } +}` + } + + generateHTMLSource(className) { + return `` + } +} diff --git a/src/app/aurelia_project/generators/element.json b/src/app/aurelia_project/generators/element.json new file mode 100644 index 0000000..68d8c54 --- /dev/null +++ b/src/app/aurelia_project/generators/element.json @@ -0,0 +1,4 @@ +{ + "name": "element", + "description": "Creates a custom element class and template, placing them in the project resources." +} diff --git a/src/app/aurelia_project/generators/element.ts b/src/app/aurelia_project/generators/element.ts new file mode 100644 index 0000000..01856be --- /dev/null +++ b/src/app/aurelia_project/generators/element.ts @@ -0,0 +1,44 @@ +import {inject} from 'aurelia-dependency-injection'; +import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; + +@inject(Project, CLIOptions, UI) +export default class ElementGenerator { + constructor(private project: Project, private options: CLIOptions, private ui: UI) { } + + execute() { + return this.ui + .ensureAnswer(this.options.args[0], 'What would you like to call the custom element?') + .then(name => { + let fileName = this.project.makeFileName(name); + let className = this.project.makeClassName(name); + + this.project.elements.add( + ProjectItem.text(`${fileName}.ts`, this.generateJSSource(className)), + ProjectItem.text(`${fileName}.html`, this.generateHTMLSource(className)) + ); + + return this.project.commitChanges() + .then(() => this.ui.log(`Created ${fileName}.`)); + }); + } + + generateJSSource(className) { +return `import {bindable} from 'aurelia-framework'; + +export class ${className} { + @bindable value; + + valueChanged(newValue, oldValue) { + + } +} + +` + } + + generateHTMLSource(className) { +return `` + } +} diff --git a/src/app/aurelia_project/generators/generator.json b/src/app/aurelia_project/generators/generator.json new file mode 100644 index 0000000..be946a5 --- /dev/null +++ b/src/app/aurelia_project/generators/generator.json @@ -0,0 +1,4 @@ +{ + "name": "generator", + "description": "Creates a generator class and places it in the project generators folder." +} diff --git a/src/app/aurelia_project/generators/generator.ts b/src/app/aurelia_project/generators/generator.ts new file mode 100644 index 0000000..6eae3c7 --- /dev/null +++ b/src/app/aurelia_project/generators/generator.ts @@ -0,0 +1,65 @@ +import {inject} from 'aurelia-dependency-injection'; +import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; + +@inject(Project, CLIOptions, UI) +export default class GeneratorGenerator { + constructor(private project: Project, private options: CLIOptions, private ui: UI) { } + + execute() { + return this.ui + .ensureAnswer(this.options.args[0], 'What would you like to call the generator?') + .then(name => { + let fileName = this.project.makeFileName(name); + let className = this.project.makeClassName(name); + + this.project.generators.add( + ProjectItem.text(`${fileName}.ts`, this.generateSource(className)) + ); + + return this.project.commitChanges() + .then(() => this.ui.log(`Created ${fileName}.`)); + }); + } + + generateSource(className) { +return `import {autoinject} from 'aurelia-dependency-injection'; +import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; + +@autoinject() +export default class ${className}Generator { + constructor(private project: Project, private options: CLIOptions, private ui: UI) { } + + execute() { + return this.ui + .ensureAnswer(this.options.args[0], 'What would you like to call the new item?') + .then(name => { + let fileName = this.project.makeFileName(name); + let className = this.project.makeClassName(name); + + this.project.elements.add( + ProjectItem.text(\`\${fileName}.js\`, this.generateSource(className)) + ); + + return this.project.commitChanges() + .then(() => this.ui.log(\`Created \${fileName}.\`)); + }); + } + + generateSource(className) { +return \`import {bindable} from 'aurelia-framework'; + +export class \${className} { + @bindable value; + + valueChanged(newValue, oldValue) { + + } +} + +\` + } +} + +` + } +} diff --git a/src/app/aurelia_project/generators/task.json b/src/app/aurelia_project/generators/task.json new file mode 100644 index 0000000..fd15bc6 --- /dev/null +++ b/src/app/aurelia_project/generators/task.json @@ -0,0 +1,4 @@ +{ + "name": "task", + "description": "Creates a task and places it in the project tasks folder." +} diff --git a/src/app/aurelia_project/generators/task.ts b/src/app/aurelia_project/generators/task.ts new file mode 100644 index 0000000..cc3b02e --- /dev/null +++ b/src/app/aurelia_project/generators/task.ts @@ -0,0 +1,37 @@ +import {inject} from 'aurelia-dependency-injection'; +import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; + +@inject(Project, CLIOptions, UI) +export default class TaskGenerator { + constructor(private project: Project, private options: CLIOptions, private ui: UI) { } + + execute() { + return this.ui + .ensureAnswer(this.options.args[0], 'What would you like to call the task?') + .then(name => { + let fileName = this.project.makeFileName(name); + let functionName = this.project.makeFunctionName(name); + + this.project.tasks.add( + ProjectItem.text(`${fileName}.ts`, this.generateSource(functionName)) + ); + + return this.project.commitChanges() + .then(() => this.ui.log(`Created ${fileName}.`)); + }); + } + + generateSource(functionName) { +return `import * as gulp from 'gulp'; +import * as changed from 'gulp-changed'; +import * as project from '../aurelia.json'; + +export default function ${functionName}() { + return gulp.src(project.paths.???) + .pipe(changed(project.paths.output, {extension: '.???'})) + .pipe(gulp.dest(project.paths.output)); +} + +` + } +} diff --git a/src/app/aurelia_project/generators/value-converter.json b/src/app/aurelia_project/generators/value-converter.json new file mode 100644 index 0000000..1108122 --- /dev/null +++ b/src/app/aurelia_project/generators/value-converter.json @@ -0,0 +1,4 @@ +{ + "name": "value-converter", + "description": "Creates a value converter class and places it in the project resources." +} diff --git a/src/app/aurelia_project/generators/value-converter.ts b/src/app/aurelia_project/generators/value-converter.ts new file mode 100644 index 0000000..d75e9f6 --- /dev/null +++ b/src/app/aurelia_project/generators/value-converter.ts @@ -0,0 +1,37 @@ +import {inject} from 'aurelia-dependency-injection'; +import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; + +@inject(Project, CLIOptions, UI) +export default class ValueConverterGenerator { + constructor(private project: Project, private options: CLIOptions, private ui: UI) { } + + execute() { + return this.ui + .ensureAnswer(this.options.args[0], 'What would you like to call the value converter?') + .then(name => { + let fileName = this.project.makeFileName(name); + let className = this.project.makeClassName(name); + + this.project.valueConverters.add( + ProjectItem.text(`${fileName}.ts`, this.generateSource(className)) + ); + + return this.project.commitChanges() + .then(() => this.ui.log(`Created ${fileName}.`)); + }); + } + + generateSource(className) { +return `export class ${className}ValueConverter { + toView(value) { + + } + + fromView(value) { + + } +} + +` + } +} diff --git a/src/app/aurelia_project/tasks/build.json b/src/app/aurelia_project/tasks/build.json new file mode 100644 index 0000000..50f16ed --- /dev/null +++ b/src/app/aurelia_project/tasks/build.json @@ -0,0 +1,11 @@ +{ + "name": "build", + "description": "Builds and processes all application assets.", + "flags": [ + { + "name": "env", + "description": "Sets the build environment.", + "type": "string" + } + ] +} diff --git a/src/app/aurelia_project/tasks/build.ts b/src/app/aurelia_project/tasks/build.ts new file mode 100644 index 0000000..18fd55f --- /dev/null +++ b/src/app/aurelia_project/tasks/build.ts @@ -0,0 +1,26 @@ +import * as gulp from 'gulp'; +import transpile from './transpile'; +import processMarkup from './process-markup'; +import processCSS from './process-css'; +import copyFiles from './copy-files'; +import {build} from 'aurelia-cli'; +import * as project from '../aurelia.json'; + +export default gulp.series( + readProjectConfiguration, + gulp.parallel( + transpile, + processMarkup, + processCSS, + copyFiles + ), + writeBundles +); + +function readProjectConfiguration() { + return build.src(project); +} + +function writeBundles() { + return build.dest(); +} diff --git a/src/app/aurelia_project/tasks/copy-files.ts b/src/app/aurelia_project/tasks/copy-files.ts new file mode 100644 index 0000000..48d135d --- /dev/null +++ b/src/app/aurelia_project/tasks/copy-files.ts @@ -0,0 +1,45 @@ +import * as gulp from 'gulp'; +import * as path from 'path'; +import * as minimatch from 'minimatch'; +import * as changedInPlace from 'gulp-changed-in-place'; +import * as project from '../aurelia.json'; + +export default function copyFiles(done) { + if (typeof project.build.copyFiles !== 'object') { + done(); + return; + } + + const instruction = getNormalizedInstruction(); + const files = Object.keys(instruction); + + return gulp.src(files) + .pipe(changedInPlace({ firstPass: true })) + .pipe(gulp.dest(x => { + const filePath = prepareFilePath(x.path); + const key = files.find(f => minimatch(filePath, f)); + return instruction[key]; + })); +} + +function getNormalizedInstruction() { + const files = project.build.copyFiles; + let normalizedInstruction = {}; + + for (let key in files) { + normalizedInstruction[path.posix.normalize(key)] = files[key]; + } + + return normalizedInstruction; +} + +function prepareFilePath(filePath) { + let preparedPath = filePath.replace(process.cwd(), '').substring(1); + + //if we are running on windows we have to fix the path + if (/^win/.test(process.platform)) { + preparedPath = preparedPath.replace(/\\/g, '/'); + } + + return preparedPath; +} diff --git a/src/app/aurelia_project/tasks/process-css.ts b/src/app/aurelia_project/tasks/process-css.ts new file mode 100644 index 0000000..12c5ec6 --- /dev/null +++ b/src/app/aurelia_project/tasks/process-css.ts @@ -0,0 +1,10 @@ +import * as gulp from 'gulp'; +import * as changedInPlace from 'gulp-changed-in-place'; +import * as project from '../aurelia.json'; +import {build} from 'aurelia-cli'; + +export default function processCSS() { + return gulp.src(project.cssProcessor.source) + .pipe(changedInPlace({firstPass:true})) + .pipe(build.bundle()); +}; diff --git a/src/app/aurelia_project/tasks/process-markup.ts b/src/app/aurelia_project/tasks/process-markup.ts new file mode 100644 index 0000000..6646cfd --- /dev/null +++ b/src/app/aurelia_project/tasks/process-markup.ts @@ -0,0 +1,17 @@ +import * as gulp from 'gulp'; +import * as htmlmin from 'gulp-htmlmin'; +import * as changedInPlace from 'gulp-changed-in-place'; +import * as project from '../aurelia.json'; +import {build} from 'aurelia-cli'; + +export default function processMarkup() { + return gulp.src(project.markupProcessor.source) + .pipe(changedInPlace({firstPass:true})) + .pipe(htmlmin({ + removeComments: true, + collapseWhitespace: true, + minifyCSS: true, + minifyJS: true + })) + .pipe(build.bundle()); +} \ No newline at end of file diff --git a/src/app/aurelia_project/tasks/run.json b/src/app/aurelia_project/tasks/run.json new file mode 100644 index 0000000..6f617e4 --- /dev/null +++ b/src/app/aurelia_project/tasks/run.json @@ -0,0 +1,16 @@ +{ + "name": "run", + "description": "Builds the application and serves up the assets via a local web server, watching files for changes as you work.", + "flags": [ + { + "name": "env", + "description": "Sets the build environment.", + "type": "string" + }, + { + "name": "watch", + "description": "Watches source files for changes and refreshes the app automatically.", + "type": "boolean" + } + ] +} diff --git a/src/app/aurelia_project/tasks/run.ts b/src/app/aurelia_project/tasks/run.ts new file mode 100644 index 0000000..fa869ba --- /dev/null +++ b/src/app/aurelia_project/tasks/run.ts @@ -0,0 +1,73 @@ +import * as gulp from 'gulp'; +import * as browserSync from 'browser-sync'; +import * as historyApiFallback from 'connect-history-api-fallback/lib'; +import * as project from '../aurelia.json'; +import build from './build'; +import {CLIOptions} from 'aurelia-cli'; + +function onChange(path) { + console.log(`File Changed: ${path}`); +} + +function reload(done) { + browserSync.reload(); + done(); +} + +let serve = gulp.series( + build, + done => { + browserSync({ + online: false, + open: false, + port: 9000, + logLevel: 'silent', + server: { + baseDir: [project.platform.baseDir], + middleware: [historyApiFallback(), function(req, res, next) { + res.setHeader('Access-Control-Allow-Origin', '*'); + next(); + }] + } + }, function (err, bs) { + if (err) return done(err); + let urls = bs.options.get('urls').toJS(); + console.log(`Application Available At: ${urls.local}`); + console.log(`BrowserSync Available At: ${urls.ui}`); + done(); + }); + } +); + +let refresh = gulp.series( + build, + reload +); + +let watch = function(refreshCb, onChangeCb) { + return function(done) { + gulp.watch(project.transpiler.source, refreshCb).on('change', onChangeCb); + gulp.watch(project.markupProcessor.source, refreshCb).on('change', onChangeCb); + gulp.watch(project.cssProcessor.source, refreshCb).on('change', onChangeCb); + + //see if there are static files to be watched + if (typeof project.build.copyFiles === 'object') { + const files = Object.keys(project.build.copyFiles); + gulp.watch(files, refreshCb).on('change', onChangeCb); + } + }; +}; + +let run; + +if (CLIOptions.hasFlag('watch')) { + run = gulp.series( + serve, + watch(refresh, onChange) + ); +} else { + run = serve; +} + +export { run as default, watch }; + diff --git a/src/app/aurelia_project/tasks/test.json b/src/app/aurelia_project/tasks/test.json new file mode 100644 index 0000000..9e2a674 --- /dev/null +++ b/src/app/aurelia_project/tasks/test.json @@ -0,0 +1,16 @@ +{ + "name": "test", + "description": "Runs all unit tests and reports the results.", + "flags": [ + { + "name": "env", + "description": "Sets the build environment.", + "type": "string" + }, + { + "name": "watch", + "description": "Watches test files for changes and re-runs the tests automatically.", + "type": "boolean" + } + ] +} diff --git a/src/app/aurelia_project/tasks/test.ts b/src/app/aurelia_project/tasks/test.ts new file mode 100644 index 0000000..7eff91a --- /dev/null +++ b/src/app/aurelia_project/tasks/test.ts @@ -0,0 +1,40 @@ +import * as gulp from 'gulp'; +import {Server as Karma} from 'karma'; +import {CLIOptions} from 'aurelia-cli'; +import build from './build'; +import {watch} from './run'; +import * as path from 'path'; + +function log(message) { + console.log(message); //eslint-disable-line no-console +} + +function onChange(path) { + log(`File Changed: ${path}`); +} + +let karma = done => { + new Karma({ + configFile: path.join(__dirname, '/../../karma.conf.js'), + singleRun: !CLIOptions.hasFlag('watch') + }, done).start(); +}; + +let unit; + +if (CLIOptions.hasFlag('watch')) { + unit = gulp.series( + build, + gulp.parallel( + watch(build, onChange), + karma + ) + ); +} else { + unit = gulp.series( + build, + karma + ); +} + +export default unit; diff --git a/src/app/aurelia_project/tasks/transpile.ts b/src/app/aurelia_project/tasks/transpile.ts new file mode 100644 index 0000000..a50ed96 --- /dev/null +++ b/src/app/aurelia_project/tasks/transpile.ts @@ -0,0 +1,44 @@ +import * as gulp from 'gulp'; +import * as changedInPlace from 'gulp-changed-in-place'; +import * as plumber from 'gulp-plumber'; +import * as sourcemaps from 'gulp-sourcemaps'; +import * as notify from 'gulp-notify'; +import * as rename from 'gulp-rename'; +import * as ts from 'gulp-typescript'; +import * as project from '../aurelia.json'; +import {CLIOptions, build} from 'aurelia-cli'; +import * as eventStream from 'event-stream'; + +function configureEnvironment() { + let env = CLIOptions.getEnvironment(); + + return gulp.src(`aurelia_project/environments/${env}.ts`) + .pipe(changedInPlace({firstPass:true})) + .pipe(rename('environment.ts')) + .pipe(gulp.dest(project.paths.root)); +} + +var typescriptCompiler = typescriptCompiler || null; + +function buildTypeScript() { + typescriptCompiler = ts.createProject('tsconfig.json', { + "typescript": require('typescript') + }); + + let dts = gulp.src(project.transpiler.dtsSource); + + let src = gulp.src(project.transpiler.source) + .pipe(changedInPlace({firstPass: true})); + + return eventStream.merge(dts, src) + .pipe(plumber({ errorHandler: notify.onError('Error: <%= error.message %>') })) + .pipe(sourcemaps.init()) + .pipe(typescriptCompiler()) + .pipe(sourcemaps.write({ sourceRoot: 'src' })) + .pipe(build.bundle()); +} + +export default gulp.series( + configureEnvironment, + buildTypeScript +); diff --git a/src/app/favicon.ico b/src/app/favicon.ico new file mode 100644 index 0000000..2a4d144 Binary files /dev/null and b/src/app/favicon.ico differ diff --git a/src/app/index.html b/src/app/index.html new file mode 100644 index 0000000..e50431e --- /dev/null +++ b/src/app/index.html @@ -0,0 +1,13 @@ + + + + + Aurelia + + + + + + + + diff --git a/src/app/karma.conf.js b/src/app/karma.conf.js new file mode 100644 index 0000000..1109182 --- /dev/null +++ b/src/app/karma.conf.js @@ -0,0 +1,44 @@ +'use strict'; +const path = require('path'); +const project = require('./aurelia_project/aurelia.json'); +const tsconfig = require('./tsconfig.json'); + +let testSrc = [ + { pattern: project.unitTestRunner.source, included: false }, + 'test/aurelia-karma.js' +]; + +let output = project.platform.output; +let appSrc = project.build.bundles.map(x => path.join(output, x.name)); +let entryIndex = appSrc.indexOf(path.join(output, project.build.loader.configTarget)); +let entryBundle = appSrc.splice(entryIndex, 1)[0]; +let files = [entryBundle].concat(testSrc).concat(appSrc); + +module.exports = function(config) { + config.set({ + basePath: '', + frameworks: [project.testFramework.id], + files: files, + exclude: [], + preprocessors: { + [project.unitTestRunner.source]: [project.transpiler.id] + }, + typescriptPreprocessor: { + typescript: require('typescript'), + options: tsconfig.compilerOptions + }, + reporters: ['progress'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + // client.args must be a array of string. + // Leave 'aurelia-root', project.paths.root in this order so we can find + // the root of the aurelia project. + client: { + args: ['aurelia-root', project.paths.root] + } + }); +}; diff --git a/src/app/package.json b/src/app/package.json new file mode 100644 index 0000000..baab0d8 --- /dev/null +++ b/src/app/package.json @@ -0,0 +1,52 @@ +{ + "name": "contact-manager", + "description": "An Aurelia client application.", + "version": "0.1.0", + "repository": { + "type": "???", + "url": "???" + }, + "license": "MIT", + "dependencies": { + "aurelia-animator-css": "^1.0.1", + "aurelia-bootstrapper": "^2.1.0", + "bluebird": "^3.4.1", + "bootstrap": "^3.3.7", + "jquery": "^2.2.4", + "nprogress": "^0.2.0", + "requirejs": "^2.3.2", + "text": "github:requirejs/text#latest" + }, + "peerDependencies": {}, + "devDependencies": { + "aurelia-cli": "^0.27.0", + "aurelia-testing": "^1.0.0-beta.2.0.1", + "aurelia-tools": "^1.0.0", + "browser-sync": "^2.13.0", + "connect-history-api-fallback": "^1.2.0", + "gulp": "github:gulpjs/gulp#4.0", + "gulp-changed-in-place": "^2.0.3", + "gulp-plumber": "^1.1.0", + "gulp-rename": "^1.2.2", + "gulp-sourcemaps": "^2.0.0-alpha", + "gulp-notify": "^2.2.0", + "minimatch": "^3.0.2", + "through2": "^2.0.1", + "uglify-js": "^2.6.3", + "vinyl-fs": "^2.4.3", + "event-stream": "^3.3.3", + "gulp-typescript": "^3.1.4", + "gulp-tslint": "^5.0.0", + "tslint": "^3.11.0", + "typescript": ">=1.9.0-dev || ^2.0.0", + "@types/node": "^6.0.45", + "gulp-htmlmin": "^3.0.0", + "html-minifier": "^3.2.3", + "jasmine-core": "^2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "^1.0.1", + "karma-jasmine": "^1.0.2", + "karma-typescript-preprocessor": "^0.2.1", + "@types/jasmine": "^2.2.0" + } +} diff --git a/src/app/src/app.html b/src/app/src/app.html new file mode 100644 index 0000000..227a7b1 --- /dev/null +++ b/src/app/src/app.html @@ -0,0 +1,34 @@ + \ No newline at end of file diff --git a/src/app/src/app.ts b/src/app/src/app.ts new file mode 100644 index 0000000..eb3484e --- /dev/null +++ b/src/app/src/app.ts @@ -0,0 +1,27 @@ +import {Router, RouterConfiguration} from "aurelia-router" +import {EventAggregator} from "aurelia-event-aggregator" +import {inject} from "aurelia-framework" +import {PageTitle} from "./messages" +import {WebAPI} from "./web-api" + +@inject(WebAPI, EventAggregator) +export class App { + router: Router; + pageTitle: string; + + constructor(public api: WebAPI, private ea: EventAggregator) { + this.ea.subscribe(PageTitle, msg => this.pageTitle = msg.title) + } + + configureRouter(config: RouterConfiguration, router: Router){ + config.title = "myPrayerJournal" + config.options.pushState = true + config.options.root = "/" + config.map([ + { route: "", moduleId: "home", name: "home", title: "Welcome" }, + { route: 'contacts/:id', moduleId: 'contact-detail', name:'contacts' } + ]) + + this.router = router + } +} \ No newline at end of file diff --git a/src/app/src/contact-detail.html b/src/app/src/contact-detail.html new file mode 100644 index 0000000..99e8b49 --- /dev/null +++ b/src/app/src/contact-detail.html @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/src/app/src/contact-detail.ts b/src/app/src/contact-detail.ts new file mode 100644 index 0000000..8e34cb1 --- /dev/null +++ b/src/app/src/contact-detail.ts @@ -0,0 +1,58 @@ +import {inject} from 'aurelia-framework'; +import {EventAggregator} from 'aurelia-event-aggregator'; +import {WebAPI} from './web-api'; +import {ContactUpdated,ContactViewed} from './messages'; +import {areEqual} from './utility'; + +interface Contact { + firstName: string; + lastName: string; + email: string; +} + +@inject(WebAPI, EventAggregator) +export class ContactDetail { + routeConfig; + contact: Contact; + originalContact: Contact; + + constructor(private api: WebAPI, private ea: EventAggregator) { } + + activate(params, routeConfig) { + this.routeConfig = routeConfig; + + return this.api.getContactDetails(params.id).then(contact => { + this.contact = contact; + this.routeConfig.navModel.setTitle(this.contact.firstName); + this.originalContact = JSON.parse(JSON.stringify(this.contact)); + this.ea.publish(new ContactViewed(this.contact)); + }); + } + + get canSave() { + return this.contact.firstName && this.contact.lastName && !this.api.isRequesting; + } + + save() { + this.api.saveContact(this.contact).then(contact => { + this.contact = contact; + this.routeConfig.navModel.setTitle(this.contact.firstName); + this.originalContact = JSON.parse(JSON.stringify(this.contact)); + this.ea.publish(new ContactUpdated(this.contact)); + }); + } + + canDeactivate() { + if(!areEqual(this.originalContact, this.contact)){ + let result = confirm('You have unsaved changes. Are you sure you wish to leave?'); + + if(!result) { + this.ea.publish(new ContactViewed(this.contact)); + } + + return result; + } + + return true; + } +} \ No newline at end of file diff --git a/src/app/src/contact-list.html b/src/app/src/contact-list.html new file mode 100644 index 0000000..52a013d --- /dev/null +++ b/src/app/src/contact-list.html @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/src/app/src/contact-list.ts b/src/app/src/contact-list.ts new file mode 100644 index 0000000..666db28 --- /dev/null +++ b/src/app/src/contact-list.ts @@ -0,0 +1,28 @@ +import {EventAggregator} from 'aurelia-event-aggregator'; +import {WebAPI} from './web-api'; +import {ContactUpdated, ContactViewed} from './messages'; +import {inject} from 'aurelia-framework'; + +@inject(WebAPI, EventAggregator) +export class ContactList { + contacts; + selectedId = 0; + + constructor(private api: WebAPI, ea: EventAggregator) { + ea.subscribe(ContactViewed, msg => this.select(msg.contact)); + ea.subscribe(ContactUpdated, msg => { + let id = msg.contact.id; + let found = this.contacts.find(x => x.id == id); + Object.assign(found, msg.contact); + }); + } + + created() { + this.api.getContactList().then(contacts => this.contacts = contacts); + } + + select(contact) { + this.selectedId = contact.id; + return true; + } +} \ No newline at end of file diff --git a/src/app/src/environment.ts b/src/app/src/environment.ts new file mode 100644 index 0000000..3495e9a --- /dev/null +++ b/src/app/src/environment.ts @@ -0,0 +1,4 @@ +export default { + debug: true, + testing: true +}; diff --git a/src/app/src/home.html b/src/app/src/home.html new file mode 100644 index 0000000..631b519 --- /dev/null +++ b/src/app/src/home.html @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/src/app/src/home.ts b/src/app/src/home.ts new file mode 100644 index 0000000..7e85b29 --- /dev/null +++ b/src/app/src/home.ts @@ -0,0 +1,10 @@ +import {inject} from 'aurelia-framework'; +import {EventAggregator} from "aurelia-event-aggregator" +import {PageTitle} from "./messages" + +@inject(EventAggregator) +export class Home { + constructor(private ea: EventAggregator) { + this.ea.publish(new PageTitle("Welcome to myPrayerJournal")); + } +} \ No newline at end of file diff --git a/src/app/src/main.ts b/src/app/src/main.ts new file mode 100644 index 0000000..e3a450b --- /dev/null +++ b/src/app/src/main.ts @@ -0,0 +1,18 @@ +import {Aurelia} from 'aurelia-framework' +import environment from './environment'; + +export function configure(aurelia: Aurelia) { + aurelia.use + .standardConfiguration() + .feature('resources'); + + if (environment.debug) { + aurelia.use.developmentLogging(); + } + + if (environment.testing) { + aurelia.use.plugin('aurelia-testing'); + } + + aurelia.start().then(() => aurelia.setRoot()); +} diff --git a/src/app/src/messages.ts b/src/app/src/messages.ts new file mode 100644 index 0000000..34fea18 --- /dev/null +++ b/src/app/src/messages.ts @@ -0,0 +1,11 @@ +export class ContactUpdated { + constructor(public contact) { } +} + +export class ContactViewed { + constructor(public contact) { } +} + +export class PageTitle { + constructor(public title: string) { } +} \ No newline at end of file diff --git a/src/app/src/resources/elements/loading-indicator.ts b/src/app/src/resources/elements/loading-indicator.ts new file mode 100644 index 0000000..a44560b --- /dev/null +++ b/src/app/src/resources/elements/loading-indicator.ts @@ -0,0 +1,15 @@ +import * as nprogress from 'nprogress'; +import {bindable, noView} from 'aurelia-framework'; + +@noView(['nprogress/nprogress.css']) +export class LoadingIndicator { + @bindable loading = false; + + loadingChanged(newValue) { + if (newValue) { + nprogress.start(); + } else { + nprogress.done(); + } + } +} \ No newline at end of file diff --git a/src/app/src/resources/index.ts b/src/app/src/resources/index.ts new file mode 100644 index 0000000..6ccb7c9 --- /dev/null +++ b/src/app/src/resources/index.ts @@ -0,0 +1,5 @@ +import {FrameworkConfiguration} from 'aurelia-framework'; + +export function configure(config: FrameworkConfiguration) { + config.globalResources(['./elements/loading-indicator']); +} diff --git a/src/app/src/styles.css b/src/app/src/styles.css new file mode 100644 index 0000000..071fef5 --- /dev/null +++ b/src/app/src/styles.css @@ -0,0 +1,35 @@ +body { + padding-top: 70px; + padding-bottom: 20px; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; +} + +/* Wrapping element */ +/* Set some basic padding to keep content from hitting the edges */ +.body-content { + padding-left: 15px; + padding-right: 15px; +} +.material-icons.md-18 { + font-size: 18px; +} +.material-icons.md-24 { + font-size: 24px; +} +.material-icons.md-36 { + font-size: 36px; +} +.material-icons.md-48 { + font-size: 48px; +} +.material-icons { + vertical-align: middle; +} +.mpj-page-title { + border-bottom: solid 1px lightgray; + margin-bottom: 20px; +} +.mpj-footer { + border-top: solid 1px lightgray; + margin-top: 20px; +} \ No newline at end of file diff --git a/src/app/src/utility.ts b/src/app/src/utility.ts new file mode 100644 index 0000000..769909b --- /dev/null +++ b/src/app/src/utility.ts @@ -0,0 +1,3 @@ +export function areEqual(obj1, obj2) { + return Object.keys(obj1).every((key) => obj2.hasOwnProperty(key) && (obj1[key] === obj2[key])); +}; \ No newline at end of file diff --git a/src/app/src/web-api.ts b/src/app/src/web-api.ts new file mode 100644 index 0000000..ad3552d --- /dev/null +++ b/src/app/src/web-api.ts @@ -0,0 +1,96 @@ +let latency = 200; +let id = 0; + +function getId(){ + return ++id; +} + +let contacts = [ + { + id:getId(), + firstName:'John', + lastName:'Tolkien', + email:'tolkien@inklings.com', + phoneNumber:'867-5309' + }, + { + id:getId(), + firstName:'Clive', + lastName:'Lewis', + email:'lewis@inklings.com', + phoneNumber:'867-5309' + }, + { + id:getId(), + firstName:'Owen', + lastName:'Barfield', + email:'barfield@inklings.com', + phoneNumber:'867-5309' + }, + { + id:getId(), + firstName:'Charles', + lastName:'Williams', + email:'williams@inklings.com', + phoneNumber:'867-5309' + }, + { + id:getId(), + firstName:'Roger', + lastName:'Green', + email:'green@inklings.com', + phoneNumber:'867-5309' + } +]; + +export class WebAPI { + isRequesting = false; + + getContactList(){ + this.isRequesting = true; + return new Promise(resolve => { + setTimeout(() => { + let results = contacts.map(x => { return { + id:x.id, + firstName:x.firstName, + lastName:x.lastName, + email:x.email + }}); + resolve(results); + this.isRequesting = false; + }, latency); + }); + } + + getContactDetails(id){ + this.isRequesting = true; + return new Promise(resolve => { + setTimeout(() => { + let found = contacts.filter(x => x.id == id)[0]; + resolve(JSON.parse(JSON.stringify(found))); + this.isRequesting = false; + }, latency); + }); + } + + saveContact(contact){ + this.isRequesting = true; + return new Promise(resolve => { + setTimeout(() => { + let instance = JSON.parse(JSON.stringify(contact)); + let found = contacts.filter(x => x.id == contact.id)[0]; + + if(found){ + let index = contacts.indexOf(found); + contacts[index] = instance; + }else{ + instance.id = getId(); + contacts.push(instance); + } + + this.isRequesting = false; + resolve(instance); + }, latency); + }); + } +} diff --git a/src/app/test/aurelia-karma.js b/src/app/test/aurelia-karma.js new file mode 100644 index 0000000..d76a928 --- /dev/null +++ b/src/app/test/aurelia-karma.js @@ -0,0 +1,87 @@ +(function(global) { + var karma = global.__karma__; + var requirejs = global.requirejs + var locationPathname = global.location.pathname; + var root = 'src'; + karma.config.args.forEach(function(value, index) { + if (value === 'aurelia-root') { + root = karma.config.args[index + 1]; + } + }); + + if (!karma || !requirejs) { + return; + } + + function normalizePath(path) { + var normalized = [] + var parts = path + .split('?')[0] // cut off GET params, used by noext requirejs plugin + .split('/') + + for (var i = 0; i < parts.length; i++) { + if (parts[i] === '.') { + continue + } + + if (parts[i] === '..' && normalized.length && normalized[normalized.length - 1] !== '..') { + normalized.pop() + continue + } + + normalized.push(parts[i]) + } + + // Use case of testing source code. RequireJS doesn't add .js extension to files asked via sibling selector + // If normalized path doesn't include some type of extension, add the .js to it + if (normalized.length > 0 && normalized[normalized.length - 1].indexOf('.') < 0) { + normalized[normalized.length - 1] = normalized[normalized.length - 1] + '.js' + } + + return normalized.join('/') + } + + function patchRequireJS(files, originalLoadFn, locationPathname) { + var IS_DEBUG = /debug\.html$/.test(locationPathname) + + requirejs.load = function (context, moduleName, url) { + url = normalizePath(url) + + if (files.hasOwnProperty(url) && !IS_DEBUG) { + url = url + '?' + files[url] + } + + if (url.indexOf('/base') !== 0) { + url = '/base/' + url; + } + + return originalLoadFn.call(this, context, moduleName, url) + } + + var originalDefine = global.define; + global.define = function(name, deps, m) { + if (typeof name === 'string') { + originalDefine('/base/' + root + '/' + name, [name], function (result) { return result; }); + } + + return originalDefine(name, deps, m); + } + } + + function requireTests() { + var TEST_REGEXP = /(spec)\.js$/i; + var allTestFiles = ['/base/test/unit/setup.js']; + + Object.keys(window.__karma__.files).forEach(function(file) { + if (TEST_REGEXP.test(file)) { + allTestFiles.push(file); + } + }); + + require(allTestFiles, window.__karma__.start); + } + + karma.loaded = function() {}; // make it async + patchRequireJS(karma.files, requirejs.load, locationPathname); + requireTests(); +})(window); diff --git a/src/app/test/unit/app.spec.ts b/src/app/test/unit/app.spec.ts new file mode 100644 index 0000000..500fdb5 --- /dev/null +++ b/src/app/test/unit/app.spec.ts @@ -0,0 +1,7 @@ +import {App} from '../../src/app'; + +describe('the app', () => { + it('says hello', () => { + expect(new App().message).toBe('Hello World!'); + }); +}); diff --git a/src/app/test/unit/setup.ts b/src/app/test/unit/setup.ts new file mode 100644 index 0000000..a2498cc --- /dev/null +++ b/src/app/test/unit/setup.ts @@ -0,0 +1,3 @@ +import 'aurelia-polyfills'; +import {initialize} from 'aurelia-pal-browser'; +initialize(); diff --git a/src/app/tsconfig.json b/src/app/tsconfig.json new file mode 100644 index 0000000..82ad48d --- /dev/null +++ b/src/app/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "sourceMap": true, + "target": "es5", + "module": "amd", + "declaration": false, + "noImplicitAny": false, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "lib": ["es2017", "dom"] + }, + "exclude": [ + "node_modules", + "aurelia_project" + ], + "filesGlob": [ + "./src/**/*.ts", + "./test/**/*.ts", + "./custom_typings/**/*.d.ts" + ], + "atom": { + "rewriteTsconfig": false + } +} diff --git a/src/app/tslint.json b/src/app/tslint.json new file mode 100644 index 0000000..a5240ac --- /dev/null +++ b/src/app/tslint.json @@ -0,0 +1,5 @@ +{ + "rules": { + + } +} diff --git a/src/app/typings.json b/src/app/typings.json new file mode 100644 index 0000000..ead2a23 --- /dev/null +++ b/src/app/typings.json @@ -0,0 +1,5 @@ +{ + "globalDependencies": { + "nprogress": "registry:dt/nprogress#0.0.0+20161119044246" + } +} diff --git a/src/app/typings/globals/nprogress/index.d.ts b/src/app/typings/globals/nprogress/index.d.ts new file mode 100644 index 0000000..06f92b5 --- /dev/null +++ b/src/app/typings/globals/nprogress/index.d.ts @@ -0,0 +1,113 @@ +// Generated by typings +// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/253e456e3c0bf4bd34afaceb7dcbae282da14066/nprogress/index.d.ts +interface NProgressStatic { + /** + * Shows the progress bar and begins trickling progress. + * @returns {NProgressConfigureOptions} The current NProgress object, useful for chaining. + */ + start(): NProgressStatic; + + /** + * Finishes loading by transitioning it to 100%, then fading out. + * @param {boolean} forceShow Forces the progress bar to show, even if it's not being shown. (The default behavior is that .done() will not do anything if .start() isn't called.) + * @returns {NProgressConfigureOptions} The current NProgress object, useful for chaining. + */ + done(forceShow?: boolean): NProgressStatic; + + /** + * Increments the progress bar with a random amount. This will never get to 100%: use it for every image load (or similar). + * @returns {NProgressConfigureOptions} The current NProgress object, useful for chaining. + */ + inc(): NProgressStatic; + + /** + * Increments the progress bar with a set amount. + * @param {number} amount This will get the current status value and adds the value until status is max 0.994 + * @returns {NProgressConfigureOptions} The current NProgress object, useful for chaining. + */ + inc(amount: number): NProgressStatic; + + /** + * Removes the progress indicator. + */ + remove(): void; + + /** + * Sets the progress percentage. + * @param {number} progressPercent A number between 0.0 and 1.0 that represents the progress percentage. + * @returns {NProgressConfigureOptions} The current NProgress object, useful for chaining. + */ + set(progressPercent: number): NProgressStatic; + + /** + * Configures the progress indicator. + * @param {NProgressConfigureOptions} options An object containing the configuration options. + * @returns {NProgressConfigureOptions} The current NProgress object, useful for chaining. + */ + configure(options: NProgressConfigureOptions): NProgressStatic; + + /** + * Gets the NProgress version. + */ + version: string; + + /** + * Gets the status. If started, it will be the last progress number set. + */ + status: any; + + /** + * Gets whether progress has been started. + * @returns {boolean} Whether the progress has started. + */ + isStarted(): boolean; +} + +interface NProgressConfigureOptions { + + /** + * CSS selector to change the parent DOM element of the progress. Default is body. + */ + parent?: string + + /** + * The minimum progress percentage. Default is 0.08. + */ + minimum?: number; + + /** + * How often to trickle, in milliseconds. Default is 800. + */ + trickleSpeed?: number; + + /** + * Whether to show the spinner. Defaults to true. Default is true. + */ + showSpinner?: boolean; + + /** + * Whether to enable trickling the progress. Default is true. + */ + trickle?: boolean; + + /** + * The CSS easing animation to use. Default is 'linear'. + */ + easing?: string; + + /** + * The animation speed in milliseconds. Default is 200. + */ + speed?: number; + + /** + * The HTML markup inserted for the progress indicator. To keep the progress bar working, keep an element with role='bar' in there. + */ + template?: string; +} + +declare var NProgress: NProgressStatic; + +declare module "nprogress" { + export = NProgress; +} diff --git a/src/app/typings/globals/nprogress/typings.json b/src/app/typings/globals/nprogress/typings.json new file mode 100644 index 0000000..b0382ee --- /dev/null +++ b/src/app/typings/globals/nprogress/typings.json @@ -0,0 +1,8 @@ +{ + "resolution": "main", + "tree": { + "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/253e456e3c0bf4bd34afaceb7dcbae282da14066/nprogress/index.d.ts", + "raw": "registry:dt/nprogress#0.0.0+20161119044246", + "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/253e456e3c0bf4bd34afaceb7dcbae282da14066/nprogress/index.d.ts" + } +} diff --git a/src/app/typings/index.d.ts b/src/app/typings/index.d.ts new file mode 100644 index 0000000..76470ca --- /dev/null +++ b/src/app/typings/index.d.ts @@ -0,0 +1 @@ +///