diff --git a/examples/Imageflow.Server.Example/packages.lock.json b/examples/Imageflow.Server.Example/packages.lock.json index c79517ab..2d680448 100644 --- a/examples/Imageflow.Server.Example/packages.lock.json +++ b/examples/Imageflow.Server.Example/packages.lock.json @@ -249,11 +249,8 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "5.0.0", + "contentHash": "cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==" }, "Microsoft.Identity.Client": { "type": "Transitive", @@ -308,8 +305,8 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -346,8 +343,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "System.Linq.Async": { "type": "Transitive", @@ -402,8 +399,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -421,7 +418,7 @@ "imageflow.server": { "type": "Project", "dependencies": { - "Imageflow.AllPlatforms": "[0.10.2, )", + "Imageflow.AllPlatforms": "[0.10.*, )", "Imazen.Common": "[0.1.0--notset, )", "Imazen.Routing": "[0.1.0--notset, )" } @@ -460,8 +457,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -480,13 +477,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } }, @@ -738,8 +734,8 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "5.0.0", + "contentHash": "cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==" }, "Microsoft.Identity.Client": { "type": "Transitive", @@ -794,8 +790,11 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", @@ -829,8 +828,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "System.Linq.Async": { "type": "Transitive", @@ -885,8 +884,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Text.Json": { "type": "Transitive", @@ -901,7 +903,7 @@ "imageflow.server": { "type": "Project", "dependencies": { - "Imageflow.AllPlatforms": "[0.10.2, )", + "Imageflow.AllPlatforms": "[0.10.*, )", "Imazen.Common": "[0.1.0--notset, )", "Imazen.Routing": "[0.1.0--notset, )" } @@ -940,8 +942,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -960,13 +962,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } } diff --git a/examples/Imageflow.Server.ExampleMinimal/packages.lock.json b/examples/Imageflow.Server.ExampleMinimal/packages.lock.json index 10b1ed21..9b6f829f 100644 --- a/examples/Imageflow.Server.ExampleMinimal/packages.lock.json +++ b/examples/Imageflow.Server.ExampleMinimal/packages.lock.json @@ -93,8 +93,12 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", @@ -108,23 +112,39 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imageflow.server": { "type": "Project", "dependencies": { - "Imageflow.AllPlatforms": "[0.10.2, )", + "Imageflow.AllPlatforms": "[0.10.*, )", "Imazen.Common": "[0.1.0--notset, )", "Imazen.Routing": "[0.1.0--notset, )" } @@ -132,8 +152,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -145,13 +165,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } } diff --git a/src/Imageflow.Server.Configuration/packages.lock.json b/src/Imageflow.Server.Configuration/packages.lock.json index 27fc76ef..efa32d9d 100644 --- a/src/Imageflow.Server.Configuration/packages.lock.json +++ b/src/Imageflow.Server.Configuration/packages.lock.json @@ -119,8 +119,12 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", @@ -139,8 +143,11 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Interactive.Async": { "type": "Transitive", @@ -152,8 +159,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "System.Linq.Async": { "type": "Transitive", @@ -163,15 +170,28 @@ "Microsoft.Bcl.AsyncInterfaces": "6.0.0" } }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imageflow.server": { "type": "Project", "dependencies": { - "Imageflow.AllPlatforms": "[0.10.2, )", + "Imageflow.AllPlatforms": "[0.10.*, )", "Imazen.Common": "[0.1.0--notset, )", "Imazen.Routing": "[0.1.0--notset, )" } @@ -187,8 +207,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -207,13 +227,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } } diff --git a/src/Imageflow.Server.DiskCache/packages.lock.json b/src/Imageflow.Server.DiskCache/packages.lock.json index 21ba21e9..d20a885a 100644 --- a/src/Imageflow.Server.DiskCache/packages.lock.json +++ b/src/Imageflow.Server.DiskCache/packages.lock.json @@ -23,8 +23,8 @@ }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } @@ -117,11 +117,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, @@ -136,12 +136,12 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } }, "imazen.common": { @@ -237,8 +237,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -246,8 +246,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -338,19 +338,22 @@ }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { diff --git a/src/Imageflow.Server.Host/packages.lock.json b/src/Imageflow.Server.Host/packages.lock.json index 81ec1df7..71c11a59 100644 --- a/src/Imageflow.Server.Host/packages.lock.json +++ b/src/Imageflow.Server.Host/packages.lock.json @@ -261,8 +261,8 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "5.0.0", + "contentHash": "cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==" }, "Microsoft.Identity.Client": { "type": "Transitive", @@ -317,8 +317,11 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", @@ -352,8 +355,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "System.Linq.Async": { "type": "Transitive", @@ -408,8 +411,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Text.Json": { "type": "Transitive", @@ -429,7 +435,7 @@ "imageflow.server": { "type": "Project", "dependencies": { - "Imageflow.AllPlatforms": "[0.10.2, )", + "Imageflow.AllPlatforms": "[0.10.*, )", "Imazen.Common": "[0.1.0--notset, )", "Imazen.Routing": "[0.1.0--notset, )" } @@ -477,8 +483,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -497,13 +503,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } } diff --git a/src/Imageflow.Server.HybridCache/packages.lock.json b/src/Imageflow.Server.HybridCache/packages.lock.json index b8ccc1c0..8c6e5dde 100644 --- a/src/Imageflow.Server.HybridCache/packages.lock.json +++ b/src/Imageflow.Server.HybridCache/packages.lock.json @@ -134,11 +134,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, @@ -153,12 +153,12 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } }, "imazen.common": { @@ -276,8 +276,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -285,8 +285,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -399,19 +399,22 @@ }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { diff --git a/src/Imageflow.Server.Storage.AzureBlob/AzureBlobService.cs b/src/Imageflow.Server.Storage.AzureBlob/AzureBlobService.cs index 36ea827c..b5ca91af 100644 --- a/src/Imageflow.Server.Storage.AzureBlob/AzureBlobService.cs +++ b/src/Imageflow.Server.Storage.AzureBlob/AzureBlobService.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Azure; +using Azure; using Azure.Storage.Blobs; using Imageflow.Server.Storage.AzureBlob.Caching; using Imazen.Abstractions.BlobCache; @@ -14,7 +10,7 @@ namespace Imageflow.Server.Storage.AzureBlob { - public class AzureBlobService : IBlobWrapperProvider, IBlobCacheProvider + public class AzureBlobService : IBlobWrapperProvider, IBlobCacheProvider, IBlobWrapperProviderZoned { private readonly List mappings = new List(); @@ -27,9 +23,15 @@ public class AzureBlobService : IBlobWrapperProvider, IBlobCacheProvider public string UniqueName { get; } - + public IEnumerable GetPrefixesAndZones() + { + return mappings.Select(m => new BlobWrapperPrefixZone(m.UrlPrefix, + new LatencyTrackingZone($"azure::blob/{m.Container}", 100))); + } + public AzureBlobService(AzureBlobServiceOptions options, IReLoggerFactory loggerFactory, BlobServiceClient defaultClient, IAzureClientFactory clientFactory) { + UniqueName = options.UniqueName ?? "azure-blob"; var nameOrInstance = options.GetOrCreateClient(); if (nameOrInstance.HasValue) { diff --git a/src/Imageflow.Server.Storage.AzureBlob/AzureBlobServiceOptions.cs b/src/Imageflow.Server.Storage.AzureBlob/AzureBlobServiceOptions.cs index efe0d72a..44f057d4 100644 --- a/src/Imageflow.Server.Storage.AzureBlob/AzureBlobServiceOptions.cs +++ b/src/Imageflow.Server.Storage.AzureBlob/AzureBlobServiceOptions.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using Azure.Storage.Blobs; using Imageflow.Server.Storage.AzureBlob.Caching; @@ -8,18 +6,20 @@ namespace Imageflow.Server.Storage.AzureBlob public class AzureBlobServiceOptions { [Obsolete("Use BlobServiceClient instead")] - public BlobClientOptions BlobClientOptions { get; set; } + public BlobClientOptions? BlobClientOptions { get; set; } + [Obsolete("Use BlobServiceClient instead")] - public string ConnectionString { get; set; } + public string? ConnectionString { get; set; } internal readonly List NamedCaches = new List(); internal BlobClientOrName? BlobServiceClient { get; set; } + public string? UniqueName { get; set; } internal readonly List Mappings = new List(); [Obsolete("Use AzureBlobServiceOptions(BlobServiceClient client) or .ICalledAddBlobServiceClient instead")] - public AzureBlobServiceOptions(string connectionString, BlobClientOptions blobClientOptions = null) + public AzureBlobServiceOptions(string connectionString, BlobClientOptions? blobClientOptions = null) { BlobClientOptions = blobClientOptions ?? new BlobClientOptions(); ConnectionString = connectionString; @@ -46,9 +46,11 @@ internal AzureBlobServiceOptions() /// https://learn.microsoft.com/en-us/dotnet/azure/sdk/dependency-injection /// /// + // ReSharper disable once InconsistentNaming public static AzureBlobServiceOptions ICalledAddBlobServiceClient(){ return new AzureBlobServiceOptions(); } + // ReSharper disable once InconsistentNaming public static AzureBlobServiceOptions ICalledAddBlobServiceClientWithName(string blobClientName){ return new AzureBlobServiceOptions(){ BlobServiceClient = new BlobClientOrName(blobClientName) diff --git a/src/Imageflow.Server.Storage.AzureBlob/Caching/BlobClientOrName.cs b/src/Imageflow.Server.Storage.AzureBlob/Caching/BlobClientOrName.cs index aec9ceae..f1007435 100644 --- a/src/Imageflow.Server.Storage.AzureBlob/Caching/BlobClientOrName.cs +++ b/src/Imageflow.Server.Storage.AzureBlob/Caching/BlobClientOrName.cs @@ -6,8 +6,8 @@ namespace Imageflow.Server.Storage.AzureBlob.Caching { internal struct BlobClientOrName { - internal readonly BlobServiceClient Client; - internal readonly string Name; + internal readonly BlobServiceClient? Client; + internal readonly string? Name; internal BlobClientOrName(BlobServiceClient client) { @@ -33,7 +33,7 @@ public BlobClientOrName Or(BlobServiceClient client) return this; } - public BlobServiceClient Resolve(IAzureClientFactory clientFactory) + public BlobServiceClient? Resolve(IAzureClientFactory clientFactory) { if (Client != null) return Client; if (Name != null) return clientFactory.CreateClient(Name); diff --git a/src/Imageflow.Server.Storage.AzureBlob/packages.lock.json b/src/Imageflow.Server.Storage.AzureBlob/packages.lock.json index 7c195fc1..84ca00d3 100644 --- a/src/Imageflow.Server.Storage.AzureBlob/packages.lock.json +++ b/src/Imageflow.Server.Storage.AzureBlob/packages.lock.json @@ -85,8 +85,8 @@ }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } @@ -286,11 +286,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, @@ -319,12 +319,12 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } }, "imazen.common": { @@ -588,8 +588,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -607,8 +607,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -872,8 +872,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Text.Json": { "type": "Transitive", @@ -888,8 +891,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { diff --git a/src/Imageflow.Server.Storage.RemoteReader/packages.lock.json b/src/Imageflow.Server.Storage.RemoteReader/packages.lock.json index 52780eab..52d8e9b7 100644 --- a/src/Imageflow.Server.Storage.RemoteReader/packages.lock.json +++ b/src/Imageflow.Server.Storage.RemoteReader/packages.lock.json @@ -35,8 +35,8 @@ }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } @@ -170,11 +170,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, @@ -189,12 +189,12 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } }, "imazen.common": { @@ -314,8 +314,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -323,8 +323,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -437,16 +437,24 @@ "resolved": "8.0.0", "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { diff --git a/src/Imageflow.Server.Storage.S3/S3Service.cs b/src/Imageflow.Server.Storage.S3/S3Service.cs index 002fbf0a..c8551deb 100644 --- a/src/Imageflow.Server.Storage.S3/S3Service.cs +++ b/src/Imageflow.Server.Storage.S3/S3Service.cs @@ -12,7 +12,7 @@ namespace Imageflow.Server.Storage.S3 { - public class S3Service : IBlobWrapperProvider, IDisposable, IBlobCacheProvider + public class S3Service : IBlobWrapperProvider, IDisposable, IBlobCacheProvider, IBlobWrapperProviderZoned { private readonly List mappings = []; private readonly List namedCaches = []; @@ -36,6 +36,12 @@ public S3Service(S3ServiceOptions options, IAmazonS3 s3Client, IReLoggerFactory } public string UniqueName { get; } + public IEnumerable GetPrefixesAndZones() + { + return mappings.Select(m => new BlobWrapperPrefixZone(m.Prefix, + new LatencyTrackingZone($"s3::bucket/{m.Bucket}", 100))); + } + public IEnumerable GetPrefixes() { return mappings.Select(m => m.Prefix); diff --git a/src/Imageflow.Server.Storage.S3/packages.lock.json b/src/Imageflow.Server.Storage.S3/packages.lock.json index f5978b94..7e2519ad 100644 --- a/src/Imageflow.Server.Storage.S3/packages.lock.json +++ b/src/Imageflow.Server.Storage.S3/packages.lock.json @@ -61,8 +61,8 @@ }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } @@ -121,11 +121,11 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" } }, "Microsoft.IO.RecyclableMemoryStream": { @@ -155,20 +155,20 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Threading.Tasks.Extensions": "4.5.4" } }, @@ -194,11 +194,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, @@ -213,12 +213,12 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } }, "imazen.common": { @@ -230,14 +230,13 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } } }, @@ -330,10 +329,11 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" } }, "Microsoft.IO.RecyclableMemoryStream": { @@ -353,16 +353,21 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", @@ -371,8 +376,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -380,8 +385,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -393,13 +398,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } }, @@ -492,8 +496,12 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", @@ -512,24 +520,40 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -541,13 +565,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } } diff --git a/src/Imageflow.Server/Imageflow.Server.csproj b/src/Imageflow.Server/Imageflow.Server.csproj index a9a64b2e..7e6e73bd 100644 --- a/src/Imageflow.Server/Imageflow.Server.csproj +++ b/src/Imageflow.Server/Imageflow.Server.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/Imageflow.Server/packages.lock.json b/src/Imageflow.Server/packages.lock.json index 4edcff61..b4fa5c3b 100644 --- a/src/Imageflow.Server/packages.lock.json +++ b/src/Imageflow.Server/packages.lock.json @@ -4,7 +4,7 @@ "net6.0": { "Imageflow.AllPlatforms": { "type": "Direct", - "requested": "[0.10.2, )", + "requested": "[0.10.*, )", "resolved": "0.10.2", "contentHash": "xBE1ob69E4z4Qg3v18RJe81J9rXXWvxpUyYiOZLcZZuOnbIF35t+ToPBQIYFDNgc39NFisf1iru3NnytOGM6tg==", "dependencies": { @@ -109,10 +109,11 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" } }, "Microsoft.IO.RecyclableMemoryStream": { @@ -132,16 +133,21 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", @@ -150,8 +156,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -159,8 +165,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -172,20 +178,19 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } }, "net8.0": { "Imageflow.AllPlatforms": { "type": "Direct", - "requested": "[0.10.2, )", + "requested": "[0.10.*, )", "resolved": "0.10.2", "contentHash": "xBE1ob69E4z4Qg3v18RJe81J9rXXWvxpUyYiOZLcZZuOnbIF35t+ToPBQIYFDNgc39NFisf1iru3NnytOGM6tg==", "dependencies": { @@ -290,8 +295,12 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", @@ -310,24 +319,40 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -339,13 +364,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } } diff --git a/src/Imazen.Abstractions/Blobs/LatencyTrackingZone.cs b/src/Imazen.Abstractions/Blobs/LatencyTrackingZone.cs new file mode 100644 index 00000000..ca5052d5 --- /dev/null +++ b/src/Imazen.Abstractions/Blobs/LatencyTrackingZone.cs @@ -0,0 +1,13 @@ +namespace Imazen.Abstractions.Blobs; + +/// +/// Should be unique to a specific remote server or folder on a server. +/// For example, each container or bucket should provide a unique tracking zone. +/// Each mapped folder for local or network files should provide a unique tracking zone. +/// Each remote server should provide a unique tracking zone. +/// This should not differ more than required, otherwise the self-tuning +/// capabilities of the cache logic will be degraded. +/// +/// +public record LatencyTrackingZone( + string TrackingZone, int DefaultMs); \ No newline at end of file diff --git a/src/Imazen.Abstractions/Blobs/LegacyProviders/IBlobWrapperProvider.cs b/src/Imazen.Abstractions/Blobs/LegacyProviders/IBlobWrapperProvider.cs index 2068ea7d..83f2a2fc 100644 --- a/src/Imazen.Abstractions/Blobs/LegacyProviders/IBlobWrapperProvider.cs +++ b/src/Imazen.Abstractions/Blobs/LegacyProviders/IBlobWrapperProvider.cs @@ -6,8 +6,19 @@ public interface IBlobWrapperProvider : IUniqueNamed { IEnumerable GetPrefixes(); + /// + /// Only called if one of GetPrefixes matches already. + /// + /// + /// bool SupportsPath(string virtualPath); Task> Fetch(string virtualPath); } + + public record BlobWrapperPrefixZone(string Prefix, LatencyTrackingZone LatencyZone); + public interface IBlobWrapperProviderZoned : IUniqueNamed + { + IEnumerable GetPrefixesAndZones(); + } } diff --git a/src/Imazen.Abstractions/Imazen.Abstractions.csproj b/src/Imazen.Abstractions/Imazen.Abstractions.csproj index 2f8fff4a..947c51af 100644 --- a/src/Imazen.Abstractions/Imazen.Abstractions.csproj +++ b/src/Imazen.Abstractions/Imazen.Abstractions.csproj @@ -3,18 +3,19 @@ - - - + + + - - - + + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/src/Imazen.Abstractions/packages.lock.json b/src/Imazen.Abstractions/packages.lock.json index c0cbce2a..07c335a2 100644 --- a/src/Imazen.Abstractions/packages.lock.json +++ b/src/Imazen.Abstractions/packages.lock.json @@ -4,16 +4,16 @@ ".NETStandard,Version=v2.0": { "Microsoft.Bcl.AsyncInterfaces": { "type": "Direct", - "requested": "[5.0.0, )", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "requested": "[6.*, )", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.Extensions.Hosting.Abstractions": { "type": "Direct", - "requested": "[2.2.0, )", + "requested": "[2.*, )", "resolved": "2.2.0", "contentHash": "+k4AEn68HOJat5gj1TWa6X28WlirNQO9sPIIeQbia+91n03esEtMSSoekSTpMjUzjqtJWQN3McVx0GvSPFHF/Q==", "dependencies": { @@ -44,19 +44,19 @@ }, "PolySharp": { "type": "Direct", - "requested": "[1.14.1, )", + "requested": "[1.*, )", "resolved": "1.14.1", "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" }, "System.Buffers": { "type": "Direct", - "requested": "[4.5.1, )", + "requested": "[4.*, )", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Memory": { "type": "Direct", - "requested": "[4.5.5, )", + "requested": "[4.*, )", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { @@ -67,18 +67,18 @@ }, "System.Text.Encodings.Web": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "requested": "[6.*, )", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Tasks.Extensions": { "type": "Direct", - "requested": "[4.5.4, )", + "requested": "[4.*, )", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { @@ -149,7 +149,7 @@ "net6.0": { "Microsoft.Extensions.Hosting.Abstractions": { "type": "Direct", - "requested": "[2.2.0, )", + "requested": "[2.*, )", "resolved": "2.2.0", "contentHash": "+k4AEn68HOJat5gj1TWa6X28WlirNQO9sPIIeQbia+91n03esEtMSSoekSTpMjUzjqtJWQN3McVx0GvSPFHF/Q==", "dependencies": { @@ -171,15 +171,15 @@ }, "PolySharp": { "type": "Direct", - "requested": "[1.14.1, )", + "requested": "[1.*, )", "resolved": "1.14.1", "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" }, "System.Text.Encodings.Web": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "requested": "[6.*, )", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -243,7 +243,7 @@ "net8.0": { "Microsoft.Extensions.Hosting.Abstractions": { "type": "Direct", - "requested": "[2.2.0, )", + "requested": "[2.*, )", "resolved": "2.2.0", "contentHash": "+k4AEn68HOJat5gj1TWa6X28WlirNQO9sPIIeQbia+91n03esEtMSSoekSTpMjUzjqtJWQN3McVx0GvSPFHF/Q==", "dependencies": { @@ -265,15 +265,18 @@ }, "PolySharp": { "type": "Direct", - "requested": "[1.14.1, )", + "requested": "[1.*, )", "resolved": "1.14.1", "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" }, "System.Text.Encodings.Web": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "requested": "[6.*, )", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", @@ -327,8 +330,8 @@ }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" } } } diff --git a/src/Imazen.Common/packages.lock.json b/src/Imazen.Common/packages.lock.json index 6e32bd5b..06dff710 100644 --- a/src/Imazen.Common/packages.lock.json +++ b/src/Imazen.Common/packages.lock.json @@ -23,8 +23,8 @@ }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } @@ -117,11 +117,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, @@ -136,12 +136,12 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } } }, @@ -224,8 +224,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -233,8 +233,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } } }, @@ -312,19 +312,22 @@ }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } } } diff --git a/src/Imazen.DiskCache/packages.lock.json b/src/Imazen.DiskCache/packages.lock.json index f4033cad..4f643e4d 100644 --- a/src/Imazen.DiskCache/packages.lock.json +++ b/src/Imazen.DiskCache/packages.lock.json @@ -29,8 +29,8 @@ }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } @@ -118,11 +118,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, @@ -137,12 +137,12 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } }, "imazen.common": { @@ -232,8 +232,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -241,8 +241,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -327,19 +327,22 @@ }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { diff --git a/src/Imazen.HybridCache/packages.lock.json b/src/Imazen.HybridCache/packages.lock.json index 596b15a1..990fcfe1 100644 --- a/src/Imazen.HybridCache/packages.lock.json +++ b/src/Imazen.HybridCache/packages.lock.json @@ -134,11 +134,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, @@ -153,12 +153,12 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } }, "imazen.common": { @@ -269,8 +269,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -278,8 +278,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -385,19 +385,22 @@ }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { diff --git a/src/Imazen.Routing/Imazen.Routing.csproj b/src/Imazen.Routing/Imazen.Routing.csproj index af190957..791f7d9a 100644 --- a/src/Imazen.Routing/Imazen.Routing.csproj +++ b/src/Imazen.Routing/Imazen.Routing.csproj @@ -10,17 +10,16 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + - + - + diff --git a/src/Imazen.Routing/Layers/BlobProvidersLayer.cs b/src/Imazen.Routing/Layers/BlobProvidersLayer.cs index 680aca6f..3addf866 100644 --- a/src/Imazen.Routing/Layers/BlobProvidersLayer.cs +++ b/src/Imazen.Routing/Layers/BlobProvidersLayer.cs @@ -1,5 +1,6 @@ using System.Buffers; using System.Text; +using Imazen.Abstractions; using Imazen.Abstractions.Blobs; using Imazen.Abstractions.Blobs.LegacyProviders; using Imazen.Abstractions.Resulting; @@ -20,30 +21,46 @@ public BlobProvidersLayer(IEnumerable? blobProviders, IEnumerable foreach (var provider in blobProviders) { this.blobProviders.Add(provider); - foreach (var prefix in provider.GetPrefixes()) - { - CheckAndAddPrefix(prefix); - } + CheckAndAddPrefixes(provider.GetPrefixes(), provider); } if (blobWrapperProviders == null) blobWrapperProviders = Array.Empty(); foreach (var provider in blobWrapperProviders) { this.blobWrapperProviders.Add(provider); - foreach (var prefix in provider.GetPrefixes()) + if (provider is IBlobWrapperProviderZoned zoned) + { + CheckAndAddPrefixes(zoned.GetPrefixesAndZones(), provider); + } + else { - CheckAndAddPrefix(prefix); + CheckAndAddPrefixes(provider.GetPrefixes(), provider); } } - FastPreconditions = Conditions.HasPathPrefixOrdinalIgnoreCase(blobPrefixes.ToArray()); + + FastPreconditions = Conditions.HasPathPrefixOrdinalIgnoreCase(blobPrefixes.Select(p => p.Prefix).ToArray()); } - - private void CheckAndAddPrefix(string prefix) + + private void CheckAndAddPrefixes(IEnumerable prefix, object provider) + { + foreach (var p in prefix) + { + CheckAndAddPrefix(p, provider); + } + } + private void CheckAndAddPrefixes(IEnumerable prefix, object provider) + { + foreach (var p in prefix) + { + CheckAndAddPrefix(p.Prefix, provider, p.LatencyZone); + } + } + private void CheckAndAddPrefix(string prefix, object provider, LatencyTrackingZone? zone = null) { var conflictingPrefix = blobPrefixes.FirstOrDefault(p => - prefix.StartsWith(p, StringComparison.OrdinalIgnoreCase) || - p.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)); - if (conflictingPrefix != null) + prefix.StartsWith(p.Prefix, StringComparison.OrdinalIgnoreCase) || + p.Prefix.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)); + if (conflictingPrefix != default) { throw new InvalidOperationException( $"Blob Provider failure: Prefix {{prefix}} conflicts with prefix {conflictingPrefix}"); @@ -51,38 +68,58 @@ private void CheckAndAddPrefix(string prefix) // We don't check for conflicts with PathMappings because / is a path mapping usually, // and we simply prefer blobs over files if there are overlapping prefixes. - blobPrefixes.Add(prefix); + + blobPrefixes.Add(new BlobPrefix(prefix, provider, zone ?? GetZoneFor(provider, prefix))); } - + + private record struct BlobPrefix(string Prefix, object Provider, LatencyTrackingZone LatencyZone); private readonly List blobProviders = new List(); private readonly List blobWrapperProviders = new List(); - private readonly List blobPrefixes = new List(); + private readonly List blobPrefixes = new List(); public string Name => "BlobProviders"; public IFastCond FastPreconditions { get; } - - public ValueTask?> ApplyRouting(MutableRequest request, - CancellationToken cancellationToken = default) + private LatencyTrackingZone GetZoneFor(object provider, string prefix) { - if (!FastPreconditions.Matches(request)) return Tasks.ValueResult?>(null); - - foreach (var provider in blobWrapperProviders) + string? zoneName = null; + if (provider is IUniqueNamed named) { - if (provider.SupportsPath(request.Path)) - { - return Tasks.ValueResult?>(new PromiseWrappingEndpoint( new BlobWrapperProviderPromise(request.ToSnapshot(true), request.Path, provider))); - } + zoneName = $"{named.UniqueName} ({provider.GetType().Name}) - '{prefix}'"; + } + else + { + zoneName = $"({provider.GetType().Name}) - '{prefix}'"; } + return new LatencyTrackingZone(zoneName, 100); + } + + public ValueTask?> ApplyRouting(MutableRequest request, + CancellationToken cancellationToken = default) + { - foreach (var provider in blobProviders) + foreach (var prefix in blobPrefixes) { - if (provider.SupportsPath(request.Path)) + if (request.Path.StartsWith(prefix.Prefix, StringComparison.OrdinalIgnoreCase)) { - return Tasks.ValueResult?>(new PromiseWrappingEndpoint( new BlobProviderPromise(request.ToSnapshot(true), request.Path, provider))); + var latencyZone = prefix.LatencyZone; + ICacheableBlobPromise? promise = null; + if (prefix.Provider is IBlobWrapperProvider wp && wp.SupportsPath(request.Path)) + { + promise = new BlobWrapperProviderPromise(request.ToSnapshot(true), request.Path, wp, latencyZone); + }else if (prefix.Provider is IBlobProvider p && p.SupportsPath(request.Path)) + { + promise = new BlobProviderPromise(request.ToSnapshot(true), request.Path, p, latencyZone); + } + + if (promise == null) break; + return Tasks.ValueResult?>(CodeResult.Ok( + new PromiseWrappingEndpoint( + promise))); } } + // Note: if GetPrefixes isn't good enough, stuff won't get routed to a blob wrapper. In the past, SupportsPath was always called return Tasks.ValueResult?>(null); } @@ -96,10 +133,9 @@ public override string ToString() foreach (var prefix in blobPrefixes) { // show which IBlobProvider or IBlobWrapperProvider registered this prefix (class name and tostring) - var blobWrapperProvider = blobWrapperProviders.FirstOrDefault(p => p.GetPrefixes().Contains(prefix)); - var providerObject = (object?)blobWrapperProvider ??(object?)blobProviders.FirstOrDefault(p => p.GetPrefixes().Contains(prefix)); + var providerObject = prefix.Provider; var providerClassName = providerObject?.GetType().Name; - var providerUniqueName = blobWrapperProvider?.UniqueName; + var providerUniqueName = (providerObject as IUniqueNamed)?.UniqueName; var providerToString = providerObject?.ToString(); if (lastProvider == providerObject) { @@ -116,7 +152,7 @@ public override string ToString() } -internal record BlobProviderPromise(IRequestSnapshot FinalRequest, String VirtualPath, IBlobProvider Provider): LocalFilesLayer.CacheableBlobPromiseBase(FinalRequest) +internal record BlobProviderPromise(IRequestSnapshot FinalRequest, String VirtualPath, IBlobProvider Provider, LatencyTrackingZone LatencyZone): LocalFilesLayer.CacheableBlobPromiseBase(FinalRequest, LatencyZone) { public override void WriteCacheKeyBasisPairsToRecursive(IBufferWriter writer) { @@ -147,7 +183,7 @@ public override async ValueTask> TryGetBlobAsync(IReque internal record BlobWrapperProviderPromise( IRequestSnapshot FinalRequest, String VirtualPath, - IBlobWrapperProvider Provider) : LocalFilesLayer.CacheableBlobPromiseBase(FinalRequest) + IBlobWrapperProvider Provider, LatencyTrackingZone LatencyZone) : LocalFilesLayer.CacheableBlobPromiseBase(FinalRequest, LatencyZone) { public override async ValueTask> TryGetBlobAsync(IRequestSnapshot request, IBlobRequestRouter router, IBlobPromisePipeline pipeline, diff --git a/src/Imazen.Routing/Layers/LocalFilesLayer.cs b/src/Imazen.Routing/Layers/LocalFilesLayer.cs index bdc64829..baf6b0d5 100644 --- a/src/Imazen.Routing/Layers/LocalFilesLayer.cs +++ b/src/Imazen.Routing/Layers/LocalFilesLayer.cs @@ -81,8 +81,10 @@ public LocalFilesLayer(List pathMappings) } else { + + var latencyZone = new LatencyTrackingZone(mapping.PhysicalPath, 10); return Tasks.ValueResult?>(CodeResult.Ok(new PromiseWrappingEndpoint( - new FilePromise(request.ToSnapshot(true), physicalPath, lastWriteTimeUtc)))); + new FilePromise(request.ToSnapshot(true), physicalPath, latencyZone, lastWriteTimeUtc)))); } } } @@ -99,8 +101,9 @@ public override string ToString() } - internal record FilePromise(IRequestSnapshot FinalRequest, String PhysicalPath, DateTime LastWriteTimeUtc): CacheableBlobPromiseBase(FinalRequest) + internal record FilePromise(IRequestSnapshot FinalRequest, string PhysicalPath,LatencyTrackingZone LatencyZone, DateTime LastWriteTimeUtc): CacheableBlobPromiseBase(FinalRequest, LatencyZone) { + public override void WriteCacheKeyBasisPairsToRecursive(IBufferWriter writer) { base.WriteCacheKeyBasisPairsToRecursive(writer); @@ -114,7 +117,7 @@ public override ValueTask> TryGetBlobAsync(IRequestSnap } } - internal abstract record CacheableBlobPromiseBase(IRequestSnapshot FinalRequest) : ICacheableBlobPromise + internal abstract record CacheableBlobPromiseBase(IRequestSnapshot FinalRequest, LatencyTrackingZone? LatencyZone) : ICacheableBlobPromise { public bool IsCacheSupporting => true; @@ -124,7 +127,6 @@ public async ValueTask CreateResponseAsync(IRequestSnaps return new BlobResponse(await TryGetBlobAsync(request, router, pipeline, cancellationToken)).AsResponse(); } - public bool HasDependencies => false; public bool ReadyToWriteCacheKeyBasisData => true; diff --git a/src/Imazen.Routing/Promises/IInstantPromise.cs b/src/Imazen.Routing/Promises/IInstantPromise.cs index 8cf3dccc..4af61f74 100644 --- a/src/Imazen.Routing/Promises/IInstantPromise.cs +++ b/src/Imazen.Routing/Promises/IInstantPromise.cs @@ -42,6 +42,12 @@ public interface IInstantCacheKeySupportingPromise: IInstantPromise void WriteCacheKeyBasisPairsToRecursive(IBufferWriter writer); byte[] GetCacheKey32Bytes(); + + /// + /// Should be implemented by source file providers and image processors. + /// Cache promise layers should return null. + /// + LatencyTrackingZone? LatencyZone { get; } } public interface ICacheableBlobPromise : IInstantCacheKeySupportingPromise { @@ -101,7 +107,7 @@ public static ReadOnlySpan CopyCacheKeyBytesTo(this ICacheableBlobPromise } } -public record CacheableBlobPromise(IRequestSnapshot FinalRequest, Func>> BlobFunc) : ICacheableBlobPromise{ +public record CacheableBlobPromise(IRequestSnapshot FinalRequest, LatencyTrackingZone LatencyZone, Func>> BlobFunc) : ICacheableBlobPromise{ public bool IsCacheSupporting => true; public bool HasDependencies => false; diff --git a/src/Imazen.Routing/Promises/Pipelines/ImagingMiddleware.cs b/src/Imazen.Routing/Promises/Pipelines/ImagingMiddleware.cs index 4df5fb92..0c6fa8f5 100644 --- a/src/Imazen.Routing/Promises/Pipelines/ImagingMiddleware.cs +++ b/src/Imazen.Routing/Promises/Pipelines/ImagingMiddleware.cs @@ -114,6 +114,7 @@ public ImagingPromise(ImagingMiddlewareOptions options, Options = options; AppliedWatermarks = appliedWatermarks; FinalCommandString = finalCommandString.TrimStart('?'); + LatencyZone = new LatencyTrackingZone("imaging", 1000); // determine if we have extra dependencies @@ -139,7 +140,9 @@ public byte[] GetCacheKey32Bytes() { return cacheKey32Bytes ??= this.GetCacheKey32BytesUncached(); } + public LatencyTrackingZone? LatencyZone { get; init; } + private string FinalCommandString { get; init; } public async ValueTask> TryGetBlobAsync(IRequestSnapshot request, diff --git a/src/Imazen.Routing/Promises/Pipelines/ServerlessCacheEngine.cs b/src/Imazen.Routing/Promises/Pipelines/ServerlessCacheEngine.cs index 8743adb0..9dc07a5b 100644 --- a/src/Imazen.Routing/Promises/Pipelines/ServerlessCacheEngine.cs +++ b/src/Imazen.Routing/Promises/Pipelines/ServerlessCacheEngine.cs @@ -414,6 +414,8 @@ internal record ServerlessCachePromise(IRequestSnapshot FinalRequest, ICacheable public bool HasDependencies => FreshPromise.HasDependencies; public bool ReadyToWriteCacheKeyBasisData => FreshPromise.ReadyToWriteCacheKeyBasisData; public bool SupportsPreSignedUrls => FreshPromise.SupportsPreSignedUrls; + + public LatencyTrackingZone? LatencyZone => null; private byte[]? cacheKey32Bytes = null; public byte[] GetCacheKey32Bytes() diff --git a/src/Imazen.Routing/packages.lock.json b/src/Imazen.Routing/packages.lock.json index 0656581a..e76bc4d9 100644 --- a/src/Imazen.Routing/packages.lock.json +++ b/src/Imazen.Routing/packages.lock.json @@ -4,7 +4,7 @@ ".NETStandard,Version=v2.0": { "CommunityToolkit.HighPerformance": { "type": "Direct", - "requested": "[8.2.2, )", + "requested": "[8.*, )", "resolved": "8.2.2", "contentHash": "+zIp8d3sbtYaRbM6hqDs4Ui/z34j7DcUmleruZlYLE4CVxXq+MO8XJyIs42vzeTYFX+k0Iq1dEbBUnQ4z/Gnrw==", "dependencies": { @@ -16,7 +16,7 @@ }, "Imageflow.Net": { "type": "Direct", - "requested": "[0.10.2, )", + "requested": "[0.10.*, )", "resolved": "0.10.2", "contentHash": "4KtF92PRHCU8Gm3wYEGJd+Uk0YBqXUY2CFe2P3N3P8UiG6vSIQRDKUV9LjgstEsis95/9OE4ItfJTpMessJIRQ==", "dependencies": { @@ -25,16 +25,6 @@ "Newtonsoft.Json": "[13.0.3, 14.0.0)" } }, - "Microsoft.Extensions.Primitives": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "Microsoft.SourceLink.GitHub": { "type": "Direct", "requested": "[8.0.0, )", @@ -56,34 +46,34 @@ }, "PolySharp": { "type": "Direct", - "requested": "[1.14.1, )", + "requested": "[1.*, )", "resolved": "1.14.1", "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" }, "System.Collections.Immutable": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "requested": "[6.*, )", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.IO.Pipelines": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "requested": "[6.*, )", + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Direct", - "requested": "[4.5.4, )", + "requested": "[4.*, )", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { @@ -92,8 +82,8 @@ }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } @@ -150,6 +140,15 @@ "resolved": "2.2.0", "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "1.2.2", @@ -197,23 +196,23 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", + "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[5.0.0, )", - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Buffers": "[4.5.1, )", - "System.Memory": "[4.5.5, )", - "System.Text.Encodings.Web": "[8.0.0, )", - "System.Threading.Tasks.Extensions": "[4.5.4, )" + "Microsoft.Bcl.AsyncInterfaces": "[6.*, )", + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Buffers": "[4.*, )", + "System.Memory": "[4.*, )", + "System.Text.Encodings.Web": "[6.*, )", + "System.Threading.Tasks.Extensions": "[4.*, )" } }, "imazen.common": { @@ -226,13 +225,13 @@ "net6.0": { "CommunityToolkit.HighPerformance": { "type": "Direct", - "requested": "[8.2.2, )", + "requested": "[8.*, )", "resolved": "8.2.2", "contentHash": "+zIp8d3sbtYaRbM6hqDs4Ui/z34j7DcUmleruZlYLE4CVxXq+MO8XJyIs42vzeTYFX+k0Iq1dEbBUnQ4z/Gnrw==" }, "Imageflow.Net": { "type": "Direct", - "requested": "[0.10.2, )", + "requested": "[0.10.*, )", "resolved": "0.10.2", "contentHash": "4KtF92PRHCU8Gm3wYEGJd+Uk0YBqXUY2CFe2P3N3P8UiG6vSIQRDKUV9LjgstEsis95/9OE4ItfJTpMessJIRQ==", "dependencies": { @@ -241,15 +240,6 @@ "Newtonsoft.Json": "[13.0.3, 14.0.0)" } }, - "Microsoft.Extensions.Primitives": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "Microsoft.SourceLink.GitHub": { "type": "Direct", "requested": "[8.0.0, )", @@ -262,24 +252,24 @@ }, "PolySharp": { "type": "Direct", - "requested": "[1.14.1, )", + "requested": "[1.*, )", "resolved": "1.14.1", "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" }, "System.Collections.Immutable": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "requested": "[6.*, )", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.IO.Pipelines": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "requested": "[6.*, )", + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", @@ -328,6 +318,15 @@ "resolved": "2.2.0", "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "1.2.2", @@ -343,6 +342,11 @@ "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" + }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", @@ -350,8 +354,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -359,8 +363,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -373,13 +377,13 @@ "net8.0": { "CommunityToolkit.HighPerformance": { "type": "Direct", - "requested": "[8.2.2, )", + "requested": "[8.*, )", "resolved": "8.2.2", "contentHash": "+zIp8d3sbtYaRbM6hqDs4Ui/z34j7DcUmleruZlYLE4CVxXq+MO8XJyIs42vzeTYFX+k0Iq1dEbBUnQ4z/Gnrw==" }, "Imageflow.Net": { "type": "Direct", - "requested": "[0.10.2, )", + "requested": "[0.10.*, )", "resolved": "0.10.2", "contentHash": "4KtF92PRHCU8Gm3wYEGJd+Uk0YBqXUY2CFe2P3N3P8UiG6vSIQRDKUV9LjgstEsis95/9OE4ItfJTpMessJIRQ==", "dependencies": { @@ -388,12 +392,6 @@ "Newtonsoft.Json": "[13.0.3, 14.0.0)" } }, - "Microsoft.Extensions.Primitives": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" - }, "Microsoft.SourceLink.GitHub": { "type": "Direct", "requested": "[8.0.0, )", @@ -406,21 +404,24 @@ }, "PolySharp": { "type": "Direct", - "requested": "[1.14.1, )", + "requested": "[1.*, )", "resolved": "1.14.1", "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" }, "System.Collections.Immutable": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "requested": "[6.*, )", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.IO.Pipelines": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "requested": "[6.*, )", + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", @@ -469,6 +470,15 @@ "resolved": "2.2.0", "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "1.2.2", @@ -484,16 +494,29 @@ "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { diff --git a/tests/Imageflow.Server.Configuration.Tests/packages.lock.json b/tests/Imageflow.Server.Configuration.Tests/packages.lock.json index 9d456782..b2dbeb95 100644 --- a/tests/Imageflow.Server.Configuration.Tests/packages.lock.json +++ b/tests/Imageflow.Server.Configuration.Tests/packages.lock.json @@ -136,8 +136,12 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", @@ -399,8 +403,11 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Console": { "type": "Transitive", @@ -573,8 +580,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "System.Linq": { "type": "Transitive", @@ -620,6 +627,11 @@ "System.Threading": "4.3.0" } }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" + }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", @@ -790,6 +802,11 @@ "Microsoft.NETCore.Targets": "1.1.0" } }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", @@ -1015,8 +1032,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Text.RegularExpressions": { "type": "Transitive", @@ -1159,7 +1179,7 @@ "imageflow.server": { "type": "Project", "dependencies": { - "Imageflow.AllPlatforms": "[0.10.2, )", + "Imageflow.AllPlatforms": "[0.10.*, )", "Imazen.Common": "[0.1.0--notset, )", "Imazen.Routing": "[0.1.0--notset, )" } @@ -1184,8 +1204,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -1204,13 +1224,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } } diff --git a/tests/Imageflow.Server.Tests/packages.lock.json b/tests/Imageflow.Server.Tests/packages.lock.json index eac379ee..d7b26656 100644 --- a/tests/Imageflow.Server.Tests/packages.lock.json +++ b/tests/Imageflow.Server.Tests/packages.lock.json @@ -326,11 +326,8 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "5.0.0", + "contentHash": "cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==" }, "Microsoft.Identity.Client": { "type": "Transitive", @@ -395,8 +392,8 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -446,8 +443,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "System.Linq.Async": { "type": "Transitive", @@ -507,8 +504,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -566,7 +563,7 @@ "imageflow.server": { "type": "Project", "dependencies": { - "Imageflow.AllPlatforms": "[0.10.2, )", + "Imageflow.AllPlatforms": "[0.10.*, )", "Imazen.Common": "[0.1.0--notset, )", "Imazen.Routing": "[0.1.0--notset, )" } @@ -605,8 +602,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -625,13 +622,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } }, "imazenshared.tests": { @@ -974,8 +970,8 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "5.0.0", + "contentHash": "cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==" }, "Microsoft.Identity.Client": { "type": "Transitive", @@ -1040,8 +1036,11 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", @@ -1088,8 +1087,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" }, "System.Linq.Async": { "type": "Transitive", @@ -1149,8 +1148,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Text.Json": { "type": "Transitive", @@ -1205,7 +1207,7 @@ "imageflow.server": { "type": "Project", "dependencies": { - "Imageflow.AllPlatforms": "[0.10.2, )", + "Imageflow.AllPlatforms": "[0.10.*, )", "Imazen.Common": "[0.1.0--notset, )", "Imazen.Routing": "[0.1.0--notset, )" } @@ -1244,8 +1246,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -1264,13 +1266,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } }, "imazenshared.tests": { diff --git a/tests/ImazenShared.Tests/packages.lock.json b/tests/ImazenShared.Tests/packages.lock.json index c2780c78..96b7c44b 100644 --- a/tests/ImazenShared.Tests/packages.lock.json +++ b/tests/ImazenShared.Tests/packages.lock.json @@ -149,10 +149,11 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" } }, "Microsoft.IO.RecyclableMemoryStream": { @@ -190,8 +191,8 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -211,8 +212,13 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" }, "System.Reflection.Metadata": { "type": "Transitive", @@ -231,8 +237,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -280,8 +286,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -293,13 +299,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } }, @@ -451,8 +456,12 @@ }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", @@ -489,8 +498,11 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", @@ -507,14 +519,24 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.4.0", @@ -522,8 +544,11 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } }, "xunit.abstractions": { "type": "Transitive", @@ -568,8 +593,8 @@ "imazen.abstractions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Hosting.Abstractions": "[2.2.0, )", - "System.Text.Encodings.Web": "[8.0.0, )" + "Microsoft.Extensions.Hosting.Abstractions": "[2.*, )", + "System.Text.Encodings.Web": "[6.*, )" } }, "imazen.common": { @@ -581,13 +606,12 @@ "imazen.routing": { "type": "Project", "dependencies": { - "CommunityToolkit.HighPerformance": "[8.2.2, )", - "Imageflow.Net": "[0.10.2, )", + "CommunityToolkit.HighPerformance": "[8.*, )", + "Imageflow.Net": "[0.10.*, )", "Imazen.Abstractions": "[0.1.0--notset, )", "Imazen.Common": "[0.1.0--notset, )", - "Microsoft.Extensions.Primitives": "[8.0.0, )", - "System.Collections.Immutable": "[8.0.0, )", - "System.IO.Pipelines": "[8.0.0, )" + "System.Collections.Immutable": "[6.*, )", + "System.IO.Pipelines": "[6.*, )" } } }