diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..8772d11
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,102 @@
+###############################################################################
+# attribute # Checkin behavior # Checkout behavior
+###############################################################################
+# text # Normalized to LF # Convert to native line endings
+# [text] eol=crlf # Normalized to LF # Convert to CRLF
+# [text] eol=lf # Normalized to LF # Convert to LF
+# -text or binary # No conversion # No conversion
+# text=auto # Like "text" if text file according to git, otherwise, like "binary"
+# unspecified # Fall back to core.autocrlf setting of local environment
+###############################################################################
+# core.autocrlf
+# false: same as binary
+# true: same as eol=crlf
+# input: same as eol=lf
+
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+*.cs text diff=csharp
+*.*proj text
+*.sln text
+*.html text diff=html
+*.cshtml text diff=html
+*.css text
+*.less text
+*.js text
+*.config text
+*.targets text
+*.aspx text
+*.asax text
+*.xml text
+*.xaml text
+*.txt text
+*.sql text
+*.cmd text
+*.md text
+*.tt text
+*.ps1 text
+*.py text
+*.sh eol=lf
+*.conf eol=lf
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln merge=binary
+#*.csproj merge=binary
+#*.vbproj merge=binary
+#*.vcxproj merge=binary
+#*.vcproj merge=binary
+#*.dbproj merge=binary
+#*.fsproj merge=binary
+#*.lsproj merge=binary
+#*.wixproj merge=binary
+#*.modelproj merge=binary
+#*.sqlproj merge=binary
+#*.wwaproj merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg binary
+#*.png binary
+#*.gif binary
+
+###############################################################################
+# diff behavior for common document formats
+#
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the
+# entries below.
+###############################################################################
+#*.doc diff=astextplain
+#*.DOC diff=astextplain
+#*.docx diff=astextplain
+#*.DOCX diff=astextplain
+#*.dot diff=astextplain
+#*.DOT diff=astextplain
+#*.pdf diff=astextplain
+#*.PDF diff=astextplain
+#*.rtf diff=astextplain
+#*.RTF diff=astextplain
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..eb182f0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,160 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+
+# User-specific files
+*.suo
+*.user
+*.sln.docstates
+
+# Build results
+
+[Dd]ebug/
+[Rr]elease/
+x64/
+build/
+[Bb]in/
+[Oo]bj/
+
+# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
+!packages/*/build/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+*_i.c
+*_p.c
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.log
+*.scc
+*.db
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opensdf
+*.sdf
+*.cachefile
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# NCrunch
+*.ncrunch*
+.*crunch*.local.xml
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.Publish.xml
+
+# NuGet Packages Directory
+## TODO: If you have NuGet Package Restore enabled, uncomment the next line
+#packages/
+
+# Windows Azure Build Output
+csx
+*.build.csdef
+
+# Windows Store app package directory
+AppPackages/
+
+# Others
+sql/
+*.Cache
+ClientBin/
+[Ss]tyle[Cc]op.*
+~$*
+*~
+*.dbmdl
+*.[Pp]ublish.xml
+*.pfx
+*.publishsettings
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file to a newer
+# Visual Studio version. Backup files are not needed, because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+
+# SQL Server files
+App_Data/*.mdf
+App_Data/*.ldf
+
+
+#LightSwitch generated files
+GeneratedArtifacts/
+_Pvt_Extensions/
+ModelManifest.xml
+
+# =========================
+# Windows detritus
+# =========================
+
+# Windows image file caches
+Thumbs.db
+ehthumbs.db
+
+# Folder config file
+Desktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Mac desktop service store files
+.DS_Store
+
+# Other files
+/ColorExplorer/ColorExplorer.Web/App_Data/version.txt
diff --git a/OpenChain.sln b/OpenChain.sln
new file mode 100644
index 0000000..d41caf0
--- /dev/null
+++ b/OpenChain.sln
@@ -0,0 +1,76 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.22823.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{69F65B5A-AA9C-4D9B-8F70-0D0D33052D87}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{959253DF-ED16-4D50-9611-54E666C30B5C}"
+ ProjectSection(SolutionItems) = preProject
+ global.json = global.json
+ EndProjectSection
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenChain", "src\OpenChain\OpenChain.xproj", "{C24C1145-878A-476A-AC93-6A272BE3D139}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenChain.Core", "src\OpenChain.Core\OpenChain.Core.xproj", "{CA9A2FB3-5BB1-4730-A65E-16BD9831F303}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenChain.Console", "src\OpenChain.Console\OpenChain.Console.xproj", "{9A0755DF-BEE7-4095-AF90-8FFD2C86470F}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenChain.Server", "src\OpenChain.Server\OpenChain.Server.xproj", "{E682BCFB-88A6-4426-BC8B-3236301BD6A6}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{62976C02-9AC7-450D-8634-FB01F357F47B}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenChain.Core.Tests", "test\OpenChain.Core.Tests\OpenChain.Core.Tests.xproj", "{38A38DEF-1B86-495E-8674-2AA135CE016A}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenChain.Server.Tests", "test\OpenChain.Server.Tests\OpenChain.Server.Tests.xproj", "{91B5C8B9-602C-4843-A2BE-DA82B3F7449B}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenChain.Core.Sqlite", "src\OpenChain.Core.Sqlite\OpenChain.Core.Sqlite.xproj", "{B76EC900-3DC6-42B0-B480-B758E00507B6}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C24C1145-878A-476A-AC93-6A272BE3D139}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C24C1145-878A-476A-AC93-6A272BE3D139}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C24C1145-878A-476A-AC93-6A272BE3D139}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C24C1145-878A-476A-AC93-6A272BE3D139}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CA9A2FB3-5BB1-4730-A65E-16BD9831F303}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CA9A2FB3-5BB1-4730-A65E-16BD9831F303}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CA9A2FB3-5BB1-4730-A65E-16BD9831F303}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CA9A2FB3-5BB1-4730-A65E-16BD9831F303}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9A0755DF-BEE7-4095-AF90-8FFD2C86470F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9A0755DF-BEE7-4095-AF90-8FFD2C86470F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9A0755DF-BEE7-4095-AF90-8FFD2C86470F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9A0755DF-BEE7-4095-AF90-8FFD2C86470F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E682BCFB-88A6-4426-BC8B-3236301BD6A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E682BCFB-88A6-4426-BC8B-3236301BD6A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E682BCFB-88A6-4426-BC8B-3236301BD6A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E682BCFB-88A6-4426-BC8B-3236301BD6A6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {38A38DEF-1B86-495E-8674-2AA135CE016A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {38A38DEF-1B86-495E-8674-2AA135CE016A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {38A38DEF-1B86-495E-8674-2AA135CE016A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {38A38DEF-1B86-495E-8674-2AA135CE016A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {91B5C8B9-602C-4843-A2BE-DA82B3F7449B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {91B5C8B9-602C-4843-A2BE-DA82B3F7449B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {91B5C8B9-602C-4843-A2BE-DA82B3F7449B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {91B5C8B9-602C-4843-A2BE-DA82B3F7449B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B76EC900-3DC6-42B0-B480-B758E00507B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B76EC900-3DC6-42B0-B480-B758E00507B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B76EC900-3DC6-42B0-B480-B758E00507B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B76EC900-3DC6-42B0-B480-B758E00507B6}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C24C1145-878A-476A-AC93-6A272BE3D139} = {69F65B5A-AA9C-4D9B-8F70-0D0D33052D87}
+ {CA9A2FB3-5BB1-4730-A65E-16BD9831F303} = {69F65B5A-AA9C-4D9B-8F70-0D0D33052D87}
+ {9A0755DF-BEE7-4095-AF90-8FFD2C86470F} = {69F65B5A-AA9C-4D9B-8F70-0D0D33052D87}
+ {E682BCFB-88A6-4426-BC8B-3236301BD6A6} = {69F65B5A-AA9C-4D9B-8F70-0D0D33052D87}
+ {38A38DEF-1B86-495E-8674-2AA135CE016A} = {62976C02-9AC7-450D-8634-FB01F357F47B}
+ {91B5C8B9-602C-4843-A2BE-DA82B3F7449B} = {62976C02-9AC7-450D-8634-FB01F357F47B}
+ {B76EC900-3DC6-42B0-B480-B758E00507B6} = {69F65B5A-AA9C-4D9B-8F70-0D0D33052D87}
+ EndGlobalSection
+EndGlobal
diff --git a/global.json b/global.json
new file mode 100644
index 0000000..e4370fd
--- /dev/null
+++ b/global.json
@@ -0,0 +1,6 @@
+{
+ "projects": [ "src", "test" ],
+ "sdk": {
+ "version": "1.0.0-beta4"
+ }
+}
diff --git a/src/OpenChain.Console/OpenChain.Console.xproj b/src/OpenChain.Console/OpenChain.Console.xproj
new file mode 100644
index 0000000..3fbf9a0
--- /dev/null
+++ b/src/OpenChain.Console/OpenChain.Console.xproj
@@ -0,0 +1,20 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ 9a0755df-bee7-4095-af90-8ffd2c86470f
+ OpenChain.Console
+ ..\..\artifacts\obj\$(MSBuildProjectName)
+ ..\..\artifacts\bin\$(MSBuildProjectName)\
+
+
+
+ 2.0
+
+
+
diff --git a/src/OpenChain.Console/Program.cs b/src/OpenChain.Console/Program.cs
new file mode 100644
index 0000000..01b8ea4
--- /dev/null
+++ b/src/OpenChain.Console/Program.cs
@@ -0,0 +1,52 @@
+using OpenChain.Core;
+using OpenChain.Core.Sqlite;
+using OpenChain.Server;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace OpenChain.Console
+{
+ public class Program
+ {
+ static void Main(string[] args)
+ {
+
+ Run().Wait();
+
+
+ }
+
+ private static async Task Run()
+ {
+ //LedgerController.VerifyEvidence();
+
+ SqliteTransactionStore store = new SqliteTransactionStore(@"D:\Flavien\Documents\Visual Studio 2015\Projects\OpenChain\Server\src\OpenChain.Console\ledger.db");
+ await store.OpenDatabase();
+
+ // DB
+ var key = new AccountKey("a/b/cd", "d/e/f");
+ var accounts = await store.GetAccounts(new[] { key });
+
+ BinaryData version = BinaryData.Parse("");
+ Transaction transaction = new Transaction(
+ new[]
+ {
+ new AccountEntry(key, 250, accounts[key].Version),
+ new AccountEntry(new AccountKey("a/b/c", "d/e/g"), -250, version)
+ },
+ version
+ );
+
+ byte[] b = TransactionSerializer.SerializeTransaction(transaction);
+
+ Transaction res = TransactionSerializer.DeserializeTransaction(b);
+
+ //LedgerRecord rec = new LedgerRecord(new BinaryData(b), DateTime.UtcNow, BinaryData.Parse("123456"), 1);
+
+ //await store.AddLedgerRecord(rec);
+ await store.AddTransaction(new BinaryData(b), DateTime.UtcNow, BinaryData.Parse("123456"));
+ }
+ }
+}
diff --git a/src/OpenChain.Console/project.json b/src/OpenChain.Console/project.json
new file mode 100644
index 0000000..c2046b7
--- /dev/null
+++ b/src/OpenChain.Console/project.json
@@ -0,0 +1,31 @@
+{
+ "version": "1.0.0-*",
+ "description": "",
+ "authors": [ "" ],
+ "tags": [ "" ],
+ "projectUrl": "",
+ "licenseUrl": "",
+
+ "dependencies": {
+ "OpenChain.Core": "1.0.0-*",
+ "OpenChain.Server": "1.0.0-*",
+ "OpenChain.Core.Sqlite": "1.0.0-*"
+ },
+
+ "commands": {
+ "OpenChain.Console": "OpenChain.Console"
+ },
+
+ "frameworks": {
+ "dnx451": { }
+ //"dnxcore50": {
+ // "dependencies": {
+ // "System.Console": "4.0.0-beta-22816",
+ // "System.Collections": "4.0.10-beta-22816",
+ // "System.Linq": "4.0.0-beta-22816",
+ // "System.Threading": "4.0.10-beta-22816",
+ // "Microsoft.CSharp": "4.0.0-beta-22816"
+ // }
+ //}
+ }
+}
diff --git a/src/OpenChain.Console/project.lock.json b/src/OpenChain.Console/project.lock.json
new file mode 100644
index 0000000..30809df
--- /dev/null
+++ b/src/OpenChain.Console/project.lock.json
@@ -0,0 +1,225 @@
+{
+ "locked": false,
+ "version": -9998,
+ "projectFileDependencyGroups": {
+ "": [
+ "OpenChain.Core >= 1.0.0-*",
+ "OpenChain.Server >= 1.0.0-*",
+ "OpenChain.Core.Sqlite >= 1.0.0-*"
+ ],
+ "DNX,Version=v4.5.1": []
+ },
+ "libraries": {
+ "Microsoft.Data.SQLite/1.0.0-beta1": {
+ "serviceable": false,
+ "sha": "Lgx+43A8cUn24jaehz0IuDNYVGc2EaSjp37xvbvh6ljSkyqrRDHIvuhX2HrHZnHg0k4LDydleKiCI9jwSUbStQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Data.Common": "1.0.0-beta1"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/aspnet50/Microsoft.Data.SQLite.dll"
+ ],
+ "compileAssemblies": [
+ "lib/aspnet50/Microsoft.Data.SQLite.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Data.Common": "1.0.0-beta1"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/Microsoft.Data.SQLite.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/Microsoft.Data.SQLite.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Data.SQLite.1.0.0-beta1.nupkg",
+ "Microsoft.Data.SQLite.1.0.0-beta1.nupkg.sha512",
+ "Microsoft.Data.SQLite.nuspec",
+ "build/net451/Microsoft.Data.SQLite.targets",
+ "lib/aspnet50/Microsoft.Data.SQLite.dll",
+ "lib/aspnet50/Microsoft.Data.SQLite.xml",
+ "lib/aspnetcore50/Microsoft.Data.SQLite.dll",
+ "lib/aspnetcore50/Microsoft.Data.SQLite.xml",
+ "lib/net451/Microsoft.Data.SQLite.dll",
+ "lib/net451/Microsoft.Data.SQLite.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Data.SQLite.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Data.SQLite.xml",
+ "redist/x86/sqlite3.dll"
+ ]
+ },
+ "MongoDB.Bson/2.0.1": {
+ "serviceable": false,
+ "sha": "dr8KYpTt5VIqGWQ5Bzud2BA/lH2csIfL5WLrfc90UzSWGF378ugvEo5tx4J0eZohvHzsRRiMS2YTmJOTRN+iYg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ]
+ }
+ },
+ "files": [
+ "License.rtf",
+ "MongoDB.Bson.2.0.1.nupkg",
+ "MongoDB.Bson.2.0.1.nupkg.sha512",
+ "MongoDB.Bson.nuspec",
+ "lib/net45/MongoDB.Bson.dll",
+ "lib/net45/MongoDB.Bson.XML"
+ ]
+ },
+ "protobuf-net/2.0.0.668": {
+ "serviceable": false,
+ "sha": "Lgj+Kf1+RV0utKxX9u1WEcymPGrbWrj/AwFmFADFLLa/LLdc1ji2MIGcecFRAGUu6UO8BRbdjZAIYWvLlN1B/A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ }
+ },
+ "files": [
+ "protobuf-net.2.0.0.668.nupkg",
+ "protobuf-net.2.0.0.668.nupkg.sha512",
+ "protobuf-net.nuspec",
+ "lib/net20/protobuf-net.dll",
+ "lib/net20/protobuf-net.pdb",
+ "lib/net20/protobuf-net.xml",
+ "lib/net20-cf/protobuf-net.dll",
+ "lib/net20-cf/protobuf-net.pdb",
+ "lib/net20-cf/protobuf-net.xml",
+ "lib/net30/protobuf-net.dll",
+ "lib/net30/protobuf-net.pdb",
+ "lib/net30/protobuf-net.xml",
+ "lib/net35/protobuf-net.dll",
+ "lib/net35/protobuf-net.pdb",
+ "lib/net35/protobuf-net.xml",
+ "lib/net35-cf/protobuf-net.dll",
+ "lib/net35-cf/protobuf-net.pdb",
+ "lib/net35-cf/protobuf-net.xml",
+ "lib/net40/protobuf-net.dll",
+ "lib/net40/protobuf-net.pdb",
+ "lib/net40/protobuf-net.xml",
+ "lib/net40-cf/protobuf-net.dll",
+ "lib/net40-cf/protobuf-net.pdb",
+ "lib/net40-cf/protobuf-net.xml",
+ "lib/netcore45/protobuf-net.dll",
+ "lib/netcore45/protobuf-net.pdb",
+ "lib/netcore45/protobuf-net.pri",
+ "lib/netcore45/protobuf-net.XML",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.pdb",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml",
+ "lib/sl3-wp/protobuf-net.dll",
+ "lib/sl3-wp/protobuf-net.pdb",
+ "lib/sl3-wp/protobuf-net.xml",
+ "lib/sl4/protobuf-net.dll",
+ "lib/sl4/protobuf-net.pdb",
+ "lib/sl4/protobuf-net.xml",
+ "lib/sl4-windowsphone71/protobuf-net.dll",
+ "lib/sl4-windowsphone71/protobuf-net.pdb",
+ "lib/sl4-windowsphone71/protobuf-net.xml",
+ "lib/windowsphone8/protobuf-net.dll",
+ "lib/windowsphone8/protobuf-net.pdb",
+ "lib/windowsphone8/protobuf-net.xml"
+ ]
+ },
+ "System.Data.Common/1.0.0-beta1": {
+ "serviceable": false,
+ "sha": "cuIEw5cNVZZBYz2STud08Q5VBP+GKvDJPPP3AoApL72tlYhl9uHoW54Q3QTi5tElsXFCnFw868atiHqrGS7GIw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System.Data",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/aspnet50/System.Data.Common.dll"
+ ],
+ "compileAssemblies": [
+ "lib/aspnet50/System.Data.Common.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System.Data",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/System.Data.Common.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/System.Data.Common.dll"
+ ]
+ }
+ },
+ "files": [
+ "System.Data.Common.1.0.0-beta1.nupkg",
+ "System.Data.Common.1.0.0-beta1.nupkg.sha512",
+ "System.Data.Common.nuspec",
+ "lib/aspnet50/System.Data.Common.dll",
+ "lib/aspnet50/System.Data.Common.xml",
+ "lib/aspnetcore50/System.Data.Common.dll",
+ "lib/aspnetcore50/System.Data.Common.xml",
+ "lib/net451/System.Data.Common.dll",
+ "lib/net451/System.Data.Common.xml",
+ "lib/portable-net451+win81+wpa81/System.Data.Common.dll",
+ "lib/portable-net451+win81+wpa81/System.Data.Common.xml"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/OpenChain.Core.Sqlite/OpenChain.Core.Sqlite.xproj b/src/OpenChain.Core.Sqlite/OpenChain.Core.Sqlite.xproj
new file mode 100644
index 0000000..a1379aa
--- /dev/null
+++ b/src/OpenChain.Core.Sqlite/OpenChain.Core.Sqlite.xproj
@@ -0,0 +1,20 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ b76ec900-3dc6-42b0-b480-b758e00507b6
+ OpenChain.Core.Sqlite
+ ..\..\artifacts\obj\$(MSBuildProjectName)
+ ..\..\artifacts\bin\$(MSBuildProjectName)\
+
+
+
+ 2.0
+
+
+
diff --git a/src/OpenChain.Core.Sqlite/SqliteTransactionStore.cs b/src/OpenChain.Core.Sqlite/SqliteTransactionStore.cs
new file mode 100644
index 0000000..5ec0024
--- /dev/null
+++ b/src/OpenChain.Core.Sqlite/SqliteTransactionStore.cs
@@ -0,0 +1,276 @@
+using Microsoft.Data.SQLite;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Data.Common;
+using System.Linq;
+using System.Security.Cryptography;
+using System.Threading.Tasks;
+
+namespace OpenChain.Core.Sqlite
+{
+ public class SqliteTransactionStore : ITransactionStore
+ {
+ private readonly SQLiteConnection connection;
+
+ public SqliteTransactionStore(string filename)
+ {
+ this.connection = new SQLiteConnection(new SQLiteConnectionStringBuilder() { Filename = filename }.ToString());
+ this.OpenDatabase().Wait();
+ }
+
+ public async Task AddTransaction(BinaryData rawTransaction, DateTime timestamp, BinaryData externalMetadata)
+ {
+ using (SQLiteTransaction context = connection.BeginTransaction(System.Data.IsolationLevel.Serializable))
+ {
+ Tuple ledgerStatus = await GetLedgerStatus(context);
+
+ LedgerRecord ledgerRecord = new LedgerRecord(
+ rawTransaction,
+ timestamp,
+ externalMetadata,
+ ledgerStatus.Item1);
+
+ byte[] newLedgerHash = await InsertTransaction(context, ledgerRecord, TransactionSerializer.SerializeLedgerRecord(ledgerRecord), ledgerStatus.Item2 + 1);
+
+ context.Commit();
+
+ return new BinaryData(newLedgerHash);
+ }
+ }
+
+ public async Task AddLedgerRecord(BinaryData rawLedgerRecord)
+ {
+ using (SQLiteTransaction context = connection.BeginTransaction(System.Data.IsolationLevel.Serializable))
+ {
+ Tuple ledgerStatus = await GetLedgerStatus(context);
+
+ LedgerRecord record = TransactionSerializer.DeserializeLedgerRecord(rawLedgerRecord.ToArray());
+
+ if (!record.PreviousRecordHash.Equals(ledgerStatus.Item1))
+ throw new InvalidOperationException();
+
+ byte[] newLedgerHash = await InsertTransaction(context, record, rawLedgerRecord.ToArray(), ledgerStatus.Item2 + 1);
+ context.Commit();
+
+ return new BinaryData(newLedgerHash);
+ }
+ }
+
+ private async Task> GetLedgerStatus(SQLiteTransaction context)
+ {
+ SQLiteCommand ledgerVersion = connection.CreateCommand();
+ ledgerVersion.CommandText = @"
+ SELECT LedgerHeight, LedgerHash
+ FROM Ledgers
+ WHERE Id = 0";
+
+ BinaryData lastTransactionHash;
+ long ledgerHeight;
+ using (DbDataReader reader = await ledgerVersion.ExecuteReaderAsync())
+ {
+ bool ledgerFound = await reader.ReadAsync();
+ if (!ledgerFound)
+ throw new InvalidOperationException();
+
+ ledgerHeight = reader.GetInt64(0);
+ lastTransactionHash = new BinaryData((byte[])reader.GetValue(1) ?? new byte[0]);
+ }
+
+ return Tuple.Create(lastTransactionHash, ledgerHeight);
+ }
+
+ private async Task InsertTransaction(SQLiteTransaction context, LedgerRecord ledgerRecord, byte[] rawLedgerRecord, long id)
+ {
+ byte[] rawTransaction = ledgerRecord.Payload.ToArray();
+ byte[] recordHash;
+ byte[] transactionHash;
+ using (SHA256 hash = SHA256.Create())
+ {
+ recordHash = hash.ComputeHash(rawLedgerRecord);
+ transactionHash = hash.ComputeHash(rawTransaction);
+ }
+
+ SQLiteCommand command = connection.CreateCommand();
+ command.CommandText = @"
+ INSERT INTO Transactions
+ (Id, TransactionHash, RecordHash, PreviousRecordHash, RawData)
+ VALUES (@id, @transactionHash, @recordHash, @previousRecordHash, @rawData)";
+
+ command.Parameters.AddWithValue("@id", id);
+ command.Parameters.AddWithValue("@transactionHash", transactionHash);
+ command.Parameters.AddWithValue("@recordHash", recordHash);
+ command.Parameters.AddWithValue("@previousRecordHash", ledgerRecord.PreviousRecordHash.ToArray());
+ command.Parameters.AddWithValue("@rawData", rawLedgerRecord);
+
+ await command.ExecuteNonQueryAsync();
+
+ SQLiteCommand updateLedgerHash = connection.CreateCommand();
+ updateLedgerHash.CommandText = @"
+ UPDATE Ledgers
+ SET LedgerHash = @ledgerHash,
+ LedgerHeight = LedgerHeight + 1
+ WHERE Id = 0";
+ updateLedgerHash.Parameters.AddWithValue("@ledgerHash", recordHash);
+ await updateLedgerHash.ExecuteNonQueryAsync();
+
+ await UpdateAccounts(TransactionSerializer.DeserializeTransaction(rawTransaction), transactionHash);
+
+ return recordHash;
+ }
+
+ private async Task UpdateAccounts(Transaction transaction, byte[] transactionHash)
+ {
+ var accountEntries = transaction.AccountEntries
+ .GroupBy(entry => entry.AccountKey, entry => entry);
+
+ if (accountEntries.Any(group => group.Count() > 1))
+ throw new InvalidOperationException();
+
+ foreach (AccountEntry entry in transaction.AccountEntries)
+ {
+ if (!entry.Version.Equals(BinaryData.Empty))
+ {
+ SQLiteCommand insertAccount = connection.CreateCommand();
+ insertAccount.CommandText = @"
+ UPDATE Accounts
+ SET Balance = Balance + @balance, Version = @version
+ WHERE Account = @account AND Asset = @asset AND Version = @previousVersion";
+ insertAccount.Parameters.AddWithValue("@account", entry.AccountKey.Account);
+ insertAccount.Parameters.AddWithValue("@asset", entry.AccountKey.Asset);
+ insertAccount.Parameters.AddWithValue("@previousVersion", entry.Version.Value.ToArray());
+ insertAccount.Parameters.AddWithValue("@balance", entry.Amount);
+ insertAccount.Parameters.AddWithValue("@version", transactionHash);
+
+ int count = await insertAccount.ExecuteNonQueryAsync();
+
+ if (count == 0)
+ throw new AccountModifiedException(entry);
+ }
+ else
+ {
+ SQLiteCommand insertAccount = connection.CreateCommand();
+ insertAccount.CommandText = @"
+ INSERT INTO Accounts
+ (Account, Asset, Balance, Version)
+ VALUES (@account, @asset, @balance, @version)";
+ insertAccount.Parameters.AddWithValue("@account", entry.AccountKey.Account);
+ insertAccount.Parameters.AddWithValue("@asset", entry.AccountKey.Asset);
+ insertAccount.Parameters.AddWithValue("@balance", entry.Amount);
+ insertAccount.Parameters.AddWithValue("@version", transactionHash);
+
+ try
+ {
+ await insertAccount.ExecuteNonQueryAsync();
+ }
+ catch (SQLiteException exception) when (exception.Message == "constraint failed")
+ {
+ throw new AccountModifiedException(entry);
+ }
+ }
+ }
+ }
+
+ public async Task> GetAccounts(IEnumerable accountKeys)
+ {
+ Dictionary result = new Dictionary();
+
+ foreach (AccountKey accountKey in accountKeys)
+ {
+ SQLiteCommand selectAccount = connection.CreateCommand();
+ selectAccount.CommandText = @"
+ SELECT Balance, Version
+ FROM Accounts
+ WHERE Account = @account AND Asset = @asset";
+
+ selectAccount.Parameters.AddWithValue("@account", accountKey.Account);
+ selectAccount.Parameters.AddWithValue("@asset", accountKey.Asset);
+
+ using (DbDataReader reader = await selectAccount.ExecuteReaderAsync())
+ {
+ bool exists = await reader.ReadAsync();
+
+ if (exists)
+ result[accountKey] = new AccountEntry(accountKey, reader.GetInt64(0), new BinaryData((byte[])reader.GetValue(1)));
+ else
+ result[accountKey] = new AccountEntry(accountKey, 0, BinaryData.Empty);
+ }
+ }
+
+ return new ReadOnlyDictionary(result);
+ }
+
+ public async Task> GetTransactionStream(BinaryData from)
+ {
+ SQLiteCommand query = connection.CreateCommand();
+ if (from != null)
+ {
+ query.CommandText = @"
+ SELECT RawData
+ FROM Transactions
+ WHERE Id > (SELECT Id FROM Transactions WHERE RecordHash = @recordHash)";
+ query.Parameters.AddWithValue("@recordHash", from.ToArray());
+ }
+ else
+ {
+ query.CommandText = @"
+ SELECT RawData
+ FROM Transactions";
+ }
+
+ List result = new List();
+ using (DbDataReader reader = await query.ExecuteReaderAsync())
+ {
+ while (await reader.ReadAsync())
+ result.Add(new BinaryData((byte[])reader.GetValue(0)));
+ }
+
+ return result.AsReadOnly();
+ }
+
+ public async Task OpenDatabase()
+ {
+ await connection.OpenAsync();
+
+ SQLiteCommand command = connection.CreateCommand();
+ command.CommandText = @"
+ CREATE TABLE IF NOT EXISTS Transactions
+ (
+ Id INTEGER PRIMARY KEY,
+ TransactionHash BLOB UNIQUE,
+ RecordHash BLOB UNIQUE,
+ PreviousRecordHash BLOB,
+ RawData BLOB
+ );
+
+ CREATE TABLE IF NOT EXISTS Accounts
+ (
+ Account TEXT,
+ Asset TEXT,
+ Balance INTEGER,
+ Version BLOB,
+ PRIMARY KEY (Account ASC, Asset ASC)
+ );
+
+ CREATE TABLE IF NOT EXISTS Ledgers
+ (
+ Id INT,
+ LedgerHeight INT,
+ LedgerHash BLOB,
+ PRIMARY KEY (Id ASC)
+ );
+ ";
+
+ await command.ExecuteNonQueryAsync();
+
+ command = connection.CreateCommand();
+ command.CommandText = @"
+ INSERT OR IGNORE INTO Ledgers
+ (Id, LedgerHeight, LedgerHash)
+ VALUES (0, 0, X'');
+ ";
+
+ await command.ExecuteNonQueryAsync();
+ }
+ }
+}
diff --git a/src/OpenChain.Core.Sqlite/project.json b/src/OpenChain.Core.Sqlite/project.json
new file mode 100644
index 0000000..29d11fa
--- /dev/null
+++ b/src/OpenChain.Core.Sqlite/project.json
@@ -0,0 +1,42 @@
+{
+ "version": "1.0.0-*",
+ "description": "",
+ "authors": [ "" ],
+ "tags": [ "" ],
+ "projectUrl": "",
+ "licenseUrl": "",
+
+ "dependencies": {
+ "Microsoft.Data.SQLite": "1.0.0-beta1",
+ "OpenChain.Core": "1.0.0-*"
+ },
+
+ "frameworks": {
+ "dnx451": {
+ "frameworkAssemblies": {
+ "System.Data": "4.0.0.0",
+ "System.Xml": "4.0.0.0"
+ },
+ "dependencies": {
+
+ }
+ },
+ "net46": {
+ "frameworkAssemblies": {
+ "System.Data": "4.0.0.0",
+ "System.Xml": "4.0.0.0"
+ },
+ "dependencies": {
+
+ }
+ }
+ //"dnxcore50": {
+ // "dependencies": {
+ // "System.Collections": "4.0.10-beta-22816",
+ // "System.Linq": "4.0.0-beta-22816",
+ // "System.Threading": "4.0.10-beta-22816",
+ // "Microsoft.CSharp": "4.0.0-beta-22816"
+ // }
+ //}
+ }
+}
diff --git a/src/OpenChain.Core.Sqlite/project.lock.json b/src/OpenChain.Core.Sqlite/project.lock.json
new file mode 100644
index 0000000..91c722e
--- /dev/null
+++ b/src/OpenChain.Core.Sqlite/project.lock.json
@@ -0,0 +1,197 @@
+{
+ "locked": false,
+ "version": -9998,
+ "projectFileDependencyGroups": {
+ "": [
+ "Microsoft.Data.SQLite >= 1.0.0-beta1",
+ "OpenChain.Core >= 1.0.0-*"
+ ],
+ "DNX,Version=v4.5.1": [
+ "framework/System.Data >= 4.0.0.0",
+ "framework/System.Xml >= 4.0.0.0"
+ ],
+ ".NETFramework,Version=v4.6": [
+ "framework/System.Data >= 4.0.0.0",
+ "framework/System.Xml >= 4.0.0.0"
+ ]
+ },
+ "libraries": {
+ "Microsoft.Data.SQLite/1.0.0-beta1": {
+ "serviceable": false,
+ "sha": "Lgx+43A8cUn24jaehz0IuDNYVGc2EaSjp37xvbvh6ljSkyqrRDHIvuhX2HrHZnHg0k4LDydleKiCI9jwSUbStQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Data.Common": "1.0.0-beta1"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/aspnet50/Microsoft.Data.SQLite.dll"
+ ],
+ "compileAssemblies": [
+ "lib/aspnet50/Microsoft.Data.SQLite.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Data.Common": "1.0.0-beta1"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/Microsoft.Data.SQLite.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/Microsoft.Data.SQLite.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Data.SQLite.1.0.0-beta1.nupkg",
+ "Microsoft.Data.SQLite.1.0.0-beta1.nupkg.sha512",
+ "Microsoft.Data.SQLite.nuspec",
+ "build/net451/Microsoft.Data.SQLite.targets",
+ "lib/aspnet50/Microsoft.Data.SQLite.dll",
+ "lib/aspnet50/Microsoft.Data.SQLite.xml",
+ "lib/aspnetcore50/Microsoft.Data.SQLite.dll",
+ "lib/aspnetcore50/Microsoft.Data.SQLite.xml",
+ "lib/net451/Microsoft.Data.SQLite.dll",
+ "lib/net451/Microsoft.Data.SQLite.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Data.SQLite.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Data.SQLite.xml",
+ "redist/x86/sqlite3.dll"
+ ]
+ },
+ "protobuf-net/2.0.0.668": {
+ "serviceable": false,
+ "sha": "Lgj+Kf1+RV0utKxX9u1WEcymPGrbWrj/AwFmFADFLLa/LLdc1ji2MIGcecFRAGUu6UO8BRbdjZAIYWvLlN1B/A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ }
+ },
+ "files": [
+ "protobuf-net.2.0.0.668.nupkg",
+ "protobuf-net.2.0.0.668.nupkg.sha512",
+ "protobuf-net.nuspec",
+ "lib/net20/protobuf-net.dll",
+ "lib/net20/protobuf-net.pdb",
+ "lib/net20/protobuf-net.xml",
+ "lib/net20-cf/protobuf-net.dll",
+ "lib/net20-cf/protobuf-net.pdb",
+ "lib/net20-cf/protobuf-net.xml",
+ "lib/net30/protobuf-net.dll",
+ "lib/net30/protobuf-net.pdb",
+ "lib/net30/protobuf-net.xml",
+ "lib/net35/protobuf-net.dll",
+ "lib/net35/protobuf-net.pdb",
+ "lib/net35/protobuf-net.xml",
+ "lib/net35-cf/protobuf-net.dll",
+ "lib/net35-cf/protobuf-net.pdb",
+ "lib/net35-cf/protobuf-net.xml",
+ "lib/net40/protobuf-net.dll",
+ "lib/net40/protobuf-net.pdb",
+ "lib/net40/protobuf-net.xml",
+ "lib/net40-cf/protobuf-net.dll",
+ "lib/net40-cf/protobuf-net.pdb",
+ "lib/net40-cf/protobuf-net.xml",
+ "lib/netcore45/protobuf-net.dll",
+ "lib/netcore45/protobuf-net.pdb",
+ "lib/netcore45/protobuf-net.pri",
+ "lib/netcore45/protobuf-net.XML",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.pdb",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml",
+ "lib/sl3-wp/protobuf-net.dll",
+ "lib/sl3-wp/protobuf-net.pdb",
+ "lib/sl3-wp/protobuf-net.xml",
+ "lib/sl4/protobuf-net.dll",
+ "lib/sl4/protobuf-net.pdb",
+ "lib/sl4/protobuf-net.xml",
+ "lib/sl4-windowsphone71/protobuf-net.dll",
+ "lib/sl4-windowsphone71/protobuf-net.pdb",
+ "lib/sl4-windowsphone71/protobuf-net.xml",
+ "lib/windowsphone8/protobuf-net.dll",
+ "lib/windowsphone8/protobuf-net.pdb",
+ "lib/windowsphone8/protobuf-net.xml"
+ ]
+ },
+ "System.Data.Common/1.0.0-beta1": {
+ "serviceable": false,
+ "sha": "cuIEw5cNVZZBYz2STud08Q5VBP+GKvDJPPP3AoApL72tlYhl9uHoW54Q3QTi5tElsXFCnFw868atiHqrGS7GIw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System.Data",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/aspnet50/System.Data.Common.dll"
+ ],
+ "compileAssemblies": [
+ "lib/aspnet50/System.Data.Common.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System.Data",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/System.Data.Common.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/System.Data.Common.dll"
+ ]
+ }
+ },
+ "files": [
+ "System.Data.Common.1.0.0-beta1.nupkg",
+ "System.Data.Common.1.0.0-beta1.nupkg.sha512",
+ "System.Data.Common.nuspec",
+ "lib/aspnet50/System.Data.Common.dll",
+ "lib/aspnet50/System.Data.Common.xml",
+ "lib/aspnetcore50/System.Data.Common.dll",
+ "lib/aspnetcore50/System.Data.Common.xml",
+ "lib/net451/System.Data.Common.dll",
+ "lib/net451/System.Data.Common.xml",
+ "lib/portable-net451+win81+wpa81/System.Data.Common.dll",
+ "lib/portable-net451+win81+wpa81/System.Data.Common.xml"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/OpenChain.Core/AccountEntry.cs b/src/OpenChain.Core/AccountEntry.cs
new file mode 100644
index 0000000..4bc10a5
--- /dev/null
+++ b/src/OpenChain.Core/AccountEntry.cs
@@ -0,0 +1,26 @@
+using System;
+
+namespace OpenChain.Core
+{
+ public class AccountEntry
+ {
+ public AccountEntry(AccountKey accountKey, long amount, BinaryData version)
+ {
+ if (accountKey == null)
+ throw new ArgumentNullException(nameof(accountKey));
+
+ if (version == null)
+ throw new ArgumentNullException(nameof(version));
+
+ this.AccountKey = accountKey;
+ this.Amount = amount;
+ this.Version = version;
+ }
+
+ public AccountKey AccountKey { get; }
+
+ public long Amount { get; }
+
+ public BinaryData Version { get; }
+ }
+}
diff --git a/src/OpenChain.Core/AccountKey.cs b/src/OpenChain.Core/AccountKey.cs
new file mode 100644
index 0000000..993f5ff
--- /dev/null
+++ b/src/OpenChain.Core/AccountKey.cs
@@ -0,0 +1,41 @@
+using System;
+
+namespace OpenChain.Core
+{
+ public class AccountKey : IEquatable
+ {
+ public AccountKey(string account, string asset)
+ {
+ if (account == null)
+ throw new ArgumentNullException(nameof(account));
+
+ if (asset == null)
+ throw new ArgumentNullException(nameof(asset));
+
+ this.Account = account;
+ this.Asset = asset;
+ }
+
+ public string Account { get; }
+
+ public string Asset { get; }
+
+ public bool Equals(AccountKey other)
+ {
+ if (other == null)
+ return false;
+ else
+ return this.Account.Equals(other.Account) && this.Asset.Equals(other.Asset);
+ }
+
+ public override int GetHashCode()
+ {
+ return this.Account.GetHashCode() ^ this.Asset.GetHashCode();
+ }
+
+ public override bool Equals(object obj)
+ {
+ return this.Equals(obj as AccountKey);
+ }
+ }
+}
diff --git a/src/OpenChain.Core/AccountModifiedException.cs b/src/OpenChain.Core/AccountModifiedException.cs
new file mode 100644
index 0000000..b2ba3bc
--- /dev/null
+++ b/src/OpenChain.Core/AccountModifiedException.cs
@@ -0,0 +1,19 @@
+using System;
+
+namespace OpenChain.Core
+{
+ public class AccountModifiedException : Exception
+ {
+ public AccountModifiedException(AccountEntry failedEntry)
+ : base(string.Format(
+ "Version '{0}' of account '{1}' for asset '{2}' no longer exists.",
+ failedEntry.Version,
+ failedEntry.AccountKey.Account,
+ failedEntry.AccountKey.Asset))
+ {
+ this.FailedEntry = failedEntry;
+ }
+
+ public AccountEntry FailedEntry { get; }
+ }
+}
diff --git a/src/OpenChain.Core/BinaryData.cs b/src/OpenChain.Core/BinaryData.cs
new file mode 100644
index 0000000..5a42727
--- /dev/null
+++ b/src/OpenChain.Core/BinaryData.cs
@@ -0,0 +1,117 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+
+namespace OpenChain.Core
+{
+ public class BinaryData : IEquatable
+ {
+ private readonly byte[] data;
+
+ static BinaryData()
+ {
+ Empty = new BinaryData(new byte[0]);
+ }
+
+ public BinaryData(IEnumerable data)
+ {
+ this.data = data.ToArray();
+ this.Value = new ReadOnlyCollection(this.data);
+ }
+
+ public BinaryData(byte[] data)
+ {
+ this.data = new byte[data.Length];
+ Buffer.BlockCopy(data, 0, this.data, 0, data.Length);
+ this.Value = new ReadOnlyCollection(this.data);
+ }
+
+ public static BinaryData Empty { get; }
+
+ public IReadOnlyList Value { get; }
+
+ public static BinaryData Parse(string hexValue)
+ {
+ if (hexValue == null)
+ throw new FormatException("The hexValue parameter must not be null.");
+
+ if (hexValue.Length % 2 == 1)
+ throw new FormatException("The hexValue parameter must have an even number of digits.");
+
+ byte[] result = new byte[hexValue.Length >> 1];
+
+ for (int i = 0; i < hexValue.Length >> 1; ++i)
+ result[i] = (byte)((GetHexValue(hexValue[i << 1]) << 4) + (GetHexValue(hexValue[(i << 1) + 1])));
+
+ return new BinaryData(result);
+ }
+
+ private static int GetHexValue(char hex)
+ {
+ int value = "0123456789ABCDEF".IndexOf(char.ToUpper(hex));
+
+ if (value < 0)
+ throw new FormatException(string.Format("The character '{0}' is not a hexadecimal digit.", hex));
+ else
+ return value;
+ }
+
+ public byte[] ToArray()
+ {
+ byte[] result = new byte[data.Length];
+ Buffer.BlockCopy(data, 0, result, 0, data.Length);
+ return result;
+ }
+
+ public bool Equals(BinaryData other)
+ {
+ if (other == null)
+ {
+ return false;
+ }
+ else
+ {
+ if (this.data.Length != other.data.Length)
+ return false;
+
+ for (int i = 0; i < other.data.Length; i++)
+ if (this.data[i] != other.data[i])
+ return false;
+
+ return true;
+ }
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (obj is BinaryData)
+ return this.Equals((BinaryData)obj);
+ else
+ return false;
+ }
+
+ public override int GetHashCode()
+ {
+ unchecked
+ {
+ int result = 0;
+ foreach (byte b in this.data)
+ result = (result * 31) ^ b;
+
+ return result;
+ }
+ }
+
+ public override string ToString()
+ {
+ StringBuilder hex = new StringBuilder(this.data.Length * 2);
+
+ foreach (byte value in this.data)
+ hex.AppendFormat("{0:x2}", value);
+
+ return hex.ToString();
+ }
+ }
+}
diff --git a/src/OpenChain.Core/ITransactionStore.cs b/src/OpenChain.Core/ITransactionStore.cs
new file mode 100644
index 0000000..ff63c85
--- /dev/null
+++ b/src/OpenChain.Core/ITransactionStore.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace OpenChain.Core
+{
+ public interface ITransactionStore
+ {
+ ///
+ /// Adds a record to the ledger.
+ ///
+ /// An account has been modified and the transaction is no longer valid.
+ /// A task that represents the completion of the operation and contains the new ledger hash.
+ Task AddTransaction(BinaryData rawTransaction, DateTime timestamp, BinaryData externalMetadata);
+
+ ///
+ /// Adds a record to the ledger.
+ ///
+ /// The serialized ledger record to add to the ledger.
+ /// An account has been modified and the transaction is no longer valid.
+ /// A task that represents the completion of the operation and contains the new ledger hash.
+ Task AddLedgerRecord(BinaryData rawLedgerRecord);
+
+ Task> GetAccounts(IEnumerable accountKeys);
+
+ Task> GetTransactionStream(BinaryData from);
+ }
+}
diff --git a/src/OpenChain.Core/LedgerRecord.cs b/src/OpenChain.Core/LedgerRecord.cs
new file mode 100644
index 0000000..c035d09
--- /dev/null
+++ b/src/OpenChain.Core/LedgerRecord.cs
@@ -0,0 +1,32 @@
+using System;
+
+namespace OpenChain.Core
+{
+ public class LedgerRecord
+ {
+ public LedgerRecord(BinaryData payload, DateTime timestamp, BinaryData externalMetadata, BinaryData previousRecordHash)
+ {
+ if (payload == null)
+ throw new ArgumentNullException(nameof(payload));
+
+ if (externalMetadata == null)
+ throw new ArgumentNullException(nameof(externalMetadata));
+
+ if (previousRecordHash == null)
+ throw new ArgumentNullException(nameof(previousRecordHash));
+
+ this.Payload = payload;
+ this.Timestamp = timestamp;
+ this.ExternalMetadata = externalMetadata;
+ this.PreviousRecordHash = previousRecordHash;
+ }
+
+ public BinaryData Payload { get; }
+
+ public DateTime Timestamp { get; }
+
+ public BinaryData ExternalMetadata { get; }
+
+ public BinaryData PreviousRecordHash { get; }
+ }
+}
diff --git a/src/OpenChain.Core/OpenChain.Core.xproj b/src/OpenChain.Core/OpenChain.Core.xproj
new file mode 100644
index 0000000..b14105b
--- /dev/null
+++ b/src/OpenChain.Core/OpenChain.Core.xproj
@@ -0,0 +1,24 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ ca9a2fb3-5bb1-4730-a65e-16bd9831f303
+ OpenChain.Core
+ ..\..\artifacts\obj\$(MSBuildProjectName)
+ ..\..\artifacts\bin\$(MSBuildProjectName)\
+
+
+ OpenChain.Core
+
+
+ 2.0
+
+
+ True
+
+
+
\ No newline at end of file
diff --git a/src/OpenChain.Core/Transaction.cs b/src/OpenChain.Core/Transaction.cs
new file mode 100644
index 0000000..984b10e
--- /dev/null
+++ b/src/OpenChain.Core/Transaction.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+
+namespace OpenChain.Core
+{
+ public class Transaction
+ {
+ public Transaction(IEnumerable accountEntries, BinaryData metadata)
+ {
+ if (accountEntries == null)
+ throw new ArgumentNullException(nameof(accountEntries));
+
+ if (metadata == null)
+ throw new ArgumentNullException(nameof(metadata));
+
+ this.AccountEntries = new ReadOnlyCollection(accountEntries.ToList());
+ this.Metadata = metadata;
+
+ if (this.AccountEntries.Any(entry => entry == null))
+ throw new ArgumentNullException(nameof(accountEntries));
+ }
+
+ public IReadOnlyList AccountEntries { get; }
+
+ public BinaryData Metadata { get; }
+ }
+}
diff --git a/src/OpenChain.Core/TransactionSerializer.cs b/src/OpenChain.Core/TransactionSerializer.cs
new file mode 100644
index 0000000..05a621b
--- /dev/null
+++ b/src/OpenChain.Core/TransactionSerializer.cs
@@ -0,0 +1,131 @@
+using ProtoBuf;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Security.Cryptography;
+
+namespace OpenChain.Core
+{
+ public static class TransactionSerializer
+ {
+ private static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
+
+ public static byte[] SerializeTransaction(Transaction transaction)
+ {
+ SerializableTransaction serializableTransaction = new SerializableTransaction()
+ {
+ AccountEntries = transaction.AccountEntries.Select(
+ operation =>
+ new SerializableAccountEntry()
+ {
+ Account = operation.AccountKey.Account,
+ Asset = operation.AccountKey.Asset,
+ Amount = operation.Amount,
+ Version = operation.Version.Value.ToArray()
+ })
+ .ToArray(),
+ Metadata = transaction.Metadata.Value.ToArray()
+ };
+
+ using (MemoryStream stream = new MemoryStream())
+ {
+ Serializer.Serialize(stream, serializableTransaction);
+ return stream.ToArray();
+ }
+ }
+
+ public static Transaction DeserializeTransaction(byte[] data)
+ {
+ using (MemoryStream stream = new MemoryStream(data))
+ {
+ SerializableTransaction result = Serializer.Deserialize(stream);
+
+ return new Transaction(
+ result.AccountEntries.Select(
+ entry => new AccountEntry(
+ new AccountKey(entry.Account, entry.Asset),
+ entry.Amount,
+ new BinaryData(entry.Version))),
+ new BinaryData(result.Metadata));
+ }
+ }
+
+ public static byte[] SerializeLedgerRecord(this LedgerRecord record)
+ {
+ SerializableLedgerRecord serializableRecord = new SerializableLedgerRecord()
+ {
+ Transaction = record.Payload.Value.ToArray(),
+ Timestamp = (long)(record.Timestamp - epoch).TotalSeconds,
+ ExternalMetadata = record.ExternalMetadata.Value.ToArray(),
+ PreviousRecord = record.PreviousRecordHash.Value.ToArray()
+ };
+
+ using (MemoryStream stream = new MemoryStream())
+ {
+ Serializer.Serialize(stream, serializableRecord);
+ return stream.ToArray();
+ }
+ }
+
+ public static LedgerRecord DeserializeLedgerRecord(byte[] data)
+ {
+ using (MemoryStream stream = new MemoryStream(data))
+ {
+ SerializableLedgerRecord result = Serializer.Deserialize(stream);
+
+ return new LedgerRecord(
+ new BinaryData(result.Transaction),
+ epoch + TimeSpan.FromSeconds(result.Timestamp),
+ new BinaryData(result.ExternalMetadata),
+ new BinaryData(result.PreviousRecord));
+ }
+ }
+
+ #region Protocol Buffers Contracts
+
+ [ProtoContract]
+ private class SerializableTransaction
+ {
+ [ProtoMember(1, IsRequired = true)]
+ public IList AccountEntries { get; set; }
+
+ [ProtoMember(2, IsRequired = true)]
+ public byte[] Metadata { get; set; }
+ }
+
+ [ProtoContract]
+ private class SerializableAccountEntry
+ {
+ [ProtoMember(1, IsRequired = true)]
+ public string Account { get; set; }
+
+ [ProtoMember(2, IsRequired = true)]
+ public string Asset { get; set; }
+
+ [ProtoMember(3, IsRequired = true, DataFormat = DataFormat.ZigZag)]
+ public long Amount { get; set; }
+
+ [ProtoMember(4, IsRequired = true)]
+ public byte[] Version { get; set; }
+ }
+
+ [ProtoContract]
+ private class SerializableLedgerRecord
+ {
+ [ProtoMember(1, IsRequired = true)]
+ public byte[] Transaction { get; set; }
+
+ [ProtoMember(2, IsRequired = true)]
+ public long Timestamp { get; set; }
+
+ [ProtoMember(3, IsRequired = true)]
+ public byte[] ExternalMetadata { get; set; }
+
+ [ProtoMember(4, IsRequired = true)]
+ public byte[] PreviousRecord { get; set; }
+ }
+
+ #endregion
+ }
+}
diff --git a/src/OpenChain.Core/project.json b/src/OpenChain.Core/project.json
new file mode 100644
index 0000000..365bfd7
--- /dev/null
+++ b/src/OpenChain.Core/project.json
@@ -0,0 +1,42 @@
+{
+ "version": "1.0.0-*",
+ "description": "",
+ "authors": [ "" ],
+ "tags": [ "" ],
+ "projectUrl": "",
+ "licenseUrl": "",
+ "compilationOptions": { "languageVersion": "csharp6", "allowUnsafe": false },
+
+ "dependencies": {
+ "protobuf-net": "2.0.0.668"
+ },
+
+ "frameworks": {
+ "dnx451": {
+ "frameworkAssemblies": {
+ "System.Data": "4.0.0.0",
+ "System.Xml": "4.0.0.0"
+ },
+ "dependencies": {
+
+ }
+ },
+ "net46": {
+ "frameworkAssemblies": {
+ "System.Data": "4.0.0.0",
+ "System.Xml": "4.0.0.0"
+ },
+ "dependencies": {
+
+ }
+ }
+ //"dnxcore50": {
+ // "dependencies": {
+ // "System.Collections": "4.0.10-beta-22816",
+ // "System.Linq": "4.0.0-beta-22816",
+ // "System.Threading": "4.0.10-beta-22816",
+ // "Microsoft.CSharp": "4.0.0-beta-22816"
+ // }
+ //}
+ }
+}
diff --git a/src/OpenChain.Core/project.lock.json b/src/OpenChain.Core/project.lock.json
new file mode 100644
index 0000000..96af8ee
--- /dev/null
+++ b/src/OpenChain.Core/project.lock.json
@@ -0,0 +1,90 @@
+{
+ "locked": false,
+ "version": -9998,
+ "projectFileDependencyGroups": {
+ "": [
+ "protobuf-net >= 2.0.0.668"
+ ],
+ "DNX,Version=v4.5.1": [
+ "framework/System.Data >= 4.0.0.0",
+ "framework/System.Xml >= 4.0.0.0"
+ ],
+ ".NETFramework,Version=v4.6": [
+ "framework/System.Data >= 4.0.0.0",
+ "framework/System.Xml >= 4.0.0.0"
+ ]
+ },
+ "libraries": {
+ "protobuf-net/2.0.0.668": {
+ "serviceable": false,
+ "sha": "Lgj+Kf1+RV0utKxX9u1WEcymPGrbWrj/AwFmFADFLLa/LLdc1ji2MIGcecFRAGUu6UO8BRbdjZAIYWvLlN1B/A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ }
+ },
+ "files": [
+ "protobuf-net.2.0.0.668.nupkg",
+ "protobuf-net.2.0.0.668.nupkg.sha512",
+ "protobuf-net.nuspec",
+ "lib/net20/protobuf-net.dll",
+ "lib/net20/protobuf-net.pdb",
+ "lib/net20/protobuf-net.xml",
+ "lib/net20-cf/protobuf-net.dll",
+ "lib/net20-cf/protobuf-net.pdb",
+ "lib/net20-cf/protobuf-net.xml",
+ "lib/net30/protobuf-net.dll",
+ "lib/net30/protobuf-net.pdb",
+ "lib/net30/protobuf-net.xml",
+ "lib/net35/protobuf-net.dll",
+ "lib/net35/protobuf-net.pdb",
+ "lib/net35/protobuf-net.xml",
+ "lib/net35-cf/protobuf-net.dll",
+ "lib/net35-cf/protobuf-net.pdb",
+ "lib/net35-cf/protobuf-net.xml",
+ "lib/net40/protobuf-net.dll",
+ "lib/net40/protobuf-net.pdb",
+ "lib/net40/protobuf-net.xml",
+ "lib/net40-cf/protobuf-net.dll",
+ "lib/net40-cf/protobuf-net.pdb",
+ "lib/net40-cf/protobuf-net.xml",
+ "lib/netcore45/protobuf-net.dll",
+ "lib/netcore45/protobuf-net.pdb",
+ "lib/netcore45/protobuf-net.pri",
+ "lib/netcore45/protobuf-net.XML",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.pdb",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml",
+ "lib/sl3-wp/protobuf-net.dll",
+ "lib/sl3-wp/protobuf-net.pdb",
+ "lib/sl3-wp/protobuf-net.xml",
+ "lib/sl4/protobuf-net.dll",
+ "lib/sl4/protobuf-net.pdb",
+ "lib/sl4/protobuf-net.xml",
+ "lib/sl4-windowsphone71/protobuf-net.dll",
+ "lib/sl4-windowsphone71/protobuf-net.pdb",
+ "lib/sl4-windowsphone71/protobuf-net.xml",
+ "lib/windowsphone8/protobuf-net.dll",
+ "lib/windowsphone8/protobuf-net.pdb",
+ "lib/windowsphone8/protobuf-net.xml"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/OpenChain.Core/transaction.proto b/src/OpenChain.Core/transaction.proto
new file mode 100644
index 0000000..a703525
--- /dev/null
+++ b/src/OpenChain.Core/transaction.proto
@@ -0,0 +1,13 @@
+package OpenChain.Core;
+
+message AccountEntry {
+ required string account = 1;
+ required string asset = 2;
+ required sint64 amount = 3 [default = 0];
+ required bytes version = 4;
+}
+
+message Transaction {
+ repeated AccountEntry account_entries = 1;
+ required bytes metadata = 2;
+}
diff --git a/src/OpenChain.Server/AuthenticationEvidence.cs b/src/OpenChain.Server/AuthenticationEvidence.cs
new file mode 100644
index 0000000..2ecb95b
--- /dev/null
+++ b/src/OpenChain.Server/AuthenticationEvidence.cs
@@ -0,0 +1,32 @@
+using MongoDB.Bson.Serialization.Attributes;
+using OpenChain.Core;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace OpenChain.Server
+{
+ public class AuthenticationEvidence
+ {
+ public AuthenticationEvidence(string account, string asset, string identity, byte[] evidence)
+ {
+ this.Account = account;
+ this.Asset = asset;
+ this.Identity = identity;
+ this.Evidence = evidence;
+ }
+
+ [BsonElement]
+ public string Account { get; private set; }
+
+ [BsonElement]
+ public string Asset { get; private set; }
+
+ [BsonElement]
+ public string Identity { get; private set; }
+
+ [BsonElement]
+ public byte[] Evidence { get; private set; }
+ }
+}
diff --git a/src/OpenChain.Server/BasicValidator.cs b/src/OpenChain.Server/BasicValidator.cs
new file mode 100644
index 0000000..b3bc461
--- /dev/null
+++ b/src/OpenChain.Server/BasicValidator.cs
@@ -0,0 +1,81 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using OpenChain.Core;
+using MongoDB.Bson.Serialization;
+
+namespace OpenChain.Server
+{
+ public class BasicValidator : ITransactionValidator
+ {
+ private readonly ITransactionStore store;
+
+ public BasicValidator(ITransactionStore store)
+ {
+ this.store = store;
+ }
+
+ public async Task IsValid(Transaction transaction, IReadOnlyList authentication)
+ {
+ //BsonSerializer.Deserialize(record.ExternalMetadata.Value.ToArray());
+ IReadOnlyDictionary accounts =
+ await this.store.GetAccounts(transaction.AccountEntries.Select(entry => entry.AccountKey));
+
+ foreach (AccountEntry entry in transaction.AccountEntries)
+ {
+ LedgerPath accountPath;
+ LedgerPath assetPath;
+ if (!LedgerPath.TryParse(entry.AccountKey.Account, out accountPath) || !LedgerPath.TryParse(entry.AccountKey.Asset, out assetPath))
+ return false;
+
+ if (entry.Version.Equals(BinaryData.Empty))
+ if (!await CheckCanCreate(transaction, authentication, accountPath, assetPath, accounts[entry.AccountKey], entry))
+ return false;
+
+ if (entry.Amount > 0)
+ {
+ if (!CheckCanReceive(transaction, authentication, accountPath, assetPath, accounts[entry.AccountKey], entry))
+ return false;
+ }
+ else if (entry.Amount < 0)
+ {
+ if (!CheckCanSend(transaction, authentication, accountPath, assetPath, accounts[entry.AccountKey], entry))
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ private bool CheckCanSend(Transaction transaction, IReadOnlyList authentication, LedgerPath accountPath, LedgerPath assetPath, AccountEntry currentState, AccountEntry proposedChange)
+ {
+ if (currentState.Amount + proposedChange.Amount < 0)
+ return false;
+ else
+ return true;
+ }
+
+ private bool CheckCanReceive(Transaction transaction, IReadOnlyList authentication, LedgerPath accountPath, LedgerPath assetPath, AccountEntry currentState, AccountEntry proposedChange)
+ {
+ return !accountPath.IsDirectory;
+ }
+
+ private async Task CheckCanCreate(Transaction transaction, IReadOnlyList authentication, LedgerPath accountPath, LedgerPath assetPath, AccountEntry currentState, AccountEntry proposedChange)
+ {
+ if (accountPath.Segments.Count < 3)
+ return false;
+
+ if (accountPath.Segments[0] != "account" || accountPath.Segments[1] != "p2pkh")
+ return false;
+
+ LedgerPath rootPath = LedgerPath.FromSegments(new[] { accountPath.Segments[0], accountPath.Segments[1], accountPath.Segments[2] }, true);
+
+ AccountEntry parentAccount = (await this.store.GetAccounts(new[] { new AccountKey(rootPath.FullPath, currentState.AccountKey.Asset) })).First().Value;
+ if (parentAccount.Version.Equals(BinaryData.Empty))
+ return false;
+
+ return true;
+ }
+ }
+}
diff --git a/src/OpenChain.Server/ITransactionValidator.cs b/src/OpenChain.Server/ITransactionValidator.cs
new file mode 100644
index 0000000..c677a6c
--- /dev/null
+++ b/src/OpenChain.Server/ITransactionValidator.cs
@@ -0,0 +1,11 @@
+using OpenChain.Core;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace OpenChain.Server
+{
+ public interface ITransactionValidator
+ {
+ Task IsValid(Transaction transaction, IReadOnlyList authentication);
+ }
+}
diff --git a/src/OpenChain.Server/LedgerController.cs b/src/OpenChain.Server/LedgerController.cs
new file mode 100644
index 0000000..01684f7
--- /dev/null
+++ b/src/OpenChain.Server/LedgerController.cs
@@ -0,0 +1,52 @@
+using MongoDB.Bson.IO;
+using MongoDB.Bson.Serialization;
+using OpenChain.Core;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace OpenChain.Server
+{
+ public class LedgerController
+ {
+ private readonly ITransactionValidator validator;
+
+ public LedgerController(ITransactionStore store, ITransactionValidator validator)
+ {
+ this.Store = store;
+ this.validator = validator;
+ }
+
+ public ITransactionStore Store { get; }
+
+ public async Task PostTransaction(BinaryData rawTransaction, IEnumerable authentication)
+ {
+ Transaction transaction = TransactionSerializer.DeserializeTransaction(rawTransaction.ToArray());
+
+ // All assets must have an overall zero balance
+ var groups = transaction.AccountEntries
+ .GroupBy(entry => entry.AccountKey.Asset)
+ .Select(group => group.Sum(entry => entry.Amount));
+
+ if (groups.Any(group => group != 0))
+ return null;
+
+ DateTime date = DateTime.UtcNow;
+
+ LedgerRecordMetadata recordMetadata = new LedgerRecordMetadata(1, authentication);
+
+ if (!await this.validator.IsValid(transaction, recordMetadata.Authentication))
+ return null;
+
+ byte[] metadata = MongoDB.Bson.BsonExtensionMethods.ToBson(recordMetadata);
+
+ return await this.Store.AddTransaction(rawTransaction, date, new BinaryData(metadata));
+ }
+
+ public async Task AddRecord(BinaryData rawLedgerRecord)
+ {
+ return await this.Store.AddLedgerRecord(rawLedgerRecord);
+ }
+ }
+}
diff --git a/src/OpenChain.Server/LedgerPath.cs b/src/OpenChain.Server/LedgerPath.cs
new file mode 100644
index 0000000..1503d67
--- /dev/null
+++ b/src/OpenChain.Server/LedgerPath.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace OpenChain.Server
+{
+ public class LedgerPath
+ {
+ private LedgerPath(string path, IEnumerable segments, bool isDirectory)
+ {
+ this.FullPath = path;
+ this.Segments = new ReadOnlyCollection(segments.ToList());
+ this.IsDirectory = isDirectory;
+ }
+
+ public static bool TryParse(string path, out LedgerPath result)
+ {
+ result = null;
+ string[] segments = path.Split('/');
+ if (segments.Length < 2 || segments[0] != string.Empty)
+ return false;
+
+ if (segments.Any(segment => !IsValidPathSegment(segment)))
+ return false;
+
+ for (int i = 1; i < segments.Length - 1; i++)
+ if (segments[i] == string.Empty)
+ return false;
+
+ if (segments[segments.Length - 1] == string.Empty)
+ result = new LedgerPath(path, segments.Skip(1).Take(segments.Length - 2), true);
+ else
+ result = new LedgerPath(path, segments.Skip(1), false);
+
+ return true;
+ }
+
+ public static LedgerPath FromSegments(string[] segments, bool isDirectory)
+ {
+ if (segments == null || segments.Any(segment => !IsValidPathSegment(segment) || segment == string.Empty))
+ throw new ArgumentOutOfRangeException(nameof(segments));
+
+ return new LedgerPath(
+ "/" + string.Join("/", segments) + (isDirectory ? "/" : ""),
+ segments,
+ isDirectory);
+ }
+
+ public static bool IsValidPathSegment(string path)
+ {
+ return !path.Contains("\0") && !path.Contains("/");
+ }
+
+ public string FullPath { get; }
+
+ public IReadOnlyList Segments { get; }
+
+ public bool IsDirectory { get; }
+ }
+}
diff --git a/src/OpenChain.Server/LedgerRecordMetadata.cs b/src/OpenChain.Server/LedgerRecordMetadata.cs
new file mode 100644
index 0000000..f27a760
--- /dev/null
+++ b/src/OpenChain.Server/LedgerRecordMetadata.cs
@@ -0,0 +1,22 @@
+using MongoDB.Bson.Serialization.Attributes;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+
+namespace OpenChain.Server
+{
+ public class LedgerRecordMetadata
+ {
+ public LedgerRecordMetadata(int version, IEnumerable authentication)
+ {
+ this.Version = version;
+ this.Authentication = new ReadOnlyCollection(authentication.ToList());
+ }
+
+ [BsonElement]
+ public int Version { get; private set; }
+
+ [BsonElement]
+ public IReadOnlyList Authentication { get; private set; }
+ }
+}
diff --git a/src/OpenChain.Server/OpenChain.Server.xproj b/src/OpenChain.Server/OpenChain.Server.xproj
new file mode 100644
index 0000000..63cedd8
--- /dev/null
+++ b/src/OpenChain.Server/OpenChain.Server.xproj
@@ -0,0 +1,20 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ e682bcfb-88a6-4426-bc8b-3236301bd6a6
+ OpenChain.Server
+ ..\..\artifacts\obj\$(MSBuildProjectName)
+ ..\..\artifacts\bin\$(MSBuildProjectName)\
+
+
+
+ 2.0
+
+
+
diff --git a/src/OpenChain.Server/project.json b/src/OpenChain.Server/project.json
new file mode 100644
index 0000000..96db44d
--- /dev/null
+++ b/src/OpenChain.Server/project.json
@@ -0,0 +1,31 @@
+{
+ "version": "1.0.0-*",
+ "description": "",
+ "authors": [ "" ],
+ "tags": [ "" ],
+ "projectUrl": "",
+ "licenseUrl": "",
+
+ "dependencies": {
+ "OpenChain.Core": "1.0.0-*",
+ "MongoDB.Bson": "2.0.1"
+ },
+
+ "frameworks": {
+ "dnx451": { },
+ "net46": {
+ "frameworkAssemblies": {
+ },
+ "dependencies": {
+ }
+ }
+ //"dnxcore50": {
+ // "dependencies": {
+ // "System.Collections": "4.0.10-beta-22816",
+ // "System.Linq": "4.0.0-beta-22816",
+ // "System.Threading": "4.0.10-beta-22816",
+ // "Microsoft.CSharp": "4.0.0-beta-22816"
+ // }
+ //}
+ }
+}
diff --git a/src/OpenChain.Server/project.lock.json b/src/OpenChain.Server/project.lock.json
new file mode 100644
index 0000000..1cb7472
--- /dev/null
+++ b/src/OpenChain.Server/project.lock.json
@@ -0,0 +1,119 @@
+{
+ "locked": false,
+ "version": -9998,
+ "projectFileDependencyGroups": {
+ "": [
+ "OpenChain.Core >= 1.0.0-*",
+ "MongoDB.Bson >= 2.0.1"
+ ],
+ "DNX,Version=v4.5.1": [],
+ ".NETFramework,Version=v4.6": []
+ },
+ "libraries": {
+ "MongoDB.Bson/2.0.1": {
+ "serviceable": false,
+ "sha": "dr8KYpTt5VIqGWQ5Bzud2BA/lH2csIfL5WLrfc90UzSWGF378ugvEo5tx4J0eZohvHzsRRiMS2YTmJOTRN+iYg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ]
+ }
+ },
+ "files": [
+ "License.rtf",
+ "MongoDB.Bson.2.0.1.nupkg",
+ "MongoDB.Bson.2.0.1.nupkg.sha512",
+ "MongoDB.Bson.nuspec",
+ "lib/net45/MongoDB.Bson.dll",
+ "lib/net45/MongoDB.Bson.XML"
+ ]
+ },
+ "protobuf-net/2.0.0.668": {
+ "serviceable": false,
+ "sha": "Lgj+Kf1+RV0utKxX9u1WEcymPGrbWrj/AwFmFADFLLa/LLdc1ji2MIGcecFRAGUu6UO8BRbdjZAIYWvLlN1B/A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ }
+ },
+ "files": [
+ "protobuf-net.2.0.0.668.nupkg",
+ "protobuf-net.2.0.0.668.nupkg.sha512",
+ "protobuf-net.nuspec",
+ "lib/net20/protobuf-net.dll",
+ "lib/net20/protobuf-net.pdb",
+ "lib/net20/protobuf-net.xml",
+ "lib/net20-cf/protobuf-net.dll",
+ "lib/net20-cf/protobuf-net.pdb",
+ "lib/net20-cf/protobuf-net.xml",
+ "lib/net30/protobuf-net.dll",
+ "lib/net30/protobuf-net.pdb",
+ "lib/net30/protobuf-net.xml",
+ "lib/net35/protobuf-net.dll",
+ "lib/net35/protobuf-net.pdb",
+ "lib/net35/protobuf-net.xml",
+ "lib/net35-cf/protobuf-net.dll",
+ "lib/net35-cf/protobuf-net.pdb",
+ "lib/net35-cf/protobuf-net.xml",
+ "lib/net40/protobuf-net.dll",
+ "lib/net40/protobuf-net.pdb",
+ "lib/net40/protobuf-net.xml",
+ "lib/net40-cf/protobuf-net.dll",
+ "lib/net40-cf/protobuf-net.pdb",
+ "lib/net40-cf/protobuf-net.xml",
+ "lib/netcore45/protobuf-net.dll",
+ "lib/netcore45/protobuf-net.pdb",
+ "lib/netcore45/protobuf-net.pri",
+ "lib/netcore45/protobuf-net.XML",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.pdb",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml",
+ "lib/sl3-wp/protobuf-net.dll",
+ "lib/sl3-wp/protobuf-net.pdb",
+ "lib/sl3-wp/protobuf-net.xml",
+ "lib/sl4/protobuf-net.dll",
+ "lib/sl4/protobuf-net.pdb",
+ "lib/sl4/protobuf-net.xml",
+ "lib/sl4-windowsphone71/protobuf-net.dll",
+ "lib/sl4-windowsphone71/protobuf-net.pdb",
+ "lib/sl4-windowsphone71/protobuf-net.xml",
+ "lib/windowsphone8/protobuf-net.dll",
+ "lib/windowsphone8/protobuf-net.pdb",
+ "lib/windowsphone8/protobuf-net.xml"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/OpenChain/Controllers/OpenChainController.cs b/src/OpenChain/Controllers/OpenChainController.cs
new file mode 100644
index 0000000..8c374fc
--- /dev/null
+++ b/src/OpenChain/Controllers/OpenChainController.cs
@@ -0,0 +1,80 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNet.Mvc;
+using Newtonsoft.Json.Linq;
+using OpenChain.Core;
+using OpenChain.Server;
+using OpenChain.Core.Sqlite;
+using Microsoft.AspNet.Http;
+using OpenChain.Models;
+using Microsoft.AspNet.WebSockets.Server;
+using System.Net;
+using System.Net.WebSockets;
+using System.Text;
+using System.Threading;
+
+// For more information on enabling Web API for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
+
+namespace OpenChain.Controllers
+{
+ [Route("")]
+ public class OpenChainController : Controller
+ {
+ private readonly LedgerController controller;
+
+ public OpenChainController()
+ {
+ ITransactionStore store = new SqliteTransactionStore(@"D:\Flavien\Documents\Visual Studio 2015\Projects\OpenChain\Server\src\OpenChain.Console\ledger.db");
+ this.controller = new LedgerController(store, new BasicValidator(store));
+ }
+
+ [HttpGet("transactionstream")]
+ public async Task GetStream(string from)
+ {
+ BinaryData ledgerRecordHash;
+ if (string.IsNullOrEmpty(from))
+ ledgerRecordHash = null;
+ else
+ ledgerRecordHash = BinaryData.Parse(from);
+
+ IReadOnlyList records = await this.controller.Store.GetTransactionStream(ledgerRecordHash);
+
+ return Json(records.Select(record => new { raw = record.ToString() }).ToArray());
+
+ ////TransactionStreamWebSocketHandler handler = new TransactionStreamWebSocketHandler(ledgerRecordHash);
+ ////WebSocketMiddleware webSocket = new WebSocketMiddleware(handler.Process, new WebSocketOptions());
+
+ ////await webSocket.Invoke(this.Request.HttpContext);
+
+ //if (Context.IsWebSocketRequest)
+ //{
+ // WebSocket webSocket = await this.Context.AcceptWebSocketAsync();
+ // ArraySegment segment = new ArraySegment(Encoding.UTF8.GetBytes("\"Hello world\""));
+ // await webSocket.SendAsync(segment, WebSocketMessageType.Text, false, CancellationToken.None);
+ //}
+
+ ////return new HttpResponseMessage(HttpStatusCode.SwitchingProtocols);
+ //return new HttpStatusCodeResult((int)HttpStatusCode.SwitchingProtocols);
+ }
+
+ // POST api/values
+ [HttpPost("submit")]
+ public async Task Post([FromBody]string transaction)
+ {
+ JObject body = JObject.Parse(transaction);
+
+ BinaryData parsedTransaction = BinaryData.Parse((string)body["raw"]);
+ // Validate deserialization
+ Transaction deserializedTransaction = TransactionSerializer.DeserializeTransaction(parsedTransaction.ToArray());
+
+ BinaryData ledgerRecord = await this.controller.PostTransaction(parsedTransaction, null);
+
+ return new JObject(new
+ {
+ ledger_record = ledgerRecord.ToString()
+ });
+ }
+ }
+}
diff --git a/src/OpenChain/Models/TransactionStreamWebSocketHandler.cs b/src/OpenChain/Models/TransactionStreamWebSocketHandler.cs
new file mode 100644
index 0000000..d6bc0c8
--- /dev/null
+++ b/src/OpenChain/Models/TransactionStreamWebSocketHandler.cs
@@ -0,0 +1,25 @@
+using Microsoft.AspNet.Http;
+using Microsoft.Framework.Logging;
+using OpenChain.Core;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace OpenChain.Models
+{
+ public class TransactionStreamWebSocketHandler
+ {
+ private readonly BinaryData lastLedgerRecordHash;
+
+ public TransactionStreamWebSocketHandler(BinaryData lastLedgerRecordHash)
+ {
+ this.lastLedgerRecordHash = lastLedgerRecordHash;
+ }
+
+ public async Task Process(HttpContext context)
+ {
+
+ }
+ }
+}
diff --git a/src/OpenChain/OpenChain.xproj b/src/OpenChain/OpenChain.xproj
new file mode 100644
index 0000000..582465e
--- /dev/null
+++ b/src/OpenChain/OpenChain.xproj
@@ -0,0 +1,22 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ c24c1145-878a-476a-ac93-6a272be3d139
+ OpenChain
+ ..\..\artifacts\obj\$(MSBuildProjectName)
+ ..\..\artifacts\bin\$(MSBuildProjectName)\
+
+
+ OpenChain
+
+
+ 2.0
+ 2012
+
+
+
\ No newline at end of file
diff --git a/src/OpenChain/Properties/launchSettings.json b/src/OpenChain/Properties/launchSettings.json
new file mode 100644
index 0000000..2145450
--- /dev/null
+++ b/src/OpenChain/Properties/launchSettings.json
@@ -0,0 +1,12 @@
+{
+ "profiles": {
+ "IIS Express": {
+ "commandName" : "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "",
+ "environmentVariables" : {
+ "ASPNET_ENV": "Development"
+ }
+ }
+ }
+}
diff --git a/src/OpenChain/Startup.cs b/src/OpenChain/Startup.cs
new file mode 100644
index 0000000..04d4ecb
--- /dev/null
+++ b/src/OpenChain/Startup.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNet.Builder;
+using Microsoft.AspNet.Hosting;
+using Microsoft.AspNet.Http;
+using Microsoft.AspNet.Routing;
+using Microsoft.Framework.DependencyInjection;
+using Microsoft.AspNet.WebSockets.Server;
+using System.Text;
+using System.Threading;
+
+namespace OpenChain
+{
+ public class Startup
+ {
+ public Startup(IHostingEnvironment env)
+ {
+ }
+
+ // This method gets called by a runtime.
+ // Use this method to add services to the container
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddMvc();
+ // Uncomment the following line to add Web API services which makes it easier to port Web API 2 controllers.
+ // You will also need to add the Microsoft.AspNet.Mvc.WebApiCompatShim package to the 'dependencies' section of project.json.
+ // services.AddWebApiConventions();
+ }
+
+ // Configure is called after ConfigureServices is called.
+ public void Configure(IApplicationBuilder app, IHostingEnvironment env)
+ {
+ // Configure the HTTP request pipeline.
+ app.UseStaticFiles();
+
+ // Add MVC to the request pipeline.
+ app.UseMvc();
+ // Add the following route for porting Web API 2 controllers.
+ // routes.MapWebApiRoute("DefaultApi", "api/{controller}/{id?}");
+
+ app.UseWebSockets(new WebSocketOptions() { ReplaceFeature = true });
+
+ //app.Map("/Managed", managedWebSocketsApp =>
+ //{
+ // // Comment this out to test native server implementations
+ // managedWebSocketsApp.UseWebSockets(new WebSocketOptions()
+ // {
+ // ReplaceFeature = true,
+ // });
+
+ // managedWebSocketsApp.Use(async (context, next) =>
+ // {
+ // //if (context.IsWebSocketRequest)
+ // {
+ // Console.WriteLine("Echo: " + context.Request.Path);
+ // var webSocket = await context.AcceptWebSocketAsync();
+ // await webSocket.SendAsync(new ArraySegment(Encoding.UTF8.GetBytes("\"Hello World\"")), System.Net.WebSockets.WebSocketMessageType.Text, true, CancellationToken.None);
+ // return;
+ // }
+ // await next();
+ // });
+ //});
+ }
+ }
+}
diff --git a/src/OpenChain/project.json b/src/OpenChain/project.json
new file mode 100644
index 0000000..34244da
--- /dev/null
+++ b/src/OpenChain/project.json
@@ -0,0 +1,44 @@
+{
+ "webroot": "wwwroot",
+ "version": "1.0.0-*",
+ "compilationOptions": { "languageVersion": "csharp6" },
+
+ "dependencies": {
+ "Microsoft.AspNet.Mvc": "6.0.0-beta4",
+ "Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
+ "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
+ "Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
+ "Microsoft.AspNet.WebSockets.Server": "1.0.0-beta4",
+ "Microsoft.AspNet.Http": "1.0.0-beta4",
+ "OpenChain.Core": "1.0.0-*",
+ "Newtonsoft.Json": "7.0.1",
+ "OpenChain.Server": "1.0.0-*",
+ "OpenChain.Core.Sqlite": "1.0.0-*",
+ "System.Text.Encoding": "4.0.10-beta-22816"
+ },
+
+ "commands": {
+ "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
+ },
+
+ "frameworks": {
+ "dnx451": { }
+ //"dnxcore50": {
+ // "dependencies": {
+ // "System.Console": "4.0.0-beta-22816",
+ // "System.Collections": "4.0.10-beta-22816",
+ // "System.Linq": "4.0.0-beta-22816",
+ // "System.Threading": "4.0.10-beta-22816",
+ // "Microsoft.CSharp": "4.0.0-beta-22816"
+ // }
+ //}
+ },
+
+ "exclude": [
+ ],
+ "publishExclude": [
+ "**.xproj",
+ "**.user",
+ "**.vspscc"
+ ]
+}
diff --git a/src/OpenChain/project.lock.json b/src/OpenChain/project.lock.json
new file mode 100644
index 0000000..b62fac6
--- /dev/null
+++ b/src/OpenChain/project.lock.json
@@ -0,0 +1,2949 @@
+{
+ "locked": false,
+ "version": -9998,
+ "projectFileDependencyGroups": {
+ "": [
+ "Microsoft.AspNet.Mvc >= 6.0.0-beta4",
+ "Microsoft.AspNet.Server.IIS >= 1.0.0-beta4",
+ "Microsoft.AspNet.Server.WebListener >= 1.0.0-beta4",
+ "Microsoft.AspNet.StaticFiles >= 1.0.0-beta4",
+ "Microsoft.AspNet.WebSockets.Server >= 1.0.0-beta4",
+ "Microsoft.AspNet.Http >= 1.0.0-beta4",
+ "OpenChain.Core >= 1.0.0-*",
+ "Newtonsoft.Json >= 7.0.1",
+ "OpenChain.Server >= 1.0.0-*",
+ "OpenChain.Core.Sqlite >= 1.0.0-*",
+ "System.Text.Encoding >= 4.0.10-beta-22816"
+ ],
+ "DNX,Version=v4.5.1": []
+ },
+ "libraries": {
+ "Microsoft.AspNet.Authentication/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "bF++RlseLYrzDjtzrwNsLlftnj65Gctg6AkW6QMmk3W5EcNCktynbfjZrAn/1JRr7jri5XAJ546kvoayYKMjEg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.DataProtection": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Core": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Extensions": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Authentication.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Authentication.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Authentication.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Authentication.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Authentication.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Authentication.dll",
+ "lib/dnx451/Microsoft.AspNet.Authentication.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Authentication.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Authentication.xml"
+ ]
+ },
+ "Microsoft.AspNet.Authorization/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "3Nf8ksZ7jSJgN/0t8dfsI7EogSFr5pa6NUNdYSfvoo52Jl9c4XTdgH2mDugHNRXXrouZAu8jcrsH0P8iMn1baQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Http.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Authorization.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Authorization.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Authorization.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Authorization.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Authorization.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Authorization.dll",
+ "lib/dnx451/Microsoft.AspNet.Authorization.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Authorization.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Authorization.xml"
+ ]
+ },
+ "Microsoft.AspNet.Cors/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "Zc6ED9sNTjbExEtJ59ajR5VAzKnvZ2Bg31QgSo9nmVOZwrEVgdQJjL+m4mW3cZbZuU1KWcpaTtML6dY8co72sA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Cors.Core": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Extensions": "1.0.0-beta4",
+ "Microsoft.AspNet.WebUtilities": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Cors.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Cors.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Cors.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Cors.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Cors.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Cors.dll",
+ "lib/dnx451/Microsoft.AspNet.Cors.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Cors.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Cors.xml"
+ ]
+ },
+ "Microsoft.AspNet.Cors.Core/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "4F0WoPwU3vasJj9RZErDGXde0mBtXj4zMe3UmQTjP3QTTSpelIV+cilrr2CnFB26CjRj17aHUeWbEYO19GUg0w==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.ConfigurationModel.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4",
+ "Microsoft.AspNet.Http": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Cors.Core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Cors.Core.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Cors.Core.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Cors.Core.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Cors.Core.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Cors.Core.dll",
+ "lib/dnx451/Microsoft.AspNet.Cors.Core.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Cors.Core.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Cors.Core.xml"
+ ]
+ },
+ "Microsoft.AspNet.Cryptography.Internal/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "ytSNFgyvBp0pyTDWy4Iq5y0xM8GU5tGG/gxaTbfR38qqnO4ZRKtgB8z6+1F+NCzFQNIdlvz9+qguS7aXH+gtbQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Cryptography.Internal.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Cryptography.Internal.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/Microsoft.AspNet.Cryptography.Internal.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/Microsoft.AspNet.Cryptography.Internal.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Cryptography.Internal.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Cryptography.Internal.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Cryptography.Internal.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Cryptography.Internal.dll",
+ "lib/dnx451/Microsoft.AspNet.Cryptography.Internal.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Cryptography.Internal.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Cryptography.Internal.xml",
+ "lib/net451/Microsoft.AspNet.Cryptography.Internal.dll",
+ "lib/net451/Microsoft.AspNet.Cryptography.Internal.xml"
+ ]
+ },
+ "Microsoft.AspNet.DataProtection/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "HqfH0h9i81OuOTO7CTWVwmkJoUM1Fc9AuxQASywZmCww4WLZ3qHZMeKZxeeBZdERksc3PH2EGIqis1i6dyXfmw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Cryptography.Internal": "1.0.0-beta4",
+ "Microsoft.AspNet.DataProtection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Security",
+ "System.Xml",
+ "System.Xml.Linq",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.DataProtection.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.DataProtection.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.AspNet.Cryptography.Internal": "1.0.0-beta4",
+ "Microsoft.AspNet.DataProtection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Security",
+ "System.Xml",
+ "System.Xml.Linq",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/Microsoft.AspNet.DataProtection.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/Microsoft.AspNet.DataProtection.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.DataProtection.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.DataProtection.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.DataProtection.nuspec",
+ "lib/dnx451/Microsoft.AspNet.DataProtection.dll",
+ "lib/dnx451/Microsoft.AspNet.DataProtection.xml",
+ "lib/dnxcore50/Microsoft.AspNet.DataProtection.dll",
+ "lib/dnxcore50/Microsoft.AspNet.DataProtection.xml",
+ "lib/net451/Microsoft.AspNet.DataProtection.dll",
+ "lib/net451/Microsoft.AspNet.DataProtection.xml"
+ ]
+ },
+ "Microsoft.AspNet.DataProtection.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "y0pyHIooDn15lJZEETy9+u9ynw+4ZRngRjHguIQuBKm30j1+dwQRqqyS6L1SnFCzAS0mq6+5GauzA8qWxHc60g==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.DataProtection.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.DataProtection.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/Microsoft.AspNet.DataProtection.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/Microsoft.AspNet.DataProtection.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.DataProtection.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.DataProtection.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.DataProtection.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.AspNet.DataProtection.Interfaces.dll",
+ "lib/dnx451/Microsoft.AspNet.DataProtection.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.AspNet.DataProtection.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.AspNet.DataProtection.Interfaces.xml",
+ "lib/net451/Microsoft.AspNet.DataProtection.Interfaces.dll",
+ "lib/net451/Microsoft.AspNet.DataProtection.Interfaces.xml"
+ ]
+ },
+ "Microsoft.AspNet.Diagnostics.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "25/Rs8HIc+Za9lQcDx2dTw5DffY1y2SvKaPLGJcNufJX0/prnJi0psdEagPbqVBJppRxbFZc3u8MdUILzHJqsA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Diagnostics.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Diagnostics.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Diagnostics.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Diagnostics.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Diagnostics.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Diagnostics.Interfaces.dll",
+ "lib/dnx451/Microsoft.AspNet.Diagnostics.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Diagnostics.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Diagnostics.Interfaces.xml"
+ ]
+ },
+ "Microsoft.AspNet.FeatureModel/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "Xewac6SajTjfxmPKZSSYWLsRu/ZI/hqx775ozDjHsSIl2xsl2bq6ZJu6PCIoEj16+Ws/Gl+cfbdNrhCa5LslHQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.FeatureModel.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.FeatureModel.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.FeatureModel.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.FeatureModel.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.FeatureModel.nuspec",
+ "lib/dnx451/Microsoft.AspNet.FeatureModel.dll",
+ "lib/dnx451/Microsoft.AspNet.FeatureModel.xml",
+ "lib/dnxcore50/Microsoft.AspNet.FeatureModel.dll",
+ "lib/dnxcore50/Microsoft.AspNet.FeatureModel.xml"
+ ]
+ },
+ "Microsoft.AspNet.FileProviders/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "4/1d/nfCWZPZg9pod618gHGgPZTtDF3ol81NgAsY7i6G3K3gKNX0yekvhUG0LDR7J7p4eamFDb8oZC8E0OnFFg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.FileProviders.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.FileProviders.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.FileProviders.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.AspNet.FileProviders.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.AspNet.FileProviders.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.AspNet.FileProviders.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.FileProviders.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.FileProviders.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.FileProviders.nuspec",
+ "lib/dnx451/Microsoft.AspNet.FileProviders.dll",
+ "lib/dnx451/Microsoft.AspNet.FileProviders.xml",
+ "lib/dnxcore50/Microsoft.AspNet.FileProviders.dll",
+ "lib/dnxcore50/Microsoft.AspNet.FileProviders.xml",
+ "lib/net45/Microsoft.AspNet.FileProviders.dll",
+ "lib/net45/Microsoft.AspNet.FileProviders.xml"
+ ]
+ },
+ "Microsoft.AspNet.FileProviders.Interfaces/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "nB1GlK79h0x/hEm7ro/TiRK58kv4VukyqSuAtMQGp7S8xkat9uPJJQFQh1MUysCU/gJlbK+5+PIq9srM3RS6Sw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Caching.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.FileProviders.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.FileProviders.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.Caching.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.AspNet.FileProviders.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.AspNet.FileProviders.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.FileProviders.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.FileProviders.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.FileProviders.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.AspNet.FileProviders.Interfaces.dll",
+ "lib/dnx451/Microsoft.AspNet.FileProviders.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.AspNet.FileProviders.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.AspNet.FileProviders.Interfaces.xml",
+ "lib/net45/Microsoft.AspNet.FileProviders.Interfaces.dll",
+ "lib/net45/Microsoft.AspNet.FileProviders.Interfaces.xml"
+ ]
+ },
+ "Microsoft.AspNet.Hosting/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "2rElL/y+eqvmUre+gVjruvslfTbhhe8o5wyUo/qicCr/UnL9GrDGi4ikIV9ulS9tqiRTTByUT+CGC1TnSeiCnw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Hosting.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.FileProviders": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Core": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Extensions": "1.0.0-beta4",
+ "Microsoft.Framework.Logging": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection": "1.0.0-beta4",
+ "Newtonsoft.Json": "6.0.6"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Hosting.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Hosting.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Hosting.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Hosting.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Hosting.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Hosting.dll",
+ "lib/dnx451/Microsoft.AspNet.Hosting.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Hosting.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Hosting.xml"
+ ]
+ },
+ "Microsoft.AspNet.Hosting.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "+0M9gAQ9rPnsWu4saQ4ZkC6yjwahEiiXM/XoA1PEO7wsZcuQ/yX7Oo794k+bn/HyzstDcyRV4UDc8nUwTuBFqg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Http": "1.0.0-beta4",
+ "Microsoft.AspNet.FeatureModel": "1.0.0-beta4",
+ "Microsoft.AspNet.FileProviders.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Hosting.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Hosting.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Hosting.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Hosting.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Hosting.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Hosting.Interfaces.dll",
+ "lib/dnx451/Microsoft.AspNet.Hosting.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Hosting.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Hosting.Interfaces.xml"
+ ]
+ },
+ "Microsoft.AspNet.Http/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "XTs0bSEcxRP74nSZ8SFCLfcswV1CzwpNWbQDhKOmOFdJXP56sJtF6cDJBcvV/emUha75gz9zXRZErHVFH45MAg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.WebEncoders.Core": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Http.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Http.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Http.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Http.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Http.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Http.dll",
+ "lib/dnx451/Microsoft.AspNet.Http.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Http.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Http.xml"
+ ]
+ },
+ "Microsoft.AspNet.Http.Core/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "U6jZxua+mNfNTjm9lW/1W4sKd1aYUWiTp7KBY7hPs49IU4p7NMewvDKV34/svcaDYDOqhtuduyGJCdw62GrvqQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.FeatureModel": "1.0.0-beta4",
+ "Microsoft.AspNet.Http": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.WebUtilities": "1.0.0-beta4",
+ "Microsoft.Framework.WebEncoders.Core": "1.0.0-beta4",
+ "Microsoft.Net.Http.Headers": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Http.Core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Http.Core.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Http.Core.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Http.Core.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Http.Core.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Http.Core.dll",
+ "lib/dnx451/Microsoft.AspNet.Http.Core.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Http.Core.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Http.Core.xml"
+ ]
+ },
+ "Microsoft.AspNet.Http.Extensions/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "nhcRbawpD6g8ZiEfF/KE4N+VnrrPyosDqWqNzJQWZDAto/ntenbve6iNgRRuwatvczdlskwsdasmrHKw92ciWQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Http": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.WebEncoders.Core": "1.0.0-beta4",
+ "Microsoft.Net.Http.Headers": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Http.Extensions.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Http.Extensions.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Http.Extensions.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Http.Extensions.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Http.Extensions.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Http.Extensions.dll",
+ "lib/dnx451/Microsoft.AspNet.Http.Extensions.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Http.Extensions.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Http.Extensions.xml"
+ ]
+ },
+ "Microsoft.AspNet.Http.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "31C78ja91ggo1ywLn83yNpTR0pnhMbPMcKhE72Gx3I5M0F1foDJQTHBOBFS0ebGkn8eiDMWkKGqjYucslaiu5Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Http.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Http.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Http.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Http.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Http.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Http.Interfaces.dll",
+ "lib/dnx451/Microsoft.AspNet.Http.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Http.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Http.Interfaces.xml"
+ ]
+ },
+ "Microsoft.AspNet.JsonPatch/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "osQ1Bsui45jlsUwMLEkQkEB2VBIFEc4Rn/Un3cUaDUXpCXU/F+xt9qyxGrC8NMHGxnoMCyltSZNNitGo1eDyLg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Http.Extensions": "1.0.0-beta4",
+ "Newtonsoft.Json": "6.0.6"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.JsonPatch.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.JsonPatch.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.JsonPatch.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.JsonPatch.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.JsonPatch.nuspec",
+ "lib/dnx451/Microsoft.AspNet.JsonPatch.dll",
+ "lib/dnx451/Microsoft.AspNet.JsonPatch.xml",
+ "lib/dnxcore50/Microsoft.AspNet.JsonPatch.dll",
+ "lib/dnxcore50/Microsoft.AspNet.JsonPatch.xml"
+ ]
+ },
+ "Microsoft.AspNet.Loader.IIS/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "yuhp/0exkFrwOBLAhX29lXoA1D+ouoq/TZ8aeRNcVILqwJ5hTU6Gf5muGQVGK/PqRQKQDUaHTzRLx/TrhWa91A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.DataProtection.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.Hosting": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.WebEncoders.Core": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Loader.IIS.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Loader.IIS.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Loader.IIS.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Loader.IIS.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Loader.IIS.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Loader.IIS.dll",
+ "lib/dnx451/Microsoft.AspNet.Loader.IIS.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Loader.IIS.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Loader.IIS.xml"
+ ]
+ },
+ "Microsoft.AspNet.Loader.IIS.Interop/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "50FEL0+abeAABvCoPs1A0Vcl65PyBKyzg06aL0H+Y+WZMoLI+Bvd1M9WKDj8nfm6K5Jh033oI7fQbOfscd8wqw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Loader.IIS.Interop.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Loader.IIS.Interop.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Loader.IIS.Interop.nuspec",
+ "InteropAssemblies/amd64/Microsoft.AspNet.Loader.IIS.Interop.dll",
+ "InteropAssemblies/x86/Microsoft.AspNet.Loader.IIS.Interop.dll",
+ "tools/AspNet.Loader.dll"
+ ]
+ },
+ "Microsoft.AspNet.Mvc/6.0.0-beta4": {
+ "serviceable": true,
+ "sha": "zff+4iCo+KYQo7RGa4fDXyi/xDQFW4CssRYqEiBjX26XWB3tNDSYBY5pETZ3aUina9ocR++09Yun8wsRpL37DA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Authorization": "1.0.0-beta4",
+ "Microsoft.AspNet.Cors": "1.0.0-beta4",
+ "Microsoft.AspNet.Mvc.Razor": "6.0.0-beta4",
+ "Microsoft.Framework.Caching.Memory": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Mvc.6.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Mvc.6.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Mvc.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Mvc.dll",
+ "lib/dnx451/Microsoft.AspNet.Mvc.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.xml"
+ ]
+ },
+ "Microsoft.AspNet.Mvc.Core/6.0.0-beta4": {
+ "serviceable": true,
+ "sha": "fWm2n86dAR/oYcKE7RWT3gr9xQjpLPlwZyxEN8vBBUqLYkTzW9iPXNyckgNycpdFFpOqRX4alfK1XKhQZxvSTw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Authentication": "1.0.0-beta4",
+ "Microsoft.AspNet.Authorization": "1.0.0-beta4",
+ "Microsoft.AspNet.Cors.Core": "1.0.0-beta4",
+ "Microsoft.AspNet.DataProtection": "1.0.0-beta4",
+ "Microsoft.AspNet.Diagnostics.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.FileProviders": "1.0.0-beta4",
+ "Microsoft.AspNet.Hosting": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Extensions": "1.0.0-beta4",
+ "Microsoft.AspNet.Mvc.ModelBinding": "6.0.0-beta4",
+ "Microsoft.AspNet.Routing": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.WebEncoders": "1.0.0-beta4",
+ "Microsoft.AspNet.JsonPatch": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.Core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.Core.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Mvc.Core.6.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Mvc.Core.6.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Mvc.Core.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Mvc.Core.dll",
+ "lib/dnx451/Microsoft.AspNet.Mvc.Core.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.Core.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.Core.xml"
+ ]
+ },
+ "Microsoft.AspNet.Mvc.ModelBinding/6.0.0-beta4": {
+ "serviceable": true,
+ "sha": "diZfvlLlUsilyG6DL4wmKfWNjNvnwB1C14KxLfrVRhGi3HBXnd1bV4lFwEYFMHFvblCe77Pv6PKschmTr33TqA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Http.Core": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Extensions": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection": "1.0.0-beta4",
+ "Microsoft.Net.Http.Headers": "1.0.0-beta4",
+ "Newtonsoft.Json": "6.0.6"
+ },
+ "frameworkAssemblies": [
+ "System.ComponentModel.DataAnnotations",
+ "System.Runtime.Serialization",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.ModelBinding.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.ModelBinding.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Mvc.ModelBinding.6.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Mvc.ModelBinding.6.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Mvc.ModelBinding.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Mvc.ModelBinding.dll",
+ "lib/dnx451/Microsoft.AspNet.Mvc.ModelBinding.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.ModelBinding.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.ModelBinding.xml"
+ ]
+ },
+ "Microsoft.AspNet.Mvc.Razor/6.0.0-beta4": {
+ "serviceable": true,
+ "sha": "zB21KW/wbvV1fAJuceZDikyC1mqfebLciF89969xY/6rUs4EhfSMcMfarRGnEgX7oJecQVWRFlh2QCk5EmCFPw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Diagnostics.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.Mvc.Core": "6.0.0-beta4",
+ "Microsoft.AspNet.Mvc.Razor.Host": "6.0.0-beta4",
+ "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Roslyn.Common": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Collections",
+ "System.IO",
+ "System.Runtime",
+ "System.Text.Encoding",
+ "System.Threading.Tasks",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.Razor.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.Razor.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Mvc.Razor.6.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Mvc.Razor.6.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Mvc.Razor.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Mvc.Razor.dll",
+ "lib/dnx451/Microsoft.AspNet.Mvc.Razor.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.Razor.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.Razor.xml"
+ ]
+ },
+ "Microsoft.AspNet.Mvc.Razor.Host/6.0.0-beta4": {
+ "serviceable": true,
+ "sha": "yPWG0jyetebIc53Ytbsd3UXkwMsqig4TBcVMciW0B1UlLjJbdbnEVook9YrubEVJqxYf3sq6AxCcLQB/e0qyBg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.FileProviders": "1.0.0-beta4",
+ "Microsoft.AspNet.Razor.Runtime": "4.0.0-beta4",
+ "Microsoft.Framework.Caching.Memory": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.Razor.Host.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Mvc.Razor.Host.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.AspNet.FileProviders": "1.0.0-beta4",
+ "Microsoft.AspNet.Razor.Runtime": "4.0.0-beta4",
+ "Microsoft.Framework.Caching.Memory": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.AspNet.Mvc.Razor.Host.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.AspNet.Mvc.Razor.Host.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Mvc.Razor.Host.6.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Mvc.Razor.Host.6.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Mvc.Razor.Host.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Mvc.Razor.Host.dll",
+ "lib/dnx451/Microsoft.AspNet.Mvc.Razor.Host.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.Razor.Host.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Mvc.Razor.Host.xml",
+ "lib/net45/Microsoft.AspNet.Mvc.Razor.Host.dll",
+ "lib/net45/Microsoft.AspNet.Mvc.Razor.Host.xml"
+ ]
+ },
+ "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "rKcHwgcdJlYxum4ZDc3BktlXEjCEDimBM4YThJ78a5VxnZDLMxwublkaq6ekHPwg5SSMuzNcFQnb+5u1KAF/Jg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll",
+ "lib/dnx451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.xml"
+ ]
+ },
+ "Microsoft.AspNet.Razor/4.0.0-beta4": {
+ "serviceable": true,
+ "sha": "Q2+cwhdUOc3i0EJ/A//cbF2zmkvmC5WSMQhNHWpwASBECGI4oB10dzA+CazpsITOnwqlFlSgLsbpqlktvFGK7Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Razor.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Razor.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.AspNet.Razor.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.AspNet.Razor.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Razor.4.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Razor.4.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Razor.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Razor.dll",
+ "lib/dnx451/Microsoft.AspNet.Razor.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Razor.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Razor.xml",
+ "lib/net45/Microsoft.AspNet.Razor.dll",
+ "lib/net45/Microsoft.AspNet.Razor.xml"
+ ]
+ },
+ "Microsoft.AspNet.Razor.Runtime/4.0.0-beta4": {
+ "serviceable": true,
+ "sha": "7Cjl+l274C1jqwvqVWxYoJ2rsqvxvDmv2kBAeoYC/kYEjLi7exi/Baie39sngstlYWNBiA2nJZtnmv/5tUhDtA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Razor": "4.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Razor.Runtime.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Razor.Runtime.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.AspNet.Razor": "4.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.AspNet.Razor.Runtime.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.AspNet.Razor.Runtime.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Razor.Runtime.4.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Razor.Runtime.4.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Razor.Runtime.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Razor.Runtime.dll",
+ "lib/dnx451/Microsoft.AspNet.Razor.Runtime.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Razor.Runtime.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Razor.Runtime.xml",
+ "lib/net45/Microsoft.AspNet.Razor.Runtime.dll",
+ "lib/net45/Microsoft.AspNet.Razor.Runtime.xml"
+ ]
+ },
+ "Microsoft.AspNet.Routing/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "h2/S9nkGmSQT/gYZEzfCagdg66jLyZEV7m9j84sZ9teXOvUfynxg7Hcp+wk5kDwPyAwFuk+31/ya2oWwRD3RuA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Http.Extensions": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Routing.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Routing.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Routing.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Routing.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Routing.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Routing.dll",
+ "lib/dnx451/Microsoft.AspNet.Routing.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Routing.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Routing.xml"
+ ]
+ },
+ "Microsoft.AspNet.Server.IIS/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "zPKpt9wna/Jw+PxywvKQDSVL5ZlzkE4arxpCcgrrJv2r1bwkWSAWiy6b9sp79aAzYSO9/qlt2FJPD6edeh29bg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Loader.IIS.Interop": "1.0.0-beta4",
+ "Microsoft.AspNet.Loader.IIS": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.AspNet.Loader.IIS.Interop": "1.0.0-beta4",
+ "Microsoft.AspNet.Loader.IIS": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Server.IIS.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Server.IIS.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Server.IIS.nuspec"
+ ]
+ },
+ "Microsoft.AspNet.Server.WebListener/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "7i7WcLxrwlrrATJKipf7TXQxLpndK2RvBVG/PpnLRBEKG5Vlm9L4eMNG2OHLmmcNH+IONKZrPwYMeBaxXfql/Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.FeatureModel": "1.0.0-beta4",
+ "Microsoft.AspNet.Http": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.Hosting.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4",
+ "Microsoft.Framework.Logging": "1.0.0-beta4",
+ "Microsoft.Net.Http.Server": "1.0.0-beta4",
+ "Microsoft.Net.WebSocketAbstractions": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Server.WebListener.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.Server.WebListener.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.Server.WebListener.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.Server.WebListener.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.Server.WebListener.nuspec",
+ "lib/dnx451/Microsoft.AspNet.Server.WebListener.dll",
+ "lib/dnx451/Microsoft.AspNet.Server.WebListener.xml",
+ "lib/dnxcore50/Microsoft.AspNet.Server.WebListener.dll",
+ "lib/dnxcore50/Microsoft.AspNet.Server.WebListener.xml"
+ ]
+ },
+ "Microsoft.AspNet.StaticFiles/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "jWxWQB8uTGOyVddlxP0kloTYtaQqnzUg+kMgUcNir4l58FbSTymbVTczOqjuy3Kdt3xy9nh/+kKGWpkCc3xf8g==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Http.Extensions": "1.0.0-beta4",
+ "Microsoft.AspNet.Http.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.FileProviders.Interfaces": "1.0.0-beta4",
+ "Microsoft.AspNet.Hosting.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging": "1.0.0-beta4",
+ "Microsoft.Framework.WebEncoders": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.StaticFiles.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.StaticFiles.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.StaticFiles.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.StaticFiles.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.StaticFiles.nuspec",
+ "lib/dnx451/Microsoft.AspNet.StaticFiles.dll",
+ "lib/dnx451/Microsoft.AspNet.StaticFiles.xml",
+ "lib/dnxcore50/Microsoft.AspNet.StaticFiles.dll",
+ "lib/dnxcore50/Microsoft.AspNet.StaticFiles.xml"
+ ]
+ },
+ "Microsoft.AspNet.WebSockets.Protocol/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "ugTW8cKNmiEtOnBxTrgLVr03DMDXXxipQ9ZF5m5vuVb8OytNqRRkhUYhwIfbsTY9h82kF4JYTVTPplwjBMovbA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.AspNet.WebSockets.Protocol.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.AspNet.WebSockets.Protocol.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.AspNet.WebSockets.Protocol.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.AspNet.WebSockets.Protocol.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.WebSockets.Protocol.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.WebSockets.Protocol.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.WebSockets.Protocol.nuspec",
+ "lib/dnxcore50/Microsoft.AspNet.WebSockets.Protocol.dll",
+ "lib/dnxcore50/Microsoft.AspNet.WebSockets.Protocol.xml",
+ "lib/net45/Microsoft.AspNet.WebSockets.Protocol.dll",
+ "lib/net45/Microsoft.AspNet.WebSockets.Protocol.xml"
+ ]
+ },
+ "Microsoft.AspNet.WebSockets.Server/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "OoO6BtyLwV3tnoW53TtOClEPzm/ihVkcMyLPJrSGUrllHhm9whEd7zmmDYM8lu9rvsjPjRahQLHH1k1p6dO8/Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.AspNet.Http": "1.0.0-beta4",
+ "Microsoft.AspNet.WebSockets.Protocol": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.WebSockets.Server.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.WebSockets.Server.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.WebSockets.Server.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.WebSockets.Server.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.WebSockets.Server.nuspec",
+ "lib/dnx451/Microsoft.AspNet.WebSockets.Server.dll",
+ "lib/dnx451/Microsoft.AspNet.WebSockets.Server.xml",
+ "lib/dnxcore50/Microsoft.AspNet.WebSockets.Server.dll",
+ "lib/dnxcore50/Microsoft.AspNet.WebSockets.Server.xml"
+ ]
+ },
+ "Microsoft.AspNet.WebUtilities/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "EZJruvBXvVN78gAuL1Ei8HSgBfS9HvU/CiE4MjicXwdzHwyv+HZAvReDmGeWa+UaIW8kmmM4LzNAE8uEBjeQXA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.WebEncoders.Core": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.WebUtilities.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.AspNet.WebUtilities.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.AspNet.WebUtilities.1.0.0-beta4.nupkg",
+ "Microsoft.AspNet.WebUtilities.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.AspNet.WebUtilities.nuspec",
+ "lib/dnx451/Microsoft.AspNet.WebUtilities.dll",
+ "lib/dnx451/Microsoft.AspNet.WebUtilities.xml",
+ "lib/dnxcore50/Microsoft.AspNet.WebUtilities.dll",
+ "lib/dnxcore50/Microsoft.AspNet.WebUtilities.xml"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Analyzers/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "/4Z5es8TXCEn5sfzWz2uhUITmikgCfMAhehMJPQcSD2FRp2ooLTczDq3p4KOl+bcnsvaAu0aKrmdRgOvkrcwhw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System"
+ ],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System"
+ ],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.Analyzers.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.Analyzers.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.Analyzers.nuspec",
+ "ThirdPartyNotices.rtf",
+ "tools/install.ps1",
+ "tools/uninstall.ps1",
+ "tools/analyzers/C#/Microsoft.CodeAnalysis.Analyzers.dll",
+ "tools/analyzers/C#/Microsoft.CodeAnalysis.CSharp.Analyzers.dll",
+ "tools/analyzers/VB.NET/Microsoft.CodeAnalysis.Analyzers.dll",
+ "tools/analyzers/VB.NET/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Common/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "7ALXqeJxiEMgnSST2qlWMThc5CIhJNFsUKYITIXXXj7gf8mF+ktEuKgUE7NWePzUgi0gq/2WmBX/4yWJuF1j6w==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Collections.Immutable": "[1.1.33-beta]",
+ "System.Reflection.Metadata": "[1.0.18-beta]",
+ "Microsoft.CodeAnalysis.Analyzers": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Collections.Immutable": "[1.1.33-beta]",
+ "System.Reflection.Metadata": "[1.0.18-beta]",
+ "Microsoft.CodeAnalysis.Analyzers": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.Common.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.Common.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.Common.nuspec",
+ "ThirdPartyNotices.rtf",
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.xml",
+ "lib/net45/Microsoft.CodeAnalysis.dll",
+ "lib/net45/Microsoft.CodeAnalysis.xml",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.dll",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.xml"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "wsj0BdWRY+fsUINMEQ+uanN0pWMAMj2z0UiJKjwoUo/Xbrk7PqGklzpOB7lvlESHjO8+Eaw71PQnml6j7m7rdQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.CSharp.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.CSharp.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.CSharp.nuspec",
+ "ThirdPartyNotices.rtf",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.xml",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.CSharp.xml"
+ ]
+ },
+ "Microsoft.Data.SQLite/1.0.0-beta1": {
+ "serviceable": false,
+ "sha": "Lgx+43A8cUn24jaehz0IuDNYVGc2EaSjp37xvbvh6ljSkyqrRDHIvuhX2HrHZnHg0k4LDydleKiCI9jwSUbStQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Data.Common": "1.0.0-beta1"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/aspnet50/Microsoft.Data.SQLite.dll"
+ ],
+ "compileAssemblies": [
+ "lib/aspnet50/Microsoft.Data.SQLite.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Data.Common": "1.0.0-beta1"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/Microsoft.Data.SQLite.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/Microsoft.Data.SQLite.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Data.SQLite.1.0.0-beta1.nupkg",
+ "Microsoft.Data.SQLite.1.0.0-beta1.nupkg.sha512",
+ "Microsoft.Data.SQLite.nuspec",
+ "build/net451/Microsoft.Data.SQLite.targets",
+ "lib/aspnet50/Microsoft.Data.SQLite.dll",
+ "lib/aspnet50/Microsoft.Data.SQLite.xml",
+ "lib/aspnetcore50/Microsoft.Data.SQLite.dll",
+ "lib/aspnetcore50/Microsoft.Data.SQLite.xml",
+ "lib/net451/Microsoft.Data.SQLite.dll",
+ "lib/net451/Microsoft.Data.SQLite.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Data.SQLite.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Data.SQLite.xml",
+ "redist/x86/sqlite3.dll"
+ ]
+ },
+ "Microsoft.Framework.Caching.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "46cDLfehLNidWL55zPvLOinR/G3Z/hPtr6memnVenrt2BNPWmqujeXQaMyfklsYblxzeMhoE1ZhYsNuQdvj8zg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Caching.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Caching.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.Caching.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.Caching.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Caching.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Caching.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Caching.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Caching.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Caching.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Caching.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Caching.Interfaces.xml",
+ "lib/net45/Microsoft.Framework.Caching.Interfaces.dll",
+ "lib/net45/Microsoft.Framework.Caching.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Caching.Memory/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "fRruSHyvGTRaHNe6CmYRxIzcRdR/IEv3BkNpyk15IDxcJp3HrghwTa3hRjpOjd42oSOswaYzlrF/6XbARCH/6A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4",
+ "Microsoft.Framework.Caching.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Caching.Memory.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Caching.Memory.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4",
+ "Microsoft.Framework.Caching.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.Caching.Memory.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.Caching.Memory.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Caching.Memory.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Caching.Memory.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Caching.Memory.nuspec",
+ "lib/dnx451/Microsoft.Framework.Caching.Memory.dll",
+ "lib/dnx451/Microsoft.Framework.Caching.Memory.xml",
+ "lib/dnxcore50/Microsoft.Framework.Caching.Memory.dll",
+ "lib/dnxcore50/Microsoft.Framework.Caching.Memory.xml",
+ "lib/net45/Microsoft.Framework.Caching.Memory.dll",
+ "lib/net45/Microsoft.Framework.Caching.Memory.xml"
+ ]
+ },
+ "Microsoft.Framework.ConfigurationModel/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "VD5MhmQRhYVfxyDs1fyruPTj3pYwLMV5dXJkPUVg1KKbJ9qr/tEn3frJA1NN1jdeVBt1RrW5FXr+wWG9YoO9Yg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.ConfigurationModel.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.ConfigurationModel.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.ConfigurationModel.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.ConfigurationModel.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.ConfigurationModel.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.ConfigurationModel.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.ConfigurationModel.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.ConfigurationModel.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.ConfigurationModel.nuspec",
+ "lib/dnx451/Microsoft.Framework.ConfigurationModel.dll",
+ "lib/dnx451/Microsoft.Framework.ConfigurationModel.xml",
+ "lib/dnxcore50/Microsoft.Framework.ConfigurationModel.dll",
+ "lib/dnxcore50/Microsoft.Framework.ConfigurationModel.xml",
+ "lib/net45/Microsoft.Framework.ConfigurationModel.dll",
+ "lib/net45/Microsoft.Framework.ConfigurationModel.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.ConfigurationModel.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.ConfigurationModel.xml"
+ ]
+ },
+ "Microsoft.Framework.ConfigurationModel.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "lU9+gyEz+jSeR+QsZxZtDf0U2DS/pl3I8/m7YeKjHMnjqoxUKFbSOpzegll7bhq0Alw7/8gF2Byrcy+PlzRc/g==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.ConfigurationModel.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.ConfigurationModel.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.ConfigurationModel.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.ConfigurationModel.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.ConfigurationModel.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.ConfigurationModel.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.ConfigurationModel.Interfaces.xml",
+ "lib/net45/Microsoft.Framework.ConfigurationModel.Interfaces.dll",
+ "lib/net45/Microsoft.Framework.ConfigurationModel.Interfaces.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.ConfigurationModel.Interfaces.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.ConfigurationModel.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.DependencyInjection/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "PVzGSHq2lgQE4/Bje+lL7UNcj/ADVimsuAA10ACtA3qcLk0DkhgrXJsSMRyFBAv2vqvDXFTE2cLKHcsckWbSQw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.DependencyInjection.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.DependencyInjection.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.DependencyInjection.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.DependencyInjection.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.DependencyInjection.nuspec",
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.dll",
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.xml",
+ "lib/dnxcore50/Microsoft.Framework.DependencyInjection.dll",
+ "lib/dnxcore50/Microsoft.Framework.DependencyInjection.xml",
+ "lib/net45/Microsoft.Framework.DependencyInjection.dll",
+ "lib/net45/Microsoft.Framework.DependencyInjection.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.DependencyInjection.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.DependencyInjection.xml"
+ ]
+ },
+ "Microsoft.Framework.DependencyInjection.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "qbBGymgVdlrJZhJFg+35JaA0Tp8DYeFrDwv1Q3Di9hRWLZ3rAE7bvsnP+fmuo0XGlZDVXfGjINvtryFPyoQ58g==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.DependencyInjection.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.DependencyInjection.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.DependencyInjection.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.DependencyInjection.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Logging/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "aFlG7h0WMJn+TgKIqoDkXh6LOquu7e6HKCOSrLvAaOp93qOWycz0kNQ0oGXVHYP6QebAjHgz9UffcqeCqeWN1Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Collections.Concurrent",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Collections.Concurrent",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Logging.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Logging.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Logging.nuspec",
+ "lib/dnx451/Microsoft.Framework.Logging.dll",
+ "lib/dnx451/Microsoft.Framework.Logging.xml",
+ "lib/dnxcore50/Microsoft.Framework.Logging.dll",
+ "lib/dnxcore50/Microsoft.Framework.Logging.xml",
+ "lib/net45/Microsoft.Framework.Logging.dll",
+ "lib/net45/Microsoft.Framework.Logging.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.xml"
+ ]
+ },
+ "Microsoft.Framework.Logging.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "OK8v8gpDYfH01Gy1tvT4mS1r6ZWMAz1HXo872v7pswishE6oyTQwC44BpYM+Obq8GW7E6Ai/Vj3wE/CuLUDJGA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Logging.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Logging.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Logging.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.OptionsModel/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "xjr084yTcmBLI8F3gb+hIEhf+ttanmbCWl54GkMhSH/dU1bqbR2Ts6Ks51kwUaACfNEDNY9zRwblT4of51lA6w==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.OptionsModel.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.OptionsModel.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4",
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.OptionsModel.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.OptionsModel.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.OptionsModel.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.OptionsModel.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.OptionsModel.nuspec",
+ "lib/dnx451/Microsoft.Framework.OptionsModel.dll",
+ "lib/dnx451/Microsoft.Framework.OptionsModel.xml",
+ "lib/dnxcore50/Microsoft.Framework.OptionsModel.dll",
+ "lib/dnxcore50/Microsoft.Framework.OptionsModel.xml",
+ "lib/net45/Microsoft.Framework.OptionsModel.dll",
+ "lib/net45/Microsoft.Framework.OptionsModel.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.OptionsModel.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.OptionsModel.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "RrZdqvUm8QbgxnZQuafYGo6NezoKx7VqAfAtHVzoKBm3GSV8xlPh90u1fsGhNCv37xJNk5PuRCa4Mq27ko7pLw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Roslyn.Common/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "Zls0mzoTJEt7PoM/MB2gDaVs6bdYPrhr4Hp+pp68gy7rEIcF7kubCjXiCz7uf8WCMie48qUpT/8wUSUdOsTAww==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": "1.0.0-rc2",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Runtime",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Common.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Common.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Roslyn.Common.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Roslyn.Common.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Roslyn.Common.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Common.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Common.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Roslyn.Common.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Roslyn.Common.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "iZNGlqBAWIT2zWI1Z4AWpx9loBvplEgyHp3lRfBJX30npClf9d3fMRRlO1K9wx9ho0tMLBU8CSXpUc/21Knm6Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Microsoft.CodeAnalysis.CSharp": "1.0.0-rc2"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Roslyn.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.WebEncoders/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "DCRv9DtaZB46YXhq4hRHCVsnGN9ESZgTQTaHNJNy+g04nFe2YpB65CPBavtmtF9xNR31jQoVamBJtduNrc9Jhw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4",
+ "Microsoft.Framework.WebEncoders.Core": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.WebEncoders.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.WebEncoders.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.OptionsModel": "1.0.0-beta4",
+ "Microsoft.Framework.WebEncoders.Core": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.WebEncoders.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.WebEncoders.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.WebEncoders.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.WebEncoders.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.WebEncoders.nuspec",
+ "lib/dnx451/Microsoft.Framework.WebEncoders.dll",
+ "lib/dnx451/Microsoft.Framework.WebEncoders.xml",
+ "lib/dnxcore50/Microsoft.Framework.WebEncoders.dll",
+ "lib/dnxcore50/Microsoft.Framework.WebEncoders.xml",
+ "lib/net45/Microsoft.Framework.WebEncoders.dll",
+ "lib/net45/Microsoft.Framework.WebEncoders.xml"
+ ]
+ },
+ "Microsoft.Framework.WebEncoders.Core/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "pJqTs8EUFMcQmkEVYKZiN0hDk5IpHHVasesEa/hgD99a+uENKc7oSOnKbJ+PypatsBTkj/IzuxybJUCKlBLiew==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.WebEncoders.Core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.WebEncoders.Core.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.WebEncoders.Core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.WebEncoders.Core.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.WebEncoders.Core.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.WebEncoders.Core.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.WebEncoders.Core.nuspec",
+ "lib/dnx451/Microsoft.Framework.WebEncoders.Core.dll",
+ "lib/dnx451/Microsoft.Framework.WebEncoders.Core.xml",
+ "lib/dnxcore50/Microsoft.Framework.WebEncoders.Core.dll",
+ "lib/dnxcore50/Microsoft.Framework.WebEncoders.Core.xml",
+ "lib/net45/Microsoft.Framework.WebEncoders.Core.dll",
+ "lib/net45/Microsoft.Framework.WebEncoders.Core.xml"
+ ]
+ },
+ "Microsoft.Net.Http.Headers/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "dhN5q9MbljcAqWTv1GIpeAzB8HB7l9YTrN+zl/KXUj8OP4cTd2LZ7qeZ0tqDHkxOD+GyZwi/SnbqztKSjTnVOg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Net.Http.Headers.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Net.Http.Headers.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Net.Http.Headers.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Net.Http.Headers.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Net.Http.Headers.1.0.0-beta4.nupkg",
+ "Microsoft.Net.Http.Headers.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Net.Http.Headers.nuspec",
+ "lib/dnx451/Microsoft.Net.Http.Headers.dll",
+ "lib/dnx451/Microsoft.Net.Http.Headers.xml",
+ "lib/dnxcore50/Microsoft.Net.Http.Headers.dll",
+ "lib/dnxcore50/Microsoft.Net.Http.Headers.xml",
+ "lib/net45/Microsoft.Net.Http.Headers.dll",
+ "lib/net45/Microsoft.Net.Http.Headers.xml"
+ ]
+ },
+ "Microsoft.Net.Http.Server/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "WFAzpWGbe0JHu6pSZdbxprui3XubKJZzrs+zUKMCc77I1DCAuHLY5ZTcZBy5u0mMC1S8tDnED3o5J8gXM3Y1Mg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Logging": "1.0.0-beta4",
+ "Microsoft.Net.WebSockets": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Net.Http.Server.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Net.Http.Server.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.Logging": "1.0.0-beta4",
+ "Microsoft.Net.WebSockets": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Net.Http.Server.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Net.Http.Server.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Net.Http.Server.1.0.0-beta4.nupkg",
+ "Microsoft.Net.Http.Server.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Net.Http.Server.nuspec",
+ "lib/dnx451/Microsoft.Net.Http.Server.dll",
+ "lib/dnx451/Microsoft.Net.Http.Server.xml",
+ "lib/dnxcore50/Microsoft.Net.Http.Server.dll",
+ "lib/dnxcore50/Microsoft.Net.Http.Server.xml",
+ "lib/net45/Microsoft.Net.Http.Server.dll",
+ "lib/net45/Microsoft.Net.Http.Server.xml"
+ ]
+ },
+ "Microsoft.Net.WebSocketAbstractions/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "NmW6dLxY5zu7Dyb12PttLWje8wSjxrlBeUovtchbJfZe/OTRw5FFe/Z6yytLuWT3UcA+siGVv2t/br2xXkDqYg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Net.WebSocketAbstractions.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Net.WebSocketAbstractions.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Net.WebSocketAbstractions.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Net.WebSocketAbstractions.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Net.WebSocketAbstractions.1.0.0-beta4.nupkg",
+ "Microsoft.Net.WebSocketAbstractions.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Net.WebSocketAbstractions.nuspec",
+ "lib/dnxcore50/Microsoft.Net.WebSocketAbstractions.dll",
+ "lib/dnxcore50/Microsoft.Net.WebSocketAbstractions.xml",
+ "lib/net45/Microsoft.Net.WebSocketAbstractions.dll",
+ "lib/net45/Microsoft.Net.WebSocketAbstractions.xml"
+ ]
+ },
+ "Microsoft.Net.WebSockets/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "//ixPg4sfxzF6O+t6cwciAcAV/fowB0HY+DrvQvc1J79MeGbwWATaUsPjdnAzqhfbrXPImfN1s1hQNOa02s79A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Net.WebSocketAbstractions": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Net.WebSockets.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Net.WebSockets.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Net.WebSocketAbstractions": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Net.WebSockets.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Net.WebSockets.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Net.WebSockets.1.0.0-beta4.nupkg",
+ "Microsoft.Net.WebSockets.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Net.WebSockets.nuspec",
+ "lib/dnxcore50/Microsoft.Net.WebSockets.dll",
+ "lib/dnxcore50/Microsoft.Net.WebSockets.xml",
+ "lib/net45/Microsoft.Net.WebSockets.dll",
+ "lib/net45/Microsoft.Net.WebSockets.xml"
+ ]
+ },
+ "MongoDB.Bson/2.0.1": {
+ "serviceable": false,
+ "sha": "dr8KYpTt5VIqGWQ5Bzud2BA/lH2csIfL5WLrfc90UzSWGF378ugvEo5tx4J0eZohvHzsRRiMS2YTmJOTRN+iYg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ]
+ }
+ },
+ "files": [
+ "License.rtf",
+ "MongoDB.Bson.2.0.1.nupkg",
+ "MongoDB.Bson.2.0.1.nupkg.sha512",
+ "MongoDB.Bson.nuspec",
+ "lib/net45/MongoDB.Bson.dll",
+ "lib/net45/MongoDB.Bson.XML"
+ ]
+ },
+ "Newtonsoft.Json/7.0.1": {
+ "serviceable": false,
+ "sha": "q3V4KLetMLnt1gpAVWgtXnHjKs0UG/RalBc29u2ZKxd5t5Ze4JBL5WiiYIklJyK/5CRiIiNwigVQUo0FgbsuWA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ]
+ }
+ },
+ "files": [
+ "Newtonsoft.Json.7.0.1.nupkg",
+ "Newtonsoft.Json.7.0.1.nupkg.sha512",
+ "Newtonsoft.Json.nuspec",
+ "lib/net20/Newtonsoft.Json.dll",
+ "lib/net20/Newtonsoft.Json.xml",
+ "lib/net35/Newtonsoft.Json.dll",
+ "lib/net35/Newtonsoft.Json.xml",
+ "lib/net40/Newtonsoft.Json.dll",
+ "lib/net40/Newtonsoft.Json.xml",
+ "lib/net45/Newtonsoft.Json.dll",
+ "lib/net45/Newtonsoft.Json.xml",
+ "lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll",
+ "lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.xml",
+ "lib/portable-net45+wp80+win8+wpa81+dnxcore50/Newtonsoft.Json.dll",
+ "lib/portable-net45+wp80+win8+wpa81+dnxcore50/Newtonsoft.Json.xml",
+ "tools/install.ps1"
+ ]
+ },
+ "protobuf-net/2.0.0.668": {
+ "serviceable": false,
+ "sha": "Lgj+Kf1+RV0utKxX9u1WEcymPGrbWrj/AwFmFADFLLa/LLdc1ji2MIGcecFRAGUu6UO8BRbdjZAIYWvLlN1B/A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ }
+ },
+ "files": [
+ "protobuf-net.2.0.0.668.nupkg",
+ "protobuf-net.2.0.0.668.nupkg.sha512",
+ "protobuf-net.nuspec",
+ "lib/net20/protobuf-net.dll",
+ "lib/net20/protobuf-net.pdb",
+ "lib/net20/protobuf-net.xml",
+ "lib/net20-cf/protobuf-net.dll",
+ "lib/net20-cf/protobuf-net.pdb",
+ "lib/net20-cf/protobuf-net.xml",
+ "lib/net30/protobuf-net.dll",
+ "lib/net30/protobuf-net.pdb",
+ "lib/net30/protobuf-net.xml",
+ "lib/net35/protobuf-net.dll",
+ "lib/net35/protobuf-net.pdb",
+ "lib/net35/protobuf-net.xml",
+ "lib/net35-cf/protobuf-net.dll",
+ "lib/net35-cf/protobuf-net.pdb",
+ "lib/net35-cf/protobuf-net.xml",
+ "lib/net40/protobuf-net.dll",
+ "lib/net40/protobuf-net.pdb",
+ "lib/net40/protobuf-net.xml",
+ "lib/net40-cf/protobuf-net.dll",
+ "lib/net40-cf/protobuf-net.pdb",
+ "lib/net40-cf/protobuf-net.xml",
+ "lib/netcore45/protobuf-net.dll",
+ "lib/netcore45/protobuf-net.pdb",
+ "lib/netcore45/protobuf-net.pri",
+ "lib/netcore45/protobuf-net.XML",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.pdb",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml",
+ "lib/sl3-wp/protobuf-net.dll",
+ "lib/sl3-wp/protobuf-net.pdb",
+ "lib/sl3-wp/protobuf-net.xml",
+ "lib/sl4/protobuf-net.dll",
+ "lib/sl4/protobuf-net.pdb",
+ "lib/sl4/protobuf-net.xml",
+ "lib/sl4-windowsphone71/protobuf-net.dll",
+ "lib/sl4-windowsphone71/protobuf-net.pdb",
+ "lib/sl4-windowsphone71/protobuf-net.xml",
+ "lib/windowsphone8/protobuf-net.dll",
+ "lib/windowsphone8/protobuf-net.pdb",
+ "lib/windowsphone8/protobuf-net.xml"
+ ]
+ },
+ "System.Collections.Immutable/1.1.33-beta": {
+ "serviceable": true,
+ "sha": "Qnv6M/BRf0w1xNoD5tH7V+jK0kdO+OZymwQS5Lj6FALt3AZMGVeJs+lHXi1PsKFll67UtGY+I7r8WDhRzspXCA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ]
+ }
+ },
+ "files": [
+ "License-Stable.rtf",
+ "System.Collections.Immutable.1.1.33-beta.nupkg",
+ "System.Collections.Immutable.1.1.33-beta.nupkg.sha512",
+ "System.Collections.Immutable.nuspec",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml"
+ ]
+ },
+ "System.Data.Common/1.0.0-beta1": {
+ "serviceable": false,
+ "sha": "cuIEw5cNVZZBYz2STud08Q5VBP+GKvDJPPP3AoApL72tlYhl9uHoW54Q3QTi5tElsXFCnFw868atiHqrGS7GIw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System.Data",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/aspnet50/System.Data.Common.dll"
+ ],
+ "compileAssemblies": [
+ "lib/aspnet50/System.Data.Common.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System.Data",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net451/System.Data.Common.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net451/System.Data.Common.dll"
+ ]
+ }
+ },
+ "files": [
+ "System.Data.Common.1.0.0-beta1.nupkg",
+ "System.Data.Common.1.0.0-beta1.nupkg.sha512",
+ "System.Data.Common.nuspec",
+ "lib/aspnet50/System.Data.Common.dll",
+ "lib/aspnet50/System.Data.Common.xml",
+ "lib/aspnetcore50/System.Data.Common.dll",
+ "lib/aspnetcore50/System.Data.Common.xml",
+ "lib/net451/System.Data.Common.dll",
+ "lib/net451/System.Data.Common.xml",
+ "lib/portable-net451+win81+wpa81/System.Data.Common.dll",
+ "lib/portable-net451+win81+wpa81/System.Data.Common.xml"
+ ]
+ },
+ "System.Reflection.Metadata/1.0.18-beta": {
+ "serviceable": true,
+ "sha": "4PtC2U6seQthZMvXvGTxXZUqlF0oV9jzYNTkG0Yo/D6cLO5AH3lrxh2djGyKsDYnAZjBCoyA/z3vHRCeaBEp4w==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Collections.Immutable": "1.1.33-beta"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Collections.Immutable": "1.1.33-beta"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ]
+ }
+ },
+ "files": [
+ "License-Stable.rtf",
+ "System.Reflection.Metadata.1.0.18-beta.nupkg",
+ "System.Reflection.Metadata.1.0.18-beta.nupkg.sha512",
+ "System.Reflection.Metadata.nuspec",
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll",
+ "lib/portable-net45+win8/System.Reflection.Metadata.xml"
+ ]
+ },
+ "System.Runtime/4.0.20-beta-22816": {
+ "serviceable": false,
+ "sha": "sDSJEmM6Q5O7Nn9XxHTrsEJ4bv4hsBdeTWjuvyzd9/u9ujl9AWa3q1XFLrdPZetILPOC1P0+1LOCq4kZcsKF5Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.ComponentModel.Composition",
+ "System.Core"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/System.Runtime.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/System.Runtime.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.ComponentModel.Composition",
+ "System.Core"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/System.Runtime.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/System.Runtime.dll"
+ ]
+ }
+ },
+ "files": [
+ "License.rtf",
+ "System.Runtime.4.0.20-beta-22816.nupkg",
+ "System.Runtime.4.0.20-beta-22816.nupkg.sha512",
+ "System.Runtime.nuspec",
+ "lib/aspnetcore50/System.Runtime.dll",
+ "lib/contract/System.Runtime.dll",
+ "lib/net45/System.Runtime.dll",
+ "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.dll"
+ ]
+ },
+ "System.Text.Encoding/4.0.10-beta-22816": {
+ "serviceable": false,
+ "sha": "QDKTAvat7aDGMWnVkGm6tJvvmc2zSTa/p8M4/OEBBkZKNx4SGkeGEjFUhl7b6AXZ220m4dACygkiAVoB/LqMHw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Runtime": "4.0.20-beta-22816"
+ },
+ "frameworkAssemblies": [
+ "mscorlib"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/System.Text.Encoding.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/System.Text.Encoding.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Runtime": "4.0.20-beta-22816"
+ },
+ "frameworkAssemblies": [
+ "mscorlib"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/System.Text.Encoding.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/System.Text.Encoding.dll"
+ ]
+ }
+ },
+ "files": [
+ "License.rtf",
+ "System.Text.Encoding.4.0.10-beta-22816.nupkg",
+ "System.Text.Encoding.4.0.10-beta-22816.nupkg.sha512",
+ "System.Text.Encoding.nuspec",
+ "lib/aspnetcore50/System.Text.Encoding.dll",
+ "lib/contract/System.Text.Encoding.dll",
+ "lib/net45/System.Text.Encoding.dll",
+ "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.dll"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/OpenChain.Core.Tests/BinaryDataTests.cs b/test/OpenChain.Core.Tests/BinaryDataTests.cs
new file mode 100644
index 0000000..9064305
--- /dev/null
+++ b/test/OpenChain.Core.Tests/BinaryDataTests.cs
@@ -0,0 +1,69 @@
+using System;
+using System.Collections;
+using Xunit;
+
+namespace OpenChain.Core.Tests
+{
+ public class BinaryDataTests
+ {
+ [Fact]
+ public void Constructor_Success()
+ {
+ byte[] sourceArray = new byte[] { 18, 178, 255, 70, 0 };
+ BinaryData result = new BinaryData(sourceArray);
+ sourceArray[4] = 1;
+
+ Assert.NotSame(sourceArray, result.Value);
+ Assert.Equal(new byte[] { 18, 178, 255, 70, 0 }, result.Value);
+ }
+
+ [Fact]
+ public void Parse_Success()
+ {
+ BinaryData result = BinaryData.Parse("12b2FE460035789ACd");
+
+ Assert.Equal(new byte[] { 18, 178, 254, 70, 0, 53, 120, 154, 205 }, result.Value);
+ }
+
+ [Fact]
+ public void Parse_InvalidLength()
+ {
+ Assert.Throws(
+ () => BinaryData.Parse("12b2ff460"));
+ }
+
+ [Fact]
+ public void Parse_InvalidCharacter()
+ {
+ Assert.Throws(
+ () => BinaryData.Parse("1G"));
+
+ Assert.Throws(
+ () => BinaryData.Parse("1/"));
+ }
+
+ [Fact]
+ public void Parse_Null()
+ {
+ Assert.Throws(
+ () => BinaryData.Parse(null));
+ }
+
+ [Fact]
+ public void ToArray_Success()
+ {
+ byte[] sourceArray = new byte[] { 18, 178, 255, 70, 0 };
+ BinaryData result = new BinaryData(sourceArray);
+
+ Assert.Equal(new byte[] { 18, 178, 255, 70, 0 }, result.ToArray());
+ }
+
+ [Fact]
+ public void ToString_Success()
+ {
+ string result = new BinaryData(new byte[] { 18, 178, 255, 70, 0 }).ToString();
+
+ Assert.Equal("12b2ff4600", result);
+ }
+ }
+}
diff --git a/test/OpenChain.Core.Tests/OpenChain.Core.Tests.xproj b/test/OpenChain.Core.Tests/OpenChain.Core.Tests.xproj
new file mode 100644
index 0000000..689e116
--- /dev/null
+++ b/test/OpenChain.Core.Tests/OpenChain.Core.Tests.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ 38a38def-1b86-495e-8674-2aa135ce016a
+ OpenChain.Core.Tests
+ ..\artifacts\obj\$(MSBuildProjectName)
+ ..\artifacts\bin\$(MSBuildProjectName)\
+
+
+ 2.0
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/OpenChain.Core.Tests/project.json b/test/OpenChain.Core.Tests/project.json
new file mode 100644
index 0000000..9fe881a
--- /dev/null
+++ b/test/OpenChain.Core.Tests/project.json
@@ -0,0 +1,30 @@
+{
+ "version": "1.0.0-*",
+ "description": "",
+ "authors": [ "" ],
+ "tags": [ "" ],
+ "projectUrl": "",
+ "licenseUrl": "",
+
+ "dependencies": {
+ "OpenChain.Core": "1.0.0-*",
+ "xunit": "2.1.0-beta2-*",
+ "xunit.runner.dnx": "2.1.0-beta2-*"
+ },
+
+ "commands": {
+ "test": "xunit.runner.dnx"
+ },
+
+ "frameworks": {
+ "dnx451": { }
+ //"dnxcore50": {
+ // "dependencies": {
+ // "System.Collections": "4.0.10-beta-22816",
+ // "System.Linq": "4.0.0-beta-22816",
+ // "System.Threading": "4.0.10-beta-22816",
+ // "Microsoft.CSharp": "4.0.0-beta-22816"
+ // }
+ //}
+ }
+}
diff --git a/test/OpenChain.Core.Tests/project.lock.json b/test/OpenChain.Core.Tests/project.lock.json
new file mode 100644
index 0000000..8c63292
--- /dev/null
+++ b/test/OpenChain.Core.Tests/project.lock.json
@@ -0,0 +1,1195 @@
+{
+ "locked": false,
+ "version": -9998,
+ "projectFileDependencyGroups": {
+ "": [
+ "OpenChain.Core >= 1.0.0-*",
+ "xunit >= 2.1.0-beta2-*",
+ "xunit.runner.dnx >= 2.1.0-beta2-*"
+ ],
+ "DNX,Version=v4.5.1": []
+ },
+ "libraries": {
+ "Microsoft.CodeAnalysis.Analyzers/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "/4Z5es8TXCEn5sfzWz2uhUITmikgCfMAhehMJPQcSD2FRp2ooLTczDq3p4KOl+bcnsvaAu0aKrmdRgOvkrcwhw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System"
+ ],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System"
+ ],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.Analyzers.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.Analyzers.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.Analyzers.nuspec",
+ "ThirdPartyNotices.rtf",
+ "tools/install.ps1",
+ "tools/uninstall.ps1",
+ "tools/analyzers/C#/Microsoft.CodeAnalysis.Analyzers.dll",
+ "tools/analyzers/C#/Microsoft.CodeAnalysis.CSharp.Analyzers.dll",
+ "tools/analyzers/VB.NET/Microsoft.CodeAnalysis.Analyzers.dll",
+ "tools/analyzers/VB.NET/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Common/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "7ALXqeJxiEMgnSST2qlWMThc5CIhJNFsUKYITIXXXj7gf8mF+ktEuKgUE7NWePzUgi0gq/2WmBX/4yWJuF1j6w==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Collections.Immutable": "[1.1.33-beta]",
+ "System.Reflection.Metadata": "[1.0.18-beta]",
+ "Microsoft.CodeAnalysis.Analyzers": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Collections.Immutable": "[1.1.33-beta]",
+ "System.Reflection.Metadata": "[1.0.18-beta]",
+ "Microsoft.CodeAnalysis.Analyzers": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.Common.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.Common.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.Common.nuspec",
+ "ThirdPartyNotices.rtf",
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.xml",
+ "lib/net45/Microsoft.CodeAnalysis.dll",
+ "lib/net45/Microsoft.CodeAnalysis.xml",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.dll",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.xml"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "wsj0BdWRY+fsUINMEQ+uanN0pWMAMj2z0UiJKjwoUo/Xbrk7PqGklzpOB7lvlESHjO8+Eaw71PQnml6j7m7rdQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.CSharp.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.CSharp.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.CSharp.nuspec",
+ "ThirdPartyNotices.rtf",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.xml",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.CSharp.xml"
+ ]
+ },
+ "Microsoft.Framework.ApplicationHost/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "U7frhgsqolI+AMUrX44WNgV7Xyoxj8UtttE21pkD5Wfeubo1mZyhtJUvcMN4zxAPCjFqdOfKizWfcEI+mZ0Rtg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.ApplicationHost.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.ApplicationHost.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.ApplicationHost.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.ApplicationHost.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.ApplicationHost.nuspec",
+ "lib/dnx451/Microsoft.Framework.ApplicationHost.dll",
+ "lib/dnx451/Microsoft.Framework.ApplicationHost.xml",
+ "lib/dnxcore50/Microsoft.Framework.ApplicationHost.dll",
+ "lib/dnxcore50/Microsoft.Framework.ApplicationHost.xml"
+ ]
+ },
+ "Microsoft.Framework.CommandLineUtils/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "sWFw8wo77BRWAzoS50mgDUzBVXkRAZySYSaIFfpk3W5oJYmjcFt0SHpGJoVbIO3ZcKMORYvrxgnwNXx1p0ZCxQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.CommandLineUtils.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.CommandLineUtils.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.CommandLineUtils.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.CommandLineUtils.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.CommandLineUtils.nuspec",
+ "lib/dnx451/Microsoft.Framework.CommandLineUtils.dll",
+ "lib/dnx451/Microsoft.Framework.CommandLineUtils.xml",
+ "lib/dnxcore50/Microsoft.Framework.CommandLineUtils.dll",
+ "lib/dnxcore50/Microsoft.Framework.CommandLineUtils.xml",
+ "shared/AnsiConsole.cs",
+ "shared/CommandArgument.cs",
+ "shared/CommandLineApplication.cs",
+ "shared/CommandOption.cs",
+ "shared/CommandOptionType.cs"
+ ]
+ },
+ "Microsoft.Framework.DependencyInjection.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "qbBGymgVdlrJZhJFg+35JaA0Tp8DYeFrDwv1Q3Di9hRWLZ3rAE7bvsnP+fmuo0XGlZDVXfGjINvtryFPyoQ58g==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.DependencyInjection.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.DependencyInjection.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.DependencyInjection.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.DependencyInjection.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Logging/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "aFlG7h0WMJn+TgKIqoDkXh6LOquu7e6HKCOSrLvAaOp93qOWycz0kNQ0oGXVHYP6QebAjHgz9UffcqeCqeWN1Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Collections.Concurrent",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Collections.Concurrent",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Logging.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Logging.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Logging.nuspec",
+ "lib/dnx451/Microsoft.Framework.Logging.dll",
+ "lib/dnx451/Microsoft.Framework.Logging.xml",
+ "lib/dnxcore50/Microsoft.Framework.Logging.dll",
+ "lib/dnxcore50/Microsoft.Framework.Logging.xml",
+ "lib/net45/Microsoft.Framework.Logging.dll",
+ "lib/net45/Microsoft.Framework.Logging.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.xml"
+ ]
+ },
+ "Microsoft.Framework.Logging.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "OK8v8gpDYfH01Gy1tvT4mS1r6ZWMAz1HXo872v7pswishE6oyTQwC44BpYM+Obq8GW7E6Ai/Vj3wE/CuLUDJGA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Logging.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Logging.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Logging.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "R4Ob2q5tUb6ocw1itBO84HL8gXZMu52mi8jfxwtXoJU42gHt3ouBTEHX1WCzqcgLNGrIh89mjFV8iFTNShKXdA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Reflection.Metadata": "1.0.18-beta",
+ "Microsoft.CodeAnalysis.CSharp": "1.0.0-rc2",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Loader": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Newtonsoft.Json": "6.0.6"
+ },
+ "frameworkAssemblies": [
+ "System.Collections",
+ "System.Text.Encoding",
+ "System.Threading.Tasks",
+ "System.IO",
+ "System.IO.Compression",
+ "System.IO.Compression.FileSystem",
+ "System.Runtime",
+ "System.Xml",
+ "System.Xml.Linq",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "RrZdqvUm8QbgxnZQuafYGo6NezoKx7VqAfAtHVzoKBm3GSV8xlPh90u1fsGhNCv37xJNk5PuRCa4Mq27ko7pLw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Loader/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "XpLguvjD4bfhE2fu1SWaOXjUkVcKTRW8x1mZjPpxns250pcTg1v/sG70fmZKtoiaXHYZFzTai2SRtqfBB20hOA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Loader.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Loader.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Loader.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Loader.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Loader.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Loader.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Loader.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Loader.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Loader.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "iZNGlqBAWIT2zWI1Z4AWpx9loBvplEgyHp3lRfBJX30npClf9d3fMRRlO1K9wx9ho0tMLBU8CSXpUc/21Knm6Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Microsoft.CodeAnalysis.CSharp": "1.0.0-rc2"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Roslyn.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.TestAdapter/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "s4vPz/frohp6tyjTY9cTOHqZLotEdiV5GScHqdpTxFc9cWG3coyf03WYUQx6Kia5o7CWRiAYURqF5pr+9gTD7A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.TestAdapter.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.TestAdapter.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.TestAdapter.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.TestAdapter.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.TestAdapter.nuspec",
+ "lib/dnx451/Microsoft.Framework.TestAdapter.dll",
+ "lib/dnx451/Microsoft.Framework.TestAdapter.xml",
+ "lib/dnxcore50/Microsoft.Framework.TestAdapter.dll",
+ "lib/dnxcore50/Microsoft.Framework.TestAdapter.xml"
+ ]
+ },
+ "Microsoft.Framework.TestHost/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "At1dKPJGTP3P6b9wNoyT4HkwpiJjUgBE9khzltAMY5U2va3csdPrCZPnU/jb4LA7RWGMkt34s7leB0w/DYovAQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.TestAdapter": "1.0.0-beta4",
+ "Microsoft.Framework.ApplicationHost": "1.0.0-beta4",
+ "Microsoft.Framework.CommandLineUtils": "1.0.0-beta4",
+ "Microsoft.Framework.Logging": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Newtonsoft.Json": "6.0.6"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.TestHost.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.TestHost.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.TestHost.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.TestHost.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.TestHost.nuspec",
+ "app/project.json",
+ "lib/dnx451/Microsoft.Framework.TestHost.dll",
+ "lib/dnx451/Microsoft.Framework.TestHost.xml",
+ "lib/dnxcore50/Microsoft.Framework.TestHost.dll",
+ "lib/dnxcore50/Microsoft.Framework.TestHost.xml"
+ ]
+ },
+ "Newtonsoft.Json/6.0.6": {
+ "serviceable": false,
+ "sha": "w26uZNyCG5VeoKiEOJ4+9/o8koSofLKwHl7WLreIcp0U6r57L7WiRXmjp8MTKFw6dYNZ9AE0lw69WYbIhUsU9Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ]
+ }
+ },
+ "files": [
+ "Newtonsoft.Json.6.0.6.nupkg",
+ "Newtonsoft.Json.6.0.6.nupkg.sha512",
+ "Newtonsoft.Json.nuspec",
+ "lib/net20/Newtonsoft.Json.dll",
+ "lib/net20/Newtonsoft.Json.xml",
+ "lib/net35/Newtonsoft.Json.dll",
+ "lib/net35/Newtonsoft.Json.xml",
+ "lib/net40/Newtonsoft.Json.dll",
+ "lib/net40/Newtonsoft.Json.xml",
+ "lib/net45/Newtonsoft.Json.dll",
+ "lib/net45/Newtonsoft.Json.xml",
+ "lib/netcore45/Newtonsoft.Json.dll",
+ "lib/netcore45/Newtonsoft.Json.xml",
+ "lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll",
+ "lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.xml",
+ "lib/portable-net45+wp80+win8+wpa81+aspnetcore50/Newtonsoft.Json.dll",
+ "lib/portable-net45+wp80+win8+wpa81+aspnetcore50/Newtonsoft.Json.xml",
+ "tools/install.ps1"
+ ]
+ },
+ "protobuf-net/2.0.0.668": {
+ "serviceable": false,
+ "sha": "Lgj+Kf1+RV0utKxX9u1WEcymPGrbWrj/AwFmFADFLLa/LLdc1ji2MIGcecFRAGUu6UO8BRbdjZAIYWvLlN1B/A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ }
+ },
+ "files": [
+ "protobuf-net.2.0.0.668.nupkg",
+ "protobuf-net.2.0.0.668.nupkg.sha512",
+ "protobuf-net.nuspec",
+ "lib/net20/protobuf-net.dll",
+ "lib/net20/protobuf-net.pdb",
+ "lib/net20/protobuf-net.xml",
+ "lib/net20-cf/protobuf-net.dll",
+ "lib/net20-cf/protobuf-net.pdb",
+ "lib/net20-cf/protobuf-net.xml",
+ "lib/net30/protobuf-net.dll",
+ "lib/net30/protobuf-net.pdb",
+ "lib/net30/protobuf-net.xml",
+ "lib/net35/protobuf-net.dll",
+ "lib/net35/protobuf-net.pdb",
+ "lib/net35/protobuf-net.xml",
+ "lib/net35-cf/protobuf-net.dll",
+ "lib/net35-cf/protobuf-net.pdb",
+ "lib/net35-cf/protobuf-net.xml",
+ "lib/net40/protobuf-net.dll",
+ "lib/net40/protobuf-net.pdb",
+ "lib/net40/protobuf-net.xml",
+ "lib/net40-cf/protobuf-net.dll",
+ "lib/net40-cf/protobuf-net.pdb",
+ "lib/net40-cf/protobuf-net.xml",
+ "lib/netcore45/protobuf-net.dll",
+ "lib/netcore45/protobuf-net.pdb",
+ "lib/netcore45/protobuf-net.pri",
+ "lib/netcore45/protobuf-net.XML",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.pdb",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml",
+ "lib/sl3-wp/protobuf-net.dll",
+ "lib/sl3-wp/protobuf-net.pdb",
+ "lib/sl3-wp/protobuf-net.xml",
+ "lib/sl4/protobuf-net.dll",
+ "lib/sl4/protobuf-net.pdb",
+ "lib/sl4/protobuf-net.xml",
+ "lib/sl4-windowsphone71/protobuf-net.dll",
+ "lib/sl4-windowsphone71/protobuf-net.pdb",
+ "lib/sl4-windowsphone71/protobuf-net.xml",
+ "lib/windowsphone8/protobuf-net.dll",
+ "lib/windowsphone8/protobuf-net.pdb",
+ "lib/windowsphone8/protobuf-net.xml"
+ ]
+ },
+ "System.Collections.Immutable/1.1.33-beta": {
+ "serviceable": true,
+ "sha": "Qnv6M/BRf0w1xNoD5tH7V+jK0kdO+OZymwQS5Lj6FALt3AZMGVeJs+lHXi1PsKFll67UtGY+I7r8WDhRzspXCA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ]
+ }
+ },
+ "files": [
+ "License-Stable.rtf",
+ "System.Collections.Immutable.1.1.33-beta.nupkg",
+ "System.Collections.Immutable.1.1.33-beta.nupkg.sha512",
+ "System.Collections.Immutable.nuspec",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml"
+ ]
+ },
+ "System.Reflection.Metadata/1.0.18-beta": {
+ "serviceable": true,
+ "sha": "4PtC2U6seQthZMvXvGTxXZUqlF0oV9jzYNTkG0Yo/D6cLO5AH3lrxh2djGyKsDYnAZjBCoyA/z3vHRCeaBEp4w==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Collections.Immutable": "1.1.33-beta"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Collections.Immutable": "1.1.33-beta"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ]
+ }
+ },
+ "files": [
+ "License-Stable.rtf",
+ "System.Reflection.Metadata.1.0.18-beta.nupkg",
+ "System.Reflection.Metadata.1.0.18-beta.nupkg.sha512",
+ "System.Reflection.Metadata.nuspec",
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll",
+ "lib/portable-net45+win8/System.Reflection.Metadata.xml"
+ ]
+ },
+ "xunit/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "qTzY4x9uJ+CXDpS7/mm+rmz4YvpwY4IwTgRs6bk9R71G2yXneuuSJ+XaZ5V8ytGHgXeIWfwp3h4sg8uRi2GNxw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.core": "[2.1.0-beta2-build2981]",
+ "xunit.assert": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.core": "[2.1.0-beta2-build2981]",
+ "xunit.assert": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "xunit.2.1.0-beta2-build2981.nupkg",
+ "xunit.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.nuspec"
+ ]
+ },
+ "xunit.abstractions/2.0.0": {
+ "serviceable": false,
+ "sha": "NAdxKQRzuLnCZ0g++x6i87/8rMBpQoRiRlRNLAqfODm2zJPbteHRoSER3DXfxnqrHXyBJT8rFaZ8uveBeQyaMA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net35/xunit.abstractions.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net35/xunit.abstractions.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net35/xunit.abstractions.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net35/xunit.abstractions.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.abstractions.2.0.0.nupkg",
+ "xunit.abstractions.2.0.0.nupkg.sha512",
+ "xunit.abstractions.nuspec",
+ "lib/net35/xunit.abstractions.dll",
+ "lib/net35/xunit.abstractions.xml",
+ "lib/portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.abstractions.dll",
+ "lib/portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.abstractions.xml"
+ ]
+ },
+ "xunit.assert/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "jxJ7novf8W3LJweqThxddbS1burh8ptXu7mhSHbu4irVKuRWJ6hZpmXX9aIKhvfbBlm7b6HLtTR0WK0VOwaHXg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.assert.2.1.0-beta2-build2981.nupkg",
+ "xunit.assert.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.assert.nuspec",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.pdb",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.xml"
+ ]
+ },
+ "xunit.core/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "yxaLG6iKjRxx6UlY1XM0uUshzBb9vVHf9rBnHext1bjS3nG7C2C2To+jQYyR8iwvLOq1HyKi3e/KBlgEgSkxyA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.extensibility.core": "[2.1.0-beta2-build2981]",
+ "xunit.extensibility.execution": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.extensibility.core": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "xunit.core.2.1.0-beta2-build2981.nupkg",
+ "xunit.core.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.core.nuspec",
+ "build/monoandroid/xunit.core.props",
+ "build/monoandroid/xunit.execution.MonoAndroid.dll",
+ "build/monotouch/xunit.core.props",
+ "build/monotouch/xunit.execution.MonoTouch.dll",
+ "build/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.props",
+ "build/portable-win81+wpa81/xunit.core.props",
+ "build/portable-win81+wpa81/xunit.core.targets",
+ "build/portable-win81+wpa81/xunit.execution.universal.dll",
+ "build/portable-win81+wpa81/xunit.execution.universal.pri",
+ "build/win8/xunit.core.props",
+ "build/win8/xunit.core.targets",
+ "build/win8/xunit.execution.win8.dll",
+ "build/wp8/xunit.core.props",
+ "build/wp8/xunit.core.targets",
+ "build/wp8/xunit.execution.wp8.dll",
+ "build/Xamarin.iOS/xunit.core.props",
+ "build/Xamarin.iOS/xunit.execution.iOS-Universal.dll",
+ "build/_Desktop/xunit.execution.desktop.dll"
+ ]
+ },
+ "xunit.extensibility.core/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "Q6ilaa1rwI1S8R+/5bxiWPIFCsqRfz63XFMJz1AAUDWdw4nL2MIDjQzbUvFJ77KWocQVDyqasVo679s2+Ex8dQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.abstractions": "[2.0.0]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.abstractions": "[2.0.0]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.extensibility.core.2.1.0-beta2-build2981.nupkg",
+ "xunit.extensibility.core.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.extensibility.core.nuspec",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll.tdnet",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.pdb",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.xml",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.runner.tdnet.dll",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.runner.utility.desktop.dll"
+ ]
+ },
+ "xunit.extensibility.execution/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "FCD7WyGybb/svGjuGfjs+Gqb5EYeP5LKyO+YZRxmSrWvHw55+T3P/kdmqO/84Rx0DAMmnh83CBifk51p9NrD4A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.extensibility.core": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [
+ "Microsoft.CSharp",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "System.Collections",
+ "System.Reflection",
+ "System.Runtime",
+ "System.Threading.Tasks"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/xunit.execution.dnx.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/xunit.execution.dnx.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.extensibility.core": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/xunit.execution.desktop.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/xunit.execution.desktop.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.extensibility.execution.2.1.0-beta2-build2981.nupkg",
+ "xunit.extensibility.execution.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.extensibility.execution.nuspec",
+ "lib/dnx451/xunit.execution.dnx.dll",
+ "lib/dnx451/xunit.execution.dnx.pdb",
+ "lib/dnx451/xunit.execution.dnx.xml",
+ "lib/dnxcore50/xunit.execution.dnx.dll",
+ "lib/dnxcore50/xunit.execution.dnx.pdb",
+ "lib/dnxcore50/xunit.execution.dnx.xml",
+ "lib/monoandroid/xunit.execution.MonoAndroid.dll",
+ "lib/monoandroid/xunit.execution.MonoAndroid.pdb",
+ "lib/monoandroid/xunit.execution.MonoAndroid.xml",
+ "lib/monotouch/xunit.execution.MonoTouch.dll",
+ "lib/monotouch/xunit.execution.MonoTouch.pdb",
+ "lib/monotouch/xunit.execution.MonoTouch.xml",
+ "lib/net45/xunit.execution.desktop.dll",
+ "lib/net45/xunit.execution.desktop.pdb",
+ "lib/net45/xunit.execution.desktop.xml",
+ "lib/portable-wpa81+win81/xunit.execution.universal.dll",
+ "lib/portable-wpa81+win81/xunit.execution.universal.pdb",
+ "lib/portable-wpa81+win81/xunit.execution.universal.pri",
+ "lib/portable-wpa81+win81/xunit.execution.universal.xml",
+ "lib/win8/xunit.execution.win8.dll",
+ "lib/win8/xunit.execution.win8.pdb",
+ "lib/win8/xunit.execution.win8.xml",
+ "lib/wp8/xunit.execution.wp8.dll",
+ "lib/wp8/xunit.execution.wp8.pdb",
+ "lib/wp8/xunit.execution.wp8.xml",
+ "lib/Xamarin.iOS/xunit.execution.iOS-Universal.dll",
+ "lib/Xamarin.iOS/xunit.execution.iOS-Universal.pdb",
+ "lib/Xamarin.iOS/xunit.execution.iOS-Universal.xml"
+ ]
+ },
+ "xunit.runner.dnx/2.1.0-beta2-build79": {
+ "serviceable": false,
+ "sha": "RXeHTGiII/oOYLhFdNygRbspjV+PprxIosHOO/1fv3VBrLqqpPyOHnJWKG4hLYK2v4p0BT+KhrRduLorS8YLSQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.TestAdapter": "1.0.0-beta4",
+ "Microsoft.Framework.TestHost": "1.0.0-beta4",
+ "xunit.runner.utility": "2.1.0-beta2-build2981"
+ },
+ "frameworkAssemblies": [
+ "System.Collections",
+ "System.ObjectModel",
+ "System.Reflection",
+ "System.Runtime",
+ "System.Text.RegularExpressions",
+ "System.Xml",
+ "System.Xml.Linq",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/xunit.runner.dnx.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/xunit.runner.dnx.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "xunit.runner.dnx.2.1.0-beta2-build79.nupkg",
+ "xunit.runner.dnx.2.1.0-beta2-build79.nupkg.sha512",
+ "xunit.runner.dnx.nuspec",
+ "app/project.json",
+ "app/xunit",
+ "app/xunit.cmd",
+ "lib/dnx451/xunit.runner.dnx.dll",
+ "lib/dnx451/xunit.runner.dnx.xml",
+ "lib/dnxcore50/xunit.runner.dnx.dll",
+ "lib/dnxcore50/xunit.runner.dnx.xml"
+ ]
+ },
+ "xunit.runner.utility/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "g7jIEcA3ghXVwPAqy55sqbLXnpqEjmCoup5DnqpRVdz7JL2vEQlO4ERJyGx7zRO46iJnwdVWHbHVT4N1bHbeiQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.abstractions": "[2.0.0]"
+ },
+ "frameworkAssemblies": [
+ "Microsoft.CSharp",
+ "mscorlib",
+ "System",
+ "System.Collections",
+ "System.Core",
+ "System.Reflection",
+ "System.Runtime",
+ "System.Web",
+ "System.Xml"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/xunit.runner.utility.dnx.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/xunit.runner.utility.dnx.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.abstractions": "[2.0.0]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net35/xunit.runner.utility.desktop.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net35/xunit.runner.utility.desktop.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.runner.utility.2.1.0-beta2-build2981.nupkg",
+ "xunit.runner.utility.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.runner.utility.nuspec",
+ "lib/dnx451/xunit.runner.utility.dnx.dll",
+ "lib/dnx451/xunit.runner.utility.dnx.pdb",
+ "lib/dnx451/xunit.runner.utility.dnx.xml",
+ "lib/dnxcore50/xunit.runner.utility.dnx.dll",
+ "lib/dnxcore50/xunit.runner.utility.dnx.pdb",
+ "lib/dnxcore50/xunit.runner.utility.dnx.xml",
+ "lib/monoandroid/xunit.runner.utility.MonoAndroid.dll",
+ "lib/monoandroid/xunit.runner.utility.MonoAndroid.pdb",
+ "lib/monoandroid/xunit.runner.utility.MonoAndroid.xml",
+ "lib/monotouch/xunit.runner.utility.MonoTouch.dll",
+ "lib/monotouch/xunit.runner.utility.MonoTouch.pdb",
+ "lib/monotouch/xunit.runner.utility.MonoTouch.xml",
+ "lib/net35/xunit.runner.utility.desktop.dll",
+ "lib/net35/xunit.runner.utility.desktop.pdb",
+ "lib/net35/xunit.runner.utility.desktop.xml",
+ "lib/portable-wpa81+win81/xunit.runner.utility.universal.dll",
+ "lib/portable-wpa81+win81/xunit.runner.utility.universal.pdb",
+ "lib/portable-wpa81+win81/xunit.runner.utility.universal.pri",
+ "lib/portable-wpa81+win81/xunit.runner.utility.universal.xml",
+ "lib/win8/xunit.runner.utility.win8.dll",
+ "lib/win8/xunit.runner.utility.win8.pdb",
+ "lib/win8/xunit.runner.utility.win8.xml",
+ "lib/wp8/xunit.runner.utility.wp8.dll",
+ "lib/wp8/xunit.runner.utility.wp8.pdb",
+ "lib/wp8/xunit.runner.utility.wp8.xml",
+ "lib/Xamarin.iOS/xunit.runner.utility.iOS-Universal.dll",
+ "lib/Xamarin.iOS/xunit.runner.utility.iOS-Universal.pdb",
+ "lib/Xamarin.iOS/xunit.runner.utility.iOS-Universal.xml"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/OpenChain.Server.Tests/LedgerPathTests.cs b/test/OpenChain.Server.Tests/LedgerPathTests.cs
new file mode 100644
index 0000000..8ad813f
--- /dev/null
+++ b/test/OpenChain.Server.Tests/LedgerPathTests.cs
@@ -0,0 +1,66 @@
+using Xunit;
+
+namespace OpenChain.Server.Tests
+{
+ // This project can output the Class library as a NuGet Package.
+ // To enable this option, right-click on the project and select the Properties menu item. In the Build tab select "Produce outputs on build".
+ public class LedgerPathTests
+ {
+ [Fact]
+ public void TryParse_Success()
+ {
+ // Normal case
+ LedgerPath path;
+ bool result = LedgerPath.TryParse("/abc/def", out path);
+
+ Assert.Equal(true, result);
+ Assert.Equal("/abc/def", path.FullPath);
+ Assert.Equal(false, path.IsDirectory);
+ Assert.Equal(new[] { "abc", "def" }, path.Segments);
+
+ // Directory
+ result = LedgerPath.TryParse("/abc/def/", out path);
+
+ Assert.Equal(true, result);
+ Assert.Equal("/abc/def/", path.FullPath);
+ Assert.Equal(true, path.IsDirectory);
+ Assert.Equal(new[] { "abc", "def" }, path.Segments);
+
+ // Root
+ result = LedgerPath.TryParse("/", out path);
+
+ Assert.Equal(true, result);
+ Assert.Equal("/", path.FullPath);
+ Assert.Equal(true, path.IsDirectory);
+ Assert.Equal(new string[] { }, path.Segments);
+
+ // Unicode characters
+ result = LedgerPath.TryParse("/abc%20c d/ef❤ ☀ ☆ ☂ ☻", out path);
+
+ Assert.Equal(true, result);
+ Assert.Equal("/abc%20c d/ef❤ ☀ ☆ ☂ ☻", path.FullPath);
+ Assert.Equal(false, path.IsDirectory);
+ Assert.Equal(new[] { "abc%20c d", "ef❤ ☀ ☆ ☂ ☻" }, path.Segments);
+ }
+
+ [Theory]
+ // Missing leading slash
+ [InlineData("abc/def")]
+ [InlineData("abc")]
+ // Null character
+ [InlineData("/abc" + "\x000")]
+ [InlineData("")]
+ // Empty segment
+ [InlineData("/abc//def")]
+ [InlineData("/abc/def//")]
+ public void TryParse_Invalid(string value)
+ {
+ // Missing leading slash
+ LedgerPath path;
+ bool result = LedgerPath.TryParse(value, out path);
+
+ Assert.Equal(false, result);
+ Assert.Equal(null, path);
+ }
+ }
+}
diff --git a/test/OpenChain.Server.Tests/OpenChain.Server.Tests.xproj b/test/OpenChain.Server.Tests/OpenChain.Server.Tests.xproj
new file mode 100644
index 0000000..3ac77fa
--- /dev/null
+++ b/test/OpenChain.Server.Tests/OpenChain.Server.Tests.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ 91b5c8b9-602c-4843-a2be-da82b3f7449b
+ OpenChain.Server.Tests
+ ..\artifacts\obj\$(MSBuildProjectName)
+ ..\artifacts\bin\$(MSBuildProjectName)\
+
+
+ 2.0
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/OpenChain.Server.Tests/project.json b/test/OpenChain.Server.Tests/project.json
new file mode 100644
index 0000000..07adecc
--- /dev/null
+++ b/test/OpenChain.Server.Tests/project.json
@@ -0,0 +1,30 @@
+{
+ "version": "1.0.0-*",
+ "description": "",
+ "authors": [ "" ],
+ "tags": [ "" ],
+ "projectUrl": "",
+ "licenseUrl": "",
+
+ "dependencies": {
+ "OpenChain.Server": "1.0.0-*",
+ "xunit": "2.1.0-beta2-*",
+ "xunit.runner.dnx": "2.1.0-beta2-*"
+ },
+
+ "commands": {
+ "test": "xunit.runner.dnx"
+ },
+
+ "frameworks": {
+ "dnx451": { }
+ //"dnxcore50": {
+ // "dependencies": {
+ // "System.Collections": "4.0.10-beta-22816",
+ // "System.Linq": "4.0.0-beta-22816",
+ // "System.Threading": "4.0.10-beta-22816",
+ // "Microsoft.CSharp": "4.0.0-beta-22816"
+ // }
+ //}
+ }
+}
diff --git a/test/OpenChain.Server.Tests/project.lock.json b/test/OpenChain.Server.Tests/project.lock.json
new file mode 100644
index 0000000..f832c06
--- /dev/null
+++ b/test/OpenChain.Server.Tests/project.lock.json
@@ -0,0 +1,1229 @@
+{
+ "locked": false,
+ "version": -9998,
+ "projectFileDependencyGroups": {
+ "": [
+ "OpenChain.Server >= 1.0.0-*",
+ "xunit >= 2.1.0-beta2-*",
+ "xunit.runner.dnx >= 2.1.0-beta2-*"
+ ],
+ "DNX,Version=v4.5.1": []
+ },
+ "libraries": {
+ "Microsoft.CodeAnalysis.Analyzers/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "/4Z5es8TXCEn5sfzWz2uhUITmikgCfMAhehMJPQcSD2FRp2ooLTczDq3p4KOl+bcnsvaAu0aKrmdRgOvkrcwhw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System"
+ ],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "System"
+ ],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.Analyzers.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.Analyzers.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.Analyzers.nuspec",
+ "ThirdPartyNotices.rtf",
+ "tools/install.ps1",
+ "tools/uninstall.ps1",
+ "tools/analyzers/C#/Microsoft.CodeAnalysis.Analyzers.dll",
+ "tools/analyzers/C#/Microsoft.CodeAnalysis.CSharp.Analyzers.dll",
+ "tools/analyzers/VB.NET/Microsoft.CodeAnalysis.Analyzers.dll",
+ "tools/analyzers/VB.NET/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Common/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "7ALXqeJxiEMgnSST2qlWMThc5CIhJNFsUKYITIXXXj7gf8mF+ktEuKgUE7NWePzUgi0gq/2WmBX/4yWJuF1j6w==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Collections.Immutable": "[1.1.33-beta]",
+ "System.Reflection.Metadata": "[1.0.18-beta]",
+ "Microsoft.CodeAnalysis.Analyzers": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Collections.Immutable": "[1.1.33-beta]",
+ "System.Reflection.Metadata": "[1.0.18-beta]",
+ "Microsoft.CodeAnalysis.Analyzers": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.Common.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.Common.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.Common.nuspec",
+ "ThirdPartyNotices.rtf",
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.Desktop.xml",
+ "lib/net45/Microsoft.CodeAnalysis.dll",
+ "lib/net45/Microsoft.CodeAnalysis.xml",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.dll",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.xml"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp/1.0.0-rc2": {
+ "serviceable": false,
+ "sha": "wsj0BdWRY+fsUINMEQ+uanN0pWMAMj2z0UiJKjwoUo/Xbrk7PqGklzpOB7lvlESHjO8+Eaw71PQnml6j7m7rdQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[1.0.0-rc2]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.CodeAnalysis.CSharp.1.0.0-rc2.nupkg",
+ "Microsoft.CodeAnalysis.CSharp.1.0.0-rc2.nupkg.sha512",
+ "Microsoft.CodeAnalysis.CSharp.nuspec",
+ "ThirdPartyNotices.rtf",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.Desktop.xml",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/net45/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/portable-net45+win8/Microsoft.CodeAnalysis.CSharp.xml"
+ ]
+ },
+ "Microsoft.Framework.ApplicationHost/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "U7frhgsqolI+AMUrX44WNgV7Xyoxj8UtttE21pkD5Wfeubo1mZyhtJUvcMN4zxAPCjFqdOfKizWfcEI+mZ0Rtg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.ApplicationHost.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.ApplicationHost.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.ApplicationHost.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.ApplicationHost.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.ApplicationHost.nuspec",
+ "lib/dnx451/Microsoft.Framework.ApplicationHost.dll",
+ "lib/dnx451/Microsoft.Framework.ApplicationHost.xml",
+ "lib/dnxcore50/Microsoft.Framework.ApplicationHost.dll",
+ "lib/dnxcore50/Microsoft.Framework.ApplicationHost.xml"
+ ]
+ },
+ "Microsoft.Framework.CommandLineUtils/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "sWFw8wo77BRWAzoS50mgDUzBVXkRAZySYSaIFfpk3W5oJYmjcFt0SHpGJoVbIO3ZcKMORYvrxgnwNXx1p0ZCxQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.CommandLineUtils.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.CommandLineUtils.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.CommandLineUtils.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.CommandLineUtils.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.CommandLineUtils.nuspec",
+ "lib/dnx451/Microsoft.Framework.CommandLineUtils.dll",
+ "lib/dnx451/Microsoft.Framework.CommandLineUtils.xml",
+ "lib/dnxcore50/Microsoft.Framework.CommandLineUtils.dll",
+ "lib/dnxcore50/Microsoft.Framework.CommandLineUtils.xml",
+ "shared/AnsiConsole.cs",
+ "shared/CommandArgument.cs",
+ "shared/CommandLineApplication.cs",
+ "shared/CommandOption.cs",
+ "shared/CommandOptionType.cs"
+ ]
+ },
+ "Microsoft.Framework.DependencyInjection.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "qbBGymgVdlrJZhJFg+35JaA0Tp8DYeFrDwv1Q3Di9hRWLZ3rAE7bvsnP+fmuo0XGlZDVXfGjINvtryFPyoQ58g==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.DependencyInjection.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.DependencyInjection.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.DependencyInjection.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/net45/Microsoft.Framework.DependencyInjection.Interfaces.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.DependencyInjection.Interfaces.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.DependencyInjection.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Logging/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "aFlG7h0WMJn+TgKIqoDkXh6LOquu7e6HKCOSrLvAaOp93qOWycz0kNQ0oGXVHYP6QebAjHgz9UffcqeCqeWN1Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Collections.Concurrent",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "Microsoft.Framework.DependencyInjection.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Logging.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "System.Collections.Concurrent",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Logging.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Logging.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Logging.nuspec",
+ "lib/dnx451/Microsoft.Framework.Logging.dll",
+ "lib/dnx451/Microsoft.Framework.Logging.xml",
+ "lib/dnxcore50/Microsoft.Framework.Logging.dll",
+ "lib/dnxcore50/Microsoft.Framework.Logging.xml",
+ "lib/net45/Microsoft.Framework.Logging.dll",
+ "lib/net45/Microsoft.Framework.Logging.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.xml"
+ ]
+ },
+ "Microsoft.Framework.Logging.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "OK8v8gpDYfH01Gy1tvT4mS1r6ZWMAz1HXo872v7pswishE6oyTQwC44BpYM+Obq8GW7E6Ai/Vj3wE/CuLUDJGA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll"
+ ]
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Logging.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Logging.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Logging.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/net45/Microsoft.Framework.Logging.Interfaces.xml",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.Interfaces.dll",
+ "lib/portable-net451+win81+wpa81/Microsoft.Framework.Logging.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "R4Ob2q5tUb6ocw1itBO84HL8gXZMu52mi8jfxwtXoJU42gHt3ouBTEHX1WCzqcgLNGrIh89mjFV8iFTNShKXdA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Reflection.Metadata": "1.0.18-beta",
+ "Microsoft.CodeAnalysis.CSharp": "1.0.0-rc2",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Loader": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Newtonsoft.Json": "6.0.6"
+ },
+ "frameworkAssemblies": [
+ "System.Collections",
+ "System.Text.Encoding",
+ "System.Threading.Tasks",
+ "System.IO",
+ "System.IO.Compression",
+ "System.IO.Compression.FileSystem",
+ "System.Runtime",
+ "System.Xml",
+ "System.Xml.Linq",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "RrZdqvUm8QbgxnZQuafYGo6NezoKx7VqAfAtHVzoKBm3GSV8xlPh90u1fsGhNCv37xJNk5PuRCa4Mq27ko7pLw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Loader/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "XpLguvjD4bfhE2fu1SWaOXjUkVcKTRW8x1mZjPpxns250pcTg1v/sG70fmZKtoiaXHYZFzTai2SRtqfBB20hOA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Loader.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Loader.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Loader.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Loader.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Loader.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Loader.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Loader.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Loader.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Loader.xml"
+ ]
+ },
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces/1.0.0-beta4": {
+ "serviceable": true,
+ "sha": "iZNGlqBAWIT2zWI1Z4AWpx9loBvplEgyHp3lRfBJX30npClf9d3fMRRlO1K9wx9ho0tMLBU8CSXpUc/21Knm6Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Microsoft.CodeAnalysis.CSharp": "1.0.0-rc2"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.Runtime.Roslyn.Interfaces.nuspec",
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll",
+ "lib/dnx451/Microsoft.Framework.Runtime.Roslyn.Interfaces.xml",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Roslyn.Interfaces.dll",
+ "lib/dnxcore50/Microsoft.Framework.Runtime.Roslyn.Interfaces.xml"
+ ]
+ },
+ "Microsoft.Framework.TestAdapter/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "s4vPz/frohp6tyjTY9cTOHqZLotEdiV5GScHqdpTxFc9cWG3coyf03WYUQx6Kia5o7CWRiAYURqF5pr+9gTD7A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.TestAdapter.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.TestAdapter.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.TestAdapter.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.TestAdapter.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.TestAdapter.nuspec",
+ "lib/dnx451/Microsoft.Framework.TestAdapter.dll",
+ "lib/dnx451/Microsoft.Framework.TestAdapter.xml",
+ "lib/dnxcore50/Microsoft.Framework.TestAdapter.dll",
+ "lib/dnxcore50/Microsoft.Framework.TestAdapter.xml"
+ ]
+ },
+ "Microsoft.Framework.TestHost/1.0.0-beta4": {
+ "serviceable": false,
+ "sha": "At1dKPJGTP3P6b9wNoyT4HkwpiJjUgBE9khzltAMY5U2va3csdPrCZPnU/jb4LA7RWGMkt34s7leB0w/DYovAQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.TestAdapter": "1.0.0-beta4",
+ "Microsoft.Framework.ApplicationHost": "1.0.0-beta4",
+ "Microsoft.Framework.CommandLineUtils": "1.0.0-beta4",
+ "Microsoft.Framework.Logging": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime": "1.0.0-beta4",
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Newtonsoft.Json": "6.0.6"
+ },
+ "frameworkAssemblies": [
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/Microsoft.Framework.TestHost.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/Microsoft.Framework.TestHost.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "Microsoft.Framework.TestHost.1.0.0-beta4.nupkg",
+ "Microsoft.Framework.TestHost.1.0.0-beta4.nupkg.sha512",
+ "Microsoft.Framework.TestHost.nuspec",
+ "app/project.json",
+ "lib/dnx451/Microsoft.Framework.TestHost.dll",
+ "lib/dnx451/Microsoft.Framework.TestHost.xml",
+ "lib/dnxcore50/Microsoft.Framework.TestHost.dll",
+ "lib/dnxcore50/Microsoft.Framework.TestHost.xml"
+ ]
+ },
+ "MongoDB.Bson/2.0.1": {
+ "serviceable": false,
+ "sha": "dr8KYpTt5VIqGWQ5Bzud2BA/lH2csIfL5WLrfc90UzSWGF378ugvEo5tx4J0eZohvHzsRRiMS2YTmJOTRN+iYg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/MongoDB.Bson.dll"
+ ]
+ }
+ },
+ "files": [
+ "License.rtf",
+ "MongoDB.Bson.2.0.1.nupkg",
+ "MongoDB.Bson.2.0.1.nupkg.sha512",
+ "MongoDB.Bson.nuspec",
+ "lib/net45/MongoDB.Bson.dll",
+ "lib/net45/MongoDB.Bson.XML"
+ ]
+ },
+ "Newtonsoft.Json/6.0.6": {
+ "serviceable": false,
+ "sha": "w26uZNyCG5VeoKiEOJ4+9/o8koSofLKwHl7WLreIcp0U6r57L7WiRXmjp8MTKFw6dYNZ9AE0lw69WYbIhUsU9Q==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/Newtonsoft.Json.dll"
+ ]
+ }
+ },
+ "files": [
+ "Newtonsoft.Json.6.0.6.nupkg",
+ "Newtonsoft.Json.6.0.6.nupkg.sha512",
+ "Newtonsoft.Json.nuspec",
+ "lib/net20/Newtonsoft.Json.dll",
+ "lib/net20/Newtonsoft.Json.xml",
+ "lib/net35/Newtonsoft.Json.dll",
+ "lib/net35/Newtonsoft.Json.xml",
+ "lib/net40/Newtonsoft.Json.dll",
+ "lib/net40/Newtonsoft.Json.xml",
+ "lib/net45/Newtonsoft.Json.dll",
+ "lib/net45/Newtonsoft.Json.xml",
+ "lib/netcore45/Newtonsoft.Json.dll",
+ "lib/netcore45/Newtonsoft.Json.xml",
+ "lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll",
+ "lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.xml",
+ "lib/portable-net45+wp80+win8+wpa81+aspnetcore50/Newtonsoft.Json.dll",
+ "lib/portable-net45+wp80+win8+wpa81+aspnetcore50/Newtonsoft.Json.xml",
+ "tools/install.ps1"
+ ]
+ },
+ "protobuf-net/2.0.0.668": {
+ "serviceable": false,
+ "sha": "Lgj+Kf1+RV0utKxX9u1WEcymPGrbWrj/AwFmFADFLLa/LLdc1ji2MIGcecFRAGUu6UO8BRbdjZAIYWvLlN1B/A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net40/protobuf-net.dll"
+ ]
+ }
+ },
+ "files": [
+ "protobuf-net.2.0.0.668.nupkg",
+ "protobuf-net.2.0.0.668.nupkg.sha512",
+ "protobuf-net.nuspec",
+ "lib/net20/protobuf-net.dll",
+ "lib/net20/protobuf-net.pdb",
+ "lib/net20/protobuf-net.xml",
+ "lib/net20-cf/protobuf-net.dll",
+ "lib/net20-cf/protobuf-net.pdb",
+ "lib/net20-cf/protobuf-net.xml",
+ "lib/net30/protobuf-net.dll",
+ "lib/net30/protobuf-net.pdb",
+ "lib/net30/protobuf-net.xml",
+ "lib/net35/protobuf-net.dll",
+ "lib/net35/protobuf-net.pdb",
+ "lib/net35/protobuf-net.xml",
+ "lib/net35-cf/protobuf-net.dll",
+ "lib/net35-cf/protobuf-net.pdb",
+ "lib/net35-cf/protobuf-net.xml",
+ "lib/net40/protobuf-net.dll",
+ "lib/net40/protobuf-net.pdb",
+ "lib/net40/protobuf-net.xml",
+ "lib/net40-cf/protobuf-net.dll",
+ "lib/net40-cf/protobuf-net.pdb",
+ "lib/net40-cf/protobuf-net.xml",
+ "lib/netcore45/protobuf-net.dll",
+ "lib/netcore45/protobuf-net.pdb",
+ "lib/netcore45/protobuf-net.pri",
+ "lib/netcore45/protobuf-net.XML",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.pdb",
+ "lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml",
+ "lib/sl3-wp/protobuf-net.dll",
+ "lib/sl3-wp/protobuf-net.pdb",
+ "lib/sl3-wp/protobuf-net.xml",
+ "lib/sl4/protobuf-net.dll",
+ "lib/sl4/protobuf-net.pdb",
+ "lib/sl4/protobuf-net.xml",
+ "lib/sl4-windowsphone71/protobuf-net.dll",
+ "lib/sl4-windowsphone71/protobuf-net.pdb",
+ "lib/sl4-windowsphone71/protobuf-net.xml",
+ "lib/windowsphone8/protobuf-net.dll",
+ "lib/windowsphone8/protobuf-net.pdb",
+ "lib/windowsphone8/protobuf-net.xml"
+ ]
+ },
+ "System.Collections.Immutable/1.1.33-beta": {
+ "serviceable": true,
+ "sha": "Qnv6M/BRf0w1xNoD5tH7V+jK0kdO+OZymwQS5Lj6FALt3AZMGVeJs+lHXi1PsKFll67UtGY+I7r8WDhRzspXCA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll"
+ ]
+ }
+ },
+ "files": [
+ "License-Stable.rtf",
+ "System.Collections.Immutable.1.1.33-beta.nupkg",
+ "System.Collections.Immutable.1.1.33-beta.nupkg.sha512",
+ "System.Collections.Immutable.nuspec",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml"
+ ]
+ },
+ "System.Reflection.Metadata/1.0.18-beta": {
+ "serviceable": true,
+ "sha": "4PtC2U6seQthZMvXvGTxXZUqlF0oV9jzYNTkG0Yo/D6cLO5AH3lrxh2djGyKsDYnAZjBCoyA/z3vHRCeaBEp4w==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "System.Collections.Immutable": "1.1.33-beta"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "System.Collections.Immutable": "1.1.33-beta"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll"
+ ]
+ }
+ },
+ "files": [
+ "License-Stable.rtf",
+ "System.Reflection.Metadata.1.0.18-beta.nupkg",
+ "System.Reflection.Metadata.1.0.18-beta.nupkg.sha512",
+ "System.Reflection.Metadata.nuspec",
+ "lib/portable-net45+win8/System.Reflection.Metadata.dll",
+ "lib/portable-net45+win8/System.Reflection.Metadata.xml"
+ ]
+ },
+ "xunit/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "qTzY4x9uJ+CXDpS7/mm+rmz4YvpwY4IwTgRs6bk9R71G2yXneuuSJ+XaZ5V8ytGHgXeIWfwp3h4sg8uRi2GNxw==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.core": "[2.1.0-beta2-build2981]",
+ "xunit.assert": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.core": "[2.1.0-beta2-build2981]",
+ "xunit.assert": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "xunit.2.1.0-beta2-build2981.nupkg",
+ "xunit.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.nuspec"
+ ]
+ },
+ "xunit.abstractions/2.0.0": {
+ "serviceable": false,
+ "sha": "NAdxKQRzuLnCZ0g++x6i87/8rMBpQoRiRlRNLAqfODm2zJPbteHRoSER3DXfxnqrHXyBJT8rFaZ8uveBeQyaMA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net35/xunit.abstractions.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net35/xunit.abstractions.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net35/xunit.abstractions.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net35/xunit.abstractions.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.abstractions.2.0.0.nupkg",
+ "xunit.abstractions.2.0.0.nupkg.sha512",
+ "xunit.abstractions.nuspec",
+ "lib/net35/xunit.abstractions.dll",
+ "lib/net35/xunit.abstractions.xml",
+ "lib/portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.abstractions.dll",
+ "lib/portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.abstractions.xml"
+ ]
+ },
+ "xunit.assert/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "jxJ7novf8W3LJweqThxddbS1burh8ptXu7mhSHbu4irVKuRWJ6hZpmXX9aIKhvfbBlm7b6HLtTR0WK0VOwaHXg==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.assert.2.1.0-beta2-build2981.nupkg",
+ "xunit.assert.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.assert.nuspec",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.dll",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.pdb",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.assert.xml"
+ ]
+ },
+ "xunit.core/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "yxaLG6iKjRxx6UlY1XM0uUshzBb9vVHf9rBnHext1bjS3nG7C2C2To+jQYyR8iwvLOq1HyKi3e/KBlgEgSkxyA==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.extensibility.core": "[2.1.0-beta2-build2981]",
+ "xunit.extensibility.execution": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.extensibility.core": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "xunit.core.2.1.0-beta2-build2981.nupkg",
+ "xunit.core.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.core.nuspec",
+ "build/monoandroid/xunit.core.props",
+ "build/monoandroid/xunit.execution.MonoAndroid.dll",
+ "build/monotouch/xunit.core.props",
+ "build/monotouch/xunit.execution.MonoTouch.dll",
+ "build/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.props",
+ "build/portable-win81+wpa81/xunit.core.props",
+ "build/portable-win81+wpa81/xunit.core.targets",
+ "build/portable-win81+wpa81/xunit.execution.universal.dll",
+ "build/portable-win81+wpa81/xunit.execution.universal.pri",
+ "build/win8/xunit.core.props",
+ "build/win8/xunit.core.targets",
+ "build/win8/xunit.execution.win8.dll",
+ "build/wp8/xunit.core.props",
+ "build/wp8/xunit.core.targets",
+ "build/wp8/xunit.execution.wp8.dll",
+ "build/Xamarin.iOS/xunit.core.props",
+ "build/Xamarin.iOS/xunit.execution.iOS-Universal.dll",
+ "build/_Desktop/xunit.execution.desktop.dll"
+ ]
+ },
+ "xunit.extensibility.core/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "Q6ilaa1rwI1S8R+/5bxiWPIFCsqRfz63XFMJz1AAUDWdw4nL2MIDjQzbUvFJ77KWocQVDyqasVo679s2+Ex8dQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.abstractions": "[2.0.0]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.abstractions": "[2.0.0]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll"
+ ],
+ "compileAssemblies": [
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.extensibility.core.2.1.0-beta2-build2981.nupkg",
+ "xunit.extensibility.core.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.extensibility.core.nuspec",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.dll.tdnet",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.pdb",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.core.xml",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.runner.tdnet.dll",
+ "lib/portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.runner.utility.desktop.dll"
+ ]
+ },
+ "xunit.extensibility.execution/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "FCD7WyGybb/svGjuGfjs+Gqb5EYeP5LKyO+YZRxmSrWvHw55+T3P/kdmqO/84Rx0DAMmnh83CBifk51p9NrD4A==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.extensibility.core": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [
+ "Microsoft.CSharp",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "System.Collections",
+ "System.Reflection",
+ "System.Runtime",
+ "System.Threading.Tasks"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/xunit.execution.dnx.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/xunit.execution.dnx.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.extensibility.core": "[2.1.0-beta2-build2981]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net45/xunit.execution.desktop.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net45/xunit.execution.desktop.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.extensibility.execution.2.1.0-beta2-build2981.nupkg",
+ "xunit.extensibility.execution.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.extensibility.execution.nuspec",
+ "lib/dnx451/xunit.execution.dnx.dll",
+ "lib/dnx451/xunit.execution.dnx.pdb",
+ "lib/dnx451/xunit.execution.dnx.xml",
+ "lib/dnxcore50/xunit.execution.dnx.dll",
+ "lib/dnxcore50/xunit.execution.dnx.pdb",
+ "lib/dnxcore50/xunit.execution.dnx.xml",
+ "lib/monoandroid/xunit.execution.MonoAndroid.dll",
+ "lib/monoandroid/xunit.execution.MonoAndroid.pdb",
+ "lib/monoandroid/xunit.execution.MonoAndroid.xml",
+ "lib/monotouch/xunit.execution.MonoTouch.dll",
+ "lib/monotouch/xunit.execution.MonoTouch.pdb",
+ "lib/monotouch/xunit.execution.MonoTouch.xml",
+ "lib/net45/xunit.execution.desktop.dll",
+ "lib/net45/xunit.execution.desktop.pdb",
+ "lib/net45/xunit.execution.desktop.xml",
+ "lib/portable-wpa81+win81/xunit.execution.universal.dll",
+ "lib/portable-wpa81+win81/xunit.execution.universal.pdb",
+ "lib/portable-wpa81+win81/xunit.execution.universal.pri",
+ "lib/portable-wpa81+win81/xunit.execution.universal.xml",
+ "lib/win8/xunit.execution.win8.dll",
+ "lib/win8/xunit.execution.win8.pdb",
+ "lib/win8/xunit.execution.win8.xml",
+ "lib/wp8/xunit.execution.wp8.dll",
+ "lib/wp8/xunit.execution.wp8.pdb",
+ "lib/wp8/xunit.execution.wp8.xml",
+ "lib/Xamarin.iOS/xunit.execution.iOS-Universal.dll",
+ "lib/Xamarin.iOS/xunit.execution.iOS-Universal.pdb",
+ "lib/Xamarin.iOS/xunit.execution.iOS-Universal.xml"
+ ]
+ },
+ "xunit.runner.dnx/2.1.0-beta2-build79": {
+ "serviceable": false,
+ "sha": "RXeHTGiII/oOYLhFdNygRbspjV+PprxIosHOO/1fv3VBrLqqpPyOHnJWKG4hLYK2v4p0BT+KhrRduLorS8YLSQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
+ "Microsoft.Framework.TestAdapter": "1.0.0-beta4",
+ "Microsoft.Framework.TestHost": "1.0.0-beta4",
+ "xunit.runner.utility": "2.1.0-beta2-build2981"
+ },
+ "frameworkAssemblies": [
+ "System.Collections",
+ "System.ObjectModel",
+ "System.Reflection",
+ "System.Runtime",
+ "System.Text.RegularExpressions",
+ "System.Xml",
+ "System.Xml.Linq",
+ "mscorlib",
+ "System",
+ "System.Core",
+ "Microsoft.CSharp"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/xunit.runner.dnx.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/xunit.runner.dnx.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {},
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [],
+ "compileAssemblies": []
+ }
+ },
+ "files": [
+ "xunit.runner.dnx.2.1.0-beta2-build79.nupkg",
+ "xunit.runner.dnx.2.1.0-beta2-build79.nupkg.sha512",
+ "xunit.runner.dnx.nuspec",
+ "app/project.json",
+ "app/xunit",
+ "app/xunit.cmd",
+ "lib/dnx451/xunit.runner.dnx.dll",
+ "lib/dnx451/xunit.runner.dnx.xml",
+ "lib/dnxcore50/xunit.runner.dnx.dll",
+ "lib/dnxcore50/xunit.runner.dnx.xml"
+ ]
+ },
+ "xunit.runner.utility/2.1.0-beta2-build2981": {
+ "serviceable": false,
+ "sha": "g7jIEcA3ghXVwPAqy55sqbLXnpqEjmCoup5DnqpRVdz7JL2vEQlO4ERJyGx7zRO46iJnwdVWHbHVT4N1bHbeiQ==",
+ "frameworks": {
+ "DNX,Version=v4.5.1": {
+ "dependencies": {
+ "xunit.abstractions": "[2.0.0]"
+ },
+ "frameworkAssemblies": [
+ "Microsoft.CSharp",
+ "mscorlib",
+ "System",
+ "System.Collections",
+ "System.Core",
+ "System.Reflection",
+ "System.Runtime",
+ "System.Web",
+ "System.Xml"
+ ],
+ "runtimeAssemblies": [
+ "lib/dnx451/xunit.runner.utility.dnx.dll"
+ ],
+ "compileAssemblies": [
+ "lib/dnx451/xunit.runner.utility.dnx.dll"
+ ]
+ },
+ ".NETFramework,Version=v4.6": {
+ "dependencies": {
+ "xunit.abstractions": "[2.0.0]"
+ },
+ "frameworkAssemblies": [],
+ "runtimeAssemblies": [
+ "lib/net35/xunit.runner.utility.desktop.dll"
+ ],
+ "compileAssemblies": [
+ "lib/net35/xunit.runner.utility.desktop.dll"
+ ]
+ }
+ },
+ "files": [
+ "xunit.runner.utility.2.1.0-beta2-build2981.nupkg",
+ "xunit.runner.utility.2.1.0-beta2-build2981.nupkg.sha512",
+ "xunit.runner.utility.nuspec",
+ "lib/dnx451/xunit.runner.utility.dnx.dll",
+ "lib/dnx451/xunit.runner.utility.dnx.pdb",
+ "lib/dnx451/xunit.runner.utility.dnx.xml",
+ "lib/dnxcore50/xunit.runner.utility.dnx.dll",
+ "lib/dnxcore50/xunit.runner.utility.dnx.pdb",
+ "lib/dnxcore50/xunit.runner.utility.dnx.xml",
+ "lib/monoandroid/xunit.runner.utility.MonoAndroid.dll",
+ "lib/monoandroid/xunit.runner.utility.MonoAndroid.pdb",
+ "lib/monoandroid/xunit.runner.utility.MonoAndroid.xml",
+ "lib/monotouch/xunit.runner.utility.MonoTouch.dll",
+ "lib/monotouch/xunit.runner.utility.MonoTouch.pdb",
+ "lib/monotouch/xunit.runner.utility.MonoTouch.xml",
+ "lib/net35/xunit.runner.utility.desktop.dll",
+ "lib/net35/xunit.runner.utility.desktop.pdb",
+ "lib/net35/xunit.runner.utility.desktop.xml",
+ "lib/portable-wpa81+win81/xunit.runner.utility.universal.dll",
+ "lib/portable-wpa81+win81/xunit.runner.utility.universal.pdb",
+ "lib/portable-wpa81+win81/xunit.runner.utility.universal.pri",
+ "lib/portable-wpa81+win81/xunit.runner.utility.universal.xml",
+ "lib/win8/xunit.runner.utility.win8.dll",
+ "lib/win8/xunit.runner.utility.win8.pdb",
+ "lib/win8/xunit.runner.utility.win8.xml",
+ "lib/wp8/xunit.runner.utility.wp8.dll",
+ "lib/wp8/xunit.runner.utility.wp8.pdb",
+ "lib/wp8/xunit.runner.utility.wp8.xml",
+ "lib/Xamarin.iOS/xunit.runner.utility.iOS-Universal.dll",
+ "lib/Xamarin.iOS/xunit.runner.utility.iOS-Universal.pdb",
+ "lib/Xamarin.iOS/xunit.runner.utility.iOS-Universal.xml"
+ ]
+ }
+ }
+}
\ No newline at end of file