diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 0000000..54b2ed9
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,22 @@
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.eShopWeb.Web/Microsoft.eShopWeb.Web.fsproj b/src/Microsoft.eShopWeb.Web/Microsoft.eShopWeb.Web.fsproj
index fcaad0f..63c6d28 100644
--- a/src/Microsoft.eShopWeb.Web/Microsoft.eShopWeb.Web.fsproj
+++ b/src/Microsoft.eShopWeb.Web/Microsoft.eShopWeb.Web.fsproj
@@ -22,8 +22,8 @@
-
-
-
+
+
+
diff --git a/src/Microsoft.eShopWeb.Web/packages.lock.json b/src/Microsoft.eShopWeb.Web/packages.lock.json
index b45c10f..6174825 100644
--- a/src/Microsoft.eShopWeb.Web/packages.lock.json
+++ b/src/Microsoft.eShopWeb.Web/packages.lock.json
@@ -1,5 +1,5 @@
{
- "version": 1,
+ "version": 2,
"dependencies": {
"net9.0": {
"EntityFrameworkCore.FSharp": {
@@ -22,26 +22,14 @@
"Falco.Markup": "1.0.2"
}
},
- "FSharp.Core": {
- "type": "Direct",
- "requested": "[9.0.300, )",
- "resolved": "9.0.300",
- "contentHash": "TVt2J7RCE1KCS2IaONF+p8/KIZ1eHNbW+7qmKF6hGoD4tXl+o07ja1mPtFjMqRa5uHMFaTrGTPn/m945WnDLiQ=="
- },
"Microsoft.EntityFrameworkCore.Sqlite": {
"type": "Direct",
- "requested": "[9.0.6, )",
- "resolved": "9.0.6",
- "contentHash": "bVSdfFrqIo3ZeQfWYYfnVVanP1GWghkdw+MnEmZJz7jUwtdPQpBKHr0BW9dMizPamzU+SMA1Qu4nXuRTlKVAGQ==",
+ "requested": "[8.0.18, )",
+ "resolved": "8.0.18",
+ "contentHash": "sND0U4KRvbIoxQmPCfCj6crSCZsV7OhzX59vcD7N+GvlqcDWZkALQFGCaIgDLGhxO+IFtfmG0KhkVLQCbiZdKA==",
"dependencies": {
- "Microsoft.EntityFrameworkCore.Sqlite.Core": "9.0.6",
- "Microsoft.Extensions.Caching.Memory": "9.0.6",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
- "Microsoft.Extensions.DependencyModel": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6",
- "SQLitePCLRaw.bundle_e_sqlite3": "2.1.10",
- "SQLitePCLRaw.core": "2.1.10",
- "System.Text.Json": "9.0.6"
+ "Microsoft.EntityFrameworkCore.Sqlite.Core": "8.0.18",
+ "SQLitePCLRaw.bundle_e_sqlite3": "2.1.6"
}
},
"Falco.Markup": {
@@ -52,6 +40,11 @@
"FSharp.Core": "4.5.2"
}
},
+ "FSharp.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.1",
+ "contentHash": "VrFAiW8dEEekk+0aqlbvMNZzDvYXmgWZwAt68AUBqaWK8RnoEVUNglj66bZzhs4/U63q0EfXlhcEKnH1sTYLjw=="
+ },
"Humanizer.Core": {
"type": "Transitive",
"resolved": "2.8.26",
@@ -59,32 +52,32 @@
},
"Microsoft.Data.Sqlite.Core": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "3auiudiViGzj1TidUdjuDqtP3+f6PBk4xdw6r9sBaTtkYoGc3AZn0cP8LgYZaLRnJBqY5bXRLB+qhjoB+iATzA==",
+ "resolved": "8.0.18",
+ "contentHash": "Fw4JZz1MbcpmYzuyWI3FSgb8891AOIbDk1FLug8IWlxbiMUlvZilwv/NVIxnyUw/a/3moFQN/mXA3XHvGGSu2w==",
"dependencies": {
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.6"
}
},
"Microsoft.EntityFrameworkCore": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "r5hzM6Bhw4X3z28l5vmsaCPjk9VsQP4zaaY01THh1SAYjgTMVadYIvpNkCfmrv/Klks6aIf2A9eY7cpGZab/hg==",
+ "resolved": "8.0.18",
+ "contentHash": "LBc07vlgPxEXmjF0Kgn1S0mip3KLDPVD1OQOFu+4Mfpg1Z8OPMJ82MVCkqek1Ex2WeCzVGbNI9nRXcepHB+48g==",
"dependencies": {
- "Microsoft.EntityFrameworkCore.Abstractions": "9.0.6",
- "Microsoft.EntityFrameworkCore.Analyzers": "9.0.6",
- "Microsoft.Extensions.Caching.Memory": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6"
+ "Microsoft.EntityFrameworkCore.Abstractions": "8.0.18",
+ "Microsoft.EntityFrameworkCore.Analyzers": "8.0.18",
+ "Microsoft.Extensions.Caching.Memory": "8.0.1",
+ "Microsoft.Extensions.Logging": "8.0.1"
}
},
"Microsoft.EntityFrameworkCore.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "7MkhPK8emb8hfOx/mFVvHuIHxQ+mH2YdlK4sFUXgsGlvR0A44vsmd2wcHavZOTTzaKhN+aFUVy3zmkztKmTo+A=="
+ "resolved": "8.0.18",
+ "contentHash": "aQGpxj0/RKXhSqDFbWENQgOg6WQH3z5Dezu3VBXaTCBHE6hAWQIZmmqdpO1k+lkANsoCSwPJZ4iFRqPPZXBXzg=="
},
"Microsoft.EntityFrameworkCore.Analyzers": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "VKggHNQC5FCn3/vooaIM/4aEjGmrmWm78IrdRLz9lLV0Rm9bVHEr/jiWApDkU0U9ec2xGAilvQqJ5mMX7QC2cw=="
+ "resolved": "8.0.18",
+ "contentHash": "aYkyWRkb+o9++mtIWn5XSYPVND5N9mFFfvdmBX1s6kCss6XTaZsFXf8QjvaiXAcGblp/HoYzS5lusx0ZqeFxzQ=="
},
"Microsoft.EntityFrameworkCore.Design": {
"type": "Transitive",
@@ -97,147 +90,135 @@
},
"Microsoft.EntityFrameworkCore.Relational": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "Ht6OT17sYnO31Dx+hX72YHrc5kZt53g5napaw0FpyIekXCvb+gUVvufEG55Fa7taFm8ccy0Vzs+JVNR9NL0JlA==",
+ "resolved": "8.0.18",
+ "contentHash": "SL067ITd6QfDF9wNsNtGm3fROpnv3SNrOY3Fjb+efEUnKn5NI0sUitrtpUim+t1DtCJIs7qgmyCPdD3zjSt4Xw==",
"dependencies": {
- "Microsoft.EntityFrameworkCore": "9.0.6",
- "Microsoft.Extensions.Caching.Memory": "9.0.6",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6"
+ "Microsoft.EntityFrameworkCore": "8.0.18",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.EntityFrameworkCore.Sqlite.Core": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "xP+SvMDR/GZCDNXFw7z4WYbO2sYpECvht3+lqejg+Md8vLtURwTBvdsOUAnY4jBGmNFqHeh87hZSmUGmuxyqMA==",
+ "resolved": "8.0.18",
+ "contentHash": "1eHyHx2+l3hMrIBILJqNYmP4AnNfeE+D+E1bWrKqqnsLDKudTAeSmTJV2Q65Xd66jKYXQ0D1YWVRerggp9rt8A==",
"dependencies": {
- "Microsoft.Data.Sqlite.Core": "9.0.6",
- "Microsoft.EntityFrameworkCore.Relational": "9.0.6",
- "Microsoft.Extensions.Caching.Memory": "9.0.6",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
- "Microsoft.Extensions.DependencyModel": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6",
- "SQLitePCLRaw.core": "2.1.10",
- "System.Text.Json": "9.0.6"
+ "Microsoft.Data.Sqlite.Core": "8.0.18",
+ "Microsoft.EntityFrameworkCore.Relational": "8.0.18",
+ "Microsoft.Extensions.DependencyModel": "8.0.2"
}
},
"Microsoft.Extensions.Caching.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "bL/xQsVNrdVkzjP5yjX4ndkQ03H3+Bk3qPpl+AMCEJR2RkfgAYmoQ/xXffPV7is64+QHShnhA12YAaFmNbfM+A==",
+ "resolved": "8.0.0",
+ "contentHash": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.6"
+ "Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Caching.Memory": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "qPW2d798tBPZcRmrlaBJqyChf2+0odDdE+0Lxvrr0ywkSNl1oNMK8AKrOfDwyXyjuLCv0ua7p6nrUExCeXhCcg==",
+ "resolved": "8.0.1",
+ "contentHash": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==",
"dependencies": {
- "Microsoft.Extensions.Caching.Abstractions": "9.0.6",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.6",
- "Microsoft.Extensions.Options": "9.0.6",
- "Microsoft.Extensions.Primitives": "9.0.6"
+ "Microsoft.Extensions.Caching.Abstractions": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.2",
+ "Microsoft.Extensions.Options": "8.0.2",
+ "Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "3GgMIi2jP8g1fBW93Z9b9Unamc0SIsgyhiCmC91gq4loTixK9vQMuxxUsfJ1kRGwn+/FqLKwOHqmn0oYWn3Fvw==",
+ "resolved": "8.0.0",
+ "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.6"
+ "Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "vS65HMo5RS10DD543fknsyVDxihMcVxVn3/hNaILgBxWYnOLxWIeCIO9X0QFuCvPRNjClvXe9Aj8KaQNx7vFkQ==",
+ "resolved": "8.0.1",
+ "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "0Zn6nR/6g+90MxskZyOOMPQvnPnrrGu6bytPwkV+azDcTtCSuQ1+GJUrg8Klmnrjk1i6zMpw2lXijl+tw7Q3kA=="
+ "resolved": "8.0.2",
+ "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg=="
},
"Microsoft.Extensions.DependencyModel": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "grVU1ixgMHp+kuhIgvEzhE73jXRY6XmxNBPWrotmbjB9AvJvkwHnIzm1JlOsPpyixFgnzreh/bFBMJAjveX+fQ=="
+ "resolved": "8.0.2",
+ "contentHash": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw=="
},
"Microsoft.Extensions.Logging": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "XBzjitTFaQhF8EbJ645vblZezV1p52ePTxKHoVkRidHF11Xkjxg94qr0Rvp2qyxK2vBJ4OIZ41NB15YUyxTGMQ==",
+ "resolved": "8.0.1",
+ "contentHash": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection": "9.0.6",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.6",
- "Microsoft.Extensions.Options": "9.0.6"
+ "Microsoft.Extensions.DependencyInjection": "8.0.1",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.2",
+ "Microsoft.Extensions.Options": "8.0.2"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "LFnyBNK7WtFmKdnHu3v0HOYQ8BcjYuy0jdC9pgCJ/rbLKoJEG9/dBzSKMEeeWDbDeoWS0TIxOC8a9CM5ufca3A==",
+ "resolved": "8.0.2",
+ "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "wUPhNM1zsI58Dy10xRdF2+pnsisiUuETg5ZBncyAEEUm/CQ9Q1vmivyUWH8RDbAlqyixf2dJNQ2XZb7HsKUEQw==",
+ "resolved": "8.0.2",
+ "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6",
- "Microsoft.Extensions.Primitives": "9.0.6"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "BHniU24QV67qp1pJknqYSofAPYGmijGI8D+ci9yfw33iuFdyOeB9lWTg78ThyYLyQwZw3s0vZ36VMb0MqbUuLw=="
+ "resolved": "8.0.0",
+ "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g=="
},
"SQLitePCLRaw.bundle_e_sqlite3": {
"type": "Transitive",
- "resolved": "2.1.10",
- "contentHash": "UxWuisvZ3uVcVOLJQv7urM/JiQH+v3TmaJc1BLKl5Dxfm/nTzTUrqswCqg/INiYLi61AXnHo1M1JPmPqqLnAdg==",
+ "resolved": "2.1.6",
+ "contentHash": "BmAf6XWt4TqtowmiWe4/5rRot6GerAeklmOPfviOvwLoF5WwgxcJHAxZtySuyW9r9w+HLILnm8VfJFLCUJYW8A==",
"dependencies": {
- "SQLitePCLRaw.lib.e_sqlite3": "2.1.10",
- "SQLitePCLRaw.provider.e_sqlite3": "2.1.10"
+ "SQLitePCLRaw.lib.e_sqlite3": "2.1.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.1.6"
}
},
"SQLitePCLRaw.core": {
"type": "Transitive",
- "resolved": "2.1.10",
- "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw==",
+ "resolved": "2.1.6",
+ "contentHash": "wO6v9GeMx9CUngAet8hbO7xdm+M42p1XeJq47ogyRoYSvNSp0NGLI+MgC0bhrMk9C17MTVFlLiN6ylyExLCc5w==",
"dependencies": {
"System.Memory": "4.5.3"
}
},
"SQLitePCLRaw.lib.e_sqlite3": {
"type": "Transitive",
- "resolved": "2.1.10",
- "contentHash": "mAr69tDbnf3QJpRy2nJz8Qdpebdil00fvycyByR58Cn9eARvR+UiG2Vzsp+4q1tV3ikwiYIjlXCQFc12GfebbA=="
+ "resolved": "2.1.6",
+ "contentHash": "2ObJJLkIUIxRpOUlZNGuD4rICpBnrBR5anjyfUFQep4hMOIeqW+XGQYzrNmHSVz5xSWZ3klSbh7sFR6UyDj68Q=="
},
"SQLitePCLRaw.provider.e_sqlite3": {
"type": "Transitive",
- "resolved": "2.1.10",
- "contentHash": "uZVTi02C1SxqzgT0HqTWatIbWGb40iIkfc3FpFCpE/r7g6K0PqzDUeefL6P6HPhDtc6BacN3yQysfzP7ks+wSQ==",
+ "resolved": "2.1.6",
+ "contentHash": "PQ2Oq3yepLY4P7ll145P3xtx2bX8xF4PzaKPRpw9jZlKvfe4LE/saAV82inND9usn1XRpmxXk7Lal3MTI+6CNg==",
"dependencies": {
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.6"
}
},
"System.Memory": {
"type": "Transitive",
"resolved": "4.5.3",
"contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
- },
- "System.Text.Json": {
- "type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "h+ZtYTyTnTh5Ju6mHCKb3FPGx4ylJZgm9W7Y2psUnkhQRPMOIxX+TCN0ZgaR/+Yea+93XHWAaMzYTar1/EHIPg=="
}
}
}
diff --git a/tests/CentralPackageManagementTests.fs b/tests/CentralPackageManagementTests.fs
new file mode 100644
index 0000000..1c64e56
--- /dev/null
+++ b/tests/CentralPackageManagementTests.fs
@@ -0,0 +1,35 @@
+module CentralPackageManagementTests
+
+open Xunit
+open System.IO
+
+[]
+let ``Central Package Management - Directory.Packages.props exists`` () =
+ // This test verifies that Central Package Management is properly configured
+ let solutionRoot = Path.Combine(__SOURCE_DIRECTORY__, "..")
+ let centralPkgFile = Path.Combine(solutionRoot, "Directory.Packages.props")
+ Assert.True(File.Exists(centralPkgFile), "Directory.Packages.props should exist for Central Package Management")
+
+[]
+let ``Central Package Management - Directory.Packages.props contains ManagePackageVersionsCentrally`` () =
+ // Verify the central package management is enabled
+ let solutionRoot = Path.Combine(__SOURCE_DIRECTORY__, "..")
+ let centralPkgFile = Path.Combine(solutionRoot, "Directory.Packages.props")
+ let content = File.ReadAllText(centralPkgFile)
+ Assert.Contains("ManagePackageVersionsCentrally", content)
+ Assert.Contains("true", content)
+
+[]
+let ``Central Package Management - Project files do not contain Version attributes`` () =
+ // Verify project files use central package management (no version attributes)
+ let solutionRoot = Path.Combine(__SOURCE_DIRECTORY__, "..")
+ let webProject = Path.Combine(solutionRoot, "src", "Microsoft.eShopWeb.Web", "Microsoft.eShopWeb.Web.fsproj")
+ let testProject = Path.Combine(solutionRoot, "tests", "FShopOnWeb.Tests.fsproj")
+
+ let webContent = File.ReadAllText(webProject)
+ let testContent = File.ReadAllText(testProject)
+
+ // Should not contain Version attributes in PackageReference elements
+ Assert.DoesNotContain("PackageReference Include=\"EntityFrameworkCore.FSharp\" Version=", webContent)
+ Assert.DoesNotContain("PackageReference Include=\"Falco\" Version=", webContent)
+ Assert.DoesNotContain("PackageReference Include=\"xunit\" Version=", testContent)
\ No newline at end of file
diff --git a/tests/FShopOnWeb.Tests.fsproj b/tests/FShopOnWeb.Tests.fsproj
index 88f719e..010f798 100644
--- a/tests/FShopOnWeb.Tests.fsproj
+++ b/tests/FShopOnWeb.Tests.fsproj
@@ -8,16 +8,17 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/tests/packages.lock.json b/tests/packages.lock.json
index 1da65ff..dc646fd 100644
--- a/tests/packages.lock.json
+++ b/tests/packages.lock.json
@@ -1,5 +1,5 @@
{
- "version": 1,
+ "version": 2,
"dependencies": {
"net9.0": {
"coverlet.collector": {
@@ -18,12 +18,6 @@
"Microsoft.EntityFrameworkCore.Design": "6.0.0"
}
},
- "FSharp.Core": {
- "type": "Direct",
- "requested": "[9.0.300, )",
- "resolved": "9.0.300",
- "contentHash": "TVt2J7RCE1KCS2IaONF+p8/KIZ1eHNbW+7qmKF6hGoD4tXl+o07ja1mPtFjMqRa5uHMFaTrGTPn/m945WnDLiQ=="
- },
"Microsoft.EntityFrameworkCore.InMemory": {
"type": "Direct",
"requested": "[9.0.0, )",
@@ -62,15 +56,6 @@
"resolved": "2.8.2",
"contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ=="
},
- "Falco": {
- "type": "Transitive",
- "resolved": "4.0.6",
- "contentHash": "EbXhnwdalKEGVBwYctYmh1QpgWs/0zJ37CNtSWwt5mmj1Xk6bNTJhyU55ppiF3HFnXRia3iJEc4x6okWoNnx2Q==",
- "dependencies": {
- "FSharp.Core": "6.0.0",
- "Falco.Markup": "1.0.2"
- }
- },
"Falco.Markup": {
"type": "Transitive",
"resolved": "1.0.2",
@@ -79,6 +64,11 @@
"FSharp.Core": "4.5.2"
}
},
+ "FSharp.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.1",
+ "contentHash": "VrFAiW8dEEekk+0aqlbvMNZzDvYXmgWZwAt68AUBqaWK8RnoEVUNglj66bZzhs4/U63q0EfXlhcEKnH1sTYLjw=="
+ },
"Humanizer.Core": {
"type": "Transitive",
"resolved": "2.8.26",
@@ -91,32 +81,32 @@
},
"Microsoft.Data.Sqlite.Core": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "3auiudiViGzj1TidUdjuDqtP3+f6PBk4xdw6r9sBaTtkYoGc3AZn0cP8LgYZaLRnJBqY5bXRLB+qhjoB+iATzA==",
+ "resolved": "8.0.18",
+ "contentHash": "Fw4JZz1MbcpmYzuyWI3FSgb8891AOIbDk1FLug8IWlxbiMUlvZilwv/NVIxnyUw/a/3moFQN/mXA3XHvGGSu2w==",
"dependencies": {
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.6"
}
},
"Microsoft.EntityFrameworkCore": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "r5hzM6Bhw4X3z28l5vmsaCPjk9VsQP4zaaY01THh1SAYjgTMVadYIvpNkCfmrv/Klks6aIf2A9eY7cpGZab/hg==",
+ "resolved": "9.0.0",
+ "contentHash": "wpG+nfnfDAw87R3ovAsUmjr3MZ4tYXf6bFqEPVAIKE6IfPml3DS//iX0DBnf8kWn5ZHSO5oi1m4d/Jf+1LifJQ==",
"dependencies": {
- "Microsoft.EntityFrameworkCore.Abstractions": "9.0.6",
- "Microsoft.EntityFrameworkCore.Analyzers": "9.0.6",
- "Microsoft.Extensions.Caching.Memory": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6"
+ "Microsoft.EntityFrameworkCore.Abstractions": "9.0.0",
+ "Microsoft.EntityFrameworkCore.Analyzers": "9.0.0",
+ "Microsoft.Extensions.Caching.Memory": "9.0.0",
+ "Microsoft.Extensions.Logging": "9.0.0"
}
},
"Microsoft.EntityFrameworkCore.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "7MkhPK8emb8hfOx/mFVvHuIHxQ+mH2YdlK4sFUXgsGlvR0A44vsmd2wcHavZOTTzaKhN+aFUVy3zmkztKmTo+A=="
+ "resolved": "9.0.0",
+ "contentHash": "fnmifFL8KaA4ZNLCVgfjCWhZUFxkrDInx5hR4qG7Q8IEaSiy/6VOSRFyx55oH7MV4y7wM3J3EE90nSpcVBI44Q=="
},
"Microsoft.EntityFrameworkCore.Analyzers": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "VKggHNQC5FCn3/vooaIM/4aEjGmrmWm78IrdRLz9lLV0Rm9bVHEr/jiWApDkU0U9ec2xGAilvQqJ5mMX7QC2cw=="
+ "resolved": "9.0.0",
+ "contentHash": "Qje+DzXJOKiXF72SL0XxNlDtTkvWWvmwknuZtFahY5hIQpRKO59qnGuERIQ3qlzuq5x4bAJ8WMbgU5DLhBgeOQ=="
},
"Microsoft.EntityFrameworkCore.Design": {
"type": "Transitive",
@@ -129,122 +119,100 @@
},
"Microsoft.EntityFrameworkCore.Relational": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "Ht6OT17sYnO31Dx+hX72YHrc5kZt53g5napaw0FpyIekXCvb+gUVvufEG55Fa7taFm8ccy0Vzs+JVNR9NL0JlA==",
+ "resolved": "8.0.18",
+ "contentHash": "SL067ITd6QfDF9wNsNtGm3fROpnv3SNrOY3Fjb+efEUnKn5NI0sUitrtpUim+t1DtCJIs7qgmyCPdD3zjSt4Xw==",
"dependencies": {
- "Microsoft.EntityFrameworkCore": "9.0.6",
- "Microsoft.Extensions.Caching.Memory": "9.0.6",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6"
- }
- },
- "Microsoft.EntityFrameworkCore.Sqlite": {
- "type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "bVSdfFrqIo3ZeQfWYYfnVVanP1GWghkdw+MnEmZJz7jUwtdPQpBKHr0BW9dMizPamzU+SMA1Qu4nXuRTlKVAGQ==",
- "dependencies": {
- "Microsoft.EntityFrameworkCore.Sqlite.Core": "9.0.6",
- "Microsoft.Extensions.Caching.Memory": "9.0.6",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
- "Microsoft.Extensions.DependencyModel": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6",
- "SQLitePCLRaw.bundle_e_sqlite3": "2.1.10",
- "SQLitePCLRaw.core": "2.1.10",
- "System.Text.Json": "9.0.6"
+ "Microsoft.EntityFrameworkCore": "8.0.18",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.EntityFrameworkCore.Sqlite.Core": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "xP+SvMDR/GZCDNXFw7z4WYbO2sYpECvht3+lqejg+Md8vLtURwTBvdsOUAnY4jBGmNFqHeh87hZSmUGmuxyqMA==",
+ "resolved": "8.0.18",
+ "contentHash": "1eHyHx2+l3hMrIBILJqNYmP4AnNfeE+D+E1bWrKqqnsLDKudTAeSmTJV2Q65Xd66jKYXQ0D1YWVRerggp9rt8A==",
"dependencies": {
- "Microsoft.Data.Sqlite.Core": "9.0.6",
- "Microsoft.EntityFrameworkCore.Relational": "9.0.6",
- "Microsoft.Extensions.Caching.Memory": "9.0.6",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
- "Microsoft.Extensions.DependencyModel": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6",
- "SQLitePCLRaw.core": "2.1.10",
- "System.Text.Json": "9.0.6"
+ "Microsoft.Data.Sqlite.Core": "8.0.18",
+ "Microsoft.EntityFrameworkCore.Relational": "8.0.18",
+ "Microsoft.Extensions.DependencyModel": "8.0.2"
}
},
"Microsoft.Extensions.Caching.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "bL/xQsVNrdVkzjP5yjX4ndkQ03H3+Bk3qPpl+AMCEJR2RkfgAYmoQ/xXffPV7is64+QHShnhA12YAaFmNbfM+A==",
+ "resolved": "9.0.0",
+ "contentHash": "FPWZAa9c0H4dvOj351iR1jkUIs4u9ykL4Bm592yhjDyO5lCoWd+TMAHx2EMbarzUvCvgjWjJIoC6//Q9kH6YhA==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.6"
+ "Microsoft.Extensions.Primitives": "9.0.0"
}
},
"Microsoft.Extensions.Caching.Memory": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "qPW2d798tBPZcRmrlaBJqyChf2+0odDdE+0Lxvrr0ywkSNl1oNMK8AKrOfDwyXyjuLCv0ua7p6nrUExCeXhCcg==",
+ "resolved": "9.0.0",
+ "contentHash": "zbnPX/JQ0pETRSUG9fNPBvpIq42Aufvs15gGYyNIMhCun9yhmWihz0WgsI7bSDPjxWTKBf8oX/zv6v2uZ3W9OQ==",
"dependencies": {
- "Microsoft.Extensions.Caching.Abstractions": "9.0.6",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.6",
- "Microsoft.Extensions.Options": "9.0.6",
- "Microsoft.Extensions.Primitives": "9.0.6"
+ "Microsoft.Extensions.Caching.Abstractions": "9.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "Microsoft.Extensions.Options": "9.0.0",
+ "Microsoft.Extensions.Primitives": "9.0.0"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "3GgMIi2jP8g1fBW93Z9b9Unamc0SIsgyhiCmC91gq4loTixK9vQMuxxUsfJ1kRGwn+/FqLKwOHqmn0oYWn3Fvw==",
+ "resolved": "8.0.0",
+ "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.6"
+ "Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "vS65HMo5RS10DD543fknsyVDxihMcVxVn3/hNaILgBxWYnOLxWIeCIO9X0QFuCvPRNjClvXe9Aj8KaQNx7vFkQ==",
+ "resolved": "9.0.0",
+ "contentHash": "MCPrg7v3QgNMr0vX4vzRXvkNGgLg8vKWX0nKCWUxu2uPyMsaRgiRc1tHBnbTcfJMhMKj2slE/j2M9oGkd25DNw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "0Zn6nR/6g+90MxskZyOOMPQvnPnrrGu6bytPwkV+azDcTtCSuQ1+GJUrg8Klmnrjk1i6zMpw2lXijl+tw7Q3kA=="
+ "resolved": "9.0.0",
+ "contentHash": "+6f2qv2a3dLwd5w6JanPIPs47CxRbnk+ZocMJUhv9NxP88VlOcJYZs9jY+MYSjxvady08bUZn6qgiNh7DadGgg=="
},
"Microsoft.Extensions.DependencyModel": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "grVU1ixgMHp+kuhIgvEzhE73jXRY6XmxNBPWrotmbjB9AvJvkwHnIzm1JlOsPpyixFgnzreh/bFBMJAjveX+fQ=="
+ "resolved": "8.0.2",
+ "contentHash": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw=="
},
"Microsoft.Extensions.Logging": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "XBzjitTFaQhF8EbJ645vblZezV1p52ePTxKHoVkRidHF11Xkjxg94qr0Rvp2qyxK2vBJ4OIZ41NB15YUyxTGMQ==",
+ "resolved": "9.0.0",
+ "contentHash": "crjWyORoug0kK7RSNJBTeSE6VX8IQgLf3nUpTB9m62bPXp/tzbnOsnbe8TXEG0AASNaKZddnpHKw7fET8E++Pg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection": "9.0.6",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.6",
- "Microsoft.Extensions.Options": "9.0.6"
+ "Microsoft.Extensions.DependencyInjection": "9.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "Microsoft.Extensions.Options": "9.0.0"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "LFnyBNK7WtFmKdnHu3v0HOYQ8BcjYuy0jdC9pgCJ/rbLKoJEG9/dBzSKMEeeWDbDeoWS0TIxOC8a9CM5ufca3A==",
+ "resolved": "9.0.0",
+ "contentHash": "g0UfujELzlLbHoVG8kPKVBaW470Ewi+jnptGS9KUi6jcb+k2StujtK3m26DFSGGwQ/+bVgZfsWqNzlP6YOejvw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0"
}
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "wUPhNM1zsI58Dy10xRdF2+pnsisiUuETg5ZBncyAEEUm/CQ9Q1vmivyUWH8RDbAlqyixf2dJNQ2XZb7HsKUEQw==",
+ "resolved": "9.0.0",
+ "contentHash": "y2146b3jrPI3Q0lokKXdKLpmXqakYbDIPDV6r3M8SqvSf45WwOTzkyfDpxnZXJsJQEpAsAqjUq5Pu8RCJMjubg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6",
- "Microsoft.Extensions.Primitives": "9.0.6"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0",
+ "Microsoft.Extensions.Primitives": "9.0.0"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "BHniU24QV67qp1pJknqYSofAPYGmijGI8D+ci9yfw33iuFdyOeB9lWTg78ThyYLyQwZw3s0vZ36VMb0MqbUuLw=="
+ "resolved": "9.0.0",
+ "contentHash": "N3qEBzmLMYiASUlKxxFIISP4AiwuPTHF5uCh+2CWSwwzAJiIYx0kBJsS30cp1nvhSySFAVi30jecD307jV+8Kg=="
},
"Microsoft.TestPlatform.ObjectModel": {
"type": "Transitive",
@@ -270,32 +238,32 @@
},
"SQLitePCLRaw.bundle_e_sqlite3": {
"type": "Transitive",
- "resolved": "2.1.10",
- "contentHash": "UxWuisvZ3uVcVOLJQv7urM/JiQH+v3TmaJc1BLKl5Dxfm/nTzTUrqswCqg/INiYLi61AXnHo1M1JPmPqqLnAdg==",
+ "resolved": "2.1.6",
+ "contentHash": "BmAf6XWt4TqtowmiWe4/5rRot6GerAeklmOPfviOvwLoF5WwgxcJHAxZtySuyW9r9w+HLILnm8VfJFLCUJYW8A==",
"dependencies": {
- "SQLitePCLRaw.lib.e_sqlite3": "2.1.10",
- "SQLitePCLRaw.provider.e_sqlite3": "2.1.10"
+ "SQLitePCLRaw.lib.e_sqlite3": "2.1.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.1.6"
}
},
"SQLitePCLRaw.core": {
"type": "Transitive",
- "resolved": "2.1.10",
- "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw==",
+ "resolved": "2.1.6",
+ "contentHash": "wO6v9GeMx9CUngAet8hbO7xdm+M42p1XeJq47ogyRoYSvNSp0NGLI+MgC0bhrMk9C17MTVFlLiN6ylyExLCc5w==",
"dependencies": {
"System.Memory": "4.5.3"
}
},
"SQLitePCLRaw.lib.e_sqlite3": {
"type": "Transitive",
- "resolved": "2.1.10",
- "contentHash": "mAr69tDbnf3QJpRy2nJz8Qdpebdil00fvycyByR58Cn9eARvR+UiG2Vzsp+4q1tV3ikwiYIjlXCQFc12GfebbA=="
+ "resolved": "2.1.6",
+ "contentHash": "2ObJJLkIUIxRpOUlZNGuD4rICpBnrBR5anjyfUFQep4hMOIeqW+XGQYzrNmHSVz5xSWZ3klSbh7sFR6UyDj68Q=="
},
"SQLitePCLRaw.provider.e_sqlite3": {
"type": "Transitive",
- "resolved": "2.1.10",
- "contentHash": "uZVTi02C1SxqzgT0HqTWatIbWGb40iIkfc3FpFCpE/r7g6K0PqzDUeefL6P6HPhDtc6BacN3yQysfzP7ks+wSQ==",
+ "resolved": "2.1.6",
+ "contentHash": "PQ2Oq3yepLY4P7ll145P3xtx2bX8xF4PzaKPRpw9jZlKvfe4LE/saAV82inND9usn1XRpmxXk7Lal3MTI+6CNg==",
"dependencies": {
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.6"
}
},
"System.Memory": {
@@ -308,11 +276,6 @@
"resolved": "1.6.0",
"contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ=="
},
- "System.Text.Json": {
- "type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "h+ZtYTyTnTh5Ju6mHCKb3FPGx4ylJZgm9W7Y2psUnkhQRPMOIxX+TCN0ZgaR/+Yea+93XHWAaMzYTar1/EHIPg=="
- },
"xunit.abstractions": {
"type": "Transitive",
"resolved": "2.0.3",
@@ -357,9 +320,28 @@
"type": "Project",
"dependencies": {
"EntityFrameworkCore.FSharp": "[6.0.7, )",
- "FSharp.Core": "[9.0.300, )",
"Falco": "[4.0.6, )",
- "Microsoft.EntityFrameworkCore.Sqlite": "[9.0.6, )"
+ "Microsoft.EntityFrameworkCore.Sqlite": "[8.0.18, )"
+ }
+ },
+ "Falco": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.6, )",
+ "resolved": "4.0.6",
+ "contentHash": "EbXhnwdalKEGVBwYctYmh1QpgWs/0zJ37CNtSWwt5mmj1Xk6bNTJhyU55ppiF3HFnXRia3iJEc4x6okWoNnx2Q==",
+ "dependencies": {
+ "FSharp.Core": "6.0.0",
+ "Falco.Markup": "1.0.2"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Sqlite": {
+ "type": "CentralTransitive",
+ "requested": "[8.0.18, )",
+ "resolved": "8.0.18",
+ "contentHash": "sND0U4KRvbIoxQmPCfCj6crSCZsV7OhzX59vcD7N+GvlqcDWZkALQFGCaIgDLGhxO+IFtfmG0KhkVLQCbiZdKA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Sqlite.Core": "8.0.18",
+ "SQLitePCLRaw.bundle_e_sqlite3": "2.1.6"
}
}
}