diff --git a/FrontendPlaformUno/.editorconfig b/FrontendPlaformUno/.editorconfig
new file mode 100644
index 0000000..b947be6
--- /dev/null
+++ b/FrontendPlaformUno/.editorconfig
@@ -0,0 +1,167 @@
+; This file is for unifying the coding style for different editors and IDEs.
+; More information at http://editorconfig.org
+
+# This file is the top-most EditorConfig file
+root = true
+
+##########################################
+# Common Settings
+##########################################
+
+[*]
+indent_style = space
+end_of_line = crlf
+trim_trailing_whitespace = true
+insert_final_newline = true
+charset = utf-8
+
+##########################################
+# File Extension Settings
+##########################################
+
+[*.{yml,yaml}]
+indent_size = 2
+
+[.vsconfig]
+indent_size = 2
+end_of_line = lf
+
+[*.sln]
+indent_style = tab
+indent_size = 2
+
+[*.{csproj,proj,projitems,shproj}]
+indent_size = 2
+
+[*.{json,slnf}]
+indent_size = 2
+end_of_line = lf
+
+[*.{props,targets}]
+indent_size = 2
+
+[*.xaml]
+indent_size = 2
+charset = utf-8-bom
+
+[*.xml]
+indent_size = 2
+end_of_line = lf
+
+[*.plist]
+indent_size = 2
+indent_style = tab
+end_of_line = lf
+
+[*.manifest]
+indent_size = 2
+
+[*.appxmanifest]
+indent_size = 2
+
+[*.{json,css,webmanifest}]
+indent_size = 2
+end_of_line = lf
+
+[web.config]
+indent_size = 2
+end_of_line = lf
+
+[*.sh]
+indent_size = 2
+end_of_line = lf
+
+[*.cs]
+# EOL should be normalized by Git. See https://github.com/dotnet/format/issues/1099
+end_of_line = unset
+
+# See https://github.com/dotnet/roslyn/issues/20356#issuecomment-310143926
+trim_trailing_whitespace = false
+
+tab_width = 4
+indent_size = 4
+
+# Sort using and Import directives with System.* appearing first
+dotnet_sort_system_directives_first = true
+
+# Avoid "this." and "Me." if not necessary
+dotnet_style_qualification_for_field = false:suggestion
+dotnet_style_qualification_for_property = false:suggestion
+dotnet_style_qualification_for_method = false:suggestion
+dotnet_style_qualification_for_event = false:suggestion
+
+#### Naming styles ####
+
+# Naming rules
+
+dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
+dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
+dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
+
+dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.types_should_be_pascal_case.symbols = types
+dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
+dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
+
+# Symbol specifications
+
+dotnet_naming_symbols.interface.applicable_kinds = interface
+dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.interface.required_modifiers =
+
+dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
+dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.types.required_modifiers =
+
+dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
+dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.non_field_members.required_modifiers =
+
+# Naming styles
+
+dotnet_naming_style.begins_with_i.required_prefix = I
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.capitalization = pascal_case
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
+dotnet_style_prefer_auto_properties = true:silent
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
+dotnet_style_prefer_conditional_expression_over_assignment = true:silent
+dotnet_style_prefer_conditional_expression_over_return = true:silent
+dotnet_style_explicit_tuple_names = true:suggestion
+dotnet_style_prefer_inferred_tuple_names = true:suggestion
+
+csharp_indent_labels = one_less_than_current
+csharp_using_directive_placement = outside_namespace:silent
+csharp_prefer_simple_using_statement = true:suggestion
+csharp_prefer_braces = true:silent
+csharp_style_namespace_declarations = file_scoped:warning
+csharp_style_prefer_method_group_conversion = true:silent
+csharp_style_prefer_top_level_statements = true:silent
+csharp_style_prefer_primary_constructors = true:suggestion
+csharp_style_expression_bodied_methods = false:silent
+csharp_style_expression_bodied_constructors = false:silent
+csharp_style_expression_bodied_operators = false:silent
+csharp_style_expression_bodied_properties = true:silent
+csharp_style_expression_bodied_indexers = true:silent
+csharp_style_expression_bodied_accessors = true:silent
+csharp_style_expression_bodied_lambdas = true:silent
+csharp_style_expression_bodied_local_functions = false:silent
diff --git a/FrontendPlaformUno/.gitignore b/FrontendPlaformUno/.gitignore
new file mode 100644
index 0000000..ef88c20
--- /dev/null
+++ b/FrontendPlaformUno/.gitignore
@@ -0,0 +1,403 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.tlog
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio 6 auto-generated project file (contains which files were open etc.)
+*.vbp
+
+# Visual Studio 6 workspace and project file (working project files containing files to include in project)
+*.dsw
+*.dsp
+
+# Visual Studio 6 technical files
+*.ncb
+*.aps
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# Visual Studio History (VSHistory) files
+.vshistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
+
+# VS Code files for those working on multiple tools
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+*.code-workspace
+
+# Local History for Visual Studio Code
+.history/
+
+# Windows Installer files from build outputs
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# JetBrains Rider
+*.sln.iml
+
+# Single Target Config
+solution-config.props
+# Publish Profiles
+!**/Properties/PublishProfiles/*.pubxml
\ No newline at end of file
diff --git a/FrontendPlaformUno/.run/FrontendPlaformUno.run.xml b/FrontendPlaformUno/.run/FrontendPlaformUno.run.xml
new file mode 100644
index 0000000..6ba9ad4
--- /dev/null
+++ b/FrontendPlaformUno/.run/FrontendPlaformUno.run.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrontendPlaformUno/.run/Readme.md b/FrontendPlaformUno/.run/Readme.md
new file mode 100644
index 0000000..6e72638
--- /dev/null
+++ b/FrontendPlaformUno/.run/Readme.md
@@ -0,0 +1,3 @@
+# About the `.run` folder
+
+This folder is present to add support for the [Rider IDE](https://aka.platform.uno/rider-getstarted). You can remove this folder safely if you're not using Rider.
diff --git a/FrontendPlatformUno/.vsconfig b/FrontendPlaformUno/.vsconfig
similarity index 72%
rename from FrontendPlatformUno/.vsconfig
rename to FrontendPlaformUno/.vsconfig
index 1c9c228..0439670 100644
--- a/FrontendPlatformUno/.vsconfig
+++ b/FrontendPlaformUno/.vsconfig
@@ -5,34 +5,30 @@
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.NetCore.Component.SDK",
"Microsoft.NetCore.Component.DevelopmentTools",
- "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions",
- "Microsoft.NetCore.Component.Web",
"Microsoft.Net.ComponentGroup.DevelopmentPrerequisites",
"Microsoft.VisualStudio.Component.TextTemplating",
+ "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions",
+ "Microsoft.NetCore.Component.Web",
"Microsoft.VisualStudio.Component.IISExpress",
"Component.Microsoft.Web.LibraryManager",
"Microsoft.VisualStudio.ComponentGroup.Web",
"Microsoft.VisualStudio.Component.Web",
"Microsoft.VisualStudio.ComponentGroup.Web.Client",
"Microsoft.VisualStudio.Workload.NetWeb",
- "Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites",
- "Microsoft.VisualStudio.Workload.Azure",
- "Microsoft.VisualStudio.Component.Windows10SDK.19041",
+ "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine",
+ "Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging",
"Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites",
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
- "Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
- "Microsoft.Component.NetFX.Native",
- "Microsoft.VisualStudio.Component.Graphics",
- "Component.OpenJDK",
- "Microsoft.VisualStudio.Component.MonoDebugger",
- "Microsoft.VisualStudio.Component.Merq",
"Component.Xamarin.RemotedSimulator",
- "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine",
- "Component.Xamarin",
- "Component.Android.SDK32",
+ "Microsoft.VisualStudio.Component.MonoDebugger",
+ "Microsoft.VisualStudio.ComponentGroup.Maui.All",
+ "Component.Android.SDK34",
+ "Component.OpenJDK",
"Microsoft.VisualStudio.Workload.NetCrossPlat",
- "Microsoft.VisualStudio.Workload.NetCoreTools",
- "Microsoft.VisualStudio.ComponentGroup.Maui.All"
+ "Microsoft.VisualStudio.Workload.NetCoreTools"
+ ],
+ "extensions": [
+ "https://marketplace.visualstudio.com/items?itemName=unoplatform.uno-platform-addin-2022"
]
}
diff --git a/FrontendPlaformUno/Directory.Build.props b/FrontendPlaformUno/Directory.Build.props
new file mode 100644
index 0000000..8daf569
--- /dev/null
+++ b/FrontendPlaformUno/Directory.Build.props
@@ -0,0 +1,15 @@
+
+
+ enable
+ enable
+ true
+
+
+ $(NoWarn);NU1507;NETSDK1201;PRI257
+
+
diff --git a/FrontendPlaformUno/Directory.Build.targets b/FrontendPlaformUno/Directory.Build.targets
new file mode 100644
index 0000000..f75adf7
--- /dev/null
+++ b/FrontendPlaformUno/Directory.Build.targets
@@ -0,0 +1,2 @@
+
+
diff --git a/FrontendPlaformUno/Directory.Packages.props b/FrontendPlaformUno/Directory.Packages.props
new file mode 100644
index 0000000..43f897b
--- /dev/null
+++ b/FrontendPlaformUno/Directory.Packages.props
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrontendPlaformUno/FrontendPlaformUno.Tests/AppInfoTests.cs b/FrontendPlaformUno/FrontendPlaformUno.Tests/AppInfoTests.cs
new file mode 100644
index 0000000..ab3c02f
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno.Tests/AppInfoTests.cs
@@ -0,0 +1,18 @@
+namespace FrontendPlaformUno.Tests;
+
+public class AppInfoTests
+{
+ [SetUp]
+ public void Setup()
+ {
+ }
+
+ [Test]
+ public void AppInfoCreation()
+ {
+ var appInfo = new AppConfig { Environment = "Test" };
+
+ appInfo.Should().NotBeNull();
+ appInfo.Environment.Should().Be("Test");
+ }
+}
diff --git a/FrontendPlaformUno/FrontendPlaformUno.Tests/FrontendPlaformUno.Tests.csproj b/FrontendPlaformUno/FrontendPlaformUno.Tests/FrontendPlaformUno.Tests.csproj
new file mode 100644
index 0000000..db44850
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno.Tests/FrontendPlaformUno.Tests.csproj
@@ -0,0 +1,20 @@
+
+
+
+ net8.0
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrontendPlaformUno/FrontendPlaformUno.Tests/GlobalUsings.cs b/FrontendPlaformUno/FrontendPlaformUno.Tests/GlobalUsings.cs
new file mode 100644
index 0000000..34486ef
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno.Tests/GlobalUsings.cs
@@ -0,0 +1,3 @@
+global using FluentAssertions;
+global using FrontendPlaformUno.Models;
+global using NUnit.Framework;
diff --git a/FrontendPlaformUno/FrontendPlaformUno.UITests/Constants.cs b/FrontendPlaformUno/FrontendPlaformUno.UITests/Constants.cs
new file mode 100644
index 0000000..19abac8
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno.UITests/Constants.cs
@@ -0,0 +1,12 @@
+namespace FrontendPlaformUno.UITests;
+
+public class Constants
+{
+ public readonly static string WebAssemblyDefaultUri = "http://localhost:5000/";
+ public readonly static string iOSAppName = "es.brentj.FrontendPlaformUno";
+ public readonly static string AndroidAppName = "es.brentj.FrontendPlaformUno";
+ public readonly static string iOSDeviceNameOrId = "iPad Pro (12.9-inch) (3rd generation)";
+
+ public readonly static Platform CurrentPlatform = Platform.Browser;
+ public readonly static Browser WebAssemblyBrowser = Browser.Chrome;
+}
diff --git a/FrontendPlaformUno/FrontendPlaformUno.UITests/FrontendPlaformUno.UITests.csproj b/FrontendPlaformUno/FrontendPlaformUno.UITests/FrontendPlaformUno.UITests.csproj
new file mode 100644
index 0000000..ef4fb63
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno.UITests/FrontendPlaformUno.UITests.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net8.0
+ true
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrontendPlaformUno/FrontendPlaformUno.UITests/Given_MainPage.cs b/FrontendPlaformUno/FrontendPlaformUno.UITests/Given_MainPage.cs
new file mode 100644
index 0000000..f056c7b
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno.UITests/Given_MainPage.cs
@@ -0,0 +1,25 @@
+namespace FrontendPlaformUno.UITests;
+
+public class Given_MainPage : TestBase
+{
+ [Test]
+ public async Task When_SmokeTest()
+ {
+ // NOTICE
+ // To run UITests, Run the WASM target without debugger. Note
+ // the port that is being used and update the Constants.cs file
+ // in the UITests project with the correct port number.
+
+ // Add delay to allow for the splash screen to disappear
+ await Task.Delay(5000);
+
+
+ // Query for the SecondPageButton and then tap it
+ Query xamlButton = q => q.All().Marked("SecondPageButton");
+ App.WaitForElement(xamlButton);
+ App.Tap(xamlButton);
+
+ // Take a screenshot and add it to the test results
+ TakeScreenshot("After tapped");
+ }
+}
diff --git a/FrontendPlatformUno/FrontendPlatformUno.UITests/GlobalUsings.cs b/FrontendPlaformUno/FrontendPlaformUno.UITests/GlobalUsings.cs
similarity index 97%
rename from FrontendPlatformUno/FrontendPlatformUno.UITests/GlobalUsings.cs
rename to FrontendPlaformUno/FrontendPlaformUno.UITests/GlobalUsings.cs
index be400b2..eb3b6c8 100644
--- a/FrontendPlatformUno/FrontendPlatformUno.UITests/GlobalUsings.cs
+++ b/FrontendPlaformUno/FrontendPlaformUno.UITests/GlobalUsings.cs
@@ -1,7 +1,5 @@
-
global using NUnit.Framework;
global using Uno.UITest;
global using Uno.UITest.Helpers.Queries;
global using Uno.UITests.Helpers;
global using Query = System.Func;
-
diff --git a/FrontendPlaformUno/FrontendPlaformUno.UITests/TestBase.cs b/FrontendPlaformUno/FrontendPlaformUno.UITests/TestBase.cs
new file mode 100644
index 0000000..ab50e10
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno.UITests/TestBase.cs
@@ -0,0 +1,82 @@
+
+namespace FrontendPlaformUno.UITests;
+
+public class TestBase
+{
+ private IApp? _app;
+
+ static TestBase()
+ {
+ AppInitializer.TestEnvironment.AndroidAppName = Constants.AndroidAppName;
+ AppInitializer.TestEnvironment.WebAssemblyDefaultUri = Constants.WebAssemblyDefaultUri;
+ AppInitializer.TestEnvironment.iOSAppName = Constants.iOSAppName;
+ AppInitializer.TestEnvironment.AndroidAppName = Constants.AndroidAppName;
+ AppInitializer.TestEnvironment.iOSDeviceNameOrId = Constants.iOSDeviceNameOrId;
+ AppInitializer.TestEnvironment.CurrentPlatform = Constants.CurrentPlatform;
+ AppInitializer.TestEnvironment.WebAssemblyBrowser = Constants.WebAssemblyBrowser;
+
+#if DEBUG
+ AppInitializer.TestEnvironment.WebAssemblyHeadless = false;
+#endif
+
+ // Start the app only once, so the tests runs don't restart it
+ // and gain some time for the tests.
+ AppInitializer.ColdStartApp();
+ }
+
+ protected IApp App
+ {
+ get => _app!;
+ private set
+ {
+ _app = value;
+ Uno.UITest.Helpers.Queries.Helpers.App = value;
+ }
+ }
+
+ [SetUp]
+ public void SetUpTest()
+ {
+ App = AppInitializer.AttachToApp();
+ }
+
+ [TearDown]
+ public void TearDownTest()
+ {
+ TakeScreenshot("teardown");
+ }
+
+ public FileInfo TakeScreenshot(string stepName)
+ {
+ var title = $"{TestContext.CurrentContext.Test.Name}_{stepName}"
+ .Replace(" ", "_")
+ .Replace(".", "_");
+
+ var fileInfo = App.Screenshot(title);
+
+ var fileNameWithoutExt = Path.GetFileNameWithoutExtension(fileInfo.Name);
+ if (fileNameWithoutExt != title && fileInfo.DirectoryName != null)
+ {
+ var destFileName = Path
+ .Combine(fileInfo.DirectoryName, title + Path.GetExtension(fileInfo.Name));
+
+ if (File.Exists(destFileName))
+ {
+ File.Delete(destFileName);
+ }
+
+ File.Move(fileInfo.FullName, destFileName);
+
+ TestContext.AddTestAttachment(destFileName, stepName);
+
+ fileInfo = new FileInfo(destFileName);
+ }
+ else
+ {
+ TestContext.AddTestAttachment(fileInfo.FullName, stepName);
+ }
+
+ return fileInfo;
+ }
+
+}
diff --git a/FrontendPlaformUno/FrontendPlaformUno.sln b/FrontendPlaformUno/FrontendPlaformUno.sln
new file mode 100644
index 0000000..3789a8d
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno.sln
@@ -0,0 +1,58 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.11.35312.102
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FrontendPlaformUno", "FrontendPlaformUno\FrontendPlaformUno.csproj", "{5EA00281-83BD-4B28-8D2A-7FBF5FA5C951}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{E17EEAED-92DF-4399-A1AD-E90914D44955}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FrontendPlaformUno.UITests", "FrontendPlaformUno.UITests\FrontendPlaformUno.UITests.csproj", "{07B45AB6-6827-444D-918A-C5C3E42A173D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FrontendPlaformUno.Tests", "FrontendPlaformUno.Tests\FrontendPlaformUno.Tests.csproj", "{77538902-6BAD-4164-AF66-5DE8317661F4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8A8F1605-47C4-4E3E-8D6D-768654BD3DE7}"
+ ProjectSection(SolutionItems) = preProject
+ .gitignore = .gitignore
+ Directory.Build.props = Directory.Build.props
+ Directory.Build.targets = Directory.Build.targets
+ Directory.Packages.props = Directory.Packages.props
+ global.json = global.json
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5EA00281-83BD-4B28-8D2A-7FBF5FA5C951}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5EA00281-83BD-4B28-8D2A-7FBF5FA5C951}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5EA00281-83BD-4B28-8D2A-7FBF5FA5C951}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {5EA00281-83BD-4B28-8D2A-7FBF5FA5C951}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5EA00281-83BD-4B28-8D2A-7FBF5FA5C951}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5EA00281-83BD-4B28-8D2A-7FBF5FA5C951}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {07B45AB6-6827-444D-918A-C5C3E42A173D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {07B45AB6-6827-444D-918A-C5C3E42A173D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {07B45AB6-6827-444D-918A-C5C3E42A173D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {07B45AB6-6827-444D-918A-C5C3E42A173D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {07B45AB6-6827-444D-918A-C5C3E42A173D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {07B45AB6-6827-444D-918A-C5C3E42A173D}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {77538902-6BAD-4164-AF66-5DE8317661F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {77538902-6BAD-4164-AF66-5DE8317661F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {77538902-6BAD-4164-AF66-5DE8317661F4}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {77538902-6BAD-4164-AF66-5DE8317661F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {77538902-6BAD-4164-AF66-5DE8317661F4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {77538902-6BAD-4164-AF66-5DE8317661F4}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {07B45AB6-6827-444D-918A-C5C3E42A173D} = {E17EEAED-92DF-4399-A1AD-E90914D44955}
+ {77538902-6BAD-4164-AF66-5DE8317661F4} = {E17EEAED-92DF-4399-A1AD-E90914D44955}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C100779A-C536-48D0-8B2B-2D39626AE74C}
+ EndGlobalSection
+EndGlobal
diff --git a/FrontendPlaformUno/FrontendPlaformUno/App.xaml b/FrontendPlaformUno/FrontendPlaformUno/App.xaml
new file mode 100644
index 0000000..3085481
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/App.xaml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrontendPlaformUno/FrontendPlaformUno/App.xaml.cs b/FrontendPlaformUno/FrontendPlaformUno/App.xaml.cs
new file mode 100644
index 0000000..6f0b717
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/App.xaml.cs
@@ -0,0 +1,199 @@
+using FrontendPlaformUno.Services.Endpoints.Gamenight;
+using FrontendPlaformUno.Services.Endpoints.Gamenight.Login;
+using Uno.Resizetizer;
+
+namespace FrontendPlaformUno;
+
+public class GamenightEndpointOptions : EndpointOptions
+{
+ public string? ApiKey { get; init; }
+}
+
+public partial class App : Application
+{
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ protected Window? MainWindow { get; private set; }
+ protected IHost? Host { get; private set; }
+
+ protected async override void OnLaunched(LaunchActivatedEventArgs args)
+ {
+ var builder = this.CreateBuilder(args)
+ // Add navigation support for toolkit controls such as TabBar and NavigationView
+ .UseToolkitNavigation()
+ .Configure(host => host
+#if DEBUG
+ // Switch to Development environment when running in DEBUG
+ .UseEnvironment(Environments.Development)
+#endif
+ .UseLogging(configure: (context, logBuilder) =>
+ {
+ // Configure log levels for different categories of logging
+ logBuilder
+ .SetMinimumLevel(
+ context.HostingEnvironment.IsDevelopment() ?
+ LogLevel.Information :
+ LogLevel.Warning)
+
+ // Default filters for core Uno Platform namespaces
+ .CoreLogLevel(LogLevel.Warning);
+
+ // Uno Platform namespace filter groups
+ // Uncomment individual methods to see more detailed logging
+ //// Generic Xaml events
+ //logBuilder.XamlLogLevel(LogLevel.Debug);
+ //// Layout specific messages
+ //logBuilder.XamlLayoutLogLevel(LogLevel.Debug);
+ //// Storage messages
+ //logBuilder.StorageLogLevel(LogLevel.Debug);
+ //// Binding related messages
+ //logBuilder.XamlBindingLogLevel(LogLevel.Debug);
+ //// Binder memory references tracking
+ //logBuilder.BinderMemoryReferenceLogLevel(LogLevel.Debug);
+ //// DevServer and HotReload related
+ //logBuilder.HotReloadCoreLogLevel(LogLevel.Information);
+ //// Debug JS interop
+ //logBuilder.WebAssemblyLogLevel(LogLevel.Debug);
+
+ }, enableUnoLogging: true)
+ .UseConfiguration(configure: configBuilder =>
+ configBuilder
+ .EmbeddedSource()
+ .Section()
+ )
+ // Enable localization (see appsettings.json for supported languages)
+ .UseLocalization()
+ // Register Json serializers (ISerializer and ISerializer)
+ .UseSerialization((context, services) => services
+ .AddContentSerializer(context)
+ .AddJsonTypeInfo(WeatherForecastContext.Default.IImmutableListWeatherForecast))
+ .UseHttp((context, services) => services
+ // Register HttpClient
+#if DEBUG
+ // DelegatingHandler will be automatically injected into Refit Client
+ .AddTransient()
+#endif
+ .AddSingleton()
+ .AddRefitClient(context)
+ .AddRefitClientWithEndpoint(
+ context,
+ configure: (builder, options) => builder
+ .ConfigureHttpClient(HttpClient =>
+ {
+ HttpClient.BaseAddress = new Uri("http://localhost:8080/");
+ }
+ )
+ ))
+ .UseAuthentication(auth =>
+ auth.AddCustom(custom =>
+ custom
+ .Login(async (sp, dispatcher, credentials, cancellationToken) =>
+ {
+ // TODO: Write code to process credentials that are passed into the LoginAsync method
+ var gamenightApi = sp.GetRequiredService();
+
+ string? username = "";
+ string? password = "";
+
+ var hasUsername = credentials?.TryGetValue(nameof(LoginModel.Username), out username) ?? false;
+ var hasPassword = credentials?.TryGetValue(nameof(LoginModel.Password), out password) ?? false;
+
+ if (!hasUsername || !hasPassword)
+ {
+ return credentials;
+ }
+
+ var apiResponse = await gamenightApi.Login(new LoginRequest { Username = username!, Password = password! }, cancellationToken);
+
+
+ if (apiResponse.IsSuccessStatusCode && apiResponse.Content is LoginResponse loginResponse)
+ {
+ // Return IDictionary containing any tokens used by service calls or in the app
+ credentials ??= new Dictionary();
+ credentials[TokenCacheExtensions.AccessTokenKey] = "SampleToken";
+ credentials[TokenCacheExtensions.RefreshTokenKey] = "RefreshToken";
+ credentials["Expiry"] = DateTime.Now.AddMinutes(5).ToString("g");
+ return credentials;
+ }
+
+ // Return null/default to fail the LoginAsync method
+ return default;
+ })
+ .Refresh((sp, tokenDictionary, cancellationToken) =>
+ {
+ // TODO: Write code to refresh tokens using the currently stored tokens
+ if ((tokenDictionary?.TryGetValue(TokenCacheExtensions.RefreshTokenKey, out var refreshToken) ?? false) &&
+ !refreshToken.IsNullOrEmpty() &&
+ (tokenDictionary?.TryGetValue("Expiry", out var expiry) ?? false) &&
+ DateTime.TryParse(expiry, out var tokenExpiry) &&
+ tokenExpiry > DateTime.Now)
+ {
+ // Return IDictionary containing any tokens used by service calls or in the app
+ tokenDictionary ??= new Dictionary();
+ tokenDictionary[TokenCacheExtensions.AccessTokenKey] = "NewSampleToken";
+ tokenDictionary["Expiry"] = DateTime.Now.AddMinutes(5).ToString("g");
+ return ValueTask.FromResult?>(tokenDictionary);
+ }
+
+ // Return null/default to fail the Refresh method
+ return ValueTask.FromResult?>(default);
+ }), name: "CustomAuth")
+ )
+ .ConfigureServices((context, services) =>
+ {
+ // TODO: Register your services
+ //services.AddSingleton();
+ })
+ .UseNavigation(ReactiveViewModelMappings.ViewModelMappings, RegisterRoutes)
+ );
+ MainWindow = builder.Window;
+
+#if DEBUG
+ MainWindow.EnableHotReload();
+#endif
+ MainWindow.SetWindowIcon();
+
+ Host = await builder.NavigateAsync
+ (initialNavigate: async (services, navigator) =>
+ {
+ var auth = services.GetRequiredService();
+ var authenticated = await auth.RefreshAsync();
+ if (authenticated)
+ {
+ await navigator.NavigateViewModelAsync(this, qualifier: Qualifiers.Nested);
+ }
+ else
+ {
+ await navigator.NavigateViewModelAsync(this, qualifier: Qualifiers.Nested);
+ }
+ });
+ }
+
+ private static void RegisterRoutes(IViewRegistry views, IRouteRegistry routes)
+ {
+ views.Register(
+ new ViewMap(ViewModel: typeof(ShellModel)),
+ new ViewMap(),
+ new ViewMap(),
+ new DataViewMap()
+ );
+
+ routes.Register(
+ new RouteMap("", View: views.FindByViewModel(),
+ Nested:
+ [
+ new ("Login", View: views.FindByViewModel()),
+ new ("Main", View: views.FindByViewModel(), IsDefault:true),
+ new ("Second", View: views.FindByViewModel()),
+ ]
+ )
+ );
+ }
+}
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Base/Icons/iconapp.svg b/FrontendPlaformUno/FrontendPlaformUno/Assets/Icons/icon.svg
similarity index 96%
rename from FrontendPlatformUno/FrontendPlatformUno.Base/Icons/iconapp.svg
rename to FrontendPlaformUno/FrontendPlaformUno/Assets/Icons/icon.svg
index f621ea5..a15af53 100644
--- a/FrontendPlatformUno/FrontendPlatformUno.Base/Icons/iconapp.svg
+++ b/FrontendPlaformUno/FrontendPlaformUno/Assets/Icons/icon.svg
@@ -5,7 +5,7 @@
viewBox="0 0 456 456"
version="1.1"
id="svg453"
- sodipodi:docname="iconapp.old.svg"
+ sodipodi:docname="icon.svg"
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Base/Icons/appconfig.svg b/FrontendPlaformUno/FrontendPlaformUno/Assets/Icons/icon_foreground.svg
similarity index 99%
rename from FrontendPlatformUno/FrontendPlatformUno.Base/Icons/appconfig.svg
rename to FrontendPlaformUno/FrontendPlaformUno/Assets/Icons/icon_foreground.svg
index 3106b1a..8ffc41a 100644
--- a/FrontendPlatformUno/FrontendPlatformUno.Base/Icons/appconfig.svg
+++ b/FrontendPlaformUno/FrontendPlaformUno/Assets/Icons/icon_foreground.svg
@@ -5,7 +5,7 @@
viewBox="0 0 50.369617 49.826836"
version="1.1"
id="svg151"
- sodipodi:docname="appconfig.svg"
+ sodipodi:docname="icon_foreground.svg"
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Assets/Icons/back.svg b/FrontendPlaformUno/FrontendPlaformUno/Assets/Images/back.svg
similarity index 100%
rename from FrontendPlatformUno/FrontendPlatformUno/Assets/Icons/back.svg
rename to FrontendPlaformUno/FrontendPlaformUno/Assets/Images/back.svg
diff --git a/FrontendPlaformUno/FrontendPlaformUno/Assets/SharedAssets.md b/FrontendPlaformUno/FrontendPlaformUno/Assets/SharedAssets.md
new file mode 100644
index 0000000..1b84a74
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/Assets/SharedAssets.md
@@ -0,0 +1,32 @@
+# Shared Assets
+
+See documentation about assets here: https://github.com/unoplatform/uno/blob/master/doc/articles/features/working-with-assets.md
+
+## Here is a cheat sheet
+
+1. Add the image file to the `Assets` directory of a shared project.
+2. Set the build action to `Content`.
+3. (Recommended) Provide an asset for various scales/dpi
+
+### Examples
+
+```text
+\Assets\Images\logo.scale-100.png
+\Assets\Images\logo.scale-200.png
+\Assets\Images\logo.scale-400.png
+
+\Assets\Images\scale-100\logo.png
+\Assets\Images\scale-200\logo.png
+\Assets\Images\scale-400\logo.png
+```
+
+### Table of scales
+
+| Scale | WinUI | iOS/MacCatalyst | Android |
+|-------|:-----------:|:---------------:|:-------:|
+| `100` | scale-100 | @1x | mdpi |
+| `125` | scale-125 | N/A | N/A |
+| `150` | scale-150 | N/A | hdpi |
+| `200` | scale-200 | @2x | xhdpi |
+| `300` | scale-300 | @3x | xxhdpi |
+| `400` | scale-400 | N/A | xxxhdpi |
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Base/Splash/splash_screen.svg b/FrontendPlaformUno/FrontendPlaformUno/Assets/Splash/splash_screen.svg
similarity index 99%
rename from FrontendPlatformUno/FrontendPlatformUno.Base/Splash/splash_screen.svg
rename to FrontendPlaformUno/FrontendPlaformUno/Assets/Splash/splash_screen.svg
index 3106b1a..8ffc41a 100644
--- a/FrontendPlatformUno/FrontendPlatformUno.Base/Splash/splash_screen.svg
+++ b/FrontendPlaformUno/FrontendPlaformUno/Assets/Splash/splash_screen.svg
@@ -5,7 +5,7 @@
viewBox="0 0 50.369617 49.826836"
version="1.1"
id="svg151"
- sodipodi:docname="appconfig.svg"
+ sodipodi:docname="icon_foreground.svg"
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
diff --git a/FrontendPlaformUno/FrontendPlaformUno/FrontendPlaformUno.csproj b/FrontendPlaformUno/FrontendPlaformUno/FrontendPlaformUno.csproj
new file mode 100644
index 0000000..a7c6049
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/FrontendPlaformUno.csproj
@@ -0,0 +1,57 @@
+
+
+ net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop;net8.0
+
+ Exe
+ true
+
+
+ FrontendPlaformUno
+
+ es.brentj.FrontendPlaformUno
+
+ 1.0
+ 1
+
+ dbren
+
+ FrontendPlaformUno powered by Uno Platform.
+
+
+
+
+
+ Material;
+ Dsp;
+ Hosting;
+ Toolkit;
+ Logging;
+ MVUX;
+ Configuration;
+ Http;
+ Serialization;
+ Localization;
+ Authentication;
+ Navigation;
+ ThemeService;
+
+
+
+
+ True
+ $(DefineConstants);USE_UITESTS
+
+
+
diff --git a/FrontendPlaformUno/FrontendPlaformUno/GlobalUsings.cs b/FrontendPlaformUno/FrontendPlaformUno/GlobalUsings.cs
new file mode 100644
index 0000000..f67143e
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/GlobalUsings.cs
@@ -0,0 +1,13 @@
+global using System.Collections.Immutable;
+global using FrontendPlaformUno.DataContracts;
+global using FrontendPlaformUno.DataContracts.Serialization;
+global using FrontendPlaformUno.Models;
+global using FrontendPlaformUno.Presentation;
+global using FrontendPlaformUno.Services.Caching;
+global using FrontendPlaformUno.Services.Endpoints;
+global using Microsoft.Extensions.DependencyInjection;
+global using Microsoft.Extensions.Hosting;
+global using Microsoft.Extensions.Localization;
+global using Microsoft.Extensions.Logging;
+global using Microsoft.Extensions.Options;
+global using ApplicationExecutionState = Windows.ApplicationModel.Activation.ApplicationExecutionState;
diff --git a/FrontendPlaformUno/FrontendPlaformUno/IGameNightOptions.cs b/FrontendPlaformUno/FrontendPlaformUno/IGameNightOptions.cs
new file mode 100644
index 0000000..ea986c3
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/IGameNightOptions.cs
@@ -0,0 +1,5 @@
+namespace FrontendPlaformUno;
+
+internal interface IGameNightOptions
+{
+}
\ No newline at end of file
diff --git a/FrontendPlaformUno/FrontendPlaformUno/Models/AppConfig.cs b/FrontendPlaformUno/FrontendPlaformUno/Models/AppConfig.cs
new file mode 100644
index 0000000..2d4f656
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/Models/AppConfig.cs
@@ -0,0 +1,6 @@
+namespace FrontendPlaformUno.Models;
+
+public record AppConfig
+{
+ public string? Environment { get; init; }
+}
diff --git a/FrontendPlaformUno/FrontendPlaformUno/Models/Entity.cs b/FrontendPlaformUno/FrontendPlaformUno/Models/Entity.cs
new file mode 100644
index 0000000..27ae99b
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/Models/Entity.cs
@@ -0,0 +1,3 @@
+namespace FrontendPlaformUno.Models;
+
+public record Entity(string Name);
diff --git a/FrontendPlaformUno/FrontendPlaformUno/Models/WeatherForecast.cs b/FrontendPlaformUno/FrontendPlaformUno/Models/WeatherForecast.cs
new file mode 100644
index 0000000..5838077
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/Models/WeatherForecast.cs
@@ -0,0 +1,15 @@
+namespace FrontendPlaformUno.DataContracts;
+
+///
+/// A Weather Forecast for a specific date
+///
+/// Gets the Date of the Forecast.
+/// Gets the Forecast Temperature in Celsius.
+/// Get a description of how the weather will feel.
+public record WeatherForecast(DateOnly Date, double TemperatureC, string? Summary)
+{
+ ///
+ /// Gets the Forecast Temperature in Fahrenheit
+ ///
+ public double TemperatureF => 32 + (TemperatureC * 9 / 5);
+}
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/Package.appxmanifest b/FrontendPlaformUno/FrontendPlaformUno/Package.appxmanifest
similarity index 63%
rename from FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/Package.appxmanifest
rename to FrontendPlaformUno/FrontendPlaformUno/Package.appxmanifest
index 03ed548..9ef3814 100644
--- a/FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/Package.appxmanifest
+++ b/FrontendPlaformUno/FrontendPlaformUno/Package.appxmanifest
@@ -1,20 +1,12 @@
-
-
+
-
-
-
- FrontendPlatformUno
- FrontendPlatformUno
-
+
+
@@ -29,11 +21,7 @@
-
-
-
+
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/AndroidManifest.xml b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/AndroidManifest.xml
similarity index 100%
rename from FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/AndroidManifest.xml
rename to FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/AndroidManifest.xml
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Assets/AboutAssets.txt b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Assets/AboutAssets.txt
similarity index 88%
rename from FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Assets/AboutAssets.txt
rename to FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Assets/AboutAssets.txt
index 210a93b..89ab409 100644
--- a/FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Assets/AboutAssets.txt
+++ b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Assets/AboutAssets.txt
@@ -4,7 +4,7 @@ in the shared project instead. Assets in this folder are Android-only assets.
Any raw assets you want to be deployed with your application can be placed in
this directory (and child directories) and given a Build Action of "AndroidAsset".
-These files will be deployed with you package and will be accessible using Android's
+These files will be deployed with your package and will be accessible using Android's
AssetManager, like this:
public class ReadAsset : Activity
diff --git a/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Main.Android.cs b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Main.Android.cs
new file mode 100644
index 0000000..7f52b86
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Main.Android.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Android.App;
+using Android.Content;
+using Android.OS;
+using Android.Runtime;
+using Android.Views;
+using Android.Widget;
+using Com.Nostra13.Universalimageloader.Core;
+using Microsoft.UI.Xaml.Media;
+
+namespace FrontendPlaformUno.Droid;
+[global::Android.App.ApplicationAttribute(
+ Label = "@string/ApplicationName",
+ Icon = "@mipmap/icon",
+ LargeHeap = true,
+ HardwareAccelerated = true,
+ Theme = "@style/AppTheme"
+)]
+public class Application : Microsoft.UI.Xaml.NativeApplication
+{
+
+ public Application(IntPtr javaReference, JniHandleOwnership transfer)
+ : base(() => new App(), javaReference, transfer)
+ {
+ ConfigureUniversalImageLoader();
+ }
+
+ private static void ConfigureUniversalImageLoader()
+ {
+ // Create global configuration and initialize ImageLoader with this config
+ ImageLoaderConfiguration config = new ImageLoaderConfiguration
+ .Builder(Context)
+ .Build();
+
+ ImageLoader.Instance.Init(config);
+
+ ImageSource.DefaultImageLoader = ImageLoader.Instance.LoadImageAsync;
+ }
+}
+
diff --git a/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/MainActivity.Android.cs b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/MainActivity.Android.cs
new file mode 100644
index 0000000..c49e3ad
--- /dev/null
+++ b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/MainActivity.Android.cs
@@ -0,0 +1,15 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+using Android.Views;
+using Android.Widget;
+
+namespace FrontendPlaformUno.Droid;
+[Activity(
+ MainLauncher = true,
+ ConfigurationChanges = global::Uno.UI.ActivityHelper.AllConfigChanges,
+ WindowSoftInputMode = SoftInput.AdjustNothing | SoftInput.StateHidden
+)]
+public class MainActivity : Microsoft.UI.Xaml.ApplicationActivity
+{
+}
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/AboutResources.txt b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Resources/AboutResources.txt
similarity index 100%
rename from FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/AboutResources.txt
rename to FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Resources/AboutResources.txt
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/values/Strings.xml b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Resources/values/Strings.xml
similarity index 65%
rename from FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/values/Strings.xml
rename to FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Resources/values/Strings.xml
index 27299d4..f4f8292 100644
--- a/FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/values/Strings.xml
+++ b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Resources/values/Strings.xml
@@ -1,5 +1,5 @@
Hello World, Click Me!
- FrontendPlatformUno
+ FrontendPlaformUno
diff --git a/FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/values/Styles.xml b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Resources/values/Styles.xml
similarity index 64%
rename from FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/values/Styles.xml
rename to FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Resources/values/Styles.xml
index fd16cd7..c02bd06 100644
--- a/FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/values/Styles.xml
+++ b/FrontendPlaformUno/FrontendPlaformUno/Platforms/Android/Resources/values/Styles.xml
@@ -1,6 +1,6 @@
-
-
-
-
-
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Styles/MaterialFontsOverride.xaml b/FrontendPlatformUno/FrontendPlatformUno/Styles/MaterialFontsOverride.xaml
deleted file mode 100644
index 385d659..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Styles/MaterialFontsOverride.xaml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- ms-appx:///Uno.Fonts.Roboto/Fonts/Roboto-Light.ttf#Roboto
- ms-appx:///Uno.Fonts.Roboto/Fonts/Roboto-Medium.ttf#Roboto
- ms-appx:///Uno.Fonts.Roboto/Fonts/Roboto-Regular.ttf#Roboto
-
-
diff --git a/FrontendPlatformUno/FrontendPlatformUno/ViewModels/GamenightsViewModel.cs b/FrontendPlatformUno/FrontendPlatformUno/ViewModels/GamenightsViewModel.cs
deleted file mode 100644
index 8237cfb..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/ViewModels/GamenightsViewModel.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using CommunityToolkit.Mvvm.ComponentModel;
-using CommunityToolkit.Mvvm.Input;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Input;
-using System.Xml.Linq;
-
-namespace FrontendPlatformUno.ViewModels
-{
- public class GamenightsViewModel : ObservableObject
- {
- private INavigator Navigator { get; }
- public string? Title { get; }
- public ICommand GoToLogin { get; }
-
- public GamenightsViewModel(INavigator navigator, IStringLocalizer stringLocalizer)
- {
- Navigator = navigator;
- Title = $"{stringLocalizer["ApplicationName"]}";
- GoToLogin = new AsyncRelayCommand(GoToLoginView);
- }
-
- private async Task GoToLoginView()
- {
- await Navigator.NavigateViewModelAsync(this);
- }
- }
-}
diff --git a/FrontendPlatformUno/FrontendPlatformUno/ViewModels/LoginViewModel.cs b/FrontendPlatformUno/FrontendPlatformUno/ViewModels/LoginViewModel.cs
deleted file mode 100644
index b152720..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/ViewModels/LoginViewModel.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using CommunityToolkit.Mvvm.ComponentModel;
-using CommunityToolkit.Mvvm.Input;
-using FrontendPlatformUno.Services.Api;
-using FrontendPlatformUno.Services.Client;
-using FrontendPlatformUno.Services.Model;
-using FrontendPlatformUno.Views;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Input;
-
-namespace FrontendPlatformUno.ViewModels
-{
- public class LoginViewModel : ObservableObject
- {
- private INavigator Navigator { get; }
- public string? Title { get; }
- public ICommand GoToLogin { get; }
-
- public string? Username { get; set; }
-
- public string? Password { get; set; }
- public ICommand LoginCommand { get; internal set; }
-
- private IDefaultApi GamenightApi { get; }
-
- public LoginViewModel(INavigator navigator, IStringLocalizer stringLocalizer, IDefaultApi gamenightApi)
- {
- Navigator = navigator;
- GamenightApi = gamenightApi;
- Title = $"{stringLocalizer["ApplicationName"]} - Login";
- GoToLogin = new AsyncRelayCommand(GoToLoginView);
- LoginCommand = new AsyncRelayCommand(Login);
- }
-
- private async Task GoToLoginView()
- {
- await Navigator.NavigateViewModelAsync(this);
- }
-
- private async Task Login()
- {
- var req = new GetTokenRequest(Username, Password);
- GetToken200Response tokenResponse;
- try
- {
- tokenResponse = await GamenightApi.GetTokenAsync(req);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- return;
- }
- ((Configuration)GamenightApi.Configuration).AccessToken = tokenResponse.JwtToken;
- }
- }
-}
diff --git a/FrontendPlatformUno/FrontendPlatformUno/ViewModels/ShellViewModel.cs b/FrontendPlatformUno/FrontendPlatformUno/ViewModels/ShellViewModel.cs
deleted file mode 100644
index 3f758df..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/ViewModels/ShellViewModel.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace FrontendPlatformUno.ViewModels
-{
- public class ShellViewModel
- {
- private INavigator Navigator { get; }
-
- public ShellViewModel(INavigator navigator)
- {
- Navigator = navigator;
-
- _ = Start();
- }
-
- public async Task Start()
- {
- await Navigator.NavigateViewModelAsync(this);
- }
- }
-}
\ No newline at end of file
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Views/GamenightsPage.xaml b/FrontendPlatformUno/FrontendPlatformUno/Views/GamenightsPage.xaml
deleted file mode 100644
index 76f42d1..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Views/GamenightsPage.xaml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Views/GamenightsPage.xaml.cs b/FrontendPlatformUno/FrontendPlatformUno/Views/GamenightsPage.xaml.cs
deleted file mode 100644
index 5f62773..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Views/GamenightsPage.xaml.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using Microsoft.UI.Xaml;
-using Microsoft.UI.Xaml.Controls;
-using Microsoft.UI.Xaml.Controls.Primitives;
-using Microsoft.UI.Xaml.Data;
-using Microsoft.UI.Xaml.Input;
-using Microsoft.UI.Xaml.Media;
-using Microsoft.UI.Xaml.Navigation;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
-
-namespace FrontendPlatformUno.Views
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class GamenightsPage : Page
- {
- public GamenightsPage()
- {
- this.InitializeComponent();
- }
- }
-}
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Views/LoginPage.xaml b/FrontendPlatformUno/FrontendPlatformUno/Views/LoginPage.xaml
deleted file mode 100644
index 1ee6a83..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Views/LoginPage.xaml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Views/LoginPage.xaml.cs b/FrontendPlatformUno/FrontendPlatformUno/Views/LoginPage.xaml.cs
deleted file mode 100644
index 98f4a98..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Views/LoginPage.xaml.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using FrontendPlatformUno.ViewModels;
-using Microsoft.UI.Xaml;
-using Microsoft.UI.Xaml.Controls;
-using Microsoft.UI.Xaml.Controls.Primitives;
-using Microsoft.UI.Xaml.Data;
-using Microsoft.UI.Xaml.Input;
-using Microsoft.UI.Xaml.Media;
-using Microsoft.UI.Xaml.Navigation;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Uno;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-using Windows.UI.Core;
-
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
-
-namespace FrontendPlatformUno.Views
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class LoginPage : Page
- {
- public LoginPage()
- {
- this.InitializeComponent();
- }
-
- void OnButton(object sender, KeyRoutedEventArgs e)
- {
- if(e.Key == Windows.System.VirtualKey.Enter)
- {
- ((LoginViewModel)DataContext).LoginCommand?.Execute(null);
- e.Handled = true;
- }
- }
- }
-}
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Views/NavBarUserControl.xaml b/FrontendPlatformUno/FrontendPlatformUno/Views/NavBarUserControl.xaml
deleted file mode 100644
index 31487b9..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Views/NavBarUserControl.xaml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Views/NavBarUserControl.xaml.cs b/FrontendPlatformUno/FrontendPlatformUno/Views/NavBarUserControl.xaml.cs
deleted file mode 100644
index 6b1a47a..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Views/NavBarUserControl.xaml.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using Microsoft.UI.Xaml;
-using Microsoft.UI.Xaml.Controls;
-using Microsoft.UI.Xaml.Controls.Primitives;
-using Microsoft.UI.Xaml.Data;
-using Microsoft.UI.Xaml.Input;
-using Microsoft.UI.Xaml.Media;
-using Microsoft.UI.Xaml.Navigation;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-
-// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
-
-namespace FrontendPlatformUno.Views
-{
- public sealed partial class NavBarUserControl : UserControl
- {
- public NavBarUserControl()
- {
- this.InitializeComponent();
- }
- }
-}
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Views/Shell.xaml b/FrontendPlatformUno/FrontendPlatformUno/Views/Shell.xaml
deleted file mode 100644
index 04b9185..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Views/Shell.xaml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FrontendPlatformUno/FrontendPlatformUno/Views/Shell.xaml.cs b/FrontendPlatformUno/FrontendPlatformUno/Views/Shell.xaml.cs
deleted file mode 100644
index 3a708bc..0000000
--- a/FrontendPlatformUno/FrontendPlatformUno/Views/Shell.xaml.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using Uno.Toolkit.UI;
-
-namespace FrontendPlatformUno.Views
-{
- public sealed partial class Shell : UserControl, IContentControlProvider
- {
- public Shell()
- {
- this.InitializeComponent();
- }
-
- public ContentControl ContentControl => Splash;
- }
-}
\ No newline at end of file
diff --git a/backend-actix/Cargo.lock b/backend-actix/Cargo.lock
index ca1b231..b5fb864 100644
--- a/backend-actix/Cargo.lock
+++ b/backend-actix/Cargo.lock
@@ -4,11 +4,11 @@ version = 3
[[package]]
name = "actix-codec"
-version = "0.5.1"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8"
+checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags",
"bytes",
"futures-core",
"futures-sink",
@@ -21,9 +21,9 @@ dependencies = [
[[package]]
name = "actix-cors"
-version = "0.6.4"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b340e9cfa5b08690aae90fb61beb44e9b06f44fe3d0f93781aaa58cfba86245e"
+checksum = "f9e772b3bcafe335042b5db010ab7c09013dad6eac4915c91d8d50902769f331"
dependencies = [
"actix-utils",
"actix-web",
@@ -36,17 +36,17 @@ dependencies = [
[[package]]
name = "actix-http"
-version = "3.3.1"
+version = "3.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2079246596c18b4a33e274ae10c0e50613f4d32a4198e09c7b93771013fed74"
+checksum = "d48f96fc3003717aeb9856ca3d02a8c7de502667ad76eeacd830b48d2e91fac4"
dependencies = [
"actix-codec",
"actix-rt",
"actix-service",
"actix-utils",
- "ahash 0.8.3",
- "base64 0.21.2",
- "bitflags 1.3.2",
+ "ahash",
+ "base64 0.22.1",
+ "bitflags",
"brotli",
"bytes",
"bytestring",
@@ -80,27 +80,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
dependencies = [
"quote",
- "syn 2.0.28",
+ "syn 2.0.79",
]
[[package]]
name = "actix-router"
-version = "0.5.1"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799"
+checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8"
dependencies = [
"bytestring",
+ "cfg-if",
"http",
"regex",
+ "regex-lite",
"serde",
"tracing",
]
[[package]]
name = "actix-rt"
-version = "2.8.0"
+version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15265b6b8e2347670eb363c47fc8c75208b4a4994b27192f345fcbe707804f3e"
+checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208"
dependencies = [
"futures-core",
"tokio",
@@ -108,9 +110,9 @@ dependencies = [
[[package]]
name = "actix-server"
-version = "2.2.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e8613a75dd50cc45f473cee3c34d59ed677c0f7b44480ce3b8247d7dc519327"
+checksum = "7ca2549781d8dd6d75c40cf6b6051260a2cc2f3c62343d761a969a0640646894"
dependencies = [
"actix-rt",
"actix-service",
@@ -118,8 +120,7 @@ dependencies = [
"futures-core",
"futures-util",
"mio",
- "num_cpus",
- "socket2 0.4.9",
+ "socket2",
"tokio",
"tracing",
]
@@ -147,9 +148,9 @@ dependencies = [
[[package]]
name = "actix-web"
-version = "4.3.1"
+version = "4.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd3cb42f9566ab176e1ef0b8b3a896529062b4efc6be0123046095914c4c1c96"
+checksum = "9180d76e5cc7ccbc4d60a506f2c727730b154010262df5b910eb17dbe4b8cb38"
dependencies = [
"actix-codec",
"actix-http",
@@ -160,7 +161,7 @@ dependencies = [
"actix-service",
"actix-utils",
"actix-web-codegen",
- "ahash 0.7.6",
+ "ahash",
"bytes",
"bytestring",
"cfg-if",
@@ -169,7 +170,7 @@ dependencies = [
"encoding_rs",
"futures-core",
"futures-util",
- "http",
+ "impl-more",
"itoa",
"language-tags",
"log",
@@ -177,70 +178,61 @@ dependencies = [
"once_cell",
"pin-project-lite",
"regex",
+ "regex-lite",
"serde",
"serde_json",
"serde_urlencoded",
"smallvec",
- "socket2 0.4.9",
- "time 0.3.25",
+ "socket2",
+ "time",
"url",
]
[[package]]
name = "actix-web-codegen"
-version = "4.2.0"
+version = "4.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9"
+checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8"
dependencies = [
"actix-router",
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.79",
]
[[package]]
name = "addr2line"
-version = "0.20.0"
+version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
dependencies = [
"gimli",
]
[[package]]
-name = "adler"
-version = "1.0.2"
+name = "adler2"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
[[package]]
name = "ahash"
-version = "0.7.6"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
"getrandom",
"once_cell",
"version_check",
+ "zerocopy",
]
[[package]]
name = "aho-corasick"
-version = "1.0.4"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
@@ -276,10 +268,59 @@ dependencies = [
]
[[package]]
-name = "argon2"
-version = "0.5.1"
+name = "anstream"
+version = "0.6.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e554a8638bdc1e4eae9984845306cc95f8a9208ba8d49c3859fd958b46774d"
+checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
+dependencies = [
+ "anstyle",
+ "windows-sys",
+]
+
+[[package]]
+name = "argon2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
dependencies = [
"base64ct",
"blake2",
@@ -289,9 +330,9 @@ dependencies = [
[[package]]
name = "autocfg"
-version = "1.1.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "backend-actix"
@@ -304,6 +345,7 @@ dependencies = [
"diesel",
"diesel-derive-enum",
"diesel_migrations",
+ "env_logger",
"jsonwebtoken",
"serde",
"serde_json",
@@ -313,30 +355,30 @@ dependencies = [
[[package]]
name = "backtrace"
-version = "0.3.68"
+version = "0.3.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
dependencies = [
"addr2line",
- "cc",
"cfg-if",
"libc",
"miniz_oxide",
"object",
"rustc-demangle",
+ "windows-targets",
]
[[package]]
name = "base64"
-version = "0.13.1"
+version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
name = "base64"
-version = "0.21.2"
+version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "base64ct"
@@ -346,15 +388,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]]
name = "bitflags"
-version = "1.3.2"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "blake2"
@@ -376,9 +412,9 @@ dependencies = [
[[package]]
name = "brotli"
-version = "3.3.4"
+version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@@ -387,9 +423,9 @@ dependencies = [
[[package]]
name = "brotli-decompressor"
-version = "2.3.4"
+version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
+checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@@ -397,39 +433,40 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.13.0"
+version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.4.0"
+version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3"
[[package]]
name = "bytestring"
-version = "1.3.0"
+version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238e4886760d98c4f899360c834fa93e62cf7f721ac3c2da375cbdf4b8679aae"
+checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72"
dependencies = [
"bytes",
]
[[package]]
name = "cc"
-version = "1.0.82"
+version = "1.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+checksum = "9540e661f81799159abee814118cc139a2004b3a3aa3ea37724a1b66530b90e0"
dependencies = [
"jobserver",
"libc",
+ "shlex",
]
[[package]]
@@ -440,20 +477,25 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
-version = "0.4.26"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-traits",
"serde",
- "time 0.1.45",
"wasm-bindgen",
- "winapi",
+ "windows-targets",
]
+[[package]]
+name = "colorchoice"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
+
[[package]]
name = "convert_case"
version = "0.4.0"
@@ -467,30 +509,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
dependencies = [
"percent-encoding",
- "time 0.3.25",
+ "time",
"version_check",
]
[[package]]
name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
dependencies = [
"libc",
]
[[package]]
name = "crc32fast"
-version = "1.3.2"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
dependencies = [
"cfg-if",
]
@@ -506,31 +548,69 @@ dependencies = [
]
[[package]]
-name = "deranged"
-version = "0.3.7"
+name = "darling"
+version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929"
+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.79",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.79",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
[[package]]
name = "derive_more"
-version = "0.99.17"
+version = "0.99.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
dependencies = [
"convert_case",
"proc-macro2",
"quote",
"rustc_version",
- "syn 1.0.109",
+ "syn 2.0.79",
]
[[package]]
name = "diesel"
-version = "2.1.0"
+version = "2.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7a532c1f99a0f596f6960a60d1e119e91582b24b39e2d83a190e61262c3ef0c"
+checksum = "158fe8e2e68695bd615d7e4f3227c0727b151330d3e253b525086c348d055d5e"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags",
"byteorder",
"chrono",
"diesel_derives",
@@ -546,29 +626,30 @@ version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81c5131a2895ef64741dad1d483f358c2a229a3a2d1b256778cdc5e146db64d4"
dependencies = [
- "heck",
+ "heck 0.4.1",
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.79",
]
[[package]]
name = "diesel_derives"
-version = "2.1.0"
+version = "2.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74398b79d81e52e130d991afeed9c86034bb1b7735f46d2f5bf7deb261d80303"
+checksum = "e7f2c3de51e2ba6bf2a648285696137aaf0f5f487bcbea93972fe8a364e131a4"
dependencies = [
"diesel_table_macro_syntax",
+ "dsl_auto_type",
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.79",
]
[[package]]
name = "diesel_migrations"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac"
+checksum = "8a73ce704bad4231f001bff3314d91dce4aba0770cee8b233991859abc15c1f6"
dependencies = [
"diesel",
"migrations_internals",
@@ -577,11 +658,11 @@ dependencies = [
[[package]]
name = "diesel_table_macro_syntax"
-version = "0.1.0"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
+checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25"
dependencies = [
- "syn 2.0.28",
+ "syn 2.0.79",
]
[[package]]
@@ -596,14 +677,57 @@ dependencies = [
]
[[package]]
-name = "encoding_rs"
-version = "0.8.32"
+name = "dsl_auto_type"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+checksum = "c5d9abe6314103864cc2d8901b7ae224e0ab1a103a0a416661b4097b0779b607"
+dependencies = [
+ "darling",
+ "either",
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.79",
+]
+
+[[package]]
+name = "either"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
dependencies = [
"cfg-if",
]
+[[package]]
+name = "env_filter"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.11.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
[[package]]
name = "equivalent"
version = "1.0.1"
@@ -612,9 +736,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "flate2"
-version = "1.0.26"
+version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -628,41 +752,42 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
dependencies = [
"percent-encoding",
]
[[package]]
name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
[[package]]
name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
[[package]]
name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
"futures-core",
"futures-task",
"pin-project-lite",
"pin-utils",
+ "slab",
]
[[package]]
@@ -677,26 +802,28 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.10"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
+ "js-sys",
"libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
+ "wasm-bindgen",
]
[[package]]
name = "gimli"
-version = "0.27.3"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
[[package]]
name = "h2"
-version = "0.3.20"
+version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
dependencies = [
"bytes",
"fnv",
@@ -704,7 +831,7 @@ dependencies = [
"futures-sink",
"futures-util",
"http",
- "indexmap 1.9.3",
+ "indexmap",
"slab",
"tokio",
"tokio-util",
@@ -713,15 +840,9 @@ dependencies = [
[[package]]
name = "hashbrown"
-version = "0.12.3"
+version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
name = "heck"
@@ -730,16 +851,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
-name = "hermit-abi"
-version = "0.3.2"
+name = "heck"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
[[package]]
name = "http"
-version = "0.2.9"
+version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
dependencies = [
"bytes",
"fnv",
@@ -748,9 +875,9 @@ dependencies = [
[[package]]
name = "httparse"
-version = "1.8.0"
+version = "1.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
[[package]]
name = "httpdate"
@@ -759,17 +886,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
[[package]]
-name = "iana-time-zone"
-version = "0.1.57"
+name = "humantime"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
- "windows",
+ "windows-core",
]
[[package]]
@@ -781,6 +914,12 @@ dependencies = [
"cc",
]
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
[[package]]
name = "idna"
version = "0.4.0"
@@ -791,6 +930,16 @@ dependencies = [
"unicode-normalization",
]
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
[[package]]
name = "if_chain"
version = "1.0.2"
@@ -798,56 +947,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
[[package]]
-name = "indexmap"
-version = "1.9.3"
+name = "impl-more"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
+checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d"
[[package]]
name = "indexmap"
-version = "2.0.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
dependencies = [
"equivalent",
- "hashbrown 0.14.0",
+ "hashbrown",
]
+[[package]]
+name = "is_terminal_polyfill"
+version = "1.70.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
+
[[package]]
name = "itoa"
-version = "1.0.9"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "jobserver"
-version = "0.1.26"
+version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
dependencies = [
"libc",
]
[[package]]
name = "js-sys"
-version = "0.3.64"
+version = "0.3.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "jsonwebtoken"
-version = "8.3.0"
+version = "9.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
+checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
+ "js-sys",
"pem",
"ring",
"serde",
@@ -863,39 +1015,38 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
[[package]]
name = "lazy_static"
-version = "1.4.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
-version = "0.2.147"
+version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]]
name = "local-channel"
-version = "0.1.3"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f303ec0e94c6c54447f84f3b0ef7af769858a9c4ef56ef2a986d3dcd4c3fc9c"
+checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8"
dependencies = [
"futures-core",
"futures-sink",
- "futures-util",
"local-waker",
]
[[package]]
name = "local-waker"
-version = "0.1.3"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1"
+checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487"
[[package]]
name = "lock_api"
-version = "0.4.10"
+version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
dependencies = [
"autocfg",
"scopeguard",
@@ -903,21 +1054,21 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.20"
+version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "memchr"
-version = "2.5.0"
+version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "migrations_internals"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada"
+checksum = "fd01039851e82f8799046eabbb354056283fb265c8ec0996af940f4e85a380ff"
dependencies = [
"serde",
"toml",
@@ -925,9 +1076,9 @@ dependencies = [
[[package]]
name = "migrations_macros"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08"
+checksum = "ffb161cc72176cb37aa47f1fc520d3ef02263d67d661f44f05d05a079e1237fd"
dependencies = [
"migrations_internals",
"proc-macro2",
@@ -942,85 +1093,83 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]]
name = "miniz_oxide"
-version = "0.7.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
- "adler",
+ "adler2",
]
[[package]]
name = "mio"
-version = "0.8.8"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
+ "hermit-abi",
"libc",
"log",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
"windows-sys",
]
[[package]]
name = "num-bigint"
-version = "0.4.3"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
dependencies = [
- "autocfg",
"num-integer",
"num-traits",
]
[[package]]
-name = "num-integer"
-version = "0.1.45"
+name = "num-conv"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
dependencies = [
- "autocfg",
"num-traits",
]
[[package]]
name = "num-traits"
-version = "0.2.16"
+version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
]
-[[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
[[package]]
name = "object"
-version = "0.31.1"
+version = "0.36.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
dependencies = [
"memchr",
]
[[package]]
name = "once_cell"
-version = "1.18.0"
+version = "1.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1"
+dependencies = [
+ "portable-atomic",
+]
[[package]]
name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
dependencies = [
"lock_api",
"parking_lot_core",
@@ -1028,9 +1177,9 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
dependencies = [
"cfg-if",
"libc",
@@ -1052,30 +1201,31 @@ dependencies = [
[[package]]
name = "paste"
-version = "1.0.14"
+version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
[[package]]
name = "pem"
-version = "1.1.1"
+version = "3.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
dependencies = [
- "base64 0.13.1",
+ "base64 0.22.1",
+ "serde",
]
[[package]]
name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pin-project-lite"
-version = "0.2.12"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
[[package]]
name = "pin-utils"
@@ -1085,21 +1235,36 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
-version = "0.3.27"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
+
+[[package]]
+name = "portable-atomic"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2"
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "ppv-lite86"
-version = "0.2.17"
+version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
+dependencies = [
+ "zerocopy",
+]
[[package]]
name = "pq-sys"
-version = "0.4.8"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd"
+checksum = "f6cc05d7ea95200187117196eee9edd0644424911821aeb28a18ce60ea0b8793"
dependencies = [
"vcpkg",
]
@@ -1130,18 +1295,18 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.32"
+version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
@@ -1189,18 +1354,18 @@ dependencies = [
[[package]]
name = "redox_syscall"
-version = "0.3.5"
+version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "355ae415ccd3a04315d3f8246e86d67689ea74d88d915576e1589a351062a13b"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags",
]
[[package]]
name = "regex"
-version = "1.9.3"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8"
dependencies = [
"aho-corasick",
"memchr",
@@ -1210,9 +1375,9 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.3.6"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
dependencies = [
"aho-corasick",
"memchr",
@@ -1220,46 +1385,52 @@ dependencies = [
]
[[package]]
-name = "regex-syntax"
-version = "0.7.4"
+name = "regex-lite"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "ring"
-version = "0.16.20"
+version = "0.17.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
dependencies = [
"cc",
+ "cfg-if",
+ "getrandom",
"libc",
- "once_cell",
"spin",
"untrusted",
- "web-sys",
- "winapi",
+ "windows-sys",
]
[[package]]
name = "rustc-demangle"
-version = "0.1.23"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]]
name = "rustc_version"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
dependencies = [
"semver",
]
[[package]]
name = "ryu"
-version = "1.0.15"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "scheduled-thread-pool"
@@ -1278,46 +1449,47 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "semver"
-version = "1.0.18"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
[[package]]
name = "serde"
-version = "1.0.183"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.183"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.79",
]
[[package]]
name = "serde_json"
-version = "1.0.104"
+version = "1.0.128"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
dependencies = [
"itoa",
+ "memchr",
"ryu",
"serde",
]
[[package]]
name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
dependencies = [
"serde",
]
@@ -1336,9 +1508,9 @@ dependencies = [
[[package]]
name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [
"cfg-if",
"cpufeatures",
@@ -1346,10 +1518,16 @@ dependencies = [
]
[[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
+name = "shlex"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
dependencies = [
"libc",
]
@@ -1363,39 +1541,29 @@ dependencies = [
"num-bigint",
"num-traits",
"thiserror",
- "time 0.3.25",
+ "time",
]
[[package]]
name = "slab"
-version = "0.4.8"
+version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
dependencies = [
"autocfg",
]
[[package]]
name = "smallvec"
-version = "1.11.0"
+version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "socket2"
-version = "0.4.9"
+version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "socket2"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
dependencies = [
"libc",
"windows-sys",
@@ -1403,15 +1571,21 @@ dependencies = [
[[package]]
name = "spin"
-version = "0.5.2"
+version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "subtle"
-version = "2.5.0"
+version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
@@ -1426,9 +1600,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.28"
+version = "2.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
+checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
dependencies = [
"proc-macro2",
"quote",
@@ -1437,43 +1611,34 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.44"
+version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
+checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.44"
+version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
+checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.79",
]
[[package]]
name = "time"
-version = "0.1.45"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "time"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
"itoa",
+ "num-conv",
+ "powerfmt",
"serde",
"time-core",
"time-macros",
@@ -1481,24 +1646,25 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.11"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
+ "num-conv",
"time-core",
]
[[package]]
name = "tinyvec"
-version = "1.6.0"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
dependencies = [
"tinyvec_macros",
]
@@ -1511,9 +1677,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.31.0"
+version = "1.40.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40de3a2ba249dcb097e01be5e67a5ff53cf250397715a071a81543e8a832a920"
+checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
dependencies = [
"backtrace",
"bytes",
@@ -1522,29 +1688,28 @@ dependencies = [
"parking_lot",
"pin-project-lite",
"signal-hook-registry",
- "socket2 0.5.3",
+ "socket2",
"windows-sys",
]
[[package]]
name = "tokio-util"
-version = "0.7.8"
+version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
dependencies = [
"bytes",
"futures-core",
"futures-sink",
"pin-project-lite",
"tokio",
- "tracing",
]
[[package]]
name = "toml"
-version = "0.7.6"
+version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
dependencies = [
"serde",
"serde_spanned",
@@ -1554,20 +1719,20 @@ dependencies = [
[[package]]
name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
dependencies = [
"serde",
]
[[package]]
name = "toml_edit"
-version = "0.19.14"
+version = "0.22.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
"serde",
"serde_spanned",
"toml_datetime",
@@ -1576,11 +1741,10 @@ dependencies = [
[[package]]
name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
- "cfg-if",
"log",
"pin-project-lite",
"tracing-core",
@@ -1588,62 +1752,68 @@ dependencies = [
[[package]]
name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
dependencies = [
"once_cell",
]
[[package]]
name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]]
name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
[[package]]
name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
dependencies = [
"tinyvec",
]
[[package]]
name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "url"
-version = "2.4.0"
+version = "2.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
dependencies = [
"form_urlencoded",
- "idna",
+ "idna 0.5.0",
"percent-encoding",
]
[[package]]
-name = "uuid"
-version = "1.4.1"
+name = "utf8parse"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
+
+[[package]]
+name = "uuid"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
dependencies = [
"getrandom",
"serde",
@@ -1655,7 +1825,7 @@ version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b92f40481c04ff1f4f61f304d61793c7b56ff76ac1469f1beb199b1445b253bd"
dependencies = [
- "idna",
+ "idna 0.4.0",
"lazy_static",
"regex",
"serde",
@@ -1699,15 +1869,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "version_check"
-version = "0.9.4"
+version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "wasi"
@@ -1717,34 +1881,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
dependencies = [
"cfg-if",
+ "once_cell",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.79",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -1752,82 +1917,51 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.28",
+ "syn 2.0.79",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
[[package]]
-name = "web-sys"
-version = "0.3.64"
+name = "windows-core"
+version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-sys"
-version = "0.48.0"
+version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
-version = "0.48.1"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
+ "windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
@@ -1836,81 +1970,106 @@ dependencies = [
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"
-version = "0.5.10"
+version = "0.6.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5504cc7644f4b593cbc05c4a55bf9bd4e94b867c3c0bd440934174d50482427d"
+checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
dependencies = [
"memchr",
]
[[package]]
-name = "zstd"
-version = "0.12.4"
+name = "zerocopy"
+version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
+dependencies = [
+ "byteorder",
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.79",
+]
+
+[[package]]
+name = "zstd"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
-version = "6.0.6"
+version = "7.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
+checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059"
dependencies = [
- "libc",
"zstd-sys",
]
[[package]]
name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.13+zstd.1.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa"
dependencies = [
"cc",
- "libc",
"pkg-config",
]
diff --git a/backend-actix/Cargo.toml b/backend-actix/Cargo.toml
index d5d1d88..ce0eaf2 100644
--- a/backend-actix/Cargo.toml
+++ b/backend-actix/Cargo.toml
@@ -7,7 +7,7 @@ edition = "2021"
[dependencies]
actix-web = "4"
-actix-cors = "0.6"
+actix-cors = "0.7"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
uuid = { version = "1.3.0", features = ["serde", "v4"] }
@@ -16,5 +16,6 @@ diesel-derive-enum = { version = "2.0", features = ["postgres"] }
diesel_migrations = "2.0"
argon2 = "0.5"
chrono = { version = "0.4", features = ["serde"] }
-jsonwebtoken = "8.1"
-validator = { version = "0.16", features = ["derive"] }
\ No newline at end of file
+jsonwebtoken = "9.3"
+validator = { version = "0.16", features = ["derive"] }
+env_logger = "0.11.5"
\ No newline at end of file
diff --git a/backend-actix/src/main.rs b/backend-actix/src/main.rs
index 4acb083..8fcfe06 100644
--- a/backend-actix/src/main.rs
+++ b/backend-actix/src/main.rs
@@ -3,6 +3,9 @@ pub mod schema;
pub mod util;
use actix_cors::Cors;
+use actix_web::error;
+use actix_web::middleware::Logger;
+use actix_web::HttpResponse;
use actix_web::HttpServer;
use actix_web::App;
use actix_web::http;
@@ -35,6 +38,8 @@ async fn main() -> std::io::Result<()> {
let mut conn = pool.get_conn();
run_migration(&mut conn);
+ env_logger::init_from_env(env_logger::Env::new().default_filter_or("debug"));
+
HttpServer::new(move || {
let cors = Cors::default()
.allowed_origin("0.0.0.0")
@@ -45,6 +50,15 @@ async fn main() -> std::io::Result<()> {
.max_age(3600);
App::new()
+ .app_data(web::JsonConfig::default().error_handler(|err, _req| {
+ error::InternalError::from_response(
+ "",
+ HttpResponse::BadRequest()
+ .content_type("application/json")
+ .body(format!(r#"{{"error":"{}"}}"#, err)),
+ ).into()
+ }))
+ .wrap(Logger::default())
.wrap(cors)
.app_data(web::Data::new(pool.clone()))
.service(login)
diff --git a/backend-actix/src/schema/schema.rs b/backend-actix/src/schema/schema.rs
index 7d78433..8ee25f4 100644
--- a/backend-actix/src/schema/schema.rs
+++ b/backend-actix/src/schema/schema.rs
@@ -46,6 +46,7 @@ diesel::table! {
diesel::table! {
registration_tokens (id) {
id -> Uuid,
+ #[max_length = 32]
token -> Bpchar,
single_use -> Bool,
expires -> Nullable,
@@ -65,7 +66,9 @@ diesel::table! {
}
diesel::joinable!(gamenight -> users (owner_id));
+diesel::joinable!(gamenight_gamelist -> gamenight (gamenight_id));
diesel::joinable!(gamenight_gamelist -> known_games (game_id));
+diesel::joinable!(gamenight_participants -> gamenight (gamenight_id));
diesel::joinable!(gamenight_participants -> users (user_id));
diesel::joinable!(pwd -> users (user_id));