├── .gitignore
├── .paket
├── Paket.Restore.targets
└── paket.exe
├── README.md
├── Uno.Tests
├── Tests.fs
├── Uno.Tests.fsproj
└── paket.references
├── Uno
├── .vs
│ └── Uno
│ │ └── v15
│ │ └── .suo
├── CommandHandler.fs
├── EventStore.fs
├── Game.fs
├── Model.fs
├── Program.fs
├── Serialization.fs
├── Uno.fsproj
└── paket.references
├── UnoCore.sln
├── build.cmd
├── paket.dependencies
└── paket.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | **/bin/
2 | **/obj/
3 | packages/
4 | paket-files/
5 | .paket/.store
6 | **~
7 | .paket/load/
8 | .vs/
9 | **.user
10 |
--------------------------------------------------------------------------------
/.paket/Paket.Restore.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
8 |
9 | true
10 | $(MSBuildThisFileDirectory)
11 | $(MSBuildThisFileDirectory)..\
12 | $(PaketRootPath)paket-files\paket.restore.cached
13 | $(PaketRootPath)paket.lock
14 | classic
15 | proj
16 | assembly
17 | native
18 | /Library/Frameworks/Mono.framework/Commands/mono
19 | mono
20 |
21 |
22 | $(PaketRootPath)paket.bootstrapper.exe
23 | $(PaketToolsPath)paket.bootstrapper.exe
24 | $([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\
25 |
26 |
27 |
28 |
29 | $(PaketRootPath)paket.exe
30 | $(PaketToolsPath)paket.exe
31 | $(PaketToolsPath)paket.exe
32 | $(_PaketBootStrapperExeDir)paket.exe
33 | paket.exe
34 |
35 |
36 | $(PaketRootPath)paket
37 | $(PaketToolsPath)paket
38 | $(PaketToolsPath)paket
39 |
40 |
41 | $(PaketRootPath)paket.exe
42 | $(PaketToolsPath)paket.exe
43 |
44 |
45 | $(PaketBootStrapperExeDir)paket.exe
46 |
47 |
48 | paket
49 |
50 |
51 | <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))
52 | dotnet "$(PaketExePath)"
53 | $(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"
54 | "$(PaketExePath)"
55 |
56 |
57 | "$(PaketBootStrapperExePath)"
58 | $(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)"
59 |
60 |
61 |
62 |
63 | true
64 | true
65 |
66 |
67 | True
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | true
79 | $(NoWarn);NU1603;NU1604;NU1605;NU1608
80 |
81 |
82 |
83 |
84 | /usr/bin/shasum "$(PaketRestoreCacheFile)" | /usr/bin/awk '{ print $1 }'
85 | /usr/bin/shasum "$(PaketLockFilePath)" | /usr/bin/awk '{ print $1 }'
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))
102 | $([System.IO.File]::ReadAllText('$(PaketLockFilePath)'))
103 | true
104 | false
105 | true
106 |
107 |
108 |
112 |
113 | true
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 | $(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).paket.references.cached
130 |
131 | $(MSBuildProjectFullPath).paket.references
132 |
133 | $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references
134 |
135 | $(MSBuildProjectDirectory)\paket.references
136 |
137 | false
138 | true
139 | true
140 | references-file-or-cache-not-found
141 |
142 |
143 |
144 |
145 | $([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)'))
146 | $([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)'))
147 | references-file
148 | false
149 |
150 |
151 |
152 |
153 | false
154 |
155 |
156 |
157 |
158 | true
159 | target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths)
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 | false
170 | true
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length)
182 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])
183 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])
184 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])
185 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5])
186 |
187 |
188 | %(PaketReferencesFileLinesInfo.PackageVersion)
189 | All
190 | runtime
191 | runtime
192 | true
193 | true
194 |
195 |
196 |
197 |
198 | $(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).paket.clitools
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 | $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0])
208 | $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1])
209 |
210 |
211 | %(PaketCliToolFileLinesInfo.PackageVersion)
212 |
213 |
214 |
215 |
219 |
220 |
221 |
222 |
223 |
224 | false
225 | $(MSBuildVersion)
226 | 15.8.0
227 |
228 |
229 |
230 |
231 |
232 | <_NuspecFilesNewLocation Include="$(BaseIntermediateOutputPath)$(Configuration)\*.nuspec"/>
233 |
234 |
235 |
236 |
237 |
238 | $(MSBuildProjectDirectory)/$(MSBuildProjectFile)
239 | true
240 | false
241 | true
242 | false
243 | true
244 | false
245 | true
246 | $(BaseIntermediateOutputPath)$(Configuration)
247 | $(BaseIntermediateOutputPath)
248 |
249 |
250 |
251 | <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.nuspec"/>
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
304 |
305 |
347 |
348 |
389 |
390 |
391 |
392 |
--------------------------------------------------------------------------------
/.paket/paket.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thinkbeforecoding/UnoCore/47ab2518334d1596c956894eb68e25b5ac071b15/.paket/paket.exe
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Uno Core
2 |
3 | This repository has moved to Codeberg: https://codeberg.org/thinkbeforecoding/UnoCore
4 |
5 | this is the dotnet core implementation base of the F# Uno Sample
6 |
--------------------------------------------------------------------------------
/Uno.Tests/Tests.fs:
--------------------------------------------------------------------------------
1 | module Tests
2 |
3 | #if INTERACTIVE
4 | #load "../.paket/load/netstandard2.0/main.group.fsx"
5 | #I "../Uno"
6 | #load "Model.fs" "Game.fs"
7 | #endif
8 |
9 | open Game
10 | open Swensen.Unquote
11 | open Xunit
12 |
13 | // Step 3:
14 | // Implement => to make the test run
15 | let (=>) events command = failwith "Not implemented"
16 |
17 | let (==) = (=)
18 |
19 |
20 | // Step 4:
21 | // Change the decide function to make this test pass
22 | []
23 | let ``04: Game should start``() =
24 | test
25 | <@ []
26 | => StartGame { Players = PlayerCount 3; FirstCard = Digit(Three, Red)}
27 | == [ GameStarted { Players = PlayerCount 3; FirstCard = Digit(Three, Red) } ] @>
28 |
29 | // Step 5:
30 | // Change the decide function to make this test pass
31 | []
32 | let ``05: Playing alone is not fun``() =
33 | raises
34 | <@
35 | []
36 | => StartGame { Players = PlayerCount 1; FirstCard = Digit( Seven, Yellow)} @>
37 |
38 | // Step 6:
39 | // What should you change to make this test pass ?
40 | []
41 | let ``06: Game should not be started twice``() =
42 | raises
43 | <@ [ GameStarted { Players= PlayerCount 2; FirstCard = Digit(Nine, Yellow) } ]
44 | => StartGame { Players = PlayerCount 3; FirstCard = Digit(Three, Red)} @>
45 |
46 |
47 | // Step 7:
48 | // Make this two tests pass... doing the simplest thing that work
49 | []
50 | let ``07a: Card with same value can be played``() =
51 | failwith "Not implemented"
52 |
53 | []
54 | let ``07b: Card with same color can be played``() =
55 | failwith "Not implemented"
56 |
57 | // Step 8:
58 | // Make this test pass
59 | []
60 | let ``08: Card can be played only once game is started``() =
61 | failwith "Not implemented"
62 |
63 | // Step 9:
64 | // What happens here ?!
65 | []
66 | let ``09: Card should be same color or same value``() =
67 | failwith "Not implemented"
68 | // ...
69 |
70 | // Step 10:
71 | // What happens here ?!
72 | []
73 | let ``10: Player should play during his turn``() =
74 | failwith "Not implemented"
75 |
76 | // Step 11:
77 | // Testing a full round
78 | []
79 | let ``11a: The after a table round, the dealer plays``() =
80 | failwith "Not implemented"
81 |
82 | []
83 | let ``11b: The after a table round, the dealer turn start``() =
84 | failwith "Not implemented"
85 | // Step 12:
86 | // Look at the evolve function...
87 | // It starts to contains logic.
88 | // Try to remove the logic from the evolve function
89 | // to put it back in the decide function
90 |
91 | // Step 13:
92 | // Make this test pass
93 | []
94 | let ``13: Player can interrupt``() =
95 | failwith "Not implemented"
96 |
97 | // Step 14:
98 | // Missing an interrupt is not concidered as playing at the wrong turn.
99 | // So what happens here ?
100 | []
101 | let ``14: Player get no penalty when missing an interrupt``() =
102 | failwith "Not implemented"
103 |
104 |
105 | // Step 15:
106 | // Uncomment the Kickback card and implement it.
107 | // The kickback changes the direction of the game.
108 |
109 |
--------------------------------------------------------------------------------
/Uno.Tests/Uno.Tests.fsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Library
4 | netcoreapp2.2
5 | true
6 |
7 |
8 |
9 | Uno.fsproj
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Uno.Tests/paket.references:
--------------------------------------------------------------------------------
1 | FSharp.Core
2 | Unquote
3 | Microsoft.NET.Test.Sdk
4 | xunit
5 | xunit.runner.visualstudio
--------------------------------------------------------------------------------
/Uno/.vs/Uno/v15/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thinkbeforecoding/UnoCore/47ab2518334d1596c956894eb68e25b5ac071b15/Uno/.vs/Uno/v15/.suo
--------------------------------------------------------------------------------
/Uno/CommandHandler.fs:
--------------------------------------------------------------------------------
1 | module CommandHandler
2 |
3 |
4 | []
5 | type StreamId = StreamId of string
6 |
7 | []
8 | type EventNumber = EventNumber of int64
9 | with
10 | static member Start = EventNumber 0L
11 |
12 |
13 | type Stream<'e> = Slice<'e> Async
14 |
15 | and Slice<'e> = Slice of 'e list * Continuation<'e>
16 |
17 | and Continuation<'e> =
18 | | Next of Stream<'e>
19 | | Last of EventNumber
20 |
21 | module EventStream =
22 |
23 | let rec fold f state (sliced: _ Stream) =
24 | async {
25 | let! (Slice (es, continuation)) = sliced
26 | let s' = List.fold f state es
27 | match continuation with
28 | | Last v -> return s',v
29 | | Next next -> return! fold f s' next }
30 |
31 |
32 | type Read<'e> = StreamId -> EventNumber -> 'e Stream
33 | type Append<'e> = StreamId -> EventNumber -> 'e list -> EventNumber Async
34 |
35 |
36 | open Game
37 |
38 | // Step 16:
39 | // Implement the command handler
40 | let handler (read: _ Read) (append: _ Append) stream command =
41 | failwith "Not implemented"
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | // let rec load initialState startVersion =
62 | // read stream startVersion
63 | // |>EventStream.fold evolve initialState
64 |
65 | // async {
66 | // let! game, version = load InitialState EventNumber.Start
67 | // match decide command game with
68 | // | Ok newEvents ->
69 | // let! _ = append stream version newEvents
70 | // return Ok()
71 | // | Error error ->
72 | // return Error error }
73 |
74 |
75 |
76 | // Step 17:
77 | // Add keep state in memory
78 | // Step 18:
79 | // Implement Snapshoting
80 |
81 |
82 | // type Agent<'t> = MailboxProcessor<'t>
83 |
84 | // module EventNumber =
85 | // let dist (EventNumber x) (EventNumber y) = x - y
86 |
87 | // let game read append loadSnapshot writeSnapshot stream =
88 | // Agent.Start (fun mailbox ->
89 | // let rec loop state version snapshotVersion =
90 | // async {
91 | // let! command, reply = mailbox.Receive()
92 | // let newEvents = decide command state
93 | // match newEvents with
94 | // |Ok newEvents ->
95 | // let! newVersion = append stream version newEvents
96 | // let newState = List.fold evolve state newEvents
97 | // reply (Ok())
98 |
99 | // let newSnapshotVersion =
100 | // if EventNumber.dist newVersion snapshotVersion > 1000L then
101 | // writeSnapshot "snap-game" newState newVersion
102 | // newVersion
103 | // else
104 | // snapshotVersion
105 |
106 | // return! loop newState newVersion newSnapshotVersion
107 | // | Error err ->
108 | // reply (Error err)
109 | // return! loop state version snapshotVersion }
110 | // let rec load initialState startVersion =
111 | // read stream startVersion
112 | // |> EventStream.fold evolve initialState
113 |
114 | // async {
115 | // let! snapshotState, snapshotVersion = loadSnapshot "snap-game"
116 | // let! state, version = load snapshotState snapshotVersion
117 | // return! loop state version snapshotVersion })
118 |
119 |
120 |
--------------------------------------------------------------------------------
/Uno/EventStore.fs:
--------------------------------------------------------------------------------
1 | module EventStore
2 |
3 | open System
4 | open EventStore.ClientAPI
5 | open Serialisation
6 | open Game
7 | open CommandHandler
8 |
9 | let utf8 = System.Text.Encoding.UTF8
10 |
11 | let ofEvent (event: ResolvedEvent) : SerializedEvent =
12 | let eventType = event.Event.EventType
13 | let data = utf8.GetString(event.Event.Data)
14 | eventType, data
15 |
16 | let toEvent ((eventType, data): SerializedEvent) =
17 | EventData(
18 | Guid.NewGuid(),
19 | eventType,
20 | true,
21 | utf8.GetBytes(data: string),
22 | null)
23 |
24 | /// Read events from the event store
25 | let read (store:IEventStoreConnection) deserialize: Read<_> =
26 | fun (StreamId stream) (EventNumber version) ->
27 | let rec readSlice version =
28 | async {
29 | let! slice =
30 | store.ReadStreamEventsForwardAsync(stream, version, 1000, true )
31 | |> Async.AwaitTask
32 |
33 | let events =
34 | slice.Events
35 | |> Array.toList
36 | |> List.collect(ofEvent >> deserialize)
37 |
38 | if slice.IsEndOfStream then
39 | return Slice(events, Last(EventNumber slice.LastEventNumber))
40 | else
41 | return Slice(events, Next (readSlice slice.NextEventNumber) )
42 | }
43 | readSlice version
44 |
45 | /// Append events to the event store
46 | let append (store: IEventStoreConnection) serialize : _ Append =
47 | fun (StreamId stream) (EventNumber expectedVersion) (events: Event list) ->
48 | async {
49 | let eventData =
50 | events
51 | |> List.map (serialize >> toEvent)
52 | |> List.toArray
53 |
54 | let! result =
55 | store.AppendToStreamAsync(stream,expectedVersion,null,eventData)
56 | |> Async.AwaitTask
57 | return EventNumber result.NextExpectedVersion
58 | }
59 |
--------------------------------------------------------------------------------
/Uno/Game.fs:
--------------------------------------------------------------------------------
1 | module Game
2 |
3 | type [] PlayerCount = PlayerCount of int
4 |
5 |
6 | type [] PlayerId = PlayerId of int
7 |
8 |
9 |
10 |
11 |
12 |
13 | type Command =
14 | | StartGame of StartGame
15 |
16 | and StartGame = {
17 | Players: PlayerCount
18 | FirstCard: Card
19 | }
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | type Event =
31 | | GameStarted of GameStarted
32 |
33 | and GameStarted = {
34 | Players: PlayerCount
35 | FirstCard: Card
36 | }
37 |
38 | type State =
39 | | InitialState
40 |
41 |
42 | exception TooFewPlayers
43 | exception GameAlreadyStarted
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | type Decide = Command -> State -> Event list
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 | type Evolve = State -> Event -> State
74 |
75 | // Step 1:
76 | // Make the simplest implementation for the following signature
77 | // Command -> State -> Event list Result
78 |
79 | let decide : Decide =
80 | fun command state -> failwith "Not Implemented"
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | // Step 2:
107 | // Make the simplest implementation for the following signature
108 | // State -> Event list -> State
109 | // s -> Event [] -> sbyte
110 |
111 | // (s + ([a;b;c] @ [e;f;g])) = (s + [a;b;c]) + [e; f; g])
112 | let evolve : Evolve =
113 | fun state event -> failwith "Not Implemented"
114 |
115 |
--------------------------------------------------------------------------------
/Uno/Model.fs:
--------------------------------------------------------------------------------
1 | []
2 | module Model
3 |
4 | type Color =
5 | | Red
6 | | Green
7 | | Blue
8 | | Yellow
9 |
10 | type Digit =
11 | | Zero | One | Two | Three |Four
12 | | Five | Six | Seven | Eight | Nine
13 |
14 | type Card =
15 | | Digit of Digit * Color
16 | //| Skip of Color
17 |
--------------------------------------------------------------------------------
/Uno/Program.fs:
--------------------------------------------------------------------------------
1 | module Uno
2 | open EventStore.ClientAPI
3 | open EventStore.ClientAPI.SystemData
4 | open Game
5 | open System
6 | open Serialisation
7 |
8 | []
9 | let main argv =
10 | printfn "%A" argv
11 |
12 | async {
13 | let settings =
14 | ConnectionSettings
15 | .Create()
16 | .SetDefaultUserCredentials(UserCredentials("admin", "changeit"))
17 | .Build()
18 |
19 | let store = EventStoreConnection.Create(settings, Uri "tcp://localhost:1113")
20 | do! store.ConnectAsync() |> Async.AwaitTask
21 | let read = EventStore.read store GameEvents.deserialize
22 | let append = EventStore.append store GameEvents.serialize
23 | let handler = CommandHandler.handler read append
24 |
25 | let! result = handler (CommandHandler.StreamId "Game-1") (StartGame { Players = PlayerCount 4; FirstCard = Digit(Five, Blue)})
26 |
27 | match result with
28 | | Ok () -> printfn "Ok done"
29 | | Error err -> printfn "Error: %A" err
30 |
31 | } |> Async.RunSynchronously
32 |
33 | 0 // return an integer exit code
34 |
--------------------------------------------------------------------------------
/Uno/Serialization.fs:
--------------------------------------------------------------------------------
1 | module Serialisation
2 |
3 | open Game
4 | open Newtonsoft.Json
5 | open System
6 | type SerializedEvent = (string * string)
7 |
8 | let serializer = JsonSerializer.Create()
9 |
10 | let serialize o =
11 | use stream = new IO.StringWriter()
12 | serializer.Serialize(stream, o)
13 | stream.ToString()
14 |
15 | let deserialize s =
16 | use stream = new IO.StringReader(s)
17 | use reader = new JsonTextReader(stream)
18 | serializer.Deserialize<'t>(reader)
19 |
20 | type GameId = GameId of int
21 |
22 | type CardDto = {
23 | Value: string
24 | Color: string
25 | }
26 |
27 | type GameStartedDto = {
28 | Players: int
29 | FirstCard: CardDto
30 | }
31 |
32 | type CardPlayedDto = {
33 | Player: int
34 | Card: CardDto
35 | }
36 |
37 | module GameEvents =
38 | open Game
39 |
40 | let toCardDto = function
41 | | Digit(d, c ) -> { Value = string d; Color = string c}
42 | //| Skip(c) -> { Value = "Skip"; Color = string c }
43 |
44 | let (|Color|_|) c =
45 | match c with
46 | | "Red" -> Some Red
47 | | "Green" -> Some Green
48 | | "Blue" -> Some Blue
49 | | "Yellow" -> Some Yellow
50 | | _ -> None
51 |
52 | let (|Digit|_|) d =
53 | match d with
54 | | "Zero" -> Some Zero
55 | | "One" -> Some One
56 | | "Two" -> Some Two
57 | | "Three" -> Some Three
58 | | "Four" -> Some Four
59 | | "Five" -> Some Five
60 | | "Six" -> Some Six
61 | | "Seven" -> Some Seven
62 | | "Eight" -> Some Eight
63 | | "Nine" -> Some Nine
64 | | _ -> None
65 |
66 | let (|Card|_|) =
67 | function
68 | //| { Value = "Skip"; Color = Color c } -> Some (Skip(c))
69 | | { Value = Digit d; Color = Color c } -> Some (Digit(d,c))
70 | | _ -> None
71 |
72 | let (|Players|_|) n =
73 | if n < 0 || n > 10 then
74 | None
75 | else
76 | Some (PlayerCount n)
77 |
78 | let (|Player|_|) n =
79 | if n < 0 || n > 10 then
80 | None
81 | else
82 | Some (PlayerId n)
83 |
84 | let serialize event =
85 | match event with
86 | | GameStarted e ->
87 | "GameStarted",
88 | { GameStartedDto.Players = let (PlayerCount p) = e.Players in p
89 | FirstCard = toCardDto e.FirstCard }
90 | |> serialize
91 | //| CardPlayed e ->
92 | // "CardPlayed",
93 | // { CardPlayedDto.Player = let (PlayerId p) = e.Player in p
94 | // Card = toCardDto e.Card }
95 | // |> serialize
96 |
97 |
98 | let deserialize (eventType, data) =
99 | match eventType with
100 | //| "CardPlayed" ->
101 | // data
102 | // |> deserialize
103 | // |> function
104 | // | { CardPlayedDto.Player = Player player; Card = Card card } ->
105 | // [CardPlayed { Player = player; Card = card }]
106 | // | _ -> []
107 |
108 | | "GameStarted" ->
109 | data
110 | |> deserialize
111 | |> function
112 | | { GameStartedDto.Players = Players players; FirstCard = Card card } ->
113 | [GameStarted { Players = players; FirstCard = card }]
114 | | _ -> []
115 | | _ -> []
116 |
--------------------------------------------------------------------------------
/Uno/Uno.fsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Exe
4 | netcoreapp2.2
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Uno/paket.references:
--------------------------------------------------------------------------------
1 | EventStore.ClientAPI.NetCore
2 | Newtonsoft.Json
3 | FSharp.Core
--------------------------------------------------------------------------------
/UnoCore.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.28721.148
5 | MinimumVisualStudioVersion = 15.0.26124.0
6 | Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Uno", "Uno\Uno.fsproj", "{500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}"
7 | EndProject
8 | Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Uno.Tests", "Uno.Tests\Uno.Tests.fsproj", "{80715249-37C6-4E02-B72E-E6F1BE0FBF94}"
9 | EndProject
10 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".build", ".build", "{CE18673A-0298-4ACE-A3A4-F2832B7A8DCC}"
11 | ProjectSection(SolutionItems) = preProject
12 | paket.dependencies = paket.dependencies
13 | README.md = README.md
14 | EndProjectSection
15 | EndProject
16 | Global
17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
18 | Debug|Any CPU = Debug|Any CPU
19 | Debug|x64 = Debug|x64
20 | Debug|x86 = Debug|x86
21 | Release|Any CPU = Release|Any CPU
22 | Release|x64 = Release|x64
23 | Release|x86 = Release|x86
24 | EndGlobalSection
25 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
26 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
28 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Debug|x64.ActiveCfg = Debug|Any CPU
29 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Debug|x64.Build.0 = Debug|Any CPU
30 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Debug|x86.ActiveCfg = Debug|Any CPU
31 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Debug|x86.Build.0 = Debug|Any CPU
32 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
33 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Release|Any CPU.Build.0 = Release|Any CPU
34 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Release|x64.ActiveCfg = Release|Any CPU
35 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Release|x64.Build.0 = Release|Any CPU
36 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Release|x86.ActiveCfg = Release|Any CPU
37 | {500A94EB-56C1-46BF-BFEB-6F4AA498BBE7}.Release|x86.Build.0 = Release|Any CPU
38 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Debug|Any CPU.Build.0 = Debug|Any CPU
40 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Debug|x64.ActiveCfg = Debug|Any CPU
41 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Debug|x64.Build.0 = Debug|Any CPU
42 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Debug|x86.ActiveCfg = Debug|Any CPU
43 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Debug|x86.Build.0 = Debug|Any CPU
44 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Release|Any CPU.ActiveCfg = Release|Any CPU
45 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Release|Any CPU.Build.0 = Release|Any CPU
46 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Release|x64.ActiveCfg = Release|Any CPU
47 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Release|x64.Build.0 = Release|Any CPU
48 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Release|x86.ActiveCfg = Release|Any CPU
49 | {80715249-37C6-4E02-B72E-E6F1BE0FBF94}.Release|x86.Build.0 = Release|Any CPU
50 | EndGlobalSection
51 | GlobalSection(SolutionProperties) = preSolution
52 | HideSolutionNode = FALSE
53 | EndGlobalSection
54 | GlobalSection(ExtensibilityGlobals) = postSolution
55 | SolutionGuid = {5716F173-FC4A-4687-9CCC-5586ECDEC188}
56 | EndGlobalSection
57 | EndGlobal
58 |
--------------------------------------------------------------------------------
/build.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | if not exist .paket\paket.exe (
4 | del .paket\paket.exe
5 | dotnet tool install paket --tool-path .paket
6 | )
7 |
8 | dotnet build
9 |
--------------------------------------------------------------------------------
/paket.dependencies:
--------------------------------------------------------------------------------
1 | framework: netcoreapp2.2, netstandard2.0
2 | storage: none
3 | generate_load_scripts: true
4 |
5 | source https://api.nuget.org/v3/index.json
6 |
7 | nuget EventStore.ClientAPI.NetCore
8 | nuget FSharp.Core
9 | nuget Microsoft.NET.Test.Sdk
10 | nuget Newtonsoft.Json
11 | nuget Unquote
12 | nuget xunit
13 | nuget xunit.runner.visualstudio
--------------------------------------------------------------------------------
/paket.lock:
--------------------------------------------------------------------------------
1 | GENERATE-LOAD-SCRIPTS: ON
2 | STORAGE: NONE
3 | RESTRICTION: || (== netcoreapp2.2) (== netstandard2.0)
4 | NUGET
5 | remote: https://api.nuget.org/v3/index.json
6 | EventStore.ClientAPI.NetCore (4.1.0.23)
7 | Newtonsoft.Json (>= 10.0.3)
8 | protobuf-net (>= 2.3.2)
9 | FSharp.Core (4.6.2)
10 | Microsoft.CodeCoverage (16.0.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= net45)) (&& (== netstandard2.0) (>= netcoreapp1.0))
11 | Microsoft.DotNet.PlatformAbstractions (2.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
12 | System.AppContext (>= 4.1)
13 | System.Collections (>= 4.0.11)
14 | System.IO (>= 4.1)
15 | System.IO.FileSystem (>= 4.0.1)
16 | System.Reflection.TypeExtensions (>= 4.1)
17 | System.Runtime.Extensions (>= 4.1)
18 | System.Runtime.InteropServices (>= 4.1)
19 | System.Runtime.InteropServices.RuntimeInformation (>= 4.0)
20 | Microsoft.Extensions.DependencyModel (2.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
21 | Microsoft.DotNet.PlatformAbstractions (>= 2.1)
22 | Newtonsoft.Json (>= 9.0.1)
23 | System.Diagnostics.Debug (>= 4.0.11)
24 | System.Dynamic.Runtime (>= 4.0.11)
25 | System.Linq (>= 4.1)
26 | Microsoft.NET.Test.Sdk (16.0.1)
27 | Microsoft.CodeCoverage (>= 16.0.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= net45)) (&& (== netstandard2.0) (>= netcoreapp1.0))
28 | Microsoft.TestPlatform.TestHost (>= 16.0.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
29 | Microsoft.NETCore.Platforms (2.2)
30 | Microsoft.NETCore.Targets (2.1)
31 | Microsoft.TestPlatform.ObjectModel (16.0.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
32 | NETStandard.Library (>= 1.6)
33 | System.ComponentModel.EventBasedAsync (>= 4.0.11)
34 | System.ComponentModel.TypeConverter (>= 4.1)
35 | System.Diagnostics.Process (>= 4.1)
36 | System.Diagnostics.TextWriterTraceListener (>= 4.0)
37 | System.Diagnostics.TraceSource (>= 4.0)
38 | System.Reflection.Metadata (>= 1.3)
39 | System.Reflection.TypeExtensions (>= 4.1)
40 | System.Runtime.InteropServices.RuntimeInformation (>= 4.0)
41 | System.Runtime.Loader (>= 4.0)
42 | System.Runtime.Serialization.Json (>= 4.0.2)
43 | System.Runtime.Serialization.Primitives (>= 4.1.1)
44 | System.Threading.Thread (>= 4.0)
45 | System.Xml.XPath.XmlDocument (>= 4.0.1)
46 | Microsoft.TestPlatform.TestHost (16.0.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
47 | Microsoft.Extensions.DependencyModel (>= 1.0.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
48 | Microsoft.TestPlatform.ObjectModel (>= 16.0.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= uap10.0))
49 | Newtonsoft.Json (>= 9.0.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= uap10.0))
50 | Microsoft.Win32.Primitives (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
51 | Microsoft.NETCore.Platforms (>= 1.1)
52 | Microsoft.NETCore.Targets (>= 1.1)
53 | System.Runtime (>= 4.3)
54 | Microsoft.Win32.Registry (4.5) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
55 | System.Security.AccessControl (>= 4.5)
56 | System.Security.Principal.Windows (>= 4.5)
57 | NETStandard.Library (2.0.3)
58 | Microsoft.NETCore.Platforms (>= 1.1)
59 | Newtonsoft.Json (12.0.1)
60 | protobuf-net (2.4)
61 | System.Reflection.Emit (>= 4.3) - restriction: || (&& (== netcoreapp2.2) (< netcoreapp2.1)) (&& (== netcoreapp2.2) (< netstandard2.0)) (== netstandard2.0)
62 | System.Reflection.Emit.Lightweight (>= 4.3) - restriction: || (&& (== netcoreapp2.2) (< netcoreapp2.1)) (&& (== netcoreapp2.2) (< netstandard2.0)) (== netstandard2.0)
63 | System.Reflection.TypeExtensions (>= 4.4) - restriction: || (&& (== netcoreapp2.2) (< netcoreapp2.1)) (&& (== netcoreapp2.2) (< netstandard2.0)) (== netstandard2.0)
64 | System.ServiceModel.Primitives (>= 4.5.3)
65 | System.Xml.XmlSerializer (>= 4.3) - restriction: || (&& (== netcoreapp2.2) (< netcoreapp2.1)) (&& (== netcoreapp2.2) (< netstandard2.0)) (== netstandard2.0)
66 | runtime.native.System (4.3.1) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
67 | Microsoft.NETCore.Platforms (>= 1.1.1)
68 | Microsoft.NETCore.Targets (>= 1.1.3)
69 | System.AppContext (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
70 | System.Runtime (>= 4.3)
71 | System.Collections (4.3)
72 | Microsoft.NETCore.Platforms (>= 1.1)
73 | Microsoft.NETCore.Targets (>= 1.1)
74 | System.Runtime (>= 4.3)
75 | System.Collections.Concurrent (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
76 | System.Collections (>= 4.3)
77 | System.Diagnostics.Debug (>= 4.3)
78 | System.Diagnostics.Tracing (>= 4.3)
79 | System.Globalization (>= 4.3)
80 | System.Reflection (>= 4.3)
81 | System.Resources.ResourceManager (>= 4.3)
82 | System.Runtime (>= 4.3)
83 | System.Runtime.Extensions (>= 4.3)
84 | System.Threading (>= 4.3)
85 | System.Threading.Tasks (>= 4.3)
86 | System.Collections.NonGeneric (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
87 | System.Diagnostics.Debug (>= 4.3)
88 | System.Globalization (>= 4.3)
89 | System.Resources.ResourceManager (>= 4.3)
90 | System.Runtime (>= 4.3)
91 | System.Runtime.Extensions (>= 4.3)
92 | System.Threading (>= 4.3)
93 | System.Collections.Specialized (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
94 | System.Collections.NonGeneric (>= 4.3)
95 | System.Globalization (>= 4.3)
96 | System.Globalization.Extensions (>= 4.3)
97 | System.Resources.ResourceManager (>= 4.3)
98 | System.Runtime (>= 4.3)
99 | System.Runtime.Extensions (>= 4.3)
100 | System.Threading (>= 4.3)
101 | System.ComponentModel (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
102 | System.Runtime (>= 4.3)
103 | System.ComponentModel.EventBasedAsync (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
104 | System.Resources.ResourceManager (>= 4.3)
105 | System.Runtime (>= 4.3)
106 | System.Threading (>= 4.3)
107 | System.Threading.Tasks (>= 4.3)
108 | System.ComponentModel.Primitives (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
109 | System.ComponentModel (>= 4.3)
110 | System.Resources.ResourceManager (>= 4.3)
111 | System.Runtime (>= 4.3)
112 | System.ComponentModel.TypeConverter (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
113 | System.Collections (>= 4.3)
114 | System.Collections.NonGeneric (>= 4.3)
115 | System.Collections.Specialized (>= 4.3)
116 | System.ComponentModel (>= 4.3)
117 | System.ComponentModel.Primitives (>= 4.3)
118 | System.Globalization (>= 4.3)
119 | System.Linq (>= 4.3)
120 | System.Reflection (>= 4.3)
121 | System.Reflection.Extensions (>= 4.3)
122 | System.Reflection.Primitives (>= 4.3)
123 | System.Reflection.TypeExtensions (>= 4.3)
124 | System.Resources.ResourceManager (>= 4.3)
125 | System.Runtime (>= 4.3)
126 | System.Runtime.Extensions (>= 4.3)
127 | System.Threading (>= 4.3)
128 | System.Diagnostics.Debug (4.3)
129 | Microsoft.NETCore.Platforms (>= 1.1)
130 | Microsoft.NETCore.Targets (>= 1.1)
131 | System.Runtime (>= 4.3)
132 | System.Diagnostics.Process (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
133 | Microsoft.NETCore.Platforms (>= 1.1)
134 | Microsoft.Win32.Primitives (>= 4.3)
135 | Microsoft.Win32.Registry (>= 4.3)
136 | runtime.native.System (>= 4.3)
137 | System.Collections (>= 4.3)
138 | System.Diagnostics.Debug (>= 4.3)
139 | System.Globalization (>= 4.3)
140 | System.IO (>= 4.3)
141 | System.IO.FileSystem (>= 4.3)
142 | System.IO.FileSystem.Primitives (>= 4.3)
143 | System.Resources.ResourceManager (>= 4.3)
144 | System.Runtime (>= 4.3)
145 | System.Runtime.Extensions (>= 4.3)
146 | System.Runtime.Handles (>= 4.3)
147 | System.Runtime.InteropServices (>= 4.3)
148 | System.Text.Encoding (>= 4.3)
149 | System.Text.Encoding.Extensions (>= 4.3)
150 | System.Threading (>= 4.3)
151 | System.Threading.Tasks (>= 4.3)
152 | System.Threading.Thread (>= 4.3)
153 | System.Threading.ThreadPool (>= 4.3)
154 | System.Diagnostics.TextWriterTraceListener (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
155 | System.Diagnostics.TraceSource (>= 4.3)
156 | System.Globalization (>= 4.3)
157 | System.IO (>= 4.3)
158 | System.Resources.ResourceManager (>= 4.3)
159 | System.Runtime (>= 4.3)
160 | System.Threading (>= 4.3)
161 | System.Diagnostics.Tools (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
162 | Microsoft.NETCore.Platforms (>= 1.1)
163 | Microsoft.NETCore.Targets (>= 1.1)
164 | System.Runtime (>= 4.3)
165 | System.Diagnostics.TraceSource (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
166 | Microsoft.NETCore.Platforms (>= 1.1)
167 | runtime.native.System (>= 4.3)
168 | System.Collections (>= 4.3)
169 | System.Diagnostics.Debug (>= 4.3)
170 | System.Globalization (>= 4.3)
171 | System.Resources.ResourceManager (>= 4.3)
172 | System.Runtime (>= 4.3)
173 | System.Runtime.Extensions (>= 4.3)
174 | System.Threading (>= 4.3)
175 | System.Diagnostics.Tracing (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
176 | Microsoft.NETCore.Platforms (>= 1.1)
177 | Microsoft.NETCore.Targets (>= 1.1)
178 | System.Runtime (>= 4.3)
179 | System.Dynamic.Runtime (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
180 | System.Collections (>= 4.3)
181 | System.Diagnostics.Debug (>= 4.3)
182 | System.Linq (>= 4.3)
183 | System.Linq.Expressions (>= 4.3)
184 | System.ObjectModel (>= 4.3)
185 | System.Reflection (>= 4.3)
186 | System.Reflection.Emit (>= 4.3)
187 | System.Reflection.Emit.ILGeneration (>= 4.3)
188 | System.Reflection.Primitives (>= 4.3)
189 | System.Reflection.TypeExtensions (>= 4.3)
190 | System.Resources.ResourceManager (>= 4.3)
191 | System.Runtime (>= 4.3)
192 | System.Runtime.Extensions (>= 4.3)
193 | System.Threading (>= 4.3)
194 | System.Globalization (4.3)
195 | Microsoft.NETCore.Platforms (>= 1.1)
196 | Microsoft.NETCore.Targets (>= 1.1)
197 | System.Runtime (>= 4.3)
198 | System.Globalization.Extensions (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
199 | Microsoft.NETCore.Platforms (>= 1.1)
200 | System.Globalization (>= 4.3)
201 | System.Resources.ResourceManager (>= 4.3)
202 | System.Runtime (>= 4.3)
203 | System.Runtime.Extensions (>= 4.3)
204 | System.Runtime.InteropServices (>= 4.3)
205 | System.IO (4.3)
206 | Microsoft.NETCore.Platforms (>= 1.1)
207 | Microsoft.NETCore.Targets (>= 1.1)
208 | System.Runtime (>= 4.3)
209 | System.Text.Encoding (>= 4.3)
210 | System.Threading.Tasks (>= 4.3)
211 | System.IO.FileSystem (4.3)
212 | Microsoft.NETCore.Platforms (>= 1.1)
213 | Microsoft.NETCore.Targets (>= 1.1)
214 | System.IO (>= 4.3)
215 | System.IO.FileSystem.Primitives (>= 4.3)
216 | System.Runtime (>= 4.3)
217 | System.Runtime.Handles (>= 4.3)
218 | System.Text.Encoding (>= 4.3)
219 | System.Threading.Tasks (>= 4.3)
220 | System.IO.FileSystem.Primitives (4.3)
221 | System.Runtime (>= 4.3)
222 | System.Linq (4.3)
223 | System.Collections (>= 4.3)
224 | System.Diagnostics.Debug (>= 4.3)
225 | System.Resources.ResourceManager (>= 4.3)
226 | System.Runtime (>= 4.3)
227 | System.Runtime.Extensions (>= 4.3)
228 | System.Linq.Expressions (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
229 | System.Collections (>= 4.3)
230 | System.Diagnostics.Debug (>= 4.3)
231 | System.Globalization (>= 4.3)
232 | System.IO (>= 4.3)
233 | System.Linq (>= 4.3)
234 | System.ObjectModel (>= 4.3)
235 | System.Reflection (>= 4.3)
236 | System.Reflection.Emit (>= 4.3)
237 | System.Reflection.Emit.ILGeneration (>= 4.3)
238 | System.Reflection.Emit.Lightweight (>= 4.3)
239 | System.Reflection.Extensions (>= 4.3)
240 | System.Reflection.Primitives (>= 4.3)
241 | System.Reflection.TypeExtensions (>= 4.3)
242 | System.Resources.ResourceManager (>= 4.3)
243 | System.Runtime (>= 4.3)
244 | System.Runtime.Extensions (>= 4.3)
245 | System.Threading (>= 4.3)
246 | System.ObjectModel (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
247 | System.Collections (>= 4.3)
248 | System.Diagnostics.Debug (>= 4.3)
249 | System.Resources.ResourceManager (>= 4.3)
250 | System.Runtime (>= 4.3)
251 | System.Threading (>= 4.3)
252 | System.Private.DataContractSerialization (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
253 | System.Collections (>= 4.3)
254 | System.Collections.Concurrent (>= 4.3)
255 | System.Diagnostics.Debug (>= 4.3)
256 | System.Globalization (>= 4.3)
257 | System.IO (>= 4.3)
258 | System.Linq (>= 4.3)
259 | System.Reflection (>= 4.3)
260 | System.Reflection.Emit.ILGeneration (>= 4.3)
261 | System.Reflection.Emit.Lightweight (>= 4.3)
262 | System.Reflection.Extensions (>= 4.3)
263 | System.Reflection.Primitives (>= 4.3)
264 | System.Reflection.TypeExtensions (>= 4.3)
265 | System.Resources.ResourceManager (>= 4.3)
266 | System.Runtime (>= 4.3)
267 | System.Runtime.Extensions (>= 4.3)
268 | System.Runtime.Serialization.Primitives (>= 4.3)
269 | System.Text.Encoding (>= 4.3)
270 | System.Text.Encoding.Extensions (>= 4.3)
271 | System.Text.RegularExpressions (>= 4.3)
272 | System.Threading (>= 4.3)
273 | System.Threading.Tasks (>= 4.3)
274 | System.Xml.ReaderWriter (>= 4.3)
275 | System.Xml.XDocument (>= 4.3)
276 | System.Xml.XmlDocument (>= 4.3)
277 | System.Xml.XmlSerializer (>= 4.3)
278 | System.Private.ServiceModel (4.5.3)
279 | Microsoft.NETCore.Platforms (>= 2.1)
280 | System.Reflection.DispatchProxy (>= 4.5)
281 | System.Security.Principal.Windows (>= 4.5)
282 | System.Reflection (4.3)
283 | Microsoft.NETCore.Platforms (>= 1.1)
284 | Microsoft.NETCore.Targets (>= 1.1)
285 | System.IO (>= 4.3)
286 | System.Reflection.Primitives (>= 4.3)
287 | System.Runtime (>= 4.3)
288 | System.Reflection.DispatchProxy (4.5.1)
289 | System.Reflection.Emit (4.3)
290 | System.IO (>= 4.3)
291 | System.Reflection (>= 4.3)
292 | System.Reflection.Emit.ILGeneration (>= 4.3)
293 | System.Reflection.Primitives (>= 4.3)
294 | System.Runtime (>= 4.3)
295 | System.Reflection.Emit.ILGeneration (4.3)
296 | System.Reflection (>= 4.3)
297 | System.Reflection.Primitives (>= 4.3)
298 | System.Runtime (>= 4.3)
299 | System.Reflection.Emit.Lightweight (4.3)
300 | System.Reflection (>= 4.3)
301 | System.Reflection.Emit.ILGeneration (>= 4.3)
302 | System.Reflection.Primitives (>= 4.3)
303 | System.Runtime (>= 4.3)
304 | System.Reflection.Extensions (4.3)
305 | Microsoft.NETCore.Platforms (>= 1.1)
306 | Microsoft.NETCore.Targets (>= 1.1)
307 | System.Reflection (>= 4.3)
308 | System.Runtime (>= 4.3)
309 | System.Reflection.Metadata (1.6) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
310 | System.Reflection.Primitives (4.3)
311 | Microsoft.NETCore.Platforms (>= 1.1)
312 | Microsoft.NETCore.Targets (>= 1.1)
313 | System.Runtime (>= 4.3)
314 | System.Reflection.TypeExtensions (4.5.1)
315 | System.Resources.ResourceManager (4.3)
316 | Microsoft.NETCore.Platforms (>= 1.1)
317 | Microsoft.NETCore.Targets (>= 1.1)
318 | System.Globalization (>= 4.3)
319 | System.Reflection (>= 4.3)
320 | System.Runtime (>= 4.3)
321 | System.Runtime (4.3.1)
322 | Microsoft.NETCore.Platforms (>= 1.1.1)
323 | Microsoft.NETCore.Targets (>= 1.1.3)
324 | System.Runtime.CompilerServices.Unsafe (4.5.2) - restriction: || (&& (== netcoreapp2.2) (>= dnxcore50)) (&& (== netcoreapp2.2) (>= net45)) (&& (== netcoreapp2.2) (< netcoreapp2.1)) (&& (== netcoreapp2.2) (< netstandard1.0)) (&& (== netcoreapp2.2) (< netstandard1.3)) (&& (== netcoreapp2.2) (< netstandard2.0)) (&& (== netcoreapp2.2) (>= wp8)) (== netstandard2.0)
325 | System.Runtime.Extensions (4.3.1)
326 | Microsoft.NETCore.Platforms (>= 1.1.1)
327 | Microsoft.NETCore.Targets (>= 1.1.3)
328 | System.Runtime (>= 4.3.1)
329 | System.Runtime.Handles (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
330 | Microsoft.NETCore.Platforms (>= 1.1)
331 | Microsoft.NETCore.Targets (>= 1.1)
332 | System.Runtime (>= 4.3)
333 | System.Runtime.InteropServices (4.3)
334 | Microsoft.NETCore.Platforms (>= 1.1)
335 | Microsoft.NETCore.Targets (>= 1.1)
336 | System.Reflection (>= 4.3)
337 | System.Reflection.Primitives (>= 4.3)
338 | System.Runtime (>= 4.3)
339 | System.Runtime.Handles (>= 4.3)
340 | System.Runtime.InteropServices.RuntimeInformation (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
341 | runtime.native.System (>= 4.3)
342 | System.Reflection (>= 4.3)
343 | System.Reflection.Extensions (>= 4.3)
344 | System.Resources.ResourceManager (>= 4.3)
345 | System.Runtime (>= 4.3)
346 | System.Runtime.InteropServices (>= 4.3)
347 | System.Threading (>= 4.3)
348 | System.Runtime.Loader (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
349 | System.IO (>= 4.3)
350 | System.Reflection (>= 4.3)
351 | System.Runtime (>= 4.3)
352 | System.Runtime.Serialization.Json (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
353 | System.IO (>= 4.3)
354 | System.Private.DataContractSerialization (>= 4.3)
355 | System.Runtime (>= 4.3)
356 | System.Runtime.Serialization.Primitives (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
357 | System.Resources.ResourceManager (>= 4.3)
358 | System.Runtime (>= 4.3)
359 | System.Security.AccessControl (4.5) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= netcoreapp2.0))
360 | Microsoft.NETCore.Platforms (>= 2.0) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp2.0))
361 | System.Security.Principal.Windows (>= 4.5)
362 | System.Security.Principal.Windows (4.5.1)
363 | Microsoft.NETCore.Platforms (>= 2.0) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp2.0))
364 | System.ServiceModel.Primitives (4.5.3)
365 | System.Private.ServiceModel (>= 4.5.3)
366 | System.Text.Encoding (4.3)
367 | Microsoft.NETCore.Platforms (>= 1.1)
368 | Microsoft.NETCore.Targets (>= 1.1)
369 | System.Runtime (>= 4.3)
370 | System.Text.Encoding.Extensions (4.3)
371 | Microsoft.NETCore.Platforms (>= 1.1)
372 | Microsoft.NETCore.Targets (>= 1.1)
373 | System.Runtime (>= 4.3)
374 | System.Text.Encoding (>= 4.3)
375 | System.Text.RegularExpressions (4.3)
376 | System.Collections (>= 4.3) - restriction: || (&& (== netcoreapp2.2) (>= dnxcore50)) (&& (== netcoreapp2.2) (< netcoreapp1.1)) (== netstandard2.0)
377 | System.Globalization (>= 4.3) - restriction: || (&& (== netcoreapp2.2) (>= dnxcore50)) (&& (== netcoreapp2.2) (< netcoreapp1.1)) (== netstandard2.0)
378 | System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== netcoreapp2.2) (>= dnxcore50)) (&& (== netcoreapp2.2) (< netcoreapp1.1)) (== netstandard2.0)
379 | System.Runtime (>= 4.3)
380 | System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== netcoreapp2.2) (>= dnxcore50)) (&& (== netcoreapp2.2) (< netcoreapp1.1)) (== netstandard2.0)
381 | System.Threading (>= 4.3) - restriction: || (&& (== netcoreapp2.2) (>= dnxcore50)) (&& (== netcoreapp2.2) (< netcoreapp1.1)) (== netstandard2.0)
382 | System.Threading (4.3)
383 | System.Runtime (>= 4.3)
384 | System.Threading.Tasks (>= 4.3)
385 | System.Threading.Tasks (4.3)
386 | Microsoft.NETCore.Platforms (>= 1.1)
387 | Microsoft.NETCore.Targets (>= 1.1)
388 | System.Runtime (>= 4.3)
389 | System.Threading.Tasks.Extensions (4.5.2) - restriction: || (&& (== netcoreapp2.2) (>= dnxcore50)) (&& (== netcoreapp2.2) (< netcoreapp2.1)) (&& (== netcoreapp2.2) (< netstandard1.3)) (&& (== netcoreapp2.2) (< netstandard2.0)) (== netstandard2.0)
390 | System.Runtime.CompilerServices.Unsafe (>= 4.5.2) - restriction: || (&& (== netcoreapp2.2) (>= net45)) (&& (== netcoreapp2.2) (< netcoreapp2.1)) (&& (== netcoreapp2.2) (< netstandard1.0)) (&& (== netcoreapp2.2) (< netstandard2.0)) (&& (== netcoreapp2.2) (>= wp8)) (== netstandard2.0)
391 | System.Threading.Thread (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
392 | System.Runtime (>= 4.3)
393 | System.Threading.ThreadPool (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
394 | System.Runtime (>= 4.3)
395 | System.Runtime.Handles (>= 4.3)
396 | System.Xml.ReaderWriter (4.3.1)
397 | System.Collections (>= 4.3)
398 | System.Diagnostics.Debug (>= 4.3)
399 | System.Globalization (>= 4.3)
400 | System.IO (>= 4.3)
401 | System.IO.FileSystem (>= 4.3)
402 | System.IO.FileSystem.Primitives (>= 4.3)
403 | System.Resources.ResourceManager (>= 4.3)
404 | System.Runtime (>= 4.3)
405 | System.Runtime.Extensions (>= 4.3)
406 | System.Runtime.InteropServices (>= 4.3)
407 | System.Text.Encoding (>= 4.3)
408 | System.Text.Encoding.Extensions (>= 4.3)
409 | System.Text.RegularExpressions (>= 4.3)
410 | System.Threading.Tasks (>= 4.3)
411 | System.Threading.Tasks.Extensions (>= 4.3)
412 | System.Xml.XDocument (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
413 | System.Collections (>= 4.3)
414 | System.Diagnostics.Debug (>= 4.3)
415 | System.Diagnostics.Tools (>= 4.3)
416 | System.Globalization (>= 4.3)
417 | System.IO (>= 4.3)
418 | System.Reflection (>= 4.3)
419 | System.Resources.ResourceManager (>= 4.3)
420 | System.Runtime (>= 4.3)
421 | System.Runtime.Extensions (>= 4.3)
422 | System.Text.Encoding (>= 4.3)
423 | System.Threading (>= 4.3)
424 | System.Xml.ReaderWriter (>= 4.3)
425 | System.Xml.XmlDocument (4.3)
426 | System.Collections (>= 4.3)
427 | System.Diagnostics.Debug (>= 4.3)
428 | System.Globalization (>= 4.3)
429 | System.IO (>= 4.3)
430 | System.Resources.ResourceManager (>= 4.3)
431 | System.Runtime (>= 4.3)
432 | System.Runtime.Extensions (>= 4.3)
433 | System.Text.Encoding (>= 4.3)
434 | System.Threading (>= 4.3)
435 | System.Xml.ReaderWriter (>= 4.3)
436 | System.Xml.XmlSerializer (4.3)
437 | System.Collections (>= 4.3)
438 | System.Globalization (>= 4.3)
439 | System.IO (>= 4.3)
440 | System.Linq (>= 4.3)
441 | System.Reflection (>= 4.3)
442 | System.Reflection.Emit (>= 4.3)
443 | System.Reflection.Emit.ILGeneration (>= 4.3)
444 | System.Reflection.Extensions (>= 4.3)
445 | System.Reflection.Primitives (>= 4.3)
446 | System.Reflection.TypeExtensions (>= 4.3)
447 | System.Resources.ResourceManager (>= 4.3)
448 | System.Runtime (>= 4.3)
449 | System.Runtime.Extensions (>= 4.3)
450 | System.Text.RegularExpressions (>= 4.3)
451 | System.Threading (>= 4.3)
452 | System.Xml.ReaderWriter (>= 4.3)
453 | System.Xml.XmlDocument (>= 4.3)
454 | System.Xml.XPath (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
455 | System.Collections (>= 4.3)
456 | System.Diagnostics.Debug (>= 4.3)
457 | System.Globalization (>= 4.3)
458 | System.IO (>= 4.3)
459 | System.Resources.ResourceManager (>= 4.3)
460 | System.Runtime (>= 4.3)
461 | System.Runtime.Extensions (>= 4.3)
462 | System.Threading (>= 4.3)
463 | System.Xml.ReaderWriter (>= 4.3)
464 | System.Xml.XPath.XmlDocument (4.3) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
465 | System.Collections (>= 4.3)
466 | System.Globalization (>= 4.3)
467 | System.IO (>= 4.3)
468 | System.Resources.ResourceManager (>= 4.3)
469 | System.Runtime (>= 4.3)
470 | System.Runtime.Extensions (>= 4.3)
471 | System.Threading (>= 4.3)
472 | System.Xml.ReaderWriter (>= 4.3)
473 | System.Xml.XmlDocument (>= 4.3)
474 | System.Xml.XPath (>= 4.3)
475 | Unquote (4.0)
476 | FSharp.Core (>= 4.2.3)
477 | xunit (2.4.1)
478 | xunit.analyzers (>= 0.10)
479 | xunit.assert (2.4.1)
480 | xunit.core (2.4.1)
481 | xunit.abstractions (2.0.3)
482 | xunit.analyzers (0.10)
483 | xunit.assert (2.4.1)
484 | NETStandard.Library (>= 1.6.1)
485 | xunit.core (2.4.1)
486 | xunit.extensibility.core (2.4.1)
487 | xunit.extensibility.execution (2.4.1)
488 | xunit.extensibility.core (2.4.1)
489 | NETStandard.Library (>= 1.6.1)
490 | xunit.abstractions (>= 2.0.3)
491 | xunit.extensibility.execution (2.4.1)
492 | NETStandard.Library (>= 1.6.1)
493 | xunit.extensibility.core (2.4.1)
494 | xunit.runner.visualstudio (2.4.1)
495 | Microsoft.NET.Test.Sdk (>= 15.0) - restriction: || (== netcoreapp2.2) (&& (== netstandard2.0) (>= netcoreapp1.0))
496 |
--------------------------------------------------------------------------------