From b0b20df36db3e6e5b85b391ffe6fa96ece7c35c0 Mon Sep 17 00:00:00 2001 From: "Daniel J. Summers" Date: Sat, 20 May 2017 09:45:48 -0500 Subject: [PATCH] +Aurelia +Paket +FAKE Interim commit; there may still be leftover files from the Aurelia tutorial --- .gitignore | 3 +- .paket/Paket.Restore.targets | 108 ++ .paket/paket.bootstrapper.exe | Bin 0 -> 49664 bytes build-au.bat | 5 + build.bat | 8 + build.fsx | 69 ++ paket.dependencies | 11 + paket.lock | 1065 +++++++++++++++++ src/api/App.fs | 14 +- src/api/MyPrayerJournal.fsproj | 30 +- src/api/paket.references | 6 + src/app/.editorconfig | 12 + src/app/aurelia_project/aurelia.json | 159 +++ src/app/aurelia_project/environments/dev.ts | 4 + src/app/aurelia_project/environments/prod.ts | 4 + src/app/aurelia_project/environments/stage.ts | 4 + .../aurelia_project/generators/attribute.json | 4 + .../aurelia_project/generators/attribute.ts | 38 + .../generators/binding-behavior.json | 4 + .../generators/binding-behavior.ts | 37 + .../aurelia_project/generators/component.json | 4 + .../aurelia_project/generators/component.ts | 49 + .../aurelia_project/generators/element.json | 4 + src/app/aurelia_project/generators/element.ts | 44 + .../aurelia_project/generators/generator.json | 4 + .../aurelia_project/generators/generator.ts | 65 + src/app/aurelia_project/generators/task.json | 4 + src/app/aurelia_project/generators/task.ts | 37 + .../generators/value-converter.json | 4 + .../generators/value-converter.ts | 37 + src/app/aurelia_project/tasks/build.json | 11 + src/app/aurelia_project/tasks/build.ts | 26 + src/app/aurelia_project/tasks/copy-files.ts | 45 + src/app/aurelia_project/tasks/process-css.ts | 10 + .../aurelia_project/tasks/process-markup.ts | 17 + src/app/aurelia_project/tasks/run.json | 16 + src/app/aurelia_project/tasks/run.ts | 73 ++ src/app/aurelia_project/tasks/test.json | 16 + src/app/aurelia_project/tasks/test.ts | 40 + src/app/aurelia_project/tasks/transpile.ts | 44 + src/app/favicon.ico | Bin 0 -> 4127 bytes src/app/index.html | 13 + src/app/karma.conf.js | 44 + src/app/package.json | 52 + src/app/src/app.html | 34 + src/app/src/app.ts | 27 + src/app/src/contact-detail.html | 42 + src/app/src/contact-detail.ts | 58 + src/app/src/contact-list.html | 12 + src/app/src/contact-list.ts | 28 + src/app/src/environment.ts | 4 + src/app/src/home.html | 11 + src/app/src/home.ts | 10 + src/app/src/main.ts | 18 + src/app/src/messages.ts | 11 + .../resources/elements/loading-indicator.ts | 15 + src/app/src/resources/index.ts | 5 + src/app/src/styles.css | 35 + src/app/src/utility.ts | 3 + src/app/src/web-api.ts | 96 ++ src/app/test/aurelia-karma.js | 87 ++ src/app/test/unit/app.spec.ts | 7 + src/app/test/unit/setup.ts | 3 + src/app/tsconfig.json | 27 + src/app/tslint.json | 5 + src/app/typings.json | 5 + src/app/typings/globals/nprogress/index.d.ts | 113 ++ .../typings/globals/nprogress/typings.json | 8 + src/app/typings/index.d.ts | 1 + 69 files changed, 2884 insertions(+), 25 deletions(-) create mode 100644 .paket/Paket.Restore.targets create mode 100644 .paket/paket.bootstrapper.exe create mode 100644 build-au.bat create mode 100644 build.bat create mode 100644 build.fsx create mode 100644 paket.dependencies create mode 100644 paket.lock create mode 100644 src/api/paket.references create mode 100644 src/app/.editorconfig create mode 100644 src/app/aurelia_project/aurelia.json create mode 100644 src/app/aurelia_project/environments/dev.ts create mode 100644 src/app/aurelia_project/environments/prod.ts create mode 100644 src/app/aurelia_project/environments/stage.ts create mode 100644 src/app/aurelia_project/generators/attribute.json create mode 100644 src/app/aurelia_project/generators/attribute.ts create mode 100644 src/app/aurelia_project/generators/binding-behavior.json create mode 100644 src/app/aurelia_project/generators/binding-behavior.ts create mode 100644 src/app/aurelia_project/generators/component.json create mode 100644 src/app/aurelia_project/generators/component.ts create mode 100644 src/app/aurelia_project/generators/element.json create mode 100644 src/app/aurelia_project/generators/element.ts create mode 100644 src/app/aurelia_project/generators/generator.json create mode 100644 src/app/aurelia_project/generators/generator.ts create mode 100644 src/app/aurelia_project/generators/task.json create mode 100644 src/app/aurelia_project/generators/task.ts create mode 100644 src/app/aurelia_project/generators/value-converter.json create mode 100644 src/app/aurelia_project/generators/value-converter.ts create mode 100644 src/app/aurelia_project/tasks/build.json create mode 100644 src/app/aurelia_project/tasks/build.ts create mode 100644 src/app/aurelia_project/tasks/copy-files.ts create mode 100644 src/app/aurelia_project/tasks/process-css.ts create mode 100644 src/app/aurelia_project/tasks/process-markup.ts create mode 100644 src/app/aurelia_project/tasks/run.json create mode 100644 src/app/aurelia_project/tasks/run.ts create mode 100644 src/app/aurelia_project/tasks/test.json create mode 100644 src/app/aurelia_project/tasks/test.ts create mode 100644 src/app/aurelia_project/tasks/transpile.ts create mode 100644 src/app/favicon.ico create mode 100644 src/app/index.html create mode 100644 src/app/karma.conf.js create mode 100644 src/app/package.json create mode 100644 src/app/src/app.html create mode 100644 src/app/src/app.ts create mode 100644 src/app/src/contact-detail.html create mode 100644 src/app/src/contact-detail.ts create mode 100644 src/app/src/contact-list.html create mode 100644 src/app/src/contact-list.ts create mode 100644 src/app/src/environment.ts create mode 100644 src/app/src/home.html create mode 100644 src/app/src/home.ts create mode 100644 src/app/src/main.ts create mode 100644 src/app/src/messages.ts create mode 100644 src/app/src/resources/elements/loading-indicator.ts create mode 100644 src/app/src/resources/index.ts create mode 100644 src/app/src/styles.css create mode 100644 src/app/src/utility.ts create mode 100644 src/app/src/web-api.ts create mode 100644 src/app/test/aurelia-karma.js create mode 100644 src/app/test/unit/app.spec.ts create mode 100644 src/app/test/unit/setup.ts create mode 100644 src/app/tsconfig.json create mode 100644 src/app/tslint.json create mode 100644 src/app/typings.json create mode 100644 src/app/typings/globals/nprogress/index.d.ts create mode 100644 src/app/typings/globals/nprogress/typings.json create mode 100644 src/app/typings/index.d.ts 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 0000000000000000000000000000000000000000..c46d0bf621145208781d4e3b93da7d9a88fc48a1 GIT binary patch literal 49664 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 + 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 0000000000000000000000000000000000000000..2a4d144da3377afc0807f707dc7b1fe7a27811c8 GIT binary patch literal 4127 zcmZu!`%jzK8U75mA(&gZnpNoIs2NI1n)5elgf!Vh91kC3Z+K7YE2MTQ8cT zZK~8YYSk)R)^2L6MbjotYa1!sl1^%xskwD+mj1GJKlWeP^Y9*hM0DtRpZ9XU?_A#V zp7WXSZ-3I;-IkP)o1kf0lBd0;AKFfdH-j&&uYZ606By>n(`_x#_(R|%WDDk=aJ%o4 zrdiS{2DSiJHblbBGtl;Jk+`s?#SeN~ng>Vzaub0y$S@=m(g+cZTA`OAz4M@4h~YG- z7V_jrpuLc+X79xjbGH9z9~^-ns!YsEck6_?8TLN$RoJpP(6xxj2&q+?z-r>vM_{i= zR81xxp3eokuf~wpO;OP=7!3@HCp`V4BQ^&Q$AD_M9AI@yG@z1EmVB&r;dwEQr%0s?|_vuRxQ3~K#%|JQ-8-XczoF)(Ns|f=b$;fGx6<_6pcZ}%B}(Dga&3K*#eP2PLG2dY2FE)pzZunWRTSjRyu<~Rt@ z!v>T45=)X<$kfh)1u3mFx_w2gUQzSht_=w5%jr!9pDSrg@(` zEu8d(mFF8!3#-Y2Z46wJAa}2zJ9s>7`^S4Q>E8Qs2+SH$n|gwF;0fD-m>Liz%n<|^ zbj!v=3|t9=m~A&?DWl{ZuPMz7I=9)9#QE8VKtQnz6jHBosm$QxYa?L60o@WK)Xg)V zwgIYbnq*ZiMVK;2da~ilAXfkwH%h^(lZ@1+{ceu=*@yNuHrheJ-Rq!5Bk1`pP*j~m zmCc;0)iV_b3()ZN8fYpC(owp>&54H`lvwPcbulV6+fYOQ{=4tlljBTzqg;Ozq+MEd z&ViNN`NhYF^vEj9otb2fsqN7lPqRW#aXcV3w(zg4OBRb6qOOZTUh8-(+y#pV%v`6i zW&kQRP+~VPCV(Rej+MB?Nb z&Lz`w|5la$ma&Nk21qreYp0<@TvU9F1i^M!`L};wfwA|S-!aQUX&Hz5&ztWvlR$?W zkO#m;Tb(+-cX@@`0Jw-iU${-Y#Ngor$zpdUO(3~1K7T^OM z0@$-*;FNxd075*^FTw;TyQ3aF>StF+A$xp0c|hL3-?|ose!v11BtT6p7Ef%Cx38bO zxlmSK?(Oy+T|Xj^yaZJhVn;m_Ag(_jVuWzCxI>k54^@Xo-U)k)K)Wzte){3;LWe}v zl1tLs77!@D_fZ)ytKe*GQ()I?aMi}cVwFS>sC!KwKK0TCpPdN>&iS!YyJ%Q00j8%&7bYeo)(Lv zwuCcMhn!g)-rfq(i&=Iz*CrD_=Vq~4?($MP#G=Ob{<4zq^^0H_Vh<0OFa%Htbi zfth9|V4ohz%I0g!eZ2d*PlX(%ACg#MD>4lwFlVJ1C;2@NJbD`}a6NxZw{>Ho4kkB6 z2lL1LQnUE(ybn^hv2i*BP633vh56e4GGDM;Ve-1;8-qsvka+Y9&^m;N5tum?y-X$E zrYLncv~Ukp3wvH(Zd{cIiua2Kk0y)R#q|MYsi5Apzh5ear%zcJb%<5Wh4)XLZ&LKMG}#X$VVN(8_!_tHi;a8wC0ITcV65=H*+b zoLojPlbi+-JbA-A$S1!1jUH-%#Zd**50ZYp&CX+DbV4r{wGWh5Nadd7HtNPA6 zty9BX{llMt8YMcxcYr7hqYC0V!K_Vof*kdrA7V>FTvxu{n*QWvRuI7QU;zNCZ%)-A zk*{8XX16gKD@%1HZ94Z&eEu#RRfw?I<$rI!ED!wax6s=sbxi^`m*^L{G6XL_+v1`#sO}zzp*mQ03DM>N6i~%F&D)eJ_0c%S6_qz%%S^N zp{)I9JrYohF1Z4C1fuO!H}A^|$QEbE_3zXUoSv$}58i!RoB#j- literal 0 HcmV?d00001 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 @@ +///