diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 1b539962..485bfa76 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,135 +1,135 @@ - -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or advances of - any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email address, - without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at: - -https://discord.gg/lbpunion - -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at: + +https://discord.gg/lbpunion + +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1b119211..54135007 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,99 +1,99 @@ -# Contributing - -## Setting up MySQL - -Project Lighthouse requires a MySQL database. For Linux users running docker, one can be set up using -the `docker-compose.yml` file in the root of the project folder. - -Next, make sure the `LIGHTHOUSE_DB_CONNECTION_STRING` environment variable is set correctly. By default, it -is `server=127.0.0.1;uid=root;pwd=lighthouse;database=lighthouse`. If you are running the database via the -above `docker-compose.yml` you shouldn't need to change this. For other development/especially production environments -you will need to change this. - -Once you've gotten MySQL running you can run Lighthouse. It will take care of the rest. - -## Connecting (PS3) - -You can use the Remote Patch utility in [UnionPatcher](https://github.com/LBPUnion/UnionPatcher) to manually patch your EBOOT.BIN; it works over the network and automatically downloads, decrypts, patches, encrypts, and uploads your PSN and Disc EBOOTs. - -If you are not using a PS3, see [the RPCS3 section](#connecting-rpcs3). - -## Connecting (RPCS3) - -Start by getting a copy of LittleBigPlanet 1/2/3 installed. (Check the LittleBigPlanet 1 section, since you'll need to do -extra steps for your game to not crash upon entering the pod computer). - -The game can be a digital copy (NPUA80472/NPUA80662/NPUA81116) or a disc copy (BCUS98148/BCUS98245/BCUS98362). - -Next, download [UnionPatcher](https://github.com/LBPUnion/UnionPatcher/). Binaries can be found by reading the `README.md` -file. - -You should have everything you need now, so open up RPCS3 and go to Utilities -> Decrypt PS3 Binaries. Point this -to `rpcs3/dev_hdd0/game/(title id)/USRDIR/EBOOT.BIN`. You can grab your title ID by right clicking the game in RPCS3 and -clicking Copy Info -> Copy Serial. - - -This should give you a file named `EBOOT.elf` in the same folder. This is your decrypted EBOOT. - -Now that you have your decrypted EBOOT, open UnionPatcher and select the `EBOOT.elf` you got earlier in the top box, -enter `http://localhost:10060/LITTLEBIGPLANETPS3_XML` in the second, and the output filename in the third. For this -guide we'll use `EBOOTlocalhost.elf`. - -Now, copy the `EBOOTlocalhost.elf` file to where you got your `EBOOT.elf` file from, and you're now good to go. - -To launch the game with the patched EBOOT, open up RPCS3, go to File, Boot S(Elf), and open up `EBOOTlocalhost.elf`. - -Assuming you patched the file correctly, the database is migrated, and -Project Lighthouse is running, the game should now connect, and you may begin contributing! - -### LittleBigPlanet 1 (RPCS3) - -For LittleBigPlanet 1 to work with RPCS3, follow the steps above normally. - -First, open your favourite hex editor. We recommend [HxD](https://mh-nexus.de/en/hxd/). - -Once you have a hex editor open, open your `EBOOTlocalhost.elf` file and search for the hex -values `73 63 65 4E 70 43 6F 6D 6D 65 72 63 65 32`. In HxD, this would be done by clicking on Search -> Replace, -clicking on the `Hex-values` tab, and entering the hex there. - -Then, you can zero it out by replacing it with `00 00 00 00 00 00 00 00 00 00 00 00 00 00`. - -What this does is remove all the references to the `sceNpCommerce2` function. The function is used for purchasing DLC, -which at this moment in time crashes RPCS3. - -After saving the file your LBP1 EBOOT can be used with RPCS3. - -## Contributing Tips - -### Database migrations - -Some modifications may require updates to the database schema. You can automatically create a migration file by: - -1. Making sure the tools are installed. You can do this by running `dotnet tool restore`. -2. Making sure `LIGHTHOUSE_DB_CONNECTION_STRING` is set correctly. See the `Running` section for more details. -3. Modifying the database schema via the C# portion of the code. Do not modify the actual SQL database. -4. Running `dotnet ef migrations add --project ProjectLighthouse`. - -This process will create a migration file from the changes made in the C# code. - -The new migrations will automatically be applied upon starting Lighthouse. - -### Running tests - -You can run tests either through your IDE or by running `dotnet tests`. - -Keep in mind while running database tests (which most tests are) you need to have `LIGHTHOUSE_DB_CONNECTION_STRING` set. - -### Continuous Integration (CI) Tips - -- You can skip CI runs for a commit if you specify `[skip ci]` at the beginning of the commit name. This is useful for - formatting changes, etc. -- When creating your first pull request, CI will not run initially. A team member will have to approve you for use of - running CI on a pull request. This is because of GitHub policy. - -### API Documentation - -You can access API documentation by looking at the XMLDoc in the controllers under `ProjectLighthouse.Controllers.Api` - -You can also access an interactive version by starting Lighthouse and accessing Swagger -at `http://localhost:10060/swagger/index.html`. +# Contributing + +## Setting up MySQL + +Project Lighthouse requires a MySQL database. For Linux users running docker, one can be set up using +the `docker-compose.yml` file in the root of the project folder. + +Next, make sure the `LIGHTHOUSE_DB_CONNECTION_STRING` environment variable is set correctly. By default, it +is `server=127.0.0.1;uid=root;pwd=lighthouse;database=lighthouse`. If you are running the database via the +above `docker-compose.yml` you shouldn't need to change this. For other development/especially production environments +you will need to change this. + +Once you've gotten MySQL running you can run Lighthouse. It will take care of the rest. + +## Connecting (PS3) + +You can use the Remote Patch utility in [UnionPatcher](https://github.com/LBPUnion/UnionPatcher) to manually patch your EBOOT.BIN; it works over the network and automatically downloads, decrypts, patches, encrypts, and uploads your PSN and Disc EBOOTs. + +If you are not using a PS3, see [the RPCS3 section](#connecting-rpcs3). + +## Connecting (RPCS3) + +Start by getting a copy of LittleBigPlanet 1/2/3 installed. (Check the LittleBigPlanet 1 section, since you'll need to do +extra steps for your game to not crash upon entering the pod computer). + +The game can be a digital copy (NPUA80472/NPUA80662/NPUA81116) or a disc copy (BCUS98148/BCUS98245/BCUS98362). + +Next, download [UnionPatcher](https://github.com/LBPUnion/UnionPatcher/). Binaries can be found by reading the `README.md` +file. + +You should have everything you need now, so open up RPCS3 and go to Utilities -> Decrypt PS3 Binaries. Point this +to `rpcs3/dev_hdd0/game/(title id)/USRDIR/EBOOT.BIN`. You can grab your title ID by right clicking the game in RPCS3 and +clicking Copy Info -> Copy Serial. + + +This should give you a file named `EBOOT.elf` in the same folder. This is your decrypted EBOOT. + +Now that you have your decrypted EBOOT, open UnionPatcher and select the `EBOOT.elf` you got earlier in the top box, +enter `http://localhost:10060/LITTLEBIGPLANETPS3_XML` in the second, and the output filename in the third. For this +guide we'll use `EBOOTlocalhost.elf`. + +Now, copy the `EBOOTlocalhost.elf` file to where you got your `EBOOT.elf` file from, and you're now good to go. + +To launch the game with the patched EBOOT, open up RPCS3, go to File, Boot S(Elf), and open up `EBOOTlocalhost.elf`. + +Assuming you patched the file correctly, the database is migrated, and +Project Lighthouse is running, the game should now connect, and you may begin contributing! + +### LittleBigPlanet 1 (RPCS3) + +For LittleBigPlanet 1 to work with RPCS3, follow the steps above normally. + +First, open your favourite hex editor. We recommend [HxD](https://mh-nexus.de/en/hxd/). + +Once you have a hex editor open, open your `EBOOTlocalhost.elf` file and search for the hex +values `73 63 65 4E 70 43 6F 6D 6D 65 72 63 65 32`. In HxD, this would be done by clicking on Search -> Replace, +clicking on the `Hex-values` tab, and entering the hex there. + +Then, you can zero it out by replacing it with `00 00 00 00 00 00 00 00 00 00 00 00 00 00`. + +What this does is remove all the references to the `sceNpCommerce2` function. The function is used for purchasing DLC, +which at this moment in time crashes RPCS3. + +After saving the file your LBP1 EBOOT can be used with RPCS3. + +## Contributing Tips + +### Database migrations + +Some modifications may require updates to the database schema. You can automatically create a migration file by: + +1. Making sure the tools are installed. You can do this by running `dotnet tool restore`. +2. Making sure `LIGHTHOUSE_DB_CONNECTION_STRING` is set correctly. See the `Running` section for more details. +3. Modifying the database schema via the C# portion of the code. Do not modify the actual SQL database. +4. Running `dotnet ef migrations add --project ProjectLighthouse`. + +This process will create a migration file from the changes made in the C# code. + +The new migrations will automatically be applied upon starting Lighthouse. + +### Running tests + +You can run tests either through your IDE or by running `dotnet tests`. + +Keep in mind while running database tests (which most tests are) you need to have `LIGHTHOUSE_DB_CONNECTION_STRING` set. + +### Continuous Integration (CI) Tips + +- You can skip CI runs for a commit if you specify `[skip ci]` at the beginning of the commit name. This is useful for + formatting changes, etc. +- When creating your first pull request, CI will not run initially. A team member will have to approve you for use of + running CI on a pull request. This is because of GitHub policy. + +### API Documentation + +You can access API documentation by looking at the XMLDoc in the controllers under `ProjectLighthouse.Controllers.Api` + +You can also access an interactive version by starting Lighthouse and accessing Swagger +at `http://localhost:10060/swagger/index.html`. diff --git a/Dockerfile b/Dockerfile index bf730b18..1f28c03a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,40 +1,40 @@ -# Build stage -FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build -WORKDIR /ProjectLighthouse -COPY *.sln ./ -COPY **/*.csproj ./ - -RUN dotnet sln list | grep ".csproj" \ - | while read -r line; do \ - mkdir -p $(dirname $line); \ - mv $(basename $line) $(dirname $line); \ - done; - -RUN dotnet restore - -COPY . . -RUN dotnet publish -c Release --property:OutputPath=/ProjectLighthouse/out/ --no-restore - -# Final running container -FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS final - -# Add non-root user -RUN addgroup -S lighthouse --gid 1001 && \ -adduser -S lighthouse -G lighthouse -h /lighthouse --uid 1001 && \ -mkdir -p /lighthouse/data && \ -mkdir -p /lighthouse/app && \ -mkdir -p /lighthouse/temp && \ -apk add --no-cache icu-libs su-exec tzdata - -ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false - -# Copy build files -COPY --from=build /ProjectLighthouse/out/publish /lighthouse/app -COPY --from=build /ProjectLighthouse/ProjectLighthouse/StaticFiles /lighthouse/temp/StaticFiles -COPY --from=build /ProjectLighthouse/scripts-and-tools/docker-entrypoint.sh /lighthouse - -RUN chown -R lighthouse:lighthouse /lighthouse && \ -chmod +x /lighthouse/docker-entrypoint.sh && \ -cp /lighthouse/app/appsettings.json /lighthouse/temp - +# Build stage +FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build +WORKDIR /ProjectLighthouse +COPY *.sln ./ +COPY **/*.csproj ./ + +RUN dotnet sln list | grep ".csproj" \ + | while read -r line; do \ + mkdir -p $(dirname $line); \ + mv $(basename $line) $(dirname $line); \ + done; + +RUN dotnet restore + +COPY . . +RUN dotnet publish -c Release --property:OutputPath=/ProjectLighthouse/out/ --no-restore + +# Final running container +FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS final + +# Add non-root user +RUN addgroup -S lighthouse --gid 1001 && \ +adduser -S lighthouse -G lighthouse -h /lighthouse --uid 1001 && \ +mkdir -p /lighthouse/data && \ +mkdir -p /lighthouse/app && \ +mkdir -p /lighthouse/temp && \ +apk add --no-cache icu-libs su-exec tzdata + +ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false + +# Copy build files +COPY --from=build /ProjectLighthouse/out/publish /lighthouse/app +COPY --from=build /ProjectLighthouse/ProjectLighthouse/StaticFiles /lighthouse/temp/StaticFiles +COPY --from=build /ProjectLighthouse/scripts-and-tools/docker-entrypoint.sh /lighthouse + +RUN chown -R lighthouse:lighthouse /lighthouse && \ +chmod +x /lighthouse/docker-entrypoint.sh && \ +cp /lighthouse/app/appsettings.json /lighthouse/temp + ENTRYPOINT ["/lighthouse/docker-entrypoint.sh"] \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/ApiEndpointController.cs b/ProjectLighthouse.Servers.API/ApiEndpointController.cs index 97423a50..d1e39295 100644 --- a/ProjectLighthouse.Servers.API/ApiEndpointController.cs +++ b/ProjectLighthouse.Servers.API/ApiEndpointController.cs @@ -1,9 +1,9 @@ -using Microsoft.AspNetCore.Mvc; - -namespace LBPUnion.ProjectLighthouse.Servers.API; - -[ApiController] -[Route("/api/v1")] -[Produces("application/json")] -public class ApiEndpointController : ControllerBase +using Microsoft.AspNetCore.Mvc; + +namespace LBPUnion.ProjectLighthouse.Servers.API; + +[ApiController] +[Route("/api/v1")] +[Produces("application/json")] +public class ApiEndpointController : ControllerBase { } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/Controllers/RpcController.cs b/ProjectLighthouse.Servers.API/Controllers/RpcController.cs index 566782d3..7bb46b29 100644 --- a/ProjectLighthouse.Servers.API/Controllers/RpcController.cs +++ b/ProjectLighthouse.Servers.API/Controllers/RpcController.cs @@ -1,18 +1,18 @@ -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Servers.API.Responses; -using Microsoft.AspNetCore.Mvc; - -namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; - -public class RpcController : ApiEndpointController -{ - /// - /// Returns basic information that Discord RPC clients can use for self-configuration. - /// - /// RpcResponse - /// The RPC configuration. - [HttpGet("rpc")] - [ProducesResponseType(typeof(RpcResponse), StatusCodes.Status200OK)] - public IActionResult GetRpcConfiguration() => - this.Ok(RpcResponse.CreateFromConfiguration(ServerConfiguration.Instance.RichPresenceConfiguration)); +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Servers.API.Responses; +using Microsoft.AspNetCore.Mvc; + +namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; + +public class RpcController : ApiEndpointController +{ + /// + /// Returns basic information that Discord RPC clients can use for self-configuration. + /// + /// RpcResponse + /// The RPC configuration. + [HttpGet("rpc")] + [ProducesResponseType(typeof(RpcResponse), StatusCodes.Status200OK)] + public IActionResult GetRpcConfiguration() => + this.Ok(RpcResponse.CreateFromConfiguration(ServerConfiguration.Instance.RichPresenceConfiguration)); } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/Controllers/SlotEndpoints.cs b/ProjectLighthouse.Servers.API/Controllers/SlotEndpoints.cs index 0b4823d5..abb6e22b 100644 --- a/ProjectLighthouse.Servers.API/Controllers/SlotEndpoints.cs +++ b/ProjectLighthouse.Servers.API/Controllers/SlotEndpoints.cs @@ -1,64 +1,64 @@ -#nullable enable -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Extensions; -using LBPUnion.ProjectLighthouse.Servers.API.Responses; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; - -namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; - -/// -/// A collection of endpoints relating to slots. -/// -public class SlotEndpoints : ApiEndpointController -{ - private readonly DatabaseContext database; - - public SlotEndpoints(DatabaseContext database) - { - this.database = database; - } - - /// - /// Gets a list of (stripped down) slots from the database. - /// - /// How many slots you want to retrieve. - /// How many slots to skip. - /// The slot - /// The slot list, if successful. - [HttpGet("slots")] - [ProducesResponseType(typeof(List), StatusCodes.Status200OK)] - public async Task GetSlots([FromQuery] int limit = 20, [FromQuery] int skip = 0) - { - if (skip < 0) skip = 0; - if (limit < 0) limit = 0; - limit = Math.Min(ServerStatics.PageSize, limit); - - List minimalSlots = (await this.database.Slots.OrderByDescending(s => s.FirstUploaded) - .Skip(skip) - .Take(limit) - .ToListAsync()).ToSerializableList(MinimalApiSlot.CreateFromEntity); - - return this.Ok(minimalSlots); - } - - /// - /// Gets a slot (more commonly known as a level) and its information from the database. - /// - /// The ID of the slot - /// The slot - /// The slot, if successful. - /// The slot could not be found. - [HttpGet("slot/{id:int}")] - [ProducesResponseType(typeof(ApiSlot), StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task GetSlot(int id) - { - SlotEntity? slot = await this.database.Slots.FirstOrDefaultAsync(u => u.SlotId == id); - if (slot == null) return this.NotFound(); - - return this.Ok(ApiSlot.CreateFromEntity(slot, this.database)); - } +#nullable enable +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Extensions; +using LBPUnion.ProjectLighthouse.Servers.API.Responses; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; + +/// +/// A collection of endpoints relating to slots. +/// +public class SlotEndpoints : ApiEndpointController +{ + private readonly DatabaseContext database; + + public SlotEndpoints(DatabaseContext database) + { + this.database = database; + } + + /// + /// Gets a list of (stripped down) slots from the database. + /// + /// How many slots you want to retrieve. + /// How many slots to skip. + /// The slot + /// The slot list, if successful. + [HttpGet("slots")] + [ProducesResponseType(typeof(List), StatusCodes.Status200OK)] + public async Task GetSlots([FromQuery] int limit = 20, [FromQuery] int skip = 0) + { + if (skip < 0) skip = 0; + if (limit < 0) limit = 0; + limit = Math.Min(ServerStatics.PageSize, limit); + + List minimalSlots = (await this.database.Slots.OrderByDescending(s => s.FirstUploaded) + .Skip(skip) + .Take(limit) + .ToListAsync()).ToSerializableList(MinimalApiSlot.CreateFromEntity); + + return this.Ok(minimalSlots); + } + + /// + /// Gets a slot (more commonly known as a level) and its information from the database. + /// + /// The ID of the slot + /// The slot + /// The slot, if successful. + /// The slot could not be found. + [HttpGet("slot/{id:int}")] + [ProducesResponseType(typeof(ApiSlot), StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status404NotFound)] + public async Task GetSlot(int id) + { + SlotEntity? slot = await this.database.Slots.FirstOrDefaultAsync(u => u.SlotId == id); + if (slot == null) return this.NotFound(); + + return this.Ok(ApiSlot.CreateFromEntity(slot, this.database)); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/Controllers/StatisticsEndpoints.cs b/ProjectLighthouse.Servers.API/Controllers/StatisticsEndpoints.cs index 76310aec..c82e78ca 100644 --- a/ProjectLighthouse.Servers.API/Controllers/StatisticsEndpoints.cs +++ b/ProjectLighthouse.Servers.API/Controllers/StatisticsEndpoints.cs @@ -1,139 +1,139 @@ -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Filter; -using LBPUnion.ProjectLighthouse.Filter.Filters; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Servers.API.Responses; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; - -namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; - -/// -/// A collection of endpoints relating to statistics. -/// -public class StatisticsEndpoints : ApiEndpointController -{ - - private readonly DatabaseContext database; - - public StatisticsEndpoints(DatabaseContext database) - { - this.database = database; - } - - /// - /// Gets everything that StatisticsHelper provides. - /// - /// An instance of StatisticsResponse - [HttpGet("statistics")] - [ProducesResponseType(typeof(StatisticsResponse), StatusCodes.Status200OK)] - public async Task GetStatistics() - => this.Ok - ( - new StatisticsResponse - { - Photos = await StatisticsHelper.PhotoCount(this.database), - Slots = await StatisticsHelper.SlotCount(this.database, new SlotQueryBuilder()), - Users = await StatisticsHelper.UserCount(this.database), - RecentMatches = await StatisticsHelper.RecentMatches(this.database), - TeamPicks = await StatisticsHelper.SlotCount(this.database, new SlotQueryBuilder().AddFilter(new TeamPickFilter())), - } - ); - - private static readonly List gameVersions = new() - { - GameVersion.LittleBigPlanet1, - GameVersion.LittleBigPlanet2, - GameVersion.LittleBigPlanet3, - GameVersion.LittleBigPlanetVita, - GameVersion.LittleBigPlanetPSP, - }; - - private static readonly List platforms = new() - { - Platform.PS3, - Platform.RPCS3, - Platform.Vita, - Platform.PSP, - }; - - /// - /// Get player counts for each individual title - /// - /// An instance of PlayerCountByGameResponse - [HttpGet("playerCount")] - [HttpGet("playerCount/game")] - [ProducesResponseType(typeof(PlayerCountByGameResponse), StatusCodes.Status200OK)] - public async Task GetPlayerCounts() - { - List gameList = new(); - foreach (GameVersion version in gameVersions) - { - gameList.Add(new PlayerCountByGameObject - { - Game = version.ToString(), - PlayerCount = await StatisticsHelper.RecentMatches(this.database, l => l.GameVersion == version), - }); - } - PlayerCountByGameResponse response = new() - { - TotalPlayerCount = await StatisticsHelper.RecentMatches(this.database), - Games = gameList, - }; - - return this.Ok(response); - } - - /// - /// Get player counts for each individual platform - /// - /// An instance of PlayerCountByPlatformResponse - [HttpGet("playerCount/platform")] - [ProducesResponseType(typeof(PlayerCountByPlatformResponse), StatusCodes.Status200OK)] - public async Task GetPlayerCountsByPlatform() - { - List platformList = new(); - foreach (Platform platform in platforms) - { - platformList.Add(new PlayerCountByPlatformObject - { - Platform = platform.ToString(), - PlayerCount = await StatisticsHelper.RecentMatches(this.database, l => l.Platform == platform), - }); - } - - PlayerCountByPlatformResponse response = new() - { - TotalPlayerCount = await StatisticsHelper.RecentMatches(this.database), - Platforms = platformList, - }; - - return this.Ok(response); - } - - /// - /// Gets a list of online players - /// - /// An instance of PlayerListResponse - [HttpGet("players")] - [ProducesResponseType(typeof(PlayerListResponse), StatusCodes.Status200OK)] - public async Task GetPlayerList() - { - List players = await this.database.LastContacts.Where(l => TimeHelper.Timestamp - l.Timestamp < 300) - .Select(l => new PlayerListObject - { - Username = l.User!.Username, - Game = l.GameVersion.ToString(), - Platform = l.Platform.ToString(), - }) - .ToListAsync(); - - PlayerListResponse response = new() - { - Players = players, - }; - - return this.Ok(response); - } +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Filter; +using LBPUnion.ProjectLighthouse.Filter.Filters; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Servers.API.Responses; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; + +/// +/// A collection of endpoints relating to statistics. +/// +public class StatisticsEndpoints : ApiEndpointController +{ + + private readonly DatabaseContext database; + + public StatisticsEndpoints(DatabaseContext database) + { + this.database = database; + } + + /// + /// Gets everything that StatisticsHelper provides. + /// + /// An instance of StatisticsResponse + [HttpGet("statistics")] + [ProducesResponseType(typeof(StatisticsResponse), StatusCodes.Status200OK)] + public async Task GetStatistics() + => this.Ok + ( + new StatisticsResponse + { + Photos = await StatisticsHelper.PhotoCount(this.database), + Slots = await StatisticsHelper.SlotCount(this.database, new SlotQueryBuilder()), + Users = await StatisticsHelper.UserCount(this.database), + RecentMatches = await StatisticsHelper.RecentMatches(this.database), + TeamPicks = await StatisticsHelper.SlotCount(this.database, new SlotQueryBuilder().AddFilter(new TeamPickFilter())), + } + ); + + private static readonly List gameVersions = new() + { + GameVersion.LittleBigPlanet1, + GameVersion.LittleBigPlanet2, + GameVersion.LittleBigPlanet3, + GameVersion.LittleBigPlanetVita, + GameVersion.LittleBigPlanetPSP, + }; + + private static readonly List platforms = new() + { + Platform.PS3, + Platform.RPCS3, + Platform.Vita, + Platform.PSP, + }; + + /// + /// Get player counts for each individual title + /// + /// An instance of PlayerCountByGameResponse + [HttpGet("playerCount")] + [HttpGet("playerCount/game")] + [ProducesResponseType(typeof(PlayerCountByGameResponse), StatusCodes.Status200OK)] + public async Task GetPlayerCounts() + { + List gameList = new(); + foreach (GameVersion version in gameVersions) + { + gameList.Add(new PlayerCountByGameObject + { + Game = version.ToString(), + PlayerCount = await StatisticsHelper.RecentMatches(this.database, l => l.GameVersion == version), + }); + } + PlayerCountByGameResponse response = new() + { + TotalPlayerCount = await StatisticsHelper.RecentMatches(this.database), + Games = gameList, + }; + + return this.Ok(response); + } + + /// + /// Get player counts for each individual platform + /// + /// An instance of PlayerCountByPlatformResponse + [HttpGet("playerCount/platform")] + [ProducesResponseType(typeof(PlayerCountByPlatformResponse), StatusCodes.Status200OK)] + public async Task GetPlayerCountsByPlatform() + { + List platformList = new(); + foreach (Platform platform in platforms) + { + platformList.Add(new PlayerCountByPlatformObject + { + Platform = platform.ToString(), + PlayerCount = await StatisticsHelper.RecentMatches(this.database, l => l.Platform == platform), + }); + } + + PlayerCountByPlatformResponse response = new() + { + TotalPlayerCount = await StatisticsHelper.RecentMatches(this.database), + Platforms = platformList, + }; + + return this.Ok(response); + } + + /// + /// Gets a list of online players + /// + /// An instance of PlayerListResponse + [HttpGet("players")] + [ProducesResponseType(typeof(PlayerListResponse), StatusCodes.Status200OK)] + public async Task GetPlayerList() + { + List players = await this.database.LastContacts.Where(l => TimeHelper.Timestamp - l.Timestamp < 300) + .Select(l => new PlayerListObject + { + Username = l.User!.Username, + Game = l.GameVersion.ToString(), + Platform = l.Platform.ToString(), + }) + .ToListAsync(); + + PlayerListResponse response = new() + { + Players = players, + }; + + return this.Ok(response); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/Controllers/StatusController.cs b/ProjectLighthouse.Servers.API/Controllers/StatusController.cs index ce883dba..fbec257b 100644 --- a/ProjectLighthouse.Servers.API/Controllers/StatusController.cs +++ b/ProjectLighthouse.Servers.API/Controllers/StatusController.cs @@ -1,9 +1,9 @@ -using Microsoft.AspNetCore.Mvc; - -namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; - -public class StatusController : ApiEndpointController -{ - [AcceptVerbs("GET", "HEAD", Route = "status")] - public IActionResult GetStatus() => this.Ok(); +using Microsoft.AspNetCore.Mvc; + +namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; + +public class StatusController : ApiEndpointController +{ + [AcceptVerbs("GET", "HEAD", Route = "status")] + public IActionResult GetStatus() => this.Ok(); } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/Controllers/UserEndpoints.cs b/ProjectLighthouse.Servers.API/Controllers/UserEndpoints.cs index 18313a1f..63b6dfa3 100644 --- a/ProjectLighthouse.Servers.API/Controllers/UserEndpoints.cs +++ b/ProjectLighthouse.Servers.API/Controllers/UserEndpoints.cs @@ -1,122 +1,122 @@ -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Extensions; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Servers.API.Responses; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; - -namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; - -/// -/// A collection of endpoints relating to users. -/// -public class UserEndpoints : ApiEndpointController -{ - private readonly DatabaseContext database; - - public UserEndpoints(DatabaseContext database) - { - this.database = database; - } - - /// - /// Gets a user and their information from the database. - /// - /// The ID of the user - /// The user - /// The user, if successful. - /// The user could not be found. - [HttpGet("user/{id:int}")] - [ProducesResponseType(typeof(ApiUser), StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task GetUser(int id) - { - UserEntity? user = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id); - if (user == null) return this.NotFound(); - - return this.Ok(ApiUser.CreateFromEntity(user)); - } - - [HttpGet("username/{username}")] - [ProducesResponseType(typeof(ApiUser), StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task GetUser(string username) - { - UserEntity? user = await this.database.Users.FirstOrDefaultAsync(u => u.Username == username); - if (user == null) return this.NotFound(); - - return this.Ok(ApiUser.CreateFromEntity(user)); - } - - /// - /// Searches for the user based on the query - /// - /// The search query - /// A list of users - /// The list of users, if any were found - /// No users matched the query - [HttpGet("search/user")] - [ProducesResponseType(typeof(ApiUser), StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task SearchUsers(string query) - { - List users = (await this.database.Users - .Where(u => u.PermissionLevel != PermissionLevel.Banned && u.Username.Contains(query)) - .Where(u => u.ProfileVisibility == PrivacyType.All) - .OrderByDescending(b => b.UserId) - .Take(20) - .ToListAsync()).ToSerializableList(ApiUser.CreateFromEntity); - if (!users.Any()) return this.NotFound(); - - return this.Ok(users); - } - - /// - /// Gets a user and their information from the database. - /// - /// The ID of the user - /// The user's status - /// The user's status, if successful. - /// The user could not be found. - [HttpGet("user/{id:int}/status")] - [ProducesResponseType(typeof(ApiUser), StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - public IActionResult GetUserStatus(int id) - { - UserStatus userStatus = new(this.database, id); - - return this.Ok(userStatus); - } - - [HttpPost("user/inviteToken")] - [HttpPost("user/inviteToken/{username}")] - public async Task CreateUserInviteToken([FromRoute] string? username) - { - if (!Configuration.ServerConfiguration.Instance.Authentication.RegistrationEnabled) - return this.NotFound(); - - ApiKeyEntity? apiKey = this.database.ApiKeyFromWebRequest(this.Request); - if (apiKey == null) return this.StatusCode(403); - - if (!string.IsNullOrWhiteSpace(username)) - { - bool userExists = await this.database.Users.AnyAsync(u => u.Username == username); - if (userExists) return this.BadRequest(); - } - - RegistrationTokenEntity token = new() - { - Created = DateTime.UtcNow, - Token = CryptoHelper.GenerateAuthToken(), - Username = username, - }; - - this.database.RegistrationTokens.Add(token); - await this.database.SaveChangesAsync(); - - return this.Ok(token.Token); - } +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Extensions; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Servers.API.Responses; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; + +/// +/// A collection of endpoints relating to users. +/// +public class UserEndpoints : ApiEndpointController +{ + private readonly DatabaseContext database; + + public UserEndpoints(DatabaseContext database) + { + this.database = database; + } + + /// + /// Gets a user and their information from the database. + /// + /// The ID of the user + /// The user + /// The user, if successful. + /// The user could not be found. + [HttpGet("user/{id:int}")] + [ProducesResponseType(typeof(ApiUser), StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status404NotFound)] + public async Task GetUser(int id) + { + UserEntity? user = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id); + if (user == null) return this.NotFound(); + + return this.Ok(ApiUser.CreateFromEntity(user)); + } + + [HttpGet("username/{username}")] + [ProducesResponseType(typeof(ApiUser), StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status404NotFound)] + public async Task GetUser(string username) + { + UserEntity? user = await this.database.Users.FirstOrDefaultAsync(u => u.Username == username); + if (user == null) return this.NotFound(); + + return this.Ok(ApiUser.CreateFromEntity(user)); + } + + /// + /// Searches for the user based on the query + /// + /// The search query + /// A list of users + /// The list of users, if any were found + /// No users matched the query + [HttpGet("search/user")] + [ProducesResponseType(typeof(ApiUser), StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status404NotFound)] + public async Task SearchUsers(string query) + { + List users = (await this.database.Users + .Where(u => u.PermissionLevel != PermissionLevel.Banned && u.Username.Contains(query)) + .Where(u => u.ProfileVisibility == PrivacyType.All) + .OrderByDescending(b => b.UserId) + .Take(20) + .ToListAsync()).ToSerializableList(ApiUser.CreateFromEntity); + if (!users.Any()) return this.NotFound(); + + return this.Ok(users); + } + + /// + /// Gets a user and their information from the database. + /// + /// The ID of the user + /// The user's status + /// The user's status, if successful. + /// The user could not be found. + [HttpGet("user/{id:int}/status")] + [ProducesResponseType(typeof(ApiUser), StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status404NotFound)] + public IActionResult GetUserStatus(int id) + { + UserStatus userStatus = new(this.database, id); + + return this.Ok(userStatus); + } + + [HttpPost("user/inviteToken")] + [HttpPost("user/inviteToken/{username}")] + public async Task CreateUserInviteToken([FromRoute] string? username) + { + if (!Configuration.ServerConfiguration.Instance.Authentication.RegistrationEnabled) + return this.NotFound(); + + ApiKeyEntity? apiKey = this.database.ApiKeyFromWebRequest(this.Request); + if (apiKey == null) return this.StatusCode(403); + + if (!string.IsNullOrWhiteSpace(username)) + { + bool userExists = await this.database.Users.AnyAsync(u => u.Username == username); + if (userExists) return this.BadRequest(); + } + + RegistrationTokenEntity token = new() + { + Created = DateTime.UtcNow, + Token = CryptoHelper.GenerateAuthToken(), + Username = username, + }; + + this.database.RegistrationTokens.Add(token); + await this.database.SaveChangesAsync(); + + return this.Ok(token.Token); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/appsettings.Development.json b/ProjectLighthouse.Servers.API/appsettings.Development.json index 0c208ae9..ff66ba6b 100644 --- a/ProjectLighthouse.Servers.API/appsettings.Development.json +++ b/ProjectLighthouse.Servers.API/appsettings.Development.json @@ -1,8 +1,8 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - } -} +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/ProjectLighthouse.Servers.API/appsettings.json b/ProjectLighthouse.Servers.API/appsettings.json index 10f68b8c..4d566948 100644 --- a/ProjectLighthouse.Servers.API/appsettings.json +++ b/ProjectLighthouse.Servers.API/appsettings.json @@ -1,9 +1,9 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - }, - "AllowedHosts": "*" -} +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs index 7e3baeb9..200a57c6 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs @@ -1,200 +1,200 @@ -#nullable enable -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Extensions; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using LBPUnion.ProjectLighthouse.Types.Filter; -using LBPUnion.ProjectLighthouse.Types.Levels; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; - -namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; - -[ApiController] -[Authorize] -[Route("LITTLEBIGPLANETPS3_XML/")] -[Produces("text/xml")] -public class CommentController : ControllerBase -{ - private readonly DatabaseContext database; - public CommentController(DatabaseContext database) - { - this.database = database; - } - - [HttpPost("rateUserComment/{username}")] - [HttpPost("rateComment/{slotType}/{slotId:int}")] - public async Task RateComment([FromQuery] int commentId, [FromQuery] int rating, string? username, string? slotType, int slotId) - { - GameTokenEntity token = this.GetToken(); - - // Return bad request if both are true or both are false - if ((slotId == 0 || SlotHelper.IsTypeInvalid(slotType)) == (username == null)) return this.BadRequest(); - - bool success = await this.database.RateComment(token.UserId, commentId, rating); - if (!success) return this.BadRequest(); - - return this.Ok(); - } - - [HttpGet("comments/{slotType}/{slotId:int}")] - [HttpGet("userComments/{username}")] - public async Task GetComments(string? username, string? slotType, int slotId) - { - GameTokenEntity token = this.GetToken(); - - UserEntity? user = await this.database.UserFromGameToken(token); - if (user == null) return this.Unauthorized(); - - if ((slotId == 0 || SlotHelper.IsTypeInvalid(slotType)) == (username == null)) return this.BadRequest(); - - int originalSlotId = slotId; - - if (slotType == "developer") slotId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); - - int targetId; - CommentType type = username == null ? CommentType.Level : CommentType.Profile; - - PaginationData pageData = this.Request.GetPaginationData(); - - IQueryable baseQuery = this.database.Comments.Where(c => c.Type == type); - - if (type == CommentType.Level) - { - targetId = await this.database.Slots.Where(s => s.SlotId == slotId) - .Where(s => s.CommentsEnabled && !s.Hidden) - .Select(s => s.SlotId) - .FirstOrDefaultAsync(); - - baseQuery = baseQuery.Where(c => c.TargetSlotId == targetId); - } - else - { - targetId = await this.database.Users.Where(u => u.Username == username) - .Where(u => u.CommentsEnabled) - .Select(u => u.UserId) - .FirstOrDefaultAsync(); - - baseQuery = baseQuery.Where(c => c.TargetUserId == targetId); - } - - if (targetId == 0) return this.NotFound(); - - List blockedUsers = await ( - from blockedProfile in this.database.BlockedProfiles - where blockedProfile.UserId == token.UserId - select blockedProfile.BlockedUserId).ToListAsync(); - - List comments = (await baseQuery.OrderByDescending(c => c.Timestamp) - .Where(c => !blockedUsers.Contains(c.PosterUserId)) - .Include(c => c.Poster) - .Where(c => c.Poster.PermissionLevel != PermissionLevel.Banned) - .ApplyPagination(pageData) - .ToListAsync()).ToSerializableList(c => GameComment.CreateFromEntity(c, token.UserId)); - - if (type == CommentType.Level && slotType == "developer" && user.IsModerator && pageData.PageStart == 1) - { - comments.Insert(0, new GameComment - { - CommentId = 0, - Timestamp = 0, - AuthorUsername = "LH", - Message = $"Slot ID: {targetId}, Story level ID: {originalSlotId}", - }); - } - - return this.Ok(new CommentListResponse(comments)); - } - - [HttpPost("postUserComment/{username}")] - [HttpPost("postComment/{slotType}/{slotId:int}")] - public async Task PostComment(string? username, string? slotType, int slotId) - { - GameTokenEntity token = this.GetToken(); - - // Deny request if in read-only mode - if (ServerConfiguration.Instance.UserGeneratedContentLimits.ReadOnlyMode) return this.BadRequest(); - - GameComment? comment = await this.DeserializeBody(); - if (comment?.Message == null) return this.BadRequest(); - - if ((slotId == 0 || SlotHelper.IsTypeInvalid(slotType)) == (username == null)) return this.BadRequest(); - - if (slotType == "developer") slotId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); - - CommentType type = username == null ? CommentType.Level : CommentType.Profile; - - int targetId; - if (type == CommentType.Level) - { - targetId = await this.database.Slots.Where(s => s.SlotId == slotId) - .Where(s => s.CommentsEnabled && !s.Hidden) - .Select(s => s.SlotId) - .FirstOrDefaultAsync(); - } - else - { - targetId = await this.database.UserIdFromUsername(username!); - } - - string filteredText = CensorHelper.FilterMessage(comment.Message, FilterLocation.ChatMessage, username); - - bool success = await this.database.PostComment(token.UserId, targetId, type, filteredText); - if (success) return this.Ok(); - - return this.BadRequest(); - } - - [HttpPost("deleteUserComment/{username}")] - [HttpPost("deleteComment/{slotType}/{slotId:int}")] - public async Task DeleteComment([FromQuery] int commentId, string? username, string? slotType, int slotId) - { - GameTokenEntity token = this.GetToken(); - - // Deny request if in read-only mode - if (ServerConfiguration.Instance.UserGeneratedContentLimits.ReadOnlyMode) return this.BadRequest(); - - if ((slotId == 0 || SlotHelper.IsTypeInvalid(slotType)) == (username == null)) return this.BadRequest(); - - CommentEntity? comment = await this.database.Comments.FirstOrDefaultAsync(c => c.CommentId == commentId); - if (comment == null) return this.NotFound(); - - if (comment.Deleted) return this.Ok(); - - bool canDelete; - if (comment.Type == CommentType.Profile) - { - canDelete = comment.PosterUserId == token.UserId || comment.TargetUserId == token.UserId; - } - else - { - if (slotType == "developer") slotId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); - - if (slotId != comment.TargetSlotId) return this.BadRequest(); - - int slotCreator = await this.database.Slots.Where(s => s.SlotId == comment.TargetSlotId) - .Where(s => s.CommentsEnabled) - .Select(s => s.CreatorId) - .FirstOrDefaultAsync(); - - // Comments are disabled or the slot doesn't have a creator - if (slotCreator == 0) return this.BadRequest(); - - canDelete = comment.PosterUserId == token.UserId || slotCreator == token.UserId; - } - - if (!canDelete) return this.Forbid(); - - comment.Deleted = true; - comment.DeletedBy = await this.database.UsernameFromGameToken(token); - comment.DeletedType = "user"; - - await this.database.SaveChangesAsync(); - return this.Ok(); - } +#nullable enable +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Extensions; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Filter; +using LBPUnion.ProjectLighthouse.Types.Levels; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; + +[ApiController] +[Authorize] +[Route("LITTLEBIGPLANETPS3_XML/")] +[Produces("text/xml")] +public class CommentController : ControllerBase +{ + private readonly DatabaseContext database; + public CommentController(DatabaseContext database) + { + this.database = database; + } + + [HttpPost("rateUserComment/{username}")] + [HttpPost("rateComment/{slotType}/{slotId:int}")] + public async Task RateComment([FromQuery] int commentId, [FromQuery] int rating, string? username, string? slotType, int slotId) + { + GameTokenEntity token = this.GetToken(); + + // Return bad request if both are true or both are false + if ((slotId == 0 || SlotHelper.IsTypeInvalid(slotType)) == (username == null)) return this.BadRequest(); + + bool success = await this.database.RateComment(token.UserId, commentId, rating); + if (!success) return this.BadRequest(); + + return this.Ok(); + } + + [HttpGet("comments/{slotType}/{slotId:int}")] + [HttpGet("userComments/{username}")] + public async Task GetComments(string? username, string? slotType, int slotId) + { + GameTokenEntity token = this.GetToken(); + + UserEntity? user = await this.database.UserFromGameToken(token); + if (user == null) return this.Unauthorized(); + + if ((slotId == 0 || SlotHelper.IsTypeInvalid(slotType)) == (username == null)) return this.BadRequest(); + + int originalSlotId = slotId; + + if (slotType == "developer") slotId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); + + int targetId; + CommentType type = username == null ? CommentType.Level : CommentType.Profile; + + PaginationData pageData = this.Request.GetPaginationData(); + + IQueryable baseQuery = this.database.Comments.Where(c => c.Type == type); + + if (type == CommentType.Level) + { + targetId = await this.database.Slots.Where(s => s.SlotId == slotId) + .Where(s => s.CommentsEnabled && !s.Hidden) + .Select(s => s.SlotId) + .FirstOrDefaultAsync(); + + baseQuery = baseQuery.Where(c => c.TargetSlotId == targetId); + } + else + { + targetId = await this.database.Users.Where(u => u.Username == username) + .Where(u => u.CommentsEnabled) + .Select(u => u.UserId) + .FirstOrDefaultAsync(); + + baseQuery = baseQuery.Where(c => c.TargetUserId == targetId); + } + + if (targetId == 0) return this.NotFound(); + + List blockedUsers = await ( + from blockedProfile in this.database.BlockedProfiles + where blockedProfile.UserId == token.UserId + select blockedProfile.BlockedUserId).ToListAsync(); + + List comments = (await baseQuery.OrderByDescending(c => c.Timestamp) + .Where(c => !blockedUsers.Contains(c.PosterUserId)) + .Include(c => c.Poster) + .Where(c => c.Poster.PermissionLevel != PermissionLevel.Banned) + .ApplyPagination(pageData) + .ToListAsync()).ToSerializableList(c => GameComment.CreateFromEntity(c, token.UserId)); + + if (type == CommentType.Level && slotType == "developer" && user.IsModerator && pageData.PageStart == 1) + { + comments.Insert(0, new GameComment + { + CommentId = 0, + Timestamp = 0, + AuthorUsername = "LH", + Message = $"Slot ID: {targetId}, Story level ID: {originalSlotId}", + }); + } + + return this.Ok(new CommentListResponse(comments)); + } + + [HttpPost("postUserComment/{username}")] + [HttpPost("postComment/{slotType}/{slotId:int}")] + public async Task PostComment(string? username, string? slotType, int slotId) + { + GameTokenEntity token = this.GetToken(); + + // Deny request if in read-only mode + if (ServerConfiguration.Instance.UserGeneratedContentLimits.ReadOnlyMode) return this.BadRequest(); + + GameComment? comment = await this.DeserializeBody(); + if (comment?.Message == null) return this.BadRequest(); + + if ((slotId == 0 || SlotHelper.IsTypeInvalid(slotType)) == (username == null)) return this.BadRequest(); + + if (slotType == "developer") slotId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); + + CommentType type = username == null ? CommentType.Level : CommentType.Profile; + + int targetId; + if (type == CommentType.Level) + { + targetId = await this.database.Slots.Where(s => s.SlotId == slotId) + .Where(s => s.CommentsEnabled && !s.Hidden) + .Select(s => s.SlotId) + .FirstOrDefaultAsync(); + } + else + { + targetId = await this.database.UserIdFromUsername(username!); + } + + string filteredText = CensorHelper.FilterMessage(comment.Message, FilterLocation.ChatMessage, username); + + bool success = await this.database.PostComment(token.UserId, targetId, type, filteredText); + if (success) return this.Ok(); + + return this.BadRequest(); + } + + [HttpPost("deleteUserComment/{username}")] + [HttpPost("deleteComment/{slotType}/{slotId:int}")] + public async Task DeleteComment([FromQuery] int commentId, string? username, string? slotType, int slotId) + { + GameTokenEntity token = this.GetToken(); + + // Deny request if in read-only mode + if (ServerConfiguration.Instance.UserGeneratedContentLimits.ReadOnlyMode) return this.BadRequest(); + + if ((slotId == 0 || SlotHelper.IsTypeInvalid(slotType)) == (username == null)) return this.BadRequest(); + + CommentEntity? comment = await this.database.Comments.FirstOrDefaultAsync(c => c.CommentId == commentId); + if (comment == null) return this.NotFound(); + + if (comment.Deleted) return this.Ok(); + + bool canDelete; + if (comment.Type == CommentType.Profile) + { + canDelete = comment.PosterUserId == token.UserId || comment.TargetUserId == token.UserId; + } + else + { + if (slotType == "developer") slotId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); + + if (slotId != comment.TargetSlotId) return this.BadRequest(); + + int slotCreator = await this.database.Slots.Where(s => s.SlotId == comment.TargetSlotId) + .Where(s => s.CommentsEnabled) + .Select(s => s.CreatorId) + .FirstOrDefaultAsync(); + + // Comments are disabled or the slot doesn't have a creator + if (slotCreator == 0) return this.BadRequest(); + + canDelete = comment.PosterUserId == token.UserId || slotCreator == token.UserId; + } + + if (!canDelete) return this.Forbid(); + + comment.Deleted = true; + comment.DeletedBy = await this.database.UsernameFromGameToken(token); + comment.DeletedType = "user"; + + await this.database.SaveChangesAsync(); + return this.Ok(); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/DeveloperController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/DeveloperController.cs index 503356d6..dbb1738b 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/DeveloperController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/DeveloperController.cs @@ -1,15 +1,15 @@ -using LBPUnion.ProjectLighthouse.Types.Serialization; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; - -namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; - -[ApiController] -[Authorize] -[Route("LITTLEBIGPLANETPS3_XML/")] -[Produces("text/xml")] -public class DeveloperController : Controller -{ - [HttpGet("developer_videos")] - public IActionResult DeveloperVideos() => this.Ok(new GameDeveloperVideos()); +using LBPUnion.ProjectLighthouse.Types.Serialization; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; + +[ApiController] +[Authorize] +[Route("LITTLEBIGPLANETPS3_XML/")] +[Produces("text/xml")] +public class DeveloperController : Controller +{ + [HttpGet("developer_videos")] + public IActionResult DeveloperVideos() => this.Ok(new GameDeveloperVideos()); } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/FriendsController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/FriendsController.cs index 83e198d8..a571aeb3 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/FriendsController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/FriendsController.cs @@ -1,93 +1,93 @@ -#nullable enable -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Extensions; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Types.Users; -using LBPUnion.ProjectLighthouse.StorableLists.Stores; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; - -namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; - -[ApiController] -[Authorize] -[Route("LITTLEBIGPLANETPS3_XML/")] -[Produces("text/xml")] -public class FriendsController : ControllerBase -{ - private readonly DatabaseContext database; - - public FriendsController(DatabaseContext database) - { - this.database = database; - } - - [HttpPost("npdata")] - public async Task NPData() - { - GameTokenEntity token = this.GetToken(); - - NPData? npData = await this.DeserializeBody(); - if (npData == null) return this.BadRequest(); - - List friends = new(); - foreach (string friendName in npData.Friends ?? new List()) - { - UserEntity? friend = await this.database.Users.FirstOrDefaultAsync(u => u.Username == friendName); - if (friend == null) continue; - - friends.Add(friend); - } - - List blockedUsers = new(); - foreach (string blockedUserName in npData.BlockedUsers ?? new List()) - { - UserEntity? blockedUser = await this.database.Users.FirstOrDefaultAsync(u => u.Username == blockedUserName); - if (blockedUser == null) continue; - - blockedUsers.Add(blockedUser.UserId); - } - - UserFriendData friendStore = UserFriendStore.GetUserFriendData(token.UserId) ?? UserFriendStore.CreateUserFriendData(token.UserId); - - friendStore.FriendIds = friends.Select(u => u.UserId).ToList(); - friendStore.BlockedIds = blockedUsers; - - UserFriendStore.UpdateFriendData(friendStore); - - List minimalFriends = - friends.Select(u => new MinimalUserProfile - { - UserHandle = new NpHandle(u.Username, ""), - }).ToList(); - - return this.Ok(new FriendResponse(minimalFriends)); - } - - [HttpGet("myFriends")] - public async Task MyFriends() - { - GameTokenEntity token = this.GetToken(); - - UserFriendData? friendStore = UserFriendStore.GetUserFriendData(token.UserId); - - GenericUserResponse response = new("myFriends", new List()); - - if (friendStore == null) - return this.Ok(response); - - foreach (int friendId in friendStore.FriendIds) - { - UserEntity? friend = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == friendId); - if (friend == null) continue; - - response.Users.Add(GameUser.CreateFromEntity(friend, token.GameVersion)); - } - - return this.Ok(response); - } +#nullable enable +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Extensions; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Types.Users; +using LBPUnion.ProjectLighthouse.StorableLists.Stores; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; + +[ApiController] +[Authorize] +[Route("LITTLEBIGPLANETPS3_XML/")] +[Produces("text/xml")] +public class FriendsController : ControllerBase +{ + private readonly DatabaseContext database; + + public FriendsController(DatabaseContext database) + { + this.database = database; + } + + [HttpPost("npdata")] + public async Task NPData() + { + GameTokenEntity token = this.GetToken(); + + NPData? npData = await this.DeserializeBody(); + if (npData == null) return this.BadRequest(); + + List friends = new(); + foreach (string friendName in npData.Friends ?? new List()) + { + UserEntity? friend = await this.database.Users.FirstOrDefaultAsync(u => u.Username == friendName); + if (friend == null) continue; + + friends.Add(friend); + } + + List blockedUsers = new(); + foreach (string blockedUserName in npData.BlockedUsers ?? new List()) + { + UserEntity? blockedUser = await this.database.Users.FirstOrDefaultAsync(u => u.Username == blockedUserName); + if (blockedUser == null) continue; + + blockedUsers.Add(blockedUser.UserId); + } + + UserFriendData friendStore = UserFriendStore.GetUserFriendData(token.UserId) ?? UserFriendStore.CreateUserFriendData(token.UserId); + + friendStore.FriendIds = friends.Select(u => u.UserId).ToList(); + friendStore.BlockedIds = blockedUsers; + + UserFriendStore.UpdateFriendData(friendStore); + + List minimalFriends = + friends.Select(u => new MinimalUserProfile + { + UserHandle = new NpHandle(u.Username, ""), + }).ToList(); + + return this.Ok(new FriendResponse(minimalFriends)); + } + + [HttpGet("myFriends")] + public async Task MyFriends() + { + GameTokenEntity token = this.GetToken(); + + UserFriendData? friendStore = UserFriendStore.GetUserFriendData(token.UserId); + + GenericUserResponse response = new("myFriends", new List()); + + if (friendStore == null) + return this.Ok(response); + + foreach (int friendId in friendStore.FriendIds) + { + UserEntity? friend = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == friendId); + if (friend == null) continue; + + response.Users.Add(GameUser.CreateFromEntity(friend, token.GameVersion)); + } + + return this.Ok(response); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.GameServer/appsettings.Development.json b/ProjectLighthouse.Servers.GameServer/appsettings.Development.json index 0c208ae9..ff66ba6b 100644 --- a/ProjectLighthouse.Servers.GameServer/appsettings.Development.json +++ b/ProjectLighthouse.Servers.GameServer/appsettings.Development.json @@ -1,8 +1,8 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - } -} +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/ProjectLighthouse.Servers.GameServer/appsettings.json b/ProjectLighthouse.Servers.GameServer/appsettings.json index 10f68b8c..4d566948 100644 --- a/ProjectLighthouse.Servers.GameServer/appsettings.json +++ b/ProjectLighthouse.Servers.GameServer/appsettings.json @@ -1,9 +1,9 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - }, - "AllowedHosts": "*" -} +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/ProjectLighthouse.Tests.GameApiTests/AssemblyInfo.cs b/ProjectLighthouse.Tests.GameApiTests/AssemblyInfo.cs index 7db84979..83577565 100644 --- a/ProjectLighthouse.Tests.GameApiTests/AssemblyInfo.cs +++ b/ProjectLighthouse.Tests.GameApiTests/AssemblyInfo.cs @@ -1,3 +1,3 @@ -using Xunit; - +using Xunit; + [assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Integration/AuthenticationTests.cs b/ProjectLighthouse.Tests.GameApiTests/Integration/AuthenticationTests.cs index bc705cf9..a5f1c27a 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Integration/AuthenticationTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Integration/AuthenticationTests.cs @@ -1,84 +1,84 @@ -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Tests.Integration; -using LBPUnion.ProjectLighthouse.Types.Users; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Integration; - -[Trait("Category", "Integration")] -public class AuthenticationTests : LighthouseServerTest -{ - [Fact] - public async Task ShouldReturnErrorOnNoPostData() - { - await IntegrationHelper.GetIntegrationDatabase(); - - HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", null!); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task Login_ShouldReturnWithValidData() - { - await IntegrationHelper.GetIntegrationDatabase(); - - HttpResponseMessage response = await this.AuthenticateResponse(); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, response.StatusCode); - string responseContent = await response.Content.ReadAsStringAsync(); - Assert.Contains("MM_AUTH=", responseContent); - Assert.Contains(VersionHelper.EnvVer, responseContent); - } - - [Fact] - public async Task Login_CanSerializeBack() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - Assert.NotNull(loginResult); - Assert.NotNull(loginResult.AuthTicket); - Assert.NotNull(loginResult.ServerBrand); - - Assert.Contains("MM_AUTH=", loginResult.AuthTicket); - Assert.Equal(VersionHelper.EnvVer, loginResult.ServerBrand); - } - - [Fact] - public async Task Login_CanUseToken() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage response = await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/enterLevel/420", loginResult.AuthTicket); - await response.Content.ReadAsStringAsync(); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.NotFound; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task Login_ShouldReturnForbiddenWhenNotAuthenticated() - { - await IntegrationHelper.GetIntegrationDatabase(); - - HttpResponseMessage response = await this.Client.GetAsync("/LITTLEBIGPLANETPS3_XML/announce"); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.Forbidden; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Tests.Integration; +using LBPUnion.ProjectLighthouse.Types.Users; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Integration; + +[Trait("Category", "Integration")] +public class AuthenticationTests : LighthouseServerTest +{ + [Fact] + public async Task ShouldReturnErrorOnNoPostData() + { + await IntegrationHelper.GetIntegrationDatabase(); + + HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", null!); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task Login_ShouldReturnWithValidData() + { + await IntegrationHelper.GetIntegrationDatabase(); + + HttpResponseMessage response = await this.AuthenticateResponse(); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, response.StatusCode); + string responseContent = await response.Content.ReadAsStringAsync(); + Assert.Contains("MM_AUTH=", responseContent); + Assert.Contains(VersionHelper.EnvVer, responseContent); + } + + [Fact] + public async Task Login_CanSerializeBack() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + Assert.NotNull(loginResult); + Assert.NotNull(loginResult.AuthTicket); + Assert.NotNull(loginResult.ServerBrand); + + Assert.Contains("MM_AUTH=", loginResult.AuthTicket); + Assert.Equal(VersionHelper.EnvVer, loginResult.ServerBrand); + } + + [Fact] + public async Task Login_CanUseToken() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage response = await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/enterLevel/420", loginResult.AuthTicket); + await response.Content.ReadAsStringAsync(); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.NotFound; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task Login_ShouldReturnForbiddenWhenNotAuthenticated() + { + await IntegrationHelper.GetIntegrationDatabase(); + + HttpResponseMessage response = await this.Client.GetAsync("/LITTLEBIGPLANETPS3_XML/announce"); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.Forbidden; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Integration/DatabaseTests.cs b/ProjectLighthouse.Tests.GameApiTests/Integration/DatabaseTests.cs index fb87b618..a642f7fe 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Integration/DatabaseTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Integration/DatabaseTests.cs @@ -1,29 +1,29 @@ -using System; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Tests.Integration; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Integration; - -[Trait("Category", "Integration")] -public class DatabaseTests : LighthouseServerTest -{ - [Fact] - public async Task CanCreateUserTwice() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - - int rand = new Random().Next(); - - UserEntity userA = await database.CreateUser("unitTestUser" + rand, CryptoHelper.BCryptHash(CryptoHelper.GenerateAuthToken())); - UserEntity userB = await database.CreateUser("unitTestUser" + rand, CryptoHelper.BCryptHash(CryptoHelper.GenerateAuthToken())); - - Assert.NotNull(userA); - Assert.NotNull(userB); - } +using System; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Tests.Integration; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Integration; + +[Trait("Category", "Integration")] +public class DatabaseTests : LighthouseServerTest +{ + [Fact] + public async Task CanCreateUserTwice() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + + int rand = new Random().Next(); + + UserEntity userA = await database.CreateUser("unitTestUser" + rand, CryptoHelper.BCryptHash(CryptoHelper.GenerateAuthToken())); + UserEntity userB = await database.CreateUser("unitTestUser" + rand, CryptoHelper.BCryptHash(CryptoHelper.GenerateAuthToken())); + + Assert.NotNull(userA); + Assert.NotNull(userB); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Integration/LoginTests.cs b/ProjectLighthouse.Tests.GameApiTests/Integration/LoginTests.cs index 5dcc2db7..0f50790b 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Integration/LoginTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Integration/LoginTests.cs @@ -1,122 +1,122 @@ -using System; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Tests.Integration; -using LBPUnion.ProjectLighthouse.Tickets; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Users; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Integration; - -[Trait("Category", "Integration")] -public class LoginTests : LighthouseServerTest -{ - [Fact] - public async Task ShouldLoginWithGoodTicket() - { - await IntegrationHelper.GetIntegrationDatabase(); - - UserEntity user = await this.CreateRandomUser(); - byte[] ticketData = new TicketBuilder() - .SetUsername(user.Username) - .SetUserId((ulong)user.UserId) - .Build(); - HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task ShouldNotLoginWithExpiredTicket() - { - await IntegrationHelper.GetIntegrationDatabase(); - - UserEntity user = await this.CreateRandomUser(); - byte[] ticketData = new TicketBuilder() - .SetUsername(user.Username) - .SetUserId((ulong)user.UserId) - .setExpirationTime((ulong)TimeHelper.TimestampMillis - 1000 * 60) - .Build(); - HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task ShouldNotLoginWithBadTitleId() - { - await IntegrationHelper.GetIntegrationDatabase(); - - UserEntity user = await this.CreateRandomUser(); - byte[] ticketData = new TicketBuilder() - .SetUsername(user.Username) - .SetUserId((ulong)user.UserId) - .SetTitleId("UP9000-BLUS30079_00") - .Build(); - HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task ShouldNotLoginWithBadSignature() - { - await IntegrationHelper.GetIntegrationDatabase(); - - UserEntity user = await this.CreateRandomUser(); - byte[] ticketData = new TicketBuilder() - .SetUsername(user.Username) - .SetUserId((ulong)user.UserId) - .Build(); - // Create second ticket and replace the first tickets signature with the first. - byte[] ticketData2 = new TicketBuilder() - .SetUsername(user.Username) - .SetUserId((ulong)user.UserId) - .Build(); - - Array.Copy(ticketData2, ticketData2.Length - 0x38, ticketData, ticketData.Length - 0x38, 0x38); - - HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task ShouldNotLoginIfBanned() - { - DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - - UserEntity user = await this.CreateRandomUser(); - - user.PermissionLevel = PermissionLevel.Banned; - - database.Users.Update(user); - await database.SaveChangesAsync(); - - byte[] ticketData = new TicketBuilder() - .SetUsername(user.Username) - .SetUserId((ulong)user.UserId) - .Build(); - HttpResponseMessage response = - await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.Forbidden; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - -} +using System; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Tests.Integration; +using LBPUnion.ProjectLighthouse.Tickets; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Users; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Integration; + +[Trait("Category", "Integration")] +public class LoginTests : LighthouseServerTest +{ + [Fact] + public async Task ShouldLoginWithGoodTicket() + { + await IntegrationHelper.GetIntegrationDatabase(); + + UserEntity user = await this.CreateRandomUser(); + byte[] ticketData = new TicketBuilder() + .SetUsername(user.Username) + .SetUserId((ulong)user.UserId) + .Build(); + HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task ShouldNotLoginWithExpiredTicket() + { + await IntegrationHelper.GetIntegrationDatabase(); + + UserEntity user = await this.CreateRandomUser(); + byte[] ticketData = new TicketBuilder() + .SetUsername(user.Username) + .SetUserId((ulong)user.UserId) + .setExpirationTime((ulong)TimeHelper.TimestampMillis - 1000 * 60) + .Build(); + HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task ShouldNotLoginWithBadTitleId() + { + await IntegrationHelper.GetIntegrationDatabase(); + + UserEntity user = await this.CreateRandomUser(); + byte[] ticketData = new TicketBuilder() + .SetUsername(user.Username) + .SetUserId((ulong)user.UserId) + .SetTitleId("UP9000-BLUS30079_00") + .Build(); + HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task ShouldNotLoginWithBadSignature() + { + await IntegrationHelper.GetIntegrationDatabase(); + + UserEntity user = await this.CreateRandomUser(); + byte[] ticketData = new TicketBuilder() + .SetUsername(user.Username) + .SetUserId((ulong)user.UserId) + .Build(); + // Create second ticket and replace the first tickets signature with the first. + byte[] ticketData2 = new TicketBuilder() + .SetUsername(user.Username) + .SetUserId((ulong)user.UserId) + .Build(); + + Array.Copy(ticketData2, ticketData2.Length - 0x38, ticketData, ticketData.Length - 0x38, 0x38); + + HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task ShouldNotLoginIfBanned() + { + DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + + UserEntity user = await this.CreateRandomUser(); + + user.PermissionLevel = PermissionLevel.Banned; + + database.Users.Update(user); + await database.SaveChangesAsync(); + + byte[] ticketData = new TicketBuilder() + .SetUsername(user.Username) + .SetUserId((ulong)user.UserId) + .Build(); + HttpResponseMessage response = + await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new ByteArrayContent(ticketData)); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.Forbidden; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + +} diff --git a/ProjectLighthouse.Tests.GameApiTests/Integration/MatchTests.cs b/ProjectLighthouse.Tests.GameApiTests/Integration/MatchTests.cs index 2044d41b..dadaa1f2 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Integration/MatchTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Integration/MatchTests.cs @@ -1,69 +1,69 @@ -using System; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Tests.Integration; -using LBPUnion.ProjectLighthouse.Types.Users; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Integration; - -[Trait("Category", "Integration")] -public class MatchTests : LighthouseServerTest -{ - [Fact] - public async Task Match_ShouldRejectEmptyData() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage result = await this.AuthenticatedUploadDataRequest("/LITTLEBIGPLANETPS3_XML/match", Array.Empty(), loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; - - Assert.Equal(expectedStatusCode, result.StatusCode); - } - - [Fact] - public async Task Match_ShouldReturnOk_WithGoodRequest() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage result = await this.AuthenticatedUploadDataRequest - ("/LITTLEBIGPLANETPS3_XML/match", "[UpdateMyPlayerData,[\"Player\":\"1984\"]]"u8.ToArray(), loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, result.StatusCode); - } - - [Fact] - public async Task Match_ShouldIncrementPlayerCount() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - await using DatabaseContext database = DatabaseContext.CreateNewInstance(); - - int oldPlayerCount = await StatisticsHelper.RecentMatches(database); - - HttpResponseMessage result = await this.AuthenticatedUploadDataRequest - ("/LITTLEBIGPLANETPS3_XML/match", "[UpdateMyPlayerData,[\"Player\":\"1984\"]]"u8.ToArray(), loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, result.StatusCode); - - int playerCount = await StatisticsHelper.RecentMatches(database); - - Assert.Equal(oldPlayerCount + 1, playerCount); - } +using System; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Tests.Integration; +using LBPUnion.ProjectLighthouse.Types.Users; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Integration; + +[Trait("Category", "Integration")] +public class MatchTests : LighthouseServerTest +{ + [Fact] + public async Task Match_ShouldRejectEmptyData() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage result = await this.AuthenticatedUploadDataRequest("/LITTLEBIGPLANETPS3_XML/match", Array.Empty(), loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest; + + Assert.Equal(expectedStatusCode, result.StatusCode); + } + + [Fact] + public async Task Match_ShouldReturnOk_WithGoodRequest() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage result = await this.AuthenticatedUploadDataRequest + ("/LITTLEBIGPLANETPS3_XML/match", "[UpdateMyPlayerData,[\"Player\":\"1984\"]]"u8.ToArray(), loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, result.StatusCode); + } + + [Fact] + public async Task Match_ShouldIncrementPlayerCount() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + await using DatabaseContext database = DatabaseContext.CreateNewInstance(); + + int oldPlayerCount = await StatisticsHelper.RecentMatches(database); + + HttpResponseMessage result = await this.AuthenticatedUploadDataRequest + ("/LITTLEBIGPLANETPS3_XML/match", "[UpdateMyPlayerData,[\"Player\":\"1984\"]]"u8.ToArray(), loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, result.StatusCode); + + int playerCount = await StatisticsHelper.RecentMatches(database); + + Assert.Equal(oldPlayerCount + 1, playerCount); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Integration/SlotFilterTests.cs b/ProjectLighthouse.Tests.GameApiTests/Integration/SlotFilterTests.cs index eacce233..2a15b9b5 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Integration/SlotFilterTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Integration/SlotFilterTests.cs @@ -1,234 +1,234 @@ -using System.Collections.Generic; -using System.IO; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using System.Xml.Serialization; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Serialization; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Tests.Integration; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using LBPUnion.ProjectLighthouse.Types.Users; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Integration; - -[Trait("Category", "Integration")] -public class SlotFilterTests : LighthouseServerTest -{ - [Fact] - public async Task GetUserSlot_ShouldReturnOk_WhenSlotExists() - { - DatabaseContext db = await IntegrationHelper.GetIntegrationDatabase(); - - db.Users.Add(new UserEntity - { - UserId = 23, - }); - - db.Slots.Add(new SlotEntity - { - SlotId = 23, - CreatorId = 23, - }); - await db.SaveChangesAsync(); - - LoginResult loginResult = await this.Authenticate(); - HttpResponseMessage response = await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/s/user/23", loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, response.StatusCode); - string body = await response.Content.ReadAsStringAsync(); - - Assert.Contains("23", body); - } - - [Fact] - public async Task NewestSlots_ShouldReturnSlotsOrderedByTimestampDescending() - { - DatabaseContext db = await IntegrationHelper.GetIntegrationDatabase(); - - for (int i = 1; i <= 100; i++) - { - db.Users.Add(new UserEntity - { - UserId = i, - Username = $"user{i}", - }); - db.Slots.Add(new SlotEntity - { - SlotId = i, - CreatorId = i, - FirstUploaded = i, - }); - } - await db.SaveChangesAsync(); - - LoginResult loginResult = await this.Authenticate(); - HttpResponseMessage response = - await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/slots?pageStart=0&pageSize=10", loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, response.StatusCode); - string body = await response.Content.ReadAsStringAsync(); - - object? deserialized = LighthouseSerializer - .GetSerializer(typeof(GameUserSlotList), new XmlRootAttribute("slots")) - .Deserialize(new StringReader(body)); - Assert.NotNull(deserialized); - Assert.IsType(deserialized); - - GameUserSlotList slotResponse = (GameUserSlotList)deserialized; - - Assert.Equal(100, slotResponse.Total); - Assert.Equal(10, slotResponse.Slots.Count); - - Assert.Equal(91, slotResponse.Slots[9].FirstUploaded); - } - - [Fact] - public async Task NewestSlots_ShouldReturnSlotsWithAuthorLabel() - { - DatabaseContext db = await IntegrationHelper.GetIntegrationDatabase(); - - db.Users.Add(new UserEntity() - { - UserId = 1, - }); - - db.Slots.Add(new SlotEntity - { - CreatorId = 1, - SlotId = 1, - AuthorLabels = "LABEL_SinglePlayer,LABEL_Quick,LABEL_Funny", - FirstUploaded = 1, - }); - db.Slots.Add(new SlotEntity - { - CreatorId = 1, - SlotId = 2, - AuthorLabels = "LABEL_SinglePlayer", - FirstUploaded = 2, - }); - db.Slots.Add(new SlotEntity - { - CreatorId = 1, - SlotId = 3, - AuthorLabels = "LABEL_Quick", - FirstUploaded = 3, - }); - db.Slots.Add(new SlotEntity - { - CreatorId = 1, - SlotId = 4, - AuthorLabels = "LABEL_Funny", - FirstUploaded = 4, - }); - - await db.SaveChangesAsync(); - - LoginResult loginResult = await this.Authenticate(); - HttpResponseMessage response = - await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/slots?pageStart=0&pageSize=10&labelFilter0=LABEL_Funny", - loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, response.StatusCode); - string body = await response.Content.ReadAsStringAsync(); - - object? deserialized = LighthouseSerializer - .GetSerializer(typeof(GameUserSlotList), new XmlRootAttribute("slots")) - .Deserialize(new StringReader(body)); - Assert.NotNull(deserialized); - Assert.IsType(deserialized); - - GameUserSlotList slotResponse = (GameUserSlotList)deserialized; - - const int expectedCount = 2; - - Assert.Equal(expectedCount, slotResponse.Slots.Count); - Assert.True(slotResponse.Slots.TrueForAll(s => s.AuthorLabels.Contains("LABEL_Funny"))); - } - -[Fact] - public async Task NewestSlots_ShouldReturnEmpty_WhenAuthorLabelsDontMatch() - { - DatabaseContext db = await IntegrationHelper.GetIntegrationDatabase(); - - db.Users.Add(new UserEntity - { - UserId = 1, - }); - - db.Slots.Add(new SlotEntity - { - CreatorId = 1, - SlotId = 1, - AuthorLabels = "LABEL_SinglePlayer,LABEL_Quick,LABEL_Funny", - FirstUploaded = 1, - }); - db.Slots.Add(new SlotEntity - { - CreatorId = 1, - SlotId = 2, - AuthorLabels = "LABEL_SinglePlayer", - FirstUploaded = 2, - }); - db.Slots.Add(new SlotEntity - { - CreatorId = 1, - SlotId = 3, - AuthorLabels = "LABEL_Quick", - FirstUploaded = 3, - }); - db.Slots.Add(new SlotEntity - { - CreatorId = 1, - SlotId = 4, - AuthorLabels = "LABEL_Funny", - FirstUploaded = 4, - }); - - await db.SaveChangesAsync(); - - LoginResult loginResult = await this.Authenticate(); - HttpResponseMessage response = - await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/slots?pageStart=0&pageSize=10&labelFilter0=LABEL_Funny&labelFilter1=LABEL_Quick&labelFilter2=LABEL_Gallery", - loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, response.StatusCode); - string body = await response.Content.ReadAsStringAsync(); - - object? deserialized = LighthouseSerializer - .GetSerializer(typeof(GameUserSlotList), new XmlRootAttribute("slots")) - .Deserialize(new StringReader(body)); - Assert.NotNull(deserialized); - Assert.IsType(deserialized); - - GameUserSlotList slotResponse = (GameUserSlotList)deserialized; - - Assert.Empty(slotResponse.Slots); - } - - [XmlRoot("slots")] - public class GameUserSlotList - { - [XmlElement("slot")] - public List Slots { get; set; } = new(); - - [XmlAttribute("total")] - public int Total { get; set; } - - [XmlAttribute("hint_start")] - public int HintStart { get; set; } - } +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Serialization; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Tests.Integration; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using LBPUnion.ProjectLighthouse.Types.Users; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Integration; + +[Trait("Category", "Integration")] +public class SlotFilterTests : LighthouseServerTest +{ + [Fact] + public async Task GetUserSlot_ShouldReturnOk_WhenSlotExists() + { + DatabaseContext db = await IntegrationHelper.GetIntegrationDatabase(); + + db.Users.Add(new UserEntity + { + UserId = 23, + }); + + db.Slots.Add(new SlotEntity + { + SlotId = 23, + CreatorId = 23, + }); + await db.SaveChangesAsync(); + + LoginResult loginResult = await this.Authenticate(); + HttpResponseMessage response = await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/s/user/23", loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, response.StatusCode); + string body = await response.Content.ReadAsStringAsync(); + + Assert.Contains("23", body); + } + + [Fact] + public async Task NewestSlots_ShouldReturnSlotsOrderedByTimestampDescending() + { + DatabaseContext db = await IntegrationHelper.GetIntegrationDatabase(); + + for (int i = 1; i <= 100; i++) + { + db.Users.Add(new UserEntity + { + UserId = i, + Username = $"user{i}", + }); + db.Slots.Add(new SlotEntity + { + SlotId = i, + CreatorId = i, + FirstUploaded = i, + }); + } + await db.SaveChangesAsync(); + + LoginResult loginResult = await this.Authenticate(); + HttpResponseMessage response = + await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/slots?pageStart=0&pageSize=10", loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, response.StatusCode); + string body = await response.Content.ReadAsStringAsync(); + + object? deserialized = LighthouseSerializer + .GetSerializer(typeof(GameUserSlotList), new XmlRootAttribute("slots")) + .Deserialize(new StringReader(body)); + Assert.NotNull(deserialized); + Assert.IsType(deserialized); + + GameUserSlotList slotResponse = (GameUserSlotList)deserialized; + + Assert.Equal(100, slotResponse.Total); + Assert.Equal(10, slotResponse.Slots.Count); + + Assert.Equal(91, slotResponse.Slots[9].FirstUploaded); + } + + [Fact] + public async Task NewestSlots_ShouldReturnSlotsWithAuthorLabel() + { + DatabaseContext db = await IntegrationHelper.GetIntegrationDatabase(); + + db.Users.Add(new UserEntity() + { + UserId = 1, + }); + + db.Slots.Add(new SlotEntity + { + CreatorId = 1, + SlotId = 1, + AuthorLabels = "LABEL_SinglePlayer,LABEL_Quick,LABEL_Funny", + FirstUploaded = 1, + }); + db.Slots.Add(new SlotEntity + { + CreatorId = 1, + SlotId = 2, + AuthorLabels = "LABEL_SinglePlayer", + FirstUploaded = 2, + }); + db.Slots.Add(new SlotEntity + { + CreatorId = 1, + SlotId = 3, + AuthorLabels = "LABEL_Quick", + FirstUploaded = 3, + }); + db.Slots.Add(new SlotEntity + { + CreatorId = 1, + SlotId = 4, + AuthorLabels = "LABEL_Funny", + FirstUploaded = 4, + }); + + await db.SaveChangesAsync(); + + LoginResult loginResult = await this.Authenticate(); + HttpResponseMessage response = + await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/slots?pageStart=0&pageSize=10&labelFilter0=LABEL_Funny", + loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, response.StatusCode); + string body = await response.Content.ReadAsStringAsync(); + + object? deserialized = LighthouseSerializer + .GetSerializer(typeof(GameUserSlotList), new XmlRootAttribute("slots")) + .Deserialize(new StringReader(body)); + Assert.NotNull(deserialized); + Assert.IsType(deserialized); + + GameUserSlotList slotResponse = (GameUserSlotList)deserialized; + + const int expectedCount = 2; + + Assert.Equal(expectedCount, slotResponse.Slots.Count); + Assert.True(slotResponse.Slots.TrueForAll(s => s.AuthorLabels.Contains("LABEL_Funny"))); + } + +[Fact] + public async Task NewestSlots_ShouldReturnEmpty_WhenAuthorLabelsDontMatch() + { + DatabaseContext db = await IntegrationHelper.GetIntegrationDatabase(); + + db.Users.Add(new UserEntity + { + UserId = 1, + }); + + db.Slots.Add(new SlotEntity + { + CreatorId = 1, + SlotId = 1, + AuthorLabels = "LABEL_SinglePlayer,LABEL_Quick,LABEL_Funny", + FirstUploaded = 1, + }); + db.Slots.Add(new SlotEntity + { + CreatorId = 1, + SlotId = 2, + AuthorLabels = "LABEL_SinglePlayer", + FirstUploaded = 2, + }); + db.Slots.Add(new SlotEntity + { + CreatorId = 1, + SlotId = 3, + AuthorLabels = "LABEL_Quick", + FirstUploaded = 3, + }); + db.Slots.Add(new SlotEntity + { + CreatorId = 1, + SlotId = 4, + AuthorLabels = "LABEL_Funny", + FirstUploaded = 4, + }); + + await db.SaveChangesAsync(); + + LoginResult loginResult = await this.Authenticate(); + HttpResponseMessage response = + await this.AuthenticatedRequest("/LITTLEBIGPLANETPS3_XML/slots?pageStart=0&pageSize=10&labelFilter0=LABEL_Funny&labelFilter1=LABEL_Quick&labelFilter2=LABEL_Gallery", + loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, response.StatusCode); + string body = await response.Content.ReadAsStringAsync(); + + object? deserialized = LighthouseSerializer + .GetSerializer(typeof(GameUserSlotList), new XmlRootAttribute("slots")) + .Deserialize(new StringReader(body)); + Assert.NotNull(deserialized); + Assert.IsType(deserialized); + + GameUserSlotList slotResponse = (GameUserSlotList)deserialized; + + Assert.Empty(slotResponse.Slots); + } + + [XmlRoot("slots")] + public class GameUserSlotList + { + [XmlElement("slot")] + public List Slots { get; set; } = new(); + + [XmlAttribute("total")] + public int Total { get; set; } + + [XmlAttribute("hint_start")] + public int HintStart { get; set; } + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Integration/SlotTests.cs b/ProjectLighthouse.Tests.GameApiTests/Integration/SlotTests.cs index 56e506bc..5265648e 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Integration/SlotTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Integration/SlotTests.cs @@ -1,67 +1,67 @@ -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Tests.Integration; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Users; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Integration; - -[Trait("Category", "Integration")] -public class SlotTests : LighthouseServerTest -{ - [Fact] - public async Task ShouldOnlyShowUsersLevels() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - - UserEntity userA = await this.CreateRandomUser(); - UserEntity userB = await this.CreateRandomUser(); - - SlotEntity slotA = new() - { - CreatorId = userA.UserId, - Name = "slotA", - ResourceCollection = "", - }; - - SlotEntity slotB = new() - { - CreatorId = userB.UserId, - Name = "slotB", - ResourceCollection = "", - }; - - database.Slots.Add(slotA); - database.Slots.Add(slotB); - - await database.SaveChangesAsync(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage respMessageA = await this.AuthenticatedRequest - ($"/LITTLEBIGPLANETPS3_XML/slots/by?u={userA.Username}&pageStart=1&pageSize=1", loginResult.AuthTicket); - HttpResponseMessage respMessageB = await this.AuthenticatedRequest - ($"/LITTLEBIGPLANETPS3_XML/slots/by?u={userB.Username}&pageStart=1&pageSize=1", loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, respMessageA.StatusCode); - Assert.Equal(expectedStatusCode, respMessageB.StatusCode); - - string respA = await respMessageA.Content.ReadAsStringAsync(); - string respB = await respMessageB.Content.ReadAsStringAsync(); - - Assert.NotNull(respA); - Assert.NotNull(respB); - - Assert.NotEqual(respA, respB); - Assert.DoesNotContain(respA, "slotB"); - Assert.DoesNotContain(respB, "slotA"); - } +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Tests.Integration; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Users; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Integration; + +[Trait("Category", "Integration")] +public class SlotTests : LighthouseServerTest +{ + [Fact] + public async Task ShouldOnlyShowUsersLevels() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + + UserEntity userA = await this.CreateRandomUser(); + UserEntity userB = await this.CreateRandomUser(); + + SlotEntity slotA = new() + { + CreatorId = userA.UserId, + Name = "slotA", + ResourceCollection = "", + }; + + SlotEntity slotB = new() + { + CreatorId = userB.UserId, + Name = "slotB", + ResourceCollection = "", + }; + + database.Slots.Add(slotA); + database.Slots.Add(slotB); + + await database.SaveChangesAsync(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage respMessageA = await this.AuthenticatedRequest + ($"/LITTLEBIGPLANETPS3_XML/slots/by?u={userA.Username}&pageStart=1&pageSize=1", loginResult.AuthTicket); + HttpResponseMessage respMessageB = await this.AuthenticatedRequest + ($"/LITTLEBIGPLANETPS3_XML/slots/by?u={userB.Username}&pageStart=1&pageSize=1", loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, respMessageA.StatusCode); + Assert.Equal(expectedStatusCode, respMessageB.StatusCode); + + string respA = await respMessageA.Content.ReadAsStringAsync(); + string respB = await respMessageB.Content.ReadAsStringAsync(); + + Assert.NotNull(respA); + Assert.NotNull(respB); + + Assert.NotEqual(respA, respB); + Assert.DoesNotContain(respA, "slotB"); + Assert.DoesNotContain(respB, "slotA"); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Integration/UploadTests.cs b/ProjectLighthouse.Tests.GameApiTests/Integration/UploadTests.cs index 9e3c90c1..8694b463 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Integration/UploadTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Integration/UploadTests.cs @@ -1,92 +1,92 @@ -using System; -using System.IO; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Tests.Integration; -using LBPUnion.ProjectLighthouse.Types.Users; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Integration; - -[Trait("Category", "Integration")] -public class UploadTests : LighthouseServerTest -{ - public UploadTests() - { - string assetsDirectory = Path.Combine(Environment.CurrentDirectory, "r"); - if (Directory.Exists(assetsDirectory)) Directory.Delete(assetsDirectory, true); - } - - [Fact] - public async Task ShouldNotAcceptScript() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestScript.ff", loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.Conflict; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task ShouldNotAcceptFarc() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestFarc.farc", loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.Conflict; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task ShouldNotAcceptGarbage() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestGarbage.bin", loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.Conflict; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task ShouldAcceptTexture() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestTexture.tex", loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } - - [Fact] - public async Task ShouldAcceptLevel() - { - await IntegrationHelper.GetIntegrationDatabase(); - - LoginResult loginResult = await this.Authenticate(); - - HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestLevel.lvl", loginResult.AuthTicket); - - const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; - - Assert.Equal(expectedStatusCode, response.StatusCode); - } +using System; +using System.IO; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Tests.Integration; +using LBPUnion.ProjectLighthouse.Types.Users; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Integration; + +[Trait("Category", "Integration")] +public class UploadTests : LighthouseServerTest +{ + public UploadTests() + { + string assetsDirectory = Path.Combine(Environment.CurrentDirectory, "r"); + if (Directory.Exists(assetsDirectory)) Directory.Delete(assetsDirectory, true); + } + + [Fact] + public async Task ShouldNotAcceptScript() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestScript.ff", loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.Conflict; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task ShouldNotAcceptFarc() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestFarc.farc", loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.Conflict; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task ShouldNotAcceptGarbage() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestGarbage.bin", loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.Conflict; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task ShouldAcceptTexture() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestTexture.tex", loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } + + [Fact] + public async Task ShouldAcceptLevel() + { + await IntegrationHelper.GetIntegrationDatabase(); + + LoginResult loginResult = await this.Authenticate(); + + HttpResponseMessage response = await this.AuthenticatedUploadFileEndpointRequest("ExampleFiles/TestLevel.lvl", loginResult.AuthTicket); + + const HttpStatusCode expectedStatusCode = HttpStatusCode.OK; + + Assert.Equal(expectedStatusCode, response.StatusCode); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj b/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj index 60b47519..b0330ce8 100644 --- a/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj +++ b/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj @@ -1,34 +1,34 @@ - - - - net8.0 - enable - - false - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - - + + + + net8.0 + enable + + false + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/CommentControllerTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/CommentControllerTests.cs index e6be7b40..eaf6c577 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/CommentControllerTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/CommentControllerTests.cs @@ -1,231 +1,231 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Levels; -using Microsoft.AspNetCore.Mvc; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; - -[Trait("Category", "Unit")] -public class CommentControllerTests -{ - [Fact] - public async Task PostComment_ShouldPostProfileComment_WhenBodyIsValid() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("test"); - - const string expectedCommentMessage = "test"; - - IActionResult result = await commentController.PostComment("unittest", null, 0); - - Assert.IsType(result); - CommentEntity? comment = dbMock.Comments.FirstOrDefault(); - Assert.NotNull(comment); - Assert.Equal(expectedCommentMessage, comment.Message); - } - - [Fact] - public async Task PostComment_ShouldCensorComment_WhenFilterEnabled() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("zamn"); - - CensorConfiguration.Instance.FilteredWordList = new List - { - "zamn", - }; - CensorConfiguration.Instance.UserInputFilterMode = FilterMode.Asterisks; - const string expectedCommentMessage = "****"; - - IActionResult result = await commentController.PostComment("unittest", null, 0); - - - Assert.IsType(result); - CommentEntity? comment = dbMock.Comments.FirstOrDefault(); - Assert.NotNull(comment); - Assert.Equal(expectedCommentMessage, comment.Message); - } - - [Fact] - public async Task PostComment_ShouldCensorComment_WhenFilterDisabled() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("zamn"); - - CensorConfiguration.Instance.FilteredWordList = new List - { - "zamn", - }; - CensorConfiguration.Instance.UserInputFilterMode = FilterMode.None; - - IActionResult result = await commentController.PostComment("unittest", null, 0); - - const string expectedCommentMessage = "zamn"; - - Assert.IsType(result); - CommentEntity? comment = dbMock.Comments.FirstOrDefault(); - Assert.NotNull(comment); - Assert.Equal(expectedCommentMessage, comment.Message); - } - - [Fact] - public async Task PostComment_ShouldPostUserLevelComment_WhenBodyIsValid() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - CreatorId = 1, - Type = SlotType.User, - }, - }; - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("test"); - - const string expectedCommentMessage = "test"; - - IActionResult result = await commentController.PostComment(null, "user", 1); - - Assert.IsType(result); - CommentEntity? comment = dbMock.Comments.FirstOrDefault(); - Assert.NotNull(comment); - Assert.Equal(expectedCommentMessage, comment.Message); - } - - [Fact] - public async Task PostComment_ShouldPostDeveloperLevelComment_WhenBodyIsValid() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - InternalSlotId = 12345, - CreatorId = 1, - Type = SlotType.Developer, - }, - }; - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("test"); - - const string expectedCommentMessage = "test"; - - IActionResult result = await commentController.PostComment(null, "developer", 12345); - - Assert.IsType(result); - CommentEntity? comment = dbMock.Comments.FirstOrDefault(); - Assert.NotNull(comment); - Assert.Equal(expectedCommentMessage, comment.Message); - } - - [Fact] - public async Task PostComment_ShouldNotPostProfileComment_WhenTargetProfileInvalid() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("test"); - - IActionResult result = await commentController.PostComment("unittest2", null, 0); - - Assert.IsType(result); - } - - [Fact] - public async Task PostComment_ShouldNotPostUserLevelComment_WhenLevelInvalid() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("test"); - - IActionResult result = await commentController.PostComment(null, "user", 1); - - Assert.IsType(result); - } - - [Fact] - public async Task PostComment_ShouldNotPostComment_WhenBodyIsEmpty() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController(""); - - IActionResult result = await commentController.PostComment("unittest", null, 0); - - Assert.IsType(result); - } - - [Fact] - public async Task PostComment_ShouldNotPostComment_WhenBodyIsInvalid() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController(""); - - IActionResult result = await commentController.PostComment("unittest", null, 0); - - Assert.IsType(result); - } - - [Fact] - public async Task PostComment_ShouldFail_WhenSlotTypeIsInvalid() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("test"); - - IActionResult result = await commentController.PostComment(null, "banana", 0); - - Assert.IsType(result); - } - - [Fact] - public async Task PostComment_ShouldFail_WhenAllArgumentsAreEmpty() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("test"); - - IActionResult result = await commentController.PostComment(null, null, 0); - - Assert.IsType(result); - } - - [Fact] - public async Task PostComment_ShouldFail_WhenSlotTypeAndUsernameAreProvided() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - CommentController commentController = new(dbMock); - commentController.SetupTestController("test"); - - IActionResult result = await commentController.PostComment("unittest", "user", 10); - - Assert.IsType(result); - } - +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Levels; +using Microsoft.AspNetCore.Mvc; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; + +[Trait("Category", "Unit")] +public class CommentControllerTests +{ + [Fact] + public async Task PostComment_ShouldPostProfileComment_WhenBodyIsValid() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("test"); + + const string expectedCommentMessage = "test"; + + IActionResult result = await commentController.PostComment("unittest", null, 0); + + Assert.IsType(result); + CommentEntity? comment = dbMock.Comments.FirstOrDefault(); + Assert.NotNull(comment); + Assert.Equal(expectedCommentMessage, comment.Message); + } + + [Fact] + public async Task PostComment_ShouldCensorComment_WhenFilterEnabled() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("zamn"); + + CensorConfiguration.Instance.FilteredWordList = new List + { + "zamn", + }; + CensorConfiguration.Instance.UserInputFilterMode = FilterMode.Asterisks; + const string expectedCommentMessage = "****"; + + IActionResult result = await commentController.PostComment("unittest", null, 0); + + + Assert.IsType(result); + CommentEntity? comment = dbMock.Comments.FirstOrDefault(); + Assert.NotNull(comment); + Assert.Equal(expectedCommentMessage, comment.Message); + } + + [Fact] + public async Task PostComment_ShouldCensorComment_WhenFilterDisabled() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("zamn"); + + CensorConfiguration.Instance.FilteredWordList = new List + { + "zamn", + }; + CensorConfiguration.Instance.UserInputFilterMode = FilterMode.None; + + IActionResult result = await commentController.PostComment("unittest", null, 0); + + const string expectedCommentMessage = "zamn"; + + Assert.IsType(result); + CommentEntity? comment = dbMock.Comments.FirstOrDefault(); + Assert.NotNull(comment); + Assert.Equal(expectedCommentMessage, comment.Message); + } + + [Fact] + public async Task PostComment_ShouldPostUserLevelComment_WhenBodyIsValid() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + CreatorId = 1, + Type = SlotType.User, + }, + }; + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("test"); + + const string expectedCommentMessage = "test"; + + IActionResult result = await commentController.PostComment(null, "user", 1); + + Assert.IsType(result); + CommentEntity? comment = dbMock.Comments.FirstOrDefault(); + Assert.NotNull(comment); + Assert.Equal(expectedCommentMessage, comment.Message); + } + + [Fact] + public async Task PostComment_ShouldPostDeveloperLevelComment_WhenBodyIsValid() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + InternalSlotId = 12345, + CreatorId = 1, + Type = SlotType.Developer, + }, + }; + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("test"); + + const string expectedCommentMessage = "test"; + + IActionResult result = await commentController.PostComment(null, "developer", 12345); + + Assert.IsType(result); + CommentEntity? comment = dbMock.Comments.FirstOrDefault(); + Assert.NotNull(comment); + Assert.Equal(expectedCommentMessage, comment.Message); + } + + [Fact] + public async Task PostComment_ShouldNotPostProfileComment_WhenTargetProfileInvalid() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("test"); + + IActionResult result = await commentController.PostComment("unittest2", null, 0); + + Assert.IsType(result); + } + + [Fact] + public async Task PostComment_ShouldNotPostUserLevelComment_WhenLevelInvalid() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("test"); + + IActionResult result = await commentController.PostComment(null, "user", 1); + + Assert.IsType(result); + } + + [Fact] + public async Task PostComment_ShouldNotPostComment_WhenBodyIsEmpty() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController(""); + + IActionResult result = await commentController.PostComment("unittest", null, 0); + + Assert.IsType(result); + } + + [Fact] + public async Task PostComment_ShouldNotPostComment_WhenBodyIsInvalid() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController(""); + + IActionResult result = await commentController.PostComment("unittest", null, 0); + + Assert.IsType(result); + } + + [Fact] + public async Task PostComment_ShouldFail_WhenSlotTypeIsInvalid() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("test"); + + IActionResult result = await commentController.PostComment(null, "banana", 0); + + Assert.IsType(result); + } + + [Fact] + public async Task PostComment_ShouldFail_WhenAllArgumentsAreEmpty() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("test"); + + IActionResult result = await commentController.PostComment(null, null, 0); + + Assert.IsType(result); + } + + [Fact] + public async Task PostComment_ShouldFail_WhenSlotTypeAndUsernameAreProvided() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + CommentController commentController = new(dbMock); + commentController.SetupTestController("test"); + + IActionResult result = await commentController.PostComment("unittest", "user", 10); + + Assert.IsType(result); + } + } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ControllerExtensionTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ControllerExtensionTests.cs index 4a00ab68..df32d889 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ControllerExtensionTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ControllerExtensionTests.cs @@ -1,445 +1,445 @@ -using LBPUnion.ProjectLighthouse.Filter; -using LBPUnion.ProjectLighthouse.Filter.Filters; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Extensions; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Http; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; - -[Trait("Category", "Unit")] -public class ControllerExtensionTests -{ - [Fact] - public void GetDefaultFilters_ShouldReturnFilterBuilder() - { - SlotQueryBuilder queryBuilder = new SlotsController(null!).GetDefaultFilters(MockHelper.GetUnitTestToken()); - - Assert.NotEmpty(queryBuilder.GetFilters(typeof(GameVersionFilter))); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(HiddenSlotFilter))); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(SlotTypeFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddExcludeLbp1Filter_WhenTokenNotLbp1() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString(), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - - Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeLBP1OnlyFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldReturnFilters_WhenQueryEmpty() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString(), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - - Assert.NotEmpty(queryBuilder.GetFilters(typeof(GameVersionFilter))); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeLBP1OnlyFilter))); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(SubLevelFilter))); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(HiddenSlotFilter))); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(SlotTypeFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddLabelFilter_WhenAuthorLabelPresent() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?labelFilter0=LABEL_TEST"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(AuthorLabelFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddPlayerCountFilter_WhenPlayersPresent() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?players=1"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(PlayerCountFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddTextFilter_WhenTextFilterPresent() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?textFilter=test"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(TextFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddFirstUploadedFilter_WhenDateFilterPresent() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?dateFilterType=thisWeek"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(FirstUploadedFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldNotAddFirstUploadedFilter_WhenDateFilterInvalid() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?dateFilterType=thisMillenium"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.Empty(queryBuilder.GetFilters(typeof(FirstUploadedFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddExcludeMoveFilter_WhenMoveEqualsFalse() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?move=false"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeMovePackFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddMoveFilter_WhenMoveEqualsOnly() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?move=only"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(MovePackFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddCrossControlFilter_WhenCrossControlEqualsTrue() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?crosscontrol=true"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(CrossControlFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddExcludeCrossControlFilter_WhenCrossControlNotTrue() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?crosscontrol=false"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeCrossControlFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddExcludeCrossControlFilter_WhenCrossControlMissing() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet2; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString(), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeCrossControlFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddAdventureFilter_WhenAdventureEqualsAllMust() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet3; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?adventure=allMust"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(AdventureFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddExcludeAdventureFilter_WhenAdventureEqualsNoneCan() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet3; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?adventure=noneCan"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeAdventureFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddMovePackFilter_WhenMoveEqualsAllMust() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet3; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?move=allMust"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(MovePackFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddExcludeMoveFilter_WhenMoveEqualsNoneCan() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet3; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?move=noneCan"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeMovePackFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddGameVersionListFilter_WhenGameFilterIsPresent() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet3; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?gameFilter[]=lbp1&gameFilter[]=lbp3"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(GameVersionListFilter))); - } - - [Fact] - public void FilterFromRequest_ShouldAddResultTypeFilter_WhenResultTypeIsPresent() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet3; - SlotsController controller = new(null!) - { - ControllerContext = - { - HttpContext = new DefaultHttpContext - { - Request = - { - QueryString = new QueryString("?resultType[]=slot&resultType[]=playlist"), - }, - }, - }, - }; - - SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); - Assert.NotEmpty(queryBuilder.GetFilters(typeof(ResultTypeFilter))); - } +using LBPUnion.ProjectLighthouse.Filter; +using LBPUnion.ProjectLighthouse.Filter.Filters; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Extensions; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Http; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; + +[Trait("Category", "Unit")] +public class ControllerExtensionTests +{ + [Fact] + public void GetDefaultFilters_ShouldReturnFilterBuilder() + { + SlotQueryBuilder queryBuilder = new SlotsController(null!).GetDefaultFilters(MockHelper.GetUnitTestToken()); + + Assert.NotEmpty(queryBuilder.GetFilters(typeof(GameVersionFilter))); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(HiddenSlotFilter))); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(SlotTypeFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddExcludeLbp1Filter_WhenTokenNotLbp1() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString(), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + + Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeLBP1OnlyFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldReturnFilters_WhenQueryEmpty() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString(), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + + Assert.NotEmpty(queryBuilder.GetFilters(typeof(GameVersionFilter))); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeLBP1OnlyFilter))); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(SubLevelFilter))); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(HiddenSlotFilter))); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(SlotTypeFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddLabelFilter_WhenAuthorLabelPresent() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?labelFilter0=LABEL_TEST"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(AuthorLabelFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddPlayerCountFilter_WhenPlayersPresent() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?players=1"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(PlayerCountFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddTextFilter_WhenTextFilterPresent() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?textFilter=test"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(TextFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddFirstUploadedFilter_WhenDateFilterPresent() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?dateFilterType=thisWeek"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(FirstUploadedFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldNotAddFirstUploadedFilter_WhenDateFilterInvalid() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?dateFilterType=thisMillenium"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.Empty(queryBuilder.GetFilters(typeof(FirstUploadedFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddExcludeMoveFilter_WhenMoveEqualsFalse() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?move=false"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeMovePackFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddMoveFilter_WhenMoveEqualsOnly() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?move=only"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(MovePackFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddCrossControlFilter_WhenCrossControlEqualsTrue() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?crosscontrol=true"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(CrossControlFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddExcludeCrossControlFilter_WhenCrossControlNotTrue() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?crosscontrol=false"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeCrossControlFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddExcludeCrossControlFilter_WhenCrossControlMissing() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet2; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString(), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeCrossControlFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddAdventureFilter_WhenAdventureEqualsAllMust() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet3; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?adventure=allMust"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(AdventureFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddExcludeAdventureFilter_WhenAdventureEqualsNoneCan() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet3; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?adventure=noneCan"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeAdventureFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddMovePackFilter_WhenMoveEqualsAllMust() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet3; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?move=allMust"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(MovePackFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddExcludeMoveFilter_WhenMoveEqualsNoneCan() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet3; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?move=noneCan"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(ExcludeMovePackFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddGameVersionListFilter_WhenGameFilterIsPresent() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet3; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?gameFilter[]=lbp1&gameFilter[]=lbp3"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(GameVersionListFilter))); + } + + [Fact] + public void FilterFromRequest_ShouldAddResultTypeFilter_WhenResultTypeIsPresent() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet3; + SlotsController controller = new(null!) + { + ControllerContext = + { + HttpContext = new DefaultHttpContext + { + Request = + { + QueryString = new QueryString("?resultType[]=slot&resultType[]=playlist"), + }, + }, + }, + }; + + SlotQueryBuilder queryBuilder = controller.FilterFromRequest(token); + Assert.NotEmpty(queryBuilder.GetFilters(typeof(ResultTypeFilter))); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/MessageControllerTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/MessageControllerTests.cs index a0b42a0a..7e923ce4 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/MessageControllerTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/MessageControllerTests.cs @@ -1,277 +1,277 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Mail; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Mail; -using Microsoft.AspNetCore.Mvc; -using Moq; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; - -[Trait("Category", "Unit")] -public class MessageControllerTests -{ - [Fact] - public void Eula_ShouldReturnLicense_WhenConfigEmpty() - { - MessageController messageController = new(null!); - messageController.SetupTestController(); - - ServerConfiguration.Instance.EulaText = ""; - - const string expected = @" -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see ." + "\n"; - - IActionResult result = messageController.Eula(); - - string eulaMsg = result.CastTo(); - Assert.Equal(expected, eulaMsg); - } - - [Fact] - public void Eula_ShouldReturnLicenseAndConfigString_WhenConfigNotEmpty() - { - MessageController messageController = new(null!); - messageController.SetupTestController(); - - ServerConfiguration.Instance.EulaText = "unit test eula text"; - - const string expected = @" -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see ." + "\nunit test eula text"; - - IActionResult result = messageController.Eula(); - - string eulaMsg = result.CastTo(); - Assert.Equal(expected, eulaMsg); - } - - [Fact] - public async Task Announcement_WithVariables_ShouldBeResolved() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - MessageController messageController = new(dbMock); - messageController.SetupTestController(); - - ServerConfiguration.Instance.AnnounceText = "you are now logged in as %user (id: %id)"; - - const string expected = "you are now logged in as unittest (id: 1)"; - - IActionResult result = await messageController.Announce(); - - string announceMsg = result.CastTo(); - Assert.Equal(expected, announceMsg); - } - - [Fact] - public async Task Announcement_WithEmptyString_ShouldBeEmpty() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - MessageController messageController = new(dbMock); - messageController.SetupTestController(); - - ServerConfiguration.Instance.AnnounceText = ""; - - const string expected = ""; - - IActionResult result = await messageController.Announce(); - - string announceMsg = result.CastTo(); - Assert.Equal(expected, announceMsg); - } - - [Fact] - public async Task Filter_ShouldNotCensor_WhenCensorDisabled() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - const string request = "unit test message"; - MessageController messageController = new(dbMock); - messageController.SetupTestController(request); - - CensorConfiguration.Instance.UserInputFilterMode = FilterMode.None; - - const string expectedBody = "unit test message"; - - IActionResult result = await messageController.Filter(new NullMailService()); - - string filteredMessage = result.CastTo(); - Assert.Equal(expectedBody, filteredMessage); - } - - [Fact] - public async Task Filter_ShouldCensor_WhenCensorEnabled() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - const string request = "unit test message bruh"; - MessageController messageController = new(dbMock); - messageController.SetupTestController(request); - - CensorConfiguration.Instance.UserInputFilterMode = FilterMode.Asterisks; - CensorConfiguration.Instance.FilteredWordList = new List - { - "bruh", - }; - - const string expectedBody = "unit test message ****"; - - IActionResult result = await messageController.Filter(new NullMailService()); - - string filteredMessage = result.CastTo(); - Assert.Equal(expectedBody, filteredMessage); - } - - private static Mock getMailServiceMock() - { - Mock mailMock = new(); - mailMock.Setup(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(Task.FromResult(true)); - return mailMock; - } - - [Fact] - public async Task Filter_ShouldNotSendEmail_WhenMailDisabled() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - Mock mailMock = getMailServiceMock(); - const string request = "/setemail unittest@unittest.com"; - MessageController messageController = new(dbMock); - messageController.SetupTestController(request); - - ServerConfiguration.Instance.Mail.MailEnabled = false; - CensorConfiguration.Instance.FilteredWordList = new List(); - - const string expected = "/setemail unittest@unittest.com"; - - IActionResult result = await messageController.Filter(mailMock.Object); - - string filteredMessage = result.CastTo(); - Assert.Equal(expected, filteredMessage); - } - - [Fact] - public async Task Filter_ShouldSendEmail_WhenMailEnabled_AndEmailNotTaken() - { - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - Mock mailMock = getMailServiceMock(); - - const string request = "/setemail unittest@unittest.com"; - - MessageController messageController = new(dbMock); - messageController.SetupTestController(request); - - ServerConfiguration.Instance.Mail.MailEnabled = true; - - const string expectedEmail = "unittest@unittest.com"; - - IActionResult result = await messageController.Filter(mailMock.Object); - - Assert.IsType(result); - Assert.Equal(expectedEmail, dbMock.Users.First().EmailAddress); - mailMock.Verify(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); - } - - [Fact] - public async Task Filter_ShouldNotSendEmail_WhenMailEnabled_AndEmailTaken() - { - List users = new() - { - new UserEntity - { - UserId = 2, - EmailAddress = "unittest@unittest.com", - EmailAddressVerified = false, - }, - }; - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(users); - Mock mailMock = getMailServiceMock(); - - const string request = "/setemail unittest@unittest.com"; - - MessageController messageController = new(dbMock); - messageController.SetupTestController(request); - - ServerConfiguration.Instance.Mail.MailEnabled = true; - - IActionResult result = await messageController.Filter(mailMock.Object); - - Assert.IsType(result); - mailMock.Verify(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task Filter_ShouldNotSendEmail_WhenMailEnabled_AndEmailAlreadyVerified() - { - UserEntity unitTestUser = MockHelper.GetUnitTestUser(); - unitTestUser.EmailAddressVerified = true; - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(new List - { - unitTestUser, - }); - - Mock mailMock = getMailServiceMock(); - - const string request = "/setemail unittest@unittest.com"; - - MessageController messageController = new(dbMock); - messageController.SetupTestController(request); - - ServerConfiguration.Instance.Mail.MailEnabled = true; - - IActionResult result = await messageController.Filter(mailMock.Object); - - Assert.IsType(result); - mailMock.Verify(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task Filter_ShouldNotSendEmail_WhenMailEnabled_AndEmailFormatInvalid() - { - UserEntity unitTestUser = MockHelper.GetUnitTestUser(); - unitTestUser.EmailAddressVerified = true; - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); - - Mock mailMock = getMailServiceMock(); - - const string request = "/setemail unittestinvalidemail@@@"; - - MessageController messageController = new(dbMock); - messageController.SetupTestController(request); - - ServerConfiguration.Instance.Mail.MailEnabled = true; - - IActionResult result = await messageController.Filter(mailMock.Object); - - Assert.IsType(result); - mailMock.Verify(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); - } +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Mail; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Mail; +using Microsoft.AspNetCore.Mvc; +using Moq; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; + +[Trait("Category", "Unit")] +public class MessageControllerTests +{ + [Fact] + public void Eula_ShouldReturnLicense_WhenConfigEmpty() + { + MessageController messageController = new(null!); + messageController.SetupTestController(); + + ServerConfiguration.Instance.EulaText = ""; + + const string expected = @" +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see ." + "\n"; + + IActionResult result = messageController.Eula(); + + string eulaMsg = result.CastTo(); + Assert.Equal(expected, eulaMsg); + } + + [Fact] + public void Eula_ShouldReturnLicenseAndConfigString_WhenConfigNotEmpty() + { + MessageController messageController = new(null!); + messageController.SetupTestController(); + + ServerConfiguration.Instance.EulaText = "unit test eula text"; + + const string expected = @" +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see ." + "\nunit test eula text"; + + IActionResult result = messageController.Eula(); + + string eulaMsg = result.CastTo(); + Assert.Equal(expected, eulaMsg); + } + + [Fact] + public async Task Announcement_WithVariables_ShouldBeResolved() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + MessageController messageController = new(dbMock); + messageController.SetupTestController(); + + ServerConfiguration.Instance.AnnounceText = "you are now logged in as %user (id: %id)"; + + const string expected = "you are now logged in as unittest (id: 1)"; + + IActionResult result = await messageController.Announce(); + + string announceMsg = result.CastTo(); + Assert.Equal(expected, announceMsg); + } + + [Fact] + public async Task Announcement_WithEmptyString_ShouldBeEmpty() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + MessageController messageController = new(dbMock); + messageController.SetupTestController(); + + ServerConfiguration.Instance.AnnounceText = ""; + + const string expected = ""; + + IActionResult result = await messageController.Announce(); + + string announceMsg = result.CastTo(); + Assert.Equal(expected, announceMsg); + } + + [Fact] + public async Task Filter_ShouldNotCensor_WhenCensorDisabled() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + const string request = "unit test message"; + MessageController messageController = new(dbMock); + messageController.SetupTestController(request); + + CensorConfiguration.Instance.UserInputFilterMode = FilterMode.None; + + const string expectedBody = "unit test message"; + + IActionResult result = await messageController.Filter(new NullMailService()); + + string filteredMessage = result.CastTo(); + Assert.Equal(expectedBody, filteredMessage); + } + + [Fact] + public async Task Filter_ShouldCensor_WhenCensorEnabled() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + const string request = "unit test message bruh"; + MessageController messageController = new(dbMock); + messageController.SetupTestController(request); + + CensorConfiguration.Instance.UserInputFilterMode = FilterMode.Asterisks; + CensorConfiguration.Instance.FilteredWordList = new List + { + "bruh", + }; + + const string expectedBody = "unit test message ****"; + + IActionResult result = await messageController.Filter(new NullMailService()); + + string filteredMessage = result.CastTo(); + Assert.Equal(expectedBody, filteredMessage); + } + + private static Mock getMailServiceMock() + { + Mock mailMock = new(); + mailMock.Setup(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Task.FromResult(true)); + return mailMock; + } + + [Fact] + public async Task Filter_ShouldNotSendEmail_WhenMailDisabled() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + Mock mailMock = getMailServiceMock(); + const string request = "/setemail unittest@unittest.com"; + MessageController messageController = new(dbMock); + messageController.SetupTestController(request); + + ServerConfiguration.Instance.Mail.MailEnabled = false; + CensorConfiguration.Instance.FilteredWordList = new List(); + + const string expected = "/setemail unittest@unittest.com"; + + IActionResult result = await messageController.Filter(mailMock.Object); + + string filteredMessage = result.CastTo(); + Assert.Equal(expected, filteredMessage); + } + + [Fact] + public async Task Filter_ShouldSendEmail_WhenMailEnabled_AndEmailNotTaken() + { + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + Mock mailMock = getMailServiceMock(); + + const string request = "/setemail unittest@unittest.com"; + + MessageController messageController = new(dbMock); + messageController.SetupTestController(request); + + ServerConfiguration.Instance.Mail.MailEnabled = true; + + const string expectedEmail = "unittest@unittest.com"; + + IActionResult result = await messageController.Filter(mailMock.Object); + + Assert.IsType(result); + Assert.Equal(expectedEmail, dbMock.Users.First().EmailAddress); + mailMock.Verify(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); + } + + [Fact] + public async Task Filter_ShouldNotSendEmail_WhenMailEnabled_AndEmailTaken() + { + List users = new() + { + new UserEntity + { + UserId = 2, + EmailAddress = "unittest@unittest.com", + EmailAddressVerified = false, + }, + }; + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(users); + Mock mailMock = getMailServiceMock(); + + const string request = "/setemail unittest@unittest.com"; + + MessageController messageController = new(dbMock); + messageController.SetupTestController(request); + + ServerConfiguration.Instance.Mail.MailEnabled = true; + + IActionResult result = await messageController.Filter(mailMock.Object); + + Assert.IsType(result); + mailMock.Verify(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task Filter_ShouldNotSendEmail_WhenMailEnabled_AndEmailAlreadyVerified() + { + UserEntity unitTestUser = MockHelper.GetUnitTestUser(); + unitTestUser.EmailAddressVerified = true; + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(new List + { + unitTestUser, + }); + + Mock mailMock = getMailServiceMock(); + + const string request = "/setemail unittest@unittest.com"; + + MessageController messageController = new(dbMock); + messageController.SetupTestController(request); + + ServerConfiguration.Instance.Mail.MailEnabled = true; + + IActionResult result = await messageController.Filter(mailMock.Object); + + Assert.IsType(result); + mailMock.Verify(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task Filter_ShouldNotSendEmail_WhenMailEnabled_AndEmailFormatInvalid() + { + UserEntity unitTestUser = MockHelper.GetUnitTestUser(); + unitTestUser.EmailAddressVerified = true; + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(); + + Mock mailMock = getMailServiceMock(); + + const string request = "/setemail unittestinvalidemail@@@"; + + MessageController messageController = new(dbMock); + messageController.SetupTestController(request); + + ServerConfiguration.Instance.Mail.MailEnabled = true; + + IActionResult result = await messageController.Filter(mailMock.Object); + + Assert.IsType(result); + mailMock.Verify(x => x.SendEmailAsync(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ReviewControllerTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ReviewControllerTests.cs index d6eb94f8..de990fe6 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ReviewControllerTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ReviewControllerTests.cs @@ -1,100 +1,100 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Mvc; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; - -[Trait("Category", "Unit")] -public class ReviewControllerTests -{ - private static async Task InsertTestData(DatabaseContext database) - { - database.Slots.Add(new SlotEntity - { - SlotId = 1, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet3, - }); - - database.Slots.Add(new SlotEntity - { - SlotId = 2, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet2, - }); - - database.Reviews.Add(new ReviewEntity - { - ReviewId = 1, - ReviewerId = 1, - SlotId = 1, - }); - - database.Reviews.Add(new ReviewEntity - { - ReviewId = 2, - ReviewerId = 1, - SlotId = 2, - }); - await database.SaveChangesAsync(); - } - - [Theory] - [InlineData(GameVersion.LittleBigPlanet2, 1)] - [InlineData(GameVersion.LittleBigPlanet3, 2)] - public async Task ReviewsBy_ShouldNotList_HigherGameVersions(GameVersion version, int expected) - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = version; - DatabaseContext database = await MockHelper.GetTestDatabase(new List - { - token, - }); - - await InsertTestData(database); - - ReviewController controller = new(database); - controller.SetupTestController(token); - - IActionResult response = await controller.ReviewsBy("unittest"); - ReviewResponse review = response.CastTo(); - - Assert.Equal(expected, review.Reviews.Count); - Assert.True(review.Reviews.All(r => database.Slots.FirstOrDefault(s => s.SlotId == r.Slot.SlotId)?.GameVersion <= version)); - } - - [Theory] - [InlineData(GameVersion.LittleBigPlanet2, 2, 1)] - [InlineData(GameVersion.LittleBigPlanet2, 1, 0)] - [InlineData(GameVersion.LittleBigPlanet3, 2, 1)] - [InlineData(GameVersion.LittleBigPlanet3, 1, 1)] - public async Task ReviewsFor_ShouldNotList_HigherGameVersions(GameVersion version, int slotId, int expected) - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = version; - DatabaseContext database = await MockHelper.GetTestDatabase(new List - { - token, - }); - - await InsertTestData(database); - - ReviewController controller = new(database); - controller.SetupTestController(token); - - IActionResult response = await controller.ReviewsFor(slotId); - ReviewResponse review = response.CastTo(); - - Assert.Equal(expected, review.Reviews.Count); - Assert.True(review.Reviews.All(r => database.Slots.FirstOrDefault(s => s.SlotId == r.Slot.SlotId)?.GameVersion <= version)); - } +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Mvc; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; + +[Trait("Category", "Unit")] +public class ReviewControllerTests +{ + private static async Task InsertTestData(DatabaseContext database) + { + database.Slots.Add(new SlotEntity + { + SlotId = 1, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet3, + }); + + database.Slots.Add(new SlotEntity + { + SlotId = 2, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet2, + }); + + database.Reviews.Add(new ReviewEntity + { + ReviewId = 1, + ReviewerId = 1, + SlotId = 1, + }); + + database.Reviews.Add(new ReviewEntity + { + ReviewId = 2, + ReviewerId = 1, + SlotId = 2, + }); + await database.SaveChangesAsync(); + } + + [Theory] + [InlineData(GameVersion.LittleBigPlanet2, 1)] + [InlineData(GameVersion.LittleBigPlanet3, 2)] + public async Task ReviewsBy_ShouldNotList_HigherGameVersions(GameVersion version, int expected) + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = version; + DatabaseContext database = await MockHelper.GetTestDatabase(new List + { + token, + }); + + await InsertTestData(database); + + ReviewController controller = new(database); + controller.SetupTestController(token); + + IActionResult response = await controller.ReviewsBy("unittest"); + ReviewResponse review = response.CastTo(); + + Assert.Equal(expected, review.Reviews.Count); + Assert.True(review.Reviews.All(r => database.Slots.FirstOrDefault(s => s.SlotId == r.Slot.SlotId)?.GameVersion <= version)); + } + + [Theory] + [InlineData(GameVersion.LittleBigPlanet2, 2, 1)] + [InlineData(GameVersion.LittleBigPlanet2, 1, 0)] + [InlineData(GameVersion.LittleBigPlanet3, 2, 1)] + [InlineData(GameVersion.LittleBigPlanet3, 1, 1)] + public async Task ReviewsFor_ShouldNotList_HigherGameVersions(GameVersion version, int slotId, int expected) + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = version; + DatabaseContext database = await MockHelper.GetTestDatabase(new List + { + token, + }); + + await InsertTestData(database); + + ReviewController controller = new(database); + controller.SetupTestController(token); + + IActionResult response = await controller.ReviewsFor(slotId); + ReviewResponse review = response.CastTo(); + + Assert.Equal(expected, review.Reviews.Count); + Assert.True(review.Reviews.All(r => database.Slots.FirstOrDefault(s => s.SlotId == r.Slot.SlotId)?.GameVersion <= version)); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ScoreControllerTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ScoreControllerTests.cs index 96dd547a..f94649e5 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ScoreControllerTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ScoreControllerTests.cs @@ -1,161 +1,161 @@ -using System.Linq; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using Microsoft.AspNetCore.Mvc; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; - -[Trait("Category", "Unit")] -public class ScoreControllerTests -{ - [Fact] - public async Task SubmitScore_ShouldSubmitValidScore_WhenNoExistingScore() - { - DatabaseContext database = await MockHelper.GetTestDatabase(); - - SlotEntity slot = new() - { - CreatorId = 1, - SlotId = 1, - }; - database.Slots.Add(slot); - await database.SaveChangesAsync(); - - ScoreController scoreController = new(database); - const string xmlBody = """ - - 1 - 10 - unittest - - """; - scoreController.SetupTestController(xmlBody); - IActionResult result = await scoreController.SubmitScore("user", 1, 0); - Assert.IsType(result); - Assert.NotNull(database.Scores.FirstOrDefault(s => s.Type == 1 && s.SlotId == 1 && s.UserId == 1)); - } - - [Fact] - public async Task SubmitScore_ShouldUpdateScore_WhenBetterThanExistingScore() - { - DatabaseContext database = await MockHelper.GetTestDatabase(); - - SlotEntity slot = new() - { - CreatorId = 1, - SlotId = 1, - }; - database.Slots.Add(slot); - - ScoreEntity score = new() - { - SlotId = 1, - Type = 1, - UserId = 1, - Points = 5, - Timestamp = 0, - }; - database.Scores.Add(score); - await database.SaveChangesAsync(); - - ScoreController scoreController = new(database); - const string xmlBody = """ - - 1 - 10 - unittest - - """; - scoreController.SetupTestController(xmlBody); - IActionResult result = await scoreController.SubmitScore("user", 1, 0); - Assert.IsType(result); - ScoreEntity? newScore = database.Scores.FirstOrDefault(s => s.Type == 1 && s.SlotId == 1 && s.UserId == 1); - Assert.NotNull(newScore); - Assert.NotEqual(0, newScore.Timestamp); - Assert.Equal(10, newScore.Points); - } - - [Fact] - public async Task SubmitScore_ShouldNotUpdateScore_WhenEqualToExistingScore() - { - DatabaseContext database = await MockHelper.GetTestDatabase(); - - SlotEntity slot = new() - { - CreatorId = 1, - SlotId = 1, - }; - database.Slots.Add(slot); - - ScoreEntity score = new() - { - SlotId = 1, - Type = 1, - UserId = 1, - Points = 10, - Timestamp = 0, - }; - database.Scores.Add(score); - await database.SaveChangesAsync(); - - ScoreController scoreController = new(database); - const string xmlBody = """ - - 1 - 10 - unittest - - """; - scoreController.SetupTestController(xmlBody); - IActionResult result = await scoreController.SubmitScore("user", 1, 0); - Assert.IsType(result); - ScoreEntity? newScore = database.Scores.FirstOrDefault(s => s.Type == 1 && s.SlotId == 1 && s.UserId == 1); - Assert.NotNull(newScore); - Assert.Equal(0, newScore.Timestamp); - Assert.Equal(10, newScore.Points); - } - - [Fact] - public async Task SubmitScore_ShouldNotUpdateScore_WhenLessThanExistingScore() - { - DatabaseContext database = await MockHelper.GetTestDatabase(); - - SlotEntity slot = new() - { - CreatorId = 1, - SlotId = 1, - }; - database.Slots.Add(slot); - - ScoreEntity score = new() - { - SlotId = 1, - Type = 1, - UserId = 1, - Points = 10, - Timestamp = 0, - }; - database.Scores.Add(score); - await database.SaveChangesAsync(); - - ScoreController scoreController = new(database); - const string xmlBody = """ - - 1 - 5 - unittest - - """; - scoreController.SetupTestController(xmlBody); - IActionResult result = await scoreController.SubmitScore("user", 1, 0); - Assert.IsType(result); - ScoreEntity? newScore = database.Scores.FirstOrDefault(s => s.Type == 1 && s.SlotId == 1 && s.UserId == 1); - Assert.NotNull(newScore); - Assert.Equal(0, newScore.Timestamp); - Assert.Equal(10, newScore.Points); - } +using System.Linq; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using Microsoft.AspNetCore.Mvc; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; + +[Trait("Category", "Unit")] +public class ScoreControllerTests +{ + [Fact] + public async Task SubmitScore_ShouldSubmitValidScore_WhenNoExistingScore() + { + DatabaseContext database = await MockHelper.GetTestDatabase(); + + SlotEntity slot = new() + { + CreatorId = 1, + SlotId = 1, + }; + database.Slots.Add(slot); + await database.SaveChangesAsync(); + + ScoreController scoreController = new(database); + const string xmlBody = """ + + 1 + 10 + unittest + + """; + scoreController.SetupTestController(xmlBody); + IActionResult result = await scoreController.SubmitScore("user", 1, 0); + Assert.IsType(result); + Assert.NotNull(database.Scores.FirstOrDefault(s => s.Type == 1 && s.SlotId == 1 && s.UserId == 1)); + } + + [Fact] + public async Task SubmitScore_ShouldUpdateScore_WhenBetterThanExistingScore() + { + DatabaseContext database = await MockHelper.GetTestDatabase(); + + SlotEntity slot = new() + { + CreatorId = 1, + SlotId = 1, + }; + database.Slots.Add(slot); + + ScoreEntity score = new() + { + SlotId = 1, + Type = 1, + UserId = 1, + Points = 5, + Timestamp = 0, + }; + database.Scores.Add(score); + await database.SaveChangesAsync(); + + ScoreController scoreController = new(database); + const string xmlBody = """ + + 1 + 10 + unittest + + """; + scoreController.SetupTestController(xmlBody); + IActionResult result = await scoreController.SubmitScore("user", 1, 0); + Assert.IsType(result); + ScoreEntity? newScore = database.Scores.FirstOrDefault(s => s.Type == 1 && s.SlotId == 1 && s.UserId == 1); + Assert.NotNull(newScore); + Assert.NotEqual(0, newScore.Timestamp); + Assert.Equal(10, newScore.Points); + } + + [Fact] + public async Task SubmitScore_ShouldNotUpdateScore_WhenEqualToExistingScore() + { + DatabaseContext database = await MockHelper.GetTestDatabase(); + + SlotEntity slot = new() + { + CreatorId = 1, + SlotId = 1, + }; + database.Slots.Add(slot); + + ScoreEntity score = new() + { + SlotId = 1, + Type = 1, + UserId = 1, + Points = 10, + Timestamp = 0, + }; + database.Scores.Add(score); + await database.SaveChangesAsync(); + + ScoreController scoreController = new(database); + const string xmlBody = """ + + 1 + 10 + unittest + + """; + scoreController.SetupTestController(xmlBody); + IActionResult result = await scoreController.SubmitScore("user", 1, 0); + Assert.IsType(result); + ScoreEntity? newScore = database.Scores.FirstOrDefault(s => s.Type == 1 && s.SlotId == 1 && s.UserId == 1); + Assert.NotNull(newScore); + Assert.Equal(0, newScore.Timestamp); + Assert.Equal(10, newScore.Points); + } + + [Fact] + public async Task SubmitScore_ShouldNotUpdateScore_WhenLessThanExistingScore() + { + DatabaseContext database = await MockHelper.GetTestDatabase(); + + SlotEntity slot = new() + { + CreatorId = 1, + SlotId = 1, + }; + database.Slots.Add(slot); + + ScoreEntity score = new() + { + SlotId = 1, + Type = 1, + UserId = 1, + Points = 10, + Timestamp = 0, + }; + database.Scores.Add(score); + await database.SaveChangesAsync(); + + ScoreController scoreController = new(database); + const string xmlBody = """ + + 1 + 5 + unittest + + """; + scoreController.SetupTestController(xmlBody); + IActionResult result = await scoreController.SubmitScore("user", 1, 0); + Assert.IsType(result); + ScoreEntity? newScore = database.Scores.FirstOrDefault(s => s.Type == 1 && s.SlotId == 1 && s.UserId == 1); + Assert.NotNull(newScore); + Assert.Equal(0, newScore.Timestamp); + Assert.Equal(10, newScore.Points); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/SlotControllerTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/SlotControllerTests.cs index 7408fcf5..dbfb765a 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/SlotControllerTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/SlotControllerTests.cs @@ -1,556 +1,556 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using LBPUnion.ProjectLighthouse.Types.Levels; -using LBPUnion.ProjectLighthouse.Types.Matchmaking.Rooms; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Mvc; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; - -[Trait("Category", "Unit")] -public class SlotControllerTests -{ - #region SlotsBy - [Fact] - public async Task SlotsBy_ShouldReturnNotFound_WhenUserInvalid() - { - DatabaseContext db = await MockHelper.GetTestDatabase(); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.SlotsBy("bytest"); - - Assert.IsType(result); - } - - [Fact] - public async Task SlotsBy_ShouldFetchLevelsByUser() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - CreatorId = 2, - }, - new SlotEntity - { - SlotId = 2, - CreatorId = 2, - }, - new SlotEntity - { - SlotId = 3, - CreatorId = 3, - }, - }; - List users = new() - { - new UserEntity - { - Username = "bytest", - UserId = 2, - }, - new UserEntity - { - Username = "user3", - UserId = 3, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots, users); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.SlotsBy("bytest"); - - const int expectedElements = 2; - HashSet expectedSlotIds = new(){1, 2,}; - - GenericSlotResponse slotResponse = result.CastTo(); - Assert.Equal(expectedElements, slotResponse.Slots.Count); - Assert.Equal(expectedSlotIds, slotResponse.Slots.OfType().Select(s => s.SlotId).ToHashSet()); - } - - [Fact] - public async Task SlotsBy_ResultsAreOrderedByFirstUploadedTimestampAscending() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - CreatorId = 2, - FirstUploaded = 3, - }, - new SlotEntity - { - SlotId = 2, - CreatorId = 2, - FirstUploaded = 1, - }, - new SlotEntity - { - SlotId = 3, - CreatorId = 2, - FirstUploaded = 2, - }, - }; - List users = new() - { - new UserEntity - { - Username = "bytest", - UserId = 2, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots, users); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.SlotsBy("bytest"); - - const int expectedElements = 3; - const int expectedFirstSlotId = 2; - const int expectedSecondSlotId = 3; - const int expectedThirdSlotId = 1; - - GenericSlotResponse slotResponse = result.CastTo(); - Assert.Equal(expectedElements, slotResponse.Slots.Count); - - Assert.Equal(expectedFirstSlotId, ((GameUserSlot)slotResponse.Slots[0]).SlotId); - Assert.Equal(expectedSecondSlotId, ((GameUserSlot)slotResponse.Slots[1]).SlotId); - Assert.Equal(expectedThirdSlotId, ((GameUserSlot)slotResponse.Slots[2]).SlotId); - } - #endregion - - #region UserSlot - [Fact] - public async Task UserSlot_ShouldFetch_WhenSlotIsValid() - { - List slots = new() - { - new SlotEntity - { - CreatorId = 1, - SlotId = 2, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.UserSlot(2); - - Assert.IsType(result); - } - - [Fact] - public async Task UserSlot_ShouldNotFetch_WhenGameVersionMismatch() - { - List slots = new() - { - new SlotEntity - { - CreatorId = 1, - SlotId = 2, - GameVersion = GameVersion.LittleBigPlanet2, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.UserSlot(2); - - Assert.IsType(result); - } - - [Fact] - public async Task UserSlot_ShouldFetch_WhenGameVersionEqual() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanetVita; - List tokens = new() - { - token, - }; - List slots = new() - { - new SlotEntity - { - SlotId = 2, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanetVita, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots, tokens); - SlotsController slotsController = new(db); - slotsController.SetupTestController(token); - - IActionResult result = await slotsController.UserSlot(2); - - Assert.IsType(result); - } - - [Fact] - public async Task UserSlot_ShouldFetch_WhenGameVersionIsGreater() - { - GameTokenEntity token = MockHelper.GetUnitTestToken(); - token.GameVersion = GameVersion.LittleBigPlanet3; - List tokens = new() - { - token, - }; - List slots = new() - { - new SlotEntity - { - SlotId = 2, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet1, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots, tokens); - SlotsController slotsController = new(db); - slotsController.SetupTestController(token); - - IActionResult result = await slotsController.UserSlot(2); - - Assert.IsType(result); - } - - [Fact] - public async Task UserSlot_ShouldReturnNotFound_WhenSlotDoesNotExist() - { - DatabaseContext db = await MockHelper.GetTestDatabase(); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.UserSlot(20); - - Assert.IsType(result); - } - - [Fact] - public async Task UserSlot_ShouldFetch_WhenSlotIsNotSubLevel() - { - List slots = new() - { - new SlotEntity - { - SlotId = 27, - CreatorId = 1, - SubLevel = false, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.UserSlot(27); - - Assert.IsType(result); - } - - [Fact] - public async Task UserSlot_ShouldNotFetch_WhenSlotIsHidden() - { - List slots = new() - { - new SlotEntity - { - SlotId = 27, - CreatorId = 1, - Hidden = true, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.UserSlot(27); - - Assert.IsType(result); - } - - [Fact] - public async Task UserSlot_ShouldNotFetch_WhenSlotIsWrongType() - { - List slots = new() - { - new SlotEntity - { - SlotId = 27, - CreatorId = 1, - Type = SlotType.Developer, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.UserSlot(27); - - Assert.IsType(result); - } - - [Fact] - public async Task UserSlot_ShouldFetch_WhenSlotIsSubLevel() - { - List slots = new() - { - new SlotEntity - { - SlotId = 27, - CreatorId = 1, - SubLevel = true, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots); - SlotsController slotsController = new(db); - slotsController.SetupTestController(); - - IActionResult result = await slotsController.UserSlot(27); - - Assert.IsType(result); - } - #endregion - - #region DeveloperSlot - [Fact] - public async Task DeveloperSlot_ShouldFetch_WhenSlotIdIsValid() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - CreatorId = 1, - InternalSlotId = 25, - Type = SlotType.Developer, - }, - }; - DatabaseContext db = await MockHelper.GetTestDatabase(slots); - SlotsController controller = new(db); - controller.SetupTestController(); - - IActionResult result = await controller.DeveloperSlot(25); - Assert.IsType(result); - } - - [Fact] - public async Task DeveloperSlot_ShouldFetch_WhenSlotIdIsInvalid() - { - DatabaseContext db = await MockHelper.GetTestDatabase(); - SlotsController controller = new(db); - controller.SetupTestController(); - - IActionResult result = await controller.DeveloperSlot(26); - Assert.IsType(result); - } - #endregion - - #region BusiestLevels - - // Rather than trying to mock a singleton - // we just make the unit tests take turns - private static readonly Mutex roomMutex = new(false); - - private static async Task AddRoom(int slotId, SlotType type, params int[] playerIds) - { - await RoomHelper.Rooms.AddAsync(new Room - { - PlayerIds = new List(playerIds), - Slot = new RoomSlot - { - SlotId = slotId, - SlotType = type, - }, - }); - } - - [Fact] - public async Task BusiestLevels_ShouldReturnSlots_OrderedByRoomCount() - { - roomMutex.WaitOne(); - try - { - DatabaseContext db = await MockHelper.GetTestDatabase(new List - { - new() - { - SlotId = 1, - CreatorId = 1, - Type = SlotType.User, - }, - new() - { - SlotId = 2, - CreatorId = 1, - Type = SlotType.User, - }, - new() - { - SlotId = 3, - CreatorId = 1, - Type = SlotType.User, - }, - new() - { - SlotId = 4, - CreatorId = 1, - Type = SlotType.Developer, - InternalSlotId = 10, - }, - }); - SlotsController controller = new(db); - controller.SetupTestController(); - - await AddRoom(1, SlotType.User, 1); - await AddRoom(2, SlotType.User, 2); - await AddRoom(2, SlotType.User, 3); - await AddRoom(3, SlotType.User, 4); - await AddRoom(3, SlotType.User, 5); - await AddRoom(3, SlotType.User, 6); - - await AddRoom(10, SlotType.Developer, 7); - - IActionResult result = await controller.BusiestLevels(); - GenericSlotResponse slotResponse = result.CastTo(); - Assert.Equal(3, slotResponse.Slots.Count); - Assert.IsType(slotResponse.Slots[0]); - Assert.Equal(3, ((GameUserSlot)slotResponse.Slots[0]).SlotId); - Assert.IsType(slotResponse.Slots[1]); - Assert.Equal(2, ((GameUserSlot)slotResponse.Slots[1]).SlotId); - Assert.IsType(slotResponse.Slots[2]); - Assert.Equal(1, ((GameUserSlot)slotResponse.Slots[2]).SlotId); - } - finally - { - roomMutex.ReleaseMutex(); - } - } - - [Fact] - public async Task BusiestLevels_ShouldNotIncludeDeveloperSlots() - { - roomMutex.WaitOne(); - try - { - DatabaseContext db = await MockHelper.GetTestDatabase(new List - { - new() - { - SlotId = 4, - CreatorId = 1, - Type = SlotType.Developer, - InternalSlotId = 10, - }, - }); - SlotsController controller = new(db); - controller.SetupTestController(); - - await AddRoom(10, SlotType.Developer, 1); - - IActionResult result = await controller.BusiestLevels(); - GenericSlotResponse slotResponse = result.CastTo(); - Assert.Empty(slotResponse.Slots); - } - finally - { - roomMutex.ReleaseMutex(); - } - } - - [Fact] - public async Task BusiestLevels_ShouldNotIncludeInvalidSlots() - { - roomMutex.WaitOne(); - try - { - DatabaseContext db = await MockHelper.GetTestDatabase(); - SlotsController controller = new(db); - controller.SetupTestController(); - - await AddRoom(1, SlotType.User, 1); - - IActionResult result = await controller.BusiestLevels(); - GenericSlotResponse slotResponse = result.CastTo(); - Assert.Empty(slotResponse.Slots); - } - finally - { - roomMutex.ReleaseMutex(); - } - } - #endregion - - #region Team Picks - [Fact] - public async Task TeamPick_ShouldOnlyIncludeTeamPickedLevels() - { - DatabaseContext db = await MockHelper.GetTestDatabase(new List - { - new() - { - SlotId = 1, - CreatorId = 1, - TeamPickTime = 1, - }, - new() - { - SlotId = 2, - CreatorId = 1, - TeamPickTime = 0, - }, - }); - SlotsController controller = new(db); - controller.SetupTestController(); - - IActionResult result = await controller.TeamPickedSlots(); - GenericSlotResponse slotResponse = result.CastTo(); - Assert.Single(slotResponse.Slots); - Assert.Equal(1, slotResponse.Slots.OfType().First().SlotId); - } - - [Fact] - public async Task TeamPick_LevelsAreSortedByTimestamp() - { - DatabaseContext db = await MockHelper.GetTestDatabase(new List - { - new() - { - SlotId = 1, - CreatorId = 1, - TeamPickTime = 1, - }, - new() - { - SlotId = 2, - CreatorId = 1, - TeamPickTime = 5, - }, - }); - SlotsController controller = new(db); - controller.SetupTestController(); - - IActionResult result = await controller.TeamPickedSlots(); - - GenericSlotResponse slotResponse = result.CastTo(); - Assert.Equal(2, slotResponse.Slots.Count); - Assert.Equal(2, slotResponse.Slots.OfType().First().SlotId); - Assert.Equal(1, slotResponse.Slots.OfType().Last().SlotId); - } - #endregion -} +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Levels; +using LBPUnion.ProjectLighthouse.Types.Matchmaking.Rooms; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Mvc; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; + +[Trait("Category", "Unit")] +public class SlotControllerTests +{ + #region SlotsBy + [Fact] + public async Task SlotsBy_ShouldReturnNotFound_WhenUserInvalid() + { + DatabaseContext db = await MockHelper.GetTestDatabase(); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.SlotsBy("bytest"); + + Assert.IsType(result); + } + + [Fact] + public async Task SlotsBy_ShouldFetchLevelsByUser() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + CreatorId = 2, + }, + new SlotEntity + { + SlotId = 2, + CreatorId = 2, + }, + new SlotEntity + { + SlotId = 3, + CreatorId = 3, + }, + }; + List users = new() + { + new UserEntity + { + Username = "bytest", + UserId = 2, + }, + new UserEntity + { + Username = "user3", + UserId = 3, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots, users); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.SlotsBy("bytest"); + + const int expectedElements = 2; + HashSet expectedSlotIds = new(){1, 2,}; + + GenericSlotResponse slotResponse = result.CastTo(); + Assert.Equal(expectedElements, slotResponse.Slots.Count); + Assert.Equal(expectedSlotIds, slotResponse.Slots.OfType().Select(s => s.SlotId).ToHashSet()); + } + + [Fact] + public async Task SlotsBy_ResultsAreOrderedByFirstUploadedTimestampAscending() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + CreatorId = 2, + FirstUploaded = 3, + }, + new SlotEntity + { + SlotId = 2, + CreatorId = 2, + FirstUploaded = 1, + }, + new SlotEntity + { + SlotId = 3, + CreatorId = 2, + FirstUploaded = 2, + }, + }; + List users = new() + { + new UserEntity + { + Username = "bytest", + UserId = 2, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots, users); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.SlotsBy("bytest"); + + const int expectedElements = 3; + const int expectedFirstSlotId = 2; + const int expectedSecondSlotId = 3; + const int expectedThirdSlotId = 1; + + GenericSlotResponse slotResponse = result.CastTo(); + Assert.Equal(expectedElements, slotResponse.Slots.Count); + + Assert.Equal(expectedFirstSlotId, ((GameUserSlot)slotResponse.Slots[0]).SlotId); + Assert.Equal(expectedSecondSlotId, ((GameUserSlot)slotResponse.Slots[1]).SlotId); + Assert.Equal(expectedThirdSlotId, ((GameUserSlot)slotResponse.Slots[2]).SlotId); + } + #endregion + + #region UserSlot + [Fact] + public async Task UserSlot_ShouldFetch_WhenSlotIsValid() + { + List slots = new() + { + new SlotEntity + { + CreatorId = 1, + SlotId = 2, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.UserSlot(2); + + Assert.IsType(result); + } + + [Fact] + public async Task UserSlot_ShouldNotFetch_WhenGameVersionMismatch() + { + List slots = new() + { + new SlotEntity + { + CreatorId = 1, + SlotId = 2, + GameVersion = GameVersion.LittleBigPlanet2, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.UserSlot(2); + + Assert.IsType(result); + } + + [Fact] + public async Task UserSlot_ShouldFetch_WhenGameVersionEqual() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanetVita; + List tokens = new() + { + token, + }; + List slots = new() + { + new SlotEntity + { + SlotId = 2, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanetVita, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots, tokens); + SlotsController slotsController = new(db); + slotsController.SetupTestController(token); + + IActionResult result = await slotsController.UserSlot(2); + + Assert.IsType(result); + } + + [Fact] + public async Task UserSlot_ShouldFetch_WhenGameVersionIsGreater() + { + GameTokenEntity token = MockHelper.GetUnitTestToken(); + token.GameVersion = GameVersion.LittleBigPlanet3; + List tokens = new() + { + token, + }; + List slots = new() + { + new SlotEntity + { + SlotId = 2, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet1, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots, tokens); + SlotsController slotsController = new(db); + slotsController.SetupTestController(token); + + IActionResult result = await slotsController.UserSlot(2); + + Assert.IsType(result); + } + + [Fact] + public async Task UserSlot_ShouldReturnNotFound_WhenSlotDoesNotExist() + { + DatabaseContext db = await MockHelper.GetTestDatabase(); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.UserSlot(20); + + Assert.IsType(result); + } + + [Fact] + public async Task UserSlot_ShouldFetch_WhenSlotIsNotSubLevel() + { + List slots = new() + { + new SlotEntity + { + SlotId = 27, + CreatorId = 1, + SubLevel = false, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.UserSlot(27); + + Assert.IsType(result); + } + + [Fact] + public async Task UserSlot_ShouldNotFetch_WhenSlotIsHidden() + { + List slots = new() + { + new SlotEntity + { + SlotId = 27, + CreatorId = 1, + Hidden = true, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.UserSlot(27); + + Assert.IsType(result); + } + + [Fact] + public async Task UserSlot_ShouldNotFetch_WhenSlotIsWrongType() + { + List slots = new() + { + new SlotEntity + { + SlotId = 27, + CreatorId = 1, + Type = SlotType.Developer, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.UserSlot(27); + + Assert.IsType(result); + } + + [Fact] + public async Task UserSlot_ShouldFetch_WhenSlotIsSubLevel() + { + List slots = new() + { + new SlotEntity + { + SlotId = 27, + CreatorId = 1, + SubLevel = true, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots); + SlotsController slotsController = new(db); + slotsController.SetupTestController(); + + IActionResult result = await slotsController.UserSlot(27); + + Assert.IsType(result); + } + #endregion + + #region DeveloperSlot + [Fact] + public async Task DeveloperSlot_ShouldFetch_WhenSlotIdIsValid() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + CreatorId = 1, + InternalSlotId = 25, + Type = SlotType.Developer, + }, + }; + DatabaseContext db = await MockHelper.GetTestDatabase(slots); + SlotsController controller = new(db); + controller.SetupTestController(); + + IActionResult result = await controller.DeveloperSlot(25); + Assert.IsType(result); + } + + [Fact] + public async Task DeveloperSlot_ShouldFetch_WhenSlotIdIsInvalid() + { + DatabaseContext db = await MockHelper.GetTestDatabase(); + SlotsController controller = new(db); + controller.SetupTestController(); + + IActionResult result = await controller.DeveloperSlot(26); + Assert.IsType(result); + } + #endregion + + #region BusiestLevels + + // Rather than trying to mock a singleton + // we just make the unit tests take turns + private static readonly Mutex roomMutex = new(false); + + private static async Task AddRoom(int slotId, SlotType type, params int[] playerIds) + { + await RoomHelper.Rooms.AddAsync(new Room + { + PlayerIds = new List(playerIds), + Slot = new RoomSlot + { + SlotId = slotId, + SlotType = type, + }, + }); + } + + [Fact] + public async Task BusiestLevels_ShouldReturnSlots_OrderedByRoomCount() + { + roomMutex.WaitOne(); + try + { + DatabaseContext db = await MockHelper.GetTestDatabase(new List + { + new() + { + SlotId = 1, + CreatorId = 1, + Type = SlotType.User, + }, + new() + { + SlotId = 2, + CreatorId = 1, + Type = SlotType.User, + }, + new() + { + SlotId = 3, + CreatorId = 1, + Type = SlotType.User, + }, + new() + { + SlotId = 4, + CreatorId = 1, + Type = SlotType.Developer, + InternalSlotId = 10, + }, + }); + SlotsController controller = new(db); + controller.SetupTestController(); + + await AddRoom(1, SlotType.User, 1); + await AddRoom(2, SlotType.User, 2); + await AddRoom(2, SlotType.User, 3); + await AddRoom(3, SlotType.User, 4); + await AddRoom(3, SlotType.User, 5); + await AddRoom(3, SlotType.User, 6); + + await AddRoom(10, SlotType.Developer, 7); + + IActionResult result = await controller.BusiestLevels(); + GenericSlotResponse slotResponse = result.CastTo(); + Assert.Equal(3, slotResponse.Slots.Count); + Assert.IsType(slotResponse.Slots[0]); + Assert.Equal(3, ((GameUserSlot)slotResponse.Slots[0]).SlotId); + Assert.IsType(slotResponse.Slots[1]); + Assert.Equal(2, ((GameUserSlot)slotResponse.Slots[1]).SlotId); + Assert.IsType(slotResponse.Slots[2]); + Assert.Equal(1, ((GameUserSlot)slotResponse.Slots[2]).SlotId); + } + finally + { + roomMutex.ReleaseMutex(); + } + } + + [Fact] + public async Task BusiestLevels_ShouldNotIncludeDeveloperSlots() + { + roomMutex.WaitOne(); + try + { + DatabaseContext db = await MockHelper.GetTestDatabase(new List + { + new() + { + SlotId = 4, + CreatorId = 1, + Type = SlotType.Developer, + InternalSlotId = 10, + }, + }); + SlotsController controller = new(db); + controller.SetupTestController(); + + await AddRoom(10, SlotType.Developer, 1); + + IActionResult result = await controller.BusiestLevels(); + GenericSlotResponse slotResponse = result.CastTo(); + Assert.Empty(slotResponse.Slots); + } + finally + { + roomMutex.ReleaseMutex(); + } + } + + [Fact] + public async Task BusiestLevels_ShouldNotIncludeInvalidSlots() + { + roomMutex.WaitOne(); + try + { + DatabaseContext db = await MockHelper.GetTestDatabase(); + SlotsController controller = new(db); + controller.SetupTestController(); + + await AddRoom(1, SlotType.User, 1); + + IActionResult result = await controller.BusiestLevels(); + GenericSlotResponse slotResponse = result.CastTo(); + Assert.Empty(slotResponse.Slots); + } + finally + { + roomMutex.ReleaseMutex(); + } + } + #endregion + + #region Team Picks + [Fact] + public async Task TeamPick_ShouldOnlyIncludeTeamPickedLevels() + { + DatabaseContext db = await MockHelper.GetTestDatabase(new List + { + new() + { + SlotId = 1, + CreatorId = 1, + TeamPickTime = 1, + }, + new() + { + SlotId = 2, + CreatorId = 1, + TeamPickTime = 0, + }, + }); + SlotsController controller = new(db); + controller.SetupTestController(); + + IActionResult result = await controller.TeamPickedSlots(); + GenericSlotResponse slotResponse = result.CastTo(); + Assert.Single(slotResponse.Slots); + Assert.Equal(1, slotResponse.Slots.OfType().First().SlotId); + } + + [Fact] + public async Task TeamPick_LevelsAreSortedByTimestamp() + { + DatabaseContext db = await MockHelper.GetTestDatabase(new List + { + new() + { + SlotId = 1, + CreatorId = 1, + TeamPickTime = 1, + }, + new() + { + SlotId = 2, + CreatorId = 1, + TeamPickTime = 5, + }, + }); + SlotsController controller = new(db); + controller.SetupTestController(); + + IActionResult result = await controller.TeamPickedSlots(); + + GenericSlotResponse slotResponse = result.CastTo(); + Assert.Equal(2, slotResponse.Slots.Count); + Assert.Equal(2, slotResponse.Slots.OfType().First().SlotId); + Assert.Equal(1, slotResponse.Slots.OfType().Last().SlotId); + } + #endregion +} diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/StatisticsControllerTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/StatisticsControllerTests.cs index 5335b2cf..532264c2 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/StatisticsControllerTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/StatisticsControllerTests.cs @@ -1,187 +1,187 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Mvc; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; - -[Trait("Category", "Unit")] -public class StatisticsControllerTests -{ - [Fact] - public async Task PlanetStats_ShouldReturnCorrectCounts_WhenEmpty() - { - await using DatabaseContext db = await MockHelper.GetTestDatabase(); - - StatisticsController statsController = new(db); - statsController.SetupTestController(); - - const int expectedSlots = 0; - const int expectedTeamPicks = 0; - - IActionResult result = await statsController.PlanetStats(); - - PlanetStatsResponse statsResponse = result.CastTo(); - Assert.Equal(expectedSlots, statsResponse.TotalSlotCount); - Assert.Equal(expectedTeamPicks, statsResponse.TeamPickCount); - } - - [Fact] - public async Task PlanetStats_ShouldReturnCorrectCounts_WhenNotEmpty() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - CreatorId = 1, - }, - new SlotEntity - { - SlotId = 2, - CreatorId = 1, - }, - new SlotEntity - { - SlotId = 3, - CreatorId = 1, - TeamPickTime = 1, - }, - }; - await using DatabaseContext db = await MockHelper.GetTestDatabase(slots); - - StatisticsController statsController = new(db); - statsController.SetupTestController(); - - const int expectedSlots = 3; - const int expectedTeamPicks = 1; - - IActionResult result = await statsController.PlanetStats(); - - PlanetStatsResponse statsResponse = result.CastTo(); - Assert.Equal(expectedSlots, statsResponse.TotalSlotCount); - Assert.Equal(expectedTeamPicks, statsResponse.TeamPickCount); - } - - [Fact] - public async Task PlanetStats_ShouldReturnCorrectCounts_WhenSlotsAreIncompatibleGameVersion() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet2, - }, - new SlotEntity - { - SlotId = 2, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet2, - }, - new SlotEntity - { - SlotId = 3, - CreatorId = 1, - TeamPickTime = 1, - GameVersion = GameVersion.LittleBigPlanet2, - }, - }; - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); - - StatisticsController statsController = new(dbMock); - statsController.SetupTestController(); - - const int expectedSlots = 0; - const int expectedTeamPicks = 0; - - IActionResult result = await statsController.PlanetStats(); - - PlanetStatsResponse statsResponse = result.CastTo(); - Assert.Equal(expectedSlots, statsResponse.TotalSlotCount); - Assert.Equal(expectedTeamPicks, statsResponse.TeamPickCount); - } - - [Fact] - public async Task TotalLevelCount_ShouldReturnCorrectCount_WhenSlotsAreCompatible() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet1, - }, - new SlotEntity - { - SlotId = 2, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet1, - }, - new SlotEntity - { - SlotId = 3, - CreatorId = 1, - TeamPickTime = 1, - GameVersion = GameVersion.LittleBigPlanet1, - }, - }; - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); - - StatisticsController statsController = new(dbMock); - statsController.SetupTestController(); - - const string expectedTotal = "3"; - - IActionResult result = await statsController.TotalLevelCount(); - - string totalSlotsResponse = result.CastTo(); - Assert.Equal(expectedTotal, totalSlotsResponse); - } - - [Fact] - public async Task TotalLevelCount_ShouldReturnCorrectCount_WhenSlotsAreNotCompatible() - { - List slots = new() - { - new SlotEntity - { - SlotId = 1, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet2, - }, - new SlotEntity - { - SlotId = 2, - CreatorId = 1, - GameVersion = GameVersion.LittleBigPlanet2, - }, - new SlotEntity - { - SlotId = 3, - CreatorId = 1, - TeamPickTime = 1, - GameVersion = GameVersion.LittleBigPlanet2, - }, - }; - await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); - - StatisticsController statsController = new(dbMock); - statsController.SetupTestController(); - - const string expectedTotal = "0"; - - IActionResult result = await statsController.TotalLevelCount(); - - string totalSlots = result.CastTo(); - Assert.Equal(expectedTotal, totalSlots); - } +using System.Collections.Generic; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Mvc; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; + +[Trait("Category", "Unit")] +public class StatisticsControllerTests +{ + [Fact] + public async Task PlanetStats_ShouldReturnCorrectCounts_WhenEmpty() + { + await using DatabaseContext db = await MockHelper.GetTestDatabase(); + + StatisticsController statsController = new(db); + statsController.SetupTestController(); + + const int expectedSlots = 0; + const int expectedTeamPicks = 0; + + IActionResult result = await statsController.PlanetStats(); + + PlanetStatsResponse statsResponse = result.CastTo(); + Assert.Equal(expectedSlots, statsResponse.TotalSlotCount); + Assert.Equal(expectedTeamPicks, statsResponse.TeamPickCount); + } + + [Fact] + public async Task PlanetStats_ShouldReturnCorrectCounts_WhenNotEmpty() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + CreatorId = 1, + }, + new SlotEntity + { + SlotId = 2, + CreatorId = 1, + }, + new SlotEntity + { + SlotId = 3, + CreatorId = 1, + TeamPickTime = 1, + }, + }; + await using DatabaseContext db = await MockHelper.GetTestDatabase(slots); + + StatisticsController statsController = new(db); + statsController.SetupTestController(); + + const int expectedSlots = 3; + const int expectedTeamPicks = 1; + + IActionResult result = await statsController.PlanetStats(); + + PlanetStatsResponse statsResponse = result.CastTo(); + Assert.Equal(expectedSlots, statsResponse.TotalSlotCount); + Assert.Equal(expectedTeamPicks, statsResponse.TeamPickCount); + } + + [Fact] + public async Task PlanetStats_ShouldReturnCorrectCounts_WhenSlotsAreIncompatibleGameVersion() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet2, + }, + new SlotEntity + { + SlotId = 2, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet2, + }, + new SlotEntity + { + SlotId = 3, + CreatorId = 1, + TeamPickTime = 1, + GameVersion = GameVersion.LittleBigPlanet2, + }, + }; + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); + + StatisticsController statsController = new(dbMock); + statsController.SetupTestController(); + + const int expectedSlots = 0; + const int expectedTeamPicks = 0; + + IActionResult result = await statsController.PlanetStats(); + + PlanetStatsResponse statsResponse = result.CastTo(); + Assert.Equal(expectedSlots, statsResponse.TotalSlotCount); + Assert.Equal(expectedTeamPicks, statsResponse.TeamPickCount); + } + + [Fact] + public async Task TotalLevelCount_ShouldReturnCorrectCount_WhenSlotsAreCompatible() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet1, + }, + new SlotEntity + { + SlotId = 2, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet1, + }, + new SlotEntity + { + SlotId = 3, + CreatorId = 1, + TeamPickTime = 1, + GameVersion = GameVersion.LittleBigPlanet1, + }, + }; + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); + + StatisticsController statsController = new(dbMock); + statsController.SetupTestController(); + + const string expectedTotal = "3"; + + IActionResult result = await statsController.TotalLevelCount(); + + string totalSlotsResponse = result.CastTo(); + Assert.Equal(expectedTotal, totalSlotsResponse); + } + + [Fact] + public async Task TotalLevelCount_ShouldReturnCorrectCount_WhenSlotsAreNotCompatible() + { + List slots = new() + { + new SlotEntity + { + SlotId = 1, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet2, + }, + new SlotEntity + { + SlotId = 2, + CreatorId = 1, + GameVersion = GameVersion.LittleBigPlanet2, + }, + new SlotEntity + { + SlotId = 3, + CreatorId = 1, + TeamPickTime = 1, + GameVersion = GameVersion.LittleBigPlanet2, + }, + }; + await using DatabaseContext dbMock = await MockHelper.GetTestDatabase(slots); + + StatisticsController statsController = new(dbMock); + statsController.SetupTestController(); + + const string expectedTotal = "0"; + + IActionResult result = await statsController.TotalLevelCount(); + + string totalSlots = result.CastTo(); + Assert.Equal(expectedTotal, totalSlots); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/StatusControllerTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/StatusControllerTests.cs index c2d5c944..bf6f626f 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/StatusControllerTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/StatusControllerTests.cs @@ -1,23 +1,23 @@ -using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using Microsoft.AspNetCore.Mvc; -using Xunit; - -namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; - -[Trait("Category", "Unit")] -public class StatusControllerTests -{ - [Fact] - public void Status_ShouldReturnOk() - { - StatusController statusController = new() - { - ControllerContext = MockHelper.GetMockControllerContext(), - }; - - IActionResult result = statusController.GetStatus(); - - Assert.IsType(result); - } +using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using Microsoft.AspNetCore.Mvc; +using Xunit; + +namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; + +[Trait("Category", "Unit")] +public class StatusControllerTests +{ + [Fact] + public void Status_ShouldReturnOk() + { + StatusController statusController = new() + { + ControllerContext = MockHelper.GetMockControllerContext(), + }; + + IActionResult result = statusController.GetStatus(); + + Assert.IsType(result); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/bin/Debug/net8.0/CoverletSourceRootsMapping_ProjectLighthouse.Tests.GameApiTests b/ProjectLighthouse.Tests.GameApiTests/bin/Debug/net8.0/CoverletSourceRootsMapping_ProjectLighthouse.Tests.GameApiTests new file mode 100644 index 00000000..a17fa206 Binary files /dev/null and b/ProjectLighthouse.Tests.GameApiTests/bin/Debug/net8.0/CoverletSourceRootsMapping_ProjectLighthouse.Tests.GameApiTests differ diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.AssemblyInfo.cs b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.AssemblyInfo.cs new file mode 100644 index 00000000..aafbfead --- /dev/null +++ b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("ProjectLighthouse.Tests.GameApiTests")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+509240db396eac0c69bd7ed8e09b71f630a8de72")] +[assembly: System.Reflection.AssemblyProductAttribute("ProjectLighthouse.Tests.GameApiTests")] +[assembly: System.Reflection.AssemblyTitleAttribute("ProjectLighthouse.Tests.GameApiTests")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.AssemblyInfoInputs.cache b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.AssemblyInfoInputs.cache new file mode 100644 index 00000000..58d9495e --- /dev/null +++ b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +c3ee125177a364af52566ca8c97497fe46e4fe23e03e9c737cf2fd1caaaee833 diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.GeneratedMSBuildEditorConfig.editorconfig b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 00000000..8d48a581 --- /dev/null +++ b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,15 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = ProjectLighthouse.Tests.GameApiTests +build_property.ProjectDir = G:\LBP 3 ONLINE ARCHIVE\LBP 3 ONLINE SITE RECREACTION\ProjectLighthouse\ProjectLighthouse.Tests.GameApiTests\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.assets.cache b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.assets.cache new file mode 100644 index 00000000..0b8af314 Binary files /dev/null and b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.assets.cache differ diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.csproj.AssemblyReference.cache b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.csproj.AssemblyReference.cache new file mode 100644 index 00000000..4e1b4ed8 Binary files /dev/null and b/ProjectLighthouse.Tests.GameApiTests/obj/Debug/net8.0/ProjectLighthouse.Tests.GameApiTests.csproj.AssemblyReference.cache differ diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.dgspec.json b/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.dgspec.json new file mode 100644 index 00000000..fda05e89 --- /dev/null +++ b/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.dgspec.json @@ -0,0 +1,555 @@ +{ + "format": 1, + "restore": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\ProjectLighthouse.Tests.GameApiTests.csproj": {} + }, + "projects": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj", + "projectName": "ProjectLighthouse.Localization", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.GameServer\\ProjectLighthouse.Servers.GameServer.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.GameServer\\ProjectLighthouse.Servers.GameServer.csproj", + "projectName": "LBPUnion.ProjectLighthouse.Servers.GameServer", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.GameServer\\ProjectLighthouse.Servers.GameServer.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.GameServer\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Host.win-x64", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\ProjectLighthouse.Tests.GameApiTests.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\ProjectLighthouse.Tests.GameApiTests.csproj", + "projectName": "ProjectLighthouse.Tests.GameApiTests", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\ProjectLighthouse.Tests.GameApiTests.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.GameServer\\ProjectLighthouse.Servers.GameServer.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.GameServer\\ProjectLighthouse.Servers.GameServer.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Mvc.Testing": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.14.1, )" + }, + "coverlet.collector": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[6.0.4, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.1.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "projectName": "LBPUnion.ProjectLighthouse.Tests", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Mvc.Testing": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Sqlite": { + "target": "Package", + "version": "[8.0.6, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.14.1, )" + }, + "Moq": { + "target": "Package", + "version": "[4.20.72, )" + }, + "coverlet.collector": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[6.0.4, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.1.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj", + "projectName": "LBPUnion.ProjectLighthouse", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "BCrypt.Net-Next": { + "target": "Package", + "version": "[4.0.3, )" + }, + "BouncyCastle.Cryptography": { + "target": "Package", + "version": "[2.6.1, )" + }, + "Discord.Net.Webhook": { + "target": "Package", + "version": "[3.17.4, )" + }, + "DistributedLock.MySql": { + "target": "Package", + "version": "[1.0.2, )" + }, + "GitInfo": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.5.0, )" + }, + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Pfim": { + "target": "Package", + "version": "[0.11.3, )" + }, + "Pomelo.EntityFrameworkCore.MySql": { + "target": "Package", + "version": "[8.0.2, )" + }, + "Redis.OM": { + "target": "Package", + "version": "[1.0.1, )" + }, + "SharpZipLib": { + "target": "Package", + "version": "[1.4.2, )" + }, + "SixLabors.ImageSharp": { + "target": "Package", + "version": "[3.1.10, )" + }, + "Swashbuckle.AspNetCore": { + "target": "Package", + "version": "[9.0.3, )" + }, + "YamlDotNet": { + "target": "Package", + "version": "[16.3.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.g.props b/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.g.props new file mode 100644 index 00000000..553d7b2b --- /dev/null +++ b/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.g.props @@ -0,0 +1,30 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Faisa\.nuget\packages\ + PackageReference + 6.14.0 + + + + + + + + + + + + + + + + C:\Users\Faisa\.nuget\packages\xunit.analyzers\1.18.0 + C:\Users\Faisa\.nuget\packages\microsoft.extensions.apidescription.server\8.0.0 + C:\Users\Faisa\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3 + + \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.g.targets b/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.g.targets new file mode 100644 index 00000000..954eb47a --- /dev/null +++ b/ProjectLighthouse.Tests.GameApiTests/obj/ProjectLighthouse.Tests.GameApiTests.csproj.nuget.g.targets @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/project.assets.json b/ProjectLighthouse.Tests.GameApiTests/obj/project.assets.json new file mode 100644 index 00000000..0bbac01d --- /dev/null +++ b/ProjectLighthouse.Tests.GameApiTests/obj/project.assets.json @@ -0,0 +1,5944 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "BCrypt.Net-Next/4.0.3": { + "type": "package", + "compile": { + "lib/net6.0/BCrypt.Net-Next.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/BCrypt.Net-Next.dll": { + "related": ".xml" + } + } + }, + "BouncyCastle.Cryptography/2.6.1": { + "type": "package", + "compile": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "related": ".xml" + } + } + }, + "Castle.Core/5.1.1": { + "type": "package", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + }, + "compile": { + "lib/net6.0/Castle.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Castle.Core.dll": { + "related": ".xml" + } + } + }, + "coverlet.collector/6.0.4": { + "type": "package", + "build": { + "build/netstandard2.0/coverlet.collector.targets": {} + } + }, + "Discord.Net.Core/3.17.4": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "13.0.3", + "System.Collections.Immutable": "8.0.0", + "System.Interactive.Async": "6.0.1", + "System.ValueTuple": "4.5.0" + }, + "compile": { + "lib/net8.0/Discord.Net.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Core.dll": { + "related": ".xml" + } + } + }, + "Discord.Net.Rest/3.17.4": { + "type": "package", + "dependencies": { + "Discord.Net.Core": "3.17.4" + }, + "compile": { + "lib/net8.0/Discord.Net.Rest.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Rest.dll": { + "related": ".xml" + } + } + }, + "Discord.Net.Webhook/3.17.4": { + "type": "package", + "dependencies": { + "Discord.Net.Core": "3.17.4", + "Discord.Net.Rest": "3.17.4" + }, + "compile": { + "lib/net8.0/Discord.Net.Webhook.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Webhook.dll": { + "related": ".xml" + } + } + }, + "DistributedLock.Core/1.0.6": { + "type": "package", + "compile": { + "lib/net8.0/DistributedLock.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/DistributedLock.Core.dll": { + "related": ".xml" + } + } + }, + "DistributedLock.MySql/1.0.2": { + "type": "package", + "dependencies": { + "DistributedLock.Core": "[1.0.6, 1.1.0)", + "MySqlConnector": "2.3.5" + }, + "compile": { + "lib/netstandard2.1/DistributedLock.MySql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/DistributedLock.MySql.dll": { + "related": ".xml" + } + } + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Humanizer.dll": { + "related": ".xml" + } + } + }, + "JetBrains.Annotations/2024.3.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/JetBrains.Annotations.dll": { + "related": ".deps.json;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/JetBrains.Annotations.dll": { + "related": ".deps.json;.xml" + } + } + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "8.0.18" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.AspNetCore.Mvc.Testing/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.TestHost": "8.0.18", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Extensions.Hosting": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ], + "build": { + "buildTransitive/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets": {} + } + }, + "Microsoft.AspNetCore.TestHost/8.0.18": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "type": "package", + "build": { + "build/_._": {} + } + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "[4.5.0]", + "Microsoft.CodeAnalysis.Common": "[4.5.0]", + "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.CodeAnalysis.Common": "[4.5.0]", + "System.Composition": "6.0.0", + "System.IO.Pipelines": "6.0.3", + "System.Threading.Channels": "6.0.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeCoverage/17.14.1": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "runtime": { + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "build": { + "build/netstandard2.0/Microsoft.CodeCoverage.props": {}, + "build/netstandard2.0/Microsoft.CodeCoverage.targets": {} + } + }, + "Microsoft.Data.Sqlite.Core/8.0.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.core": "2.1.6" + }, + "compile": { + "lib/net8.0/Microsoft.Data.Sqlite.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Data.Sqlite.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.18", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.18", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.18": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.18": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Design/8.0.18": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.5.0", + "Microsoft.EntityFrameworkCore.Relational": "8.0.18", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Mono.TextTemplating": "2.2.1" + }, + "compile": { + "lib/net8.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll": { + "related": ".xml" + } + }, + "build": { + "build/net8.0/Microsoft.EntityFrameworkCore.Design.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.18", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Sqlite/8.0.6": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Sqlite.Core": "8.0.6", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.6" + }, + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Sqlite.Core/8.0.6": { + "type": "package", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "8.0.6", + "Microsoft.EntityFrameworkCore.Relational": "8.0.6", + "Microsoft.Extensions.DependencyModel": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.ApiDescription.Server/8.0.0": { + "type": "package", + "build": { + "build/_._": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/_._": {} + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Binder/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets": {} + } + }, + "Microsoft.Extensions.Configuration.CommandLine/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.FileExtensions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Json/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.UserSecrets/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.props": {}, + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.targets": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Diagnostics/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileProviders.Physical/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileSystemGlobbing/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Hosting/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.CommandLine": "8.0.0", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Configuration.UserSecrets": "8.0.1", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Logging.Console": "8.0.1", + "Microsoft.Extensions.Logging.Debug": "8.0.1", + "Microsoft.Extensions.Logging.EventLog": "8.0.1", + "Microsoft.Extensions.Logging.EventSource": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Hosting.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Logging.Configuration/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Console/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Debug/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.EventLog/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "System.Diagnostics.EventLog": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.EventSource/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.NET.Test.Sdk/17.14.1": { + "type": "package", + "dependencies": { + "Microsoft.CodeCoverage": "17.14.1", + "Microsoft.TestPlatform.TestHost": "17.14.1" + }, + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + }, + "build": { + "build/net8.0/Microsoft.NET.Test.Sdk.props": {}, + "build/net8.0/Microsoft.NET.Test.Sdk.targets": {} + } + }, + "Microsoft.OpenApi/1.6.23": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + } + }, + "Microsoft.TestPlatform.ObjectModel/17.14.1": { + "type": "package", + "dependencies": { + "System.Reflection.Metadata": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "runtime": { + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "resource": { + "lib/net8.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.TestPlatform.TestHost/17.14.1": { + "type": "package", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.14.1", + "Newtonsoft.Json": "13.0.3" + }, + "compile": { + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/net8.0/testhost.dll": { + "related": ".deps.json" + } + }, + "runtime": { + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/net8.0/testhost.dll": { + "related": ".deps.json" + } + }, + "resource": { + "lib/net8.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "build/net8.0/Microsoft.TestPlatform.TestHost.props": {}, + "build/net8.0/Microsoft.TestPlatform.TestHost.targets": {} + } + }, + "Mono.TextTemplating/2.2.1": { + "type": "package", + "dependencies": { + "System.CodeDom": "4.4.0" + }, + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/Mono.TextTemplating.dll": {} + } + }, + "Moq/4.20.72": { + "type": "package", + "dependencies": { + "Castle.Core": "5.1.1" + }, + "compile": { + "lib/net6.0/Moq.dll": {} + }, + "runtime": { + "lib/net6.0/Moq.dll": {} + } + }, + "MySqlConnector/2.3.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "7.0.1" + }, + "compile": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "compile": { + "lib/net6.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + } + }, + "Pfim/0.11.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/Pfim.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Pfim.dll": {} + } + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "5.0.1" + }, + "compile": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "related": ".xml" + } + } + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "[8.0.2, 8.0.999]", + "MySqlConnector": "2.3.5" + }, + "compile": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "related": ".xml" + } + } + }, + "Redis.OM/1.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Newtonsoft.Json": "13.0.1", + "StackExchange.Redis": "2.7.17", + "System.Text.Json": "8.0.5", + "Ulid": "1.2.6" + }, + "compile": { + "lib/netstandard2.0/Redis.OM.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Redis.OM.dll": { + "related": ".xml" + } + } + }, + "SharpZipLib/1.4.2": { + "type": "package", + "compile": { + "lib/net6.0/ICSharpCode.SharpZipLib.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net6.0/ICSharpCode.SharpZipLib.dll": { + "related": ".pdb;.xml" + } + } + }, + "SixLabors.ImageSharp/3.1.10": { + "type": "package", + "compile": { + "lib/net6.0/SixLabors.ImageSharp.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/SixLabors.ImageSharp.dll": { + "related": ".xml" + } + }, + "build": { + "build/_._": {} + } + }, + "SQLitePCLRaw.bundle_e_sqlite3/2.1.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.6", + "SQLitePCLRaw.provider.e_sqlite3": "2.1.6" + }, + "compile": { + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll": {} + }, + "runtime": { + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll": {} + } + }, + "SQLitePCLRaw.core/2.1.6": { + "type": "package", + "dependencies": { + "System.Memory": "4.5.3" + }, + "compile": { + "lib/netstandard2.0/SQLitePCLRaw.core.dll": {} + }, + "runtime": { + "lib/netstandard2.0/SQLitePCLRaw.core.dll": {} + } + }, + "SQLitePCLRaw.lib.e_sqlite3/2.1.6": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + }, + "build": { + "buildTransitive/net8.0/SQLitePCLRaw.lib.e_sqlite3.targets": {} + }, + "runtimeTargets": { + "runtimes/browser-wasm/nativeassets/net8.0/e_sqlite3.a": { + "assetType": "native", + "rid": "browser-wasm" + }, + "runtimes/linux-arm/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-arm" + }, + "runtimes/linux-arm64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-arm64" + }, + "runtimes/linux-armel/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-armel" + }, + "runtimes/linux-mips64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-mips64" + }, + "runtimes/linux-musl-arm/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-arm" + }, + "runtimes/linux-musl-arm64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-arm64" + }, + "runtimes/linux-musl-x64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-x64" + }, + "runtimes/linux-ppc64le/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-ppc64le" + }, + "runtimes/linux-s390x/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-s390x" + }, + "runtimes/linux-x64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-x64" + }, + "runtimes/linux-x86/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-x86" + }, + "runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "maccatalyst-arm64" + }, + "runtimes/maccatalyst-x64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "maccatalyst-x64" + }, + "runtimes/osx-arm64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "osx-arm64" + }, + "runtimes/osx-x64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "osx-x64" + }, + "runtimes/win-arm/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-arm" + }, + "runtimes/win-arm64/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-arm64" + }, + "runtimes/win-x64/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-x64" + }, + "runtimes/win-x86/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-x86" + } + } + }, + "SQLitePCLRaw.provider.e_sqlite3/2.1.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.core": "2.1.6" + }, + "compile": { + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll": {} + }, + "runtime": { + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll": {} + } + }, + "StackExchange.Redis/2.7.17": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Pipelines.Sockets.Unofficial": "2.2.8" + }, + "compile": { + "lib/net6.0/StackExchange.Redis.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/StackExchange.Redis.dll": { + "related": ".xml" + } + } + }, + "Swashbuckle.AspNetCore/9.0.3": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.ApiDescription.Server": "8.0.0", + "Swashbuckle.AspNetCore.Swagger": "9.0.3", + "Swashbuckle.AspNetCore.SwaggerGen": "9.0.3", + "Swashbuckle.AspNetCore.SwaggerUI": "9.0.3" + }, + "build": { + "build/_._": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/_._": {} + } + }, + "Swashbuckle.AspNetCore.Swagger/9.0.3": { + "type": "package", + "dependencies": { + "Microsoft.OpenApi": "1.6.23" + }, + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/9.0.3": { + "type": "package", + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "9.0.3" + }, + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/9.0.3": { + "type": "package", + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "System.CodeDom/4.4.0": { + "type": "package", + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.CodeDom.dll": {} + } + }, + "System.Collections.Immutable/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Collections.Immutable.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Collections.Immutable.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Composition/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Convention": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0", + "System.Composition.TypedParts": "6.0.0" + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.AttributedModel/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.AttributedModel.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Convention/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Convention.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Hosting/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.Runtime": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Hosting.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Runtime/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Runtime.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.TypedParts/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.TypedParts.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Diagnostics.EventLog/8.0.1": { + "type": "package", + "compile": { + "lib/net8.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll": { + "assetType": "runtime", + "rid": "win" + }, + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Interactive.Async/6.0.1": { + "type": "package", + "dependencies": { + "System.Linq.Async": "6.0.1" + }, + "compile": { + "lib/net6.0/System.Interactive.Async.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Interactive.Async.dll": { + "related": ".xml" + } + } + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Linq.Async/6.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0" + }, + "compile": { + "ref/net6.0/System.Linq.Async.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Linq.Async.dll": { + "related": ".xml" + } + } + }, + "System.Memory/4.5.3": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, + "System.Reflection.Metadata/8.0.0": { + "type": "package", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + }, + "compile": { + "lib/net8.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Text.Encoding.CodePages/6.0.0": { + "type": "package", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Text.Encoding.CodePages.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Text.Json/8.0.5": { + "type": "package", + "compile": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/System.Text.Json.targets": {} + } + }, + "System.Threading.Channels/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.ValueTuple/4.5.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, + "Ulid/1.2.6": { + "type": "package", + "compile": { + "lib/net5.0/Ulid.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/Ulid.dll": { + "related": ".xml" + } + } + }, + "xunit/2.9.3": { + "type": "package", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.abstractions/2.0.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + } + }, + "xunit.analyzers/1.18.0": { + "type": "package" + }, + "xunit.assert/2.9.3": { + "type": "package", + "compile": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + } + }, + "xunit.core/2.9.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + }, + "build": { + "build/xunit.core.props": {}, + "build/xunit.core.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/xunit.core.props": {}, + "buildMultiTargeting/xunit.core.targets": {} + } + }, + "xunit.extensibility.core/2.9.3": { + "type": "package", + "dependencies": { + "xunit.abstractions": "2.0.3" + }, + "compile": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + } + }, + "xunit.extensibility.execution/2.9.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + }, + "compile": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + } + }, + "xunit.runner.visualstudio/3.1.1": { + "type": "package", + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + }, + "build": { + "build/net8.0/xunit.runner.visualstudio.props": {} + } + }, + "YamlDotNet/16.3.0": { + "type": "package", + "compile": { + "lib/net8.0/YamlDotNet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/YamlDotNet.dll": { + "related": ".xml" + } + } + }, + "LBPUnion.ProjectLighthouse/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "BCrypt.Net-Next": "4.0.3", + "BouncyCastle.Cryptography": "2.6.1", + "Discord.Net.Webhook": "3.17.4", + "DistributedLock.MySql": "1.0.2", + "JetBrains.Annotations": "2024.3.0", + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "8.0.18", + "Microsoft.EntityFrameworkCore": "8.0.18", + "Pfim": "0.11.3", + "Pomelo.EntityFrameworkCore.MySql": "8.0.2", + "ProjectLighthouse.Localization": "1.0.0", + "Redis.OM": "1.0.1", + "SharpZipLib": "1.4.2", + "SixLabors.ImageSharp": "3.1.10", + "Swashbuckle.AspNetCore": "9.0.3", + "YamlDotNet": "16.3.0" + }, + "compile": { + "bin/placeholder/LBPUnion.ProjectLighthouse.dll": {} + }, + "runtime": { + "bin/placeholder/LBPUnion.ProjectLighthouse.dll": {} + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "LBPUnion.ProjectLighthouse.Servers.GameServer/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "LBPUnion.ProjectLighthouse": "1.0.0" + }, + "compile": { + "bin/placeholder/LBPUnion.ProjectLighthouse.Servers.GameServer.dll": {} + }, + "runtime": { + "bin/placeholder/LBPUnion.ProjectLighthouse.Servers.GameServer.dll": {} + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "LBPUnion.ProjectLighthouse.Tests/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "JetBrains.Annotations": "2024.3.0", + "LBPUnion.ProjectLighthouse": "1.0.0", + "Microsoft.AspNetCore.Mvc.Testing": "8.0.18", + "Microsoft.EntityFrameworkCore.Sqlite": "8.0.6", + "Microsoft.NET.Test.Sdk": "17.14.1", + "Moq": "4.20.72", + "xunit": "2.9.3" + }, + "compile": { + "bin/placeholder/LBPUnion.ProjectLighthouse.Tests.dll": {} + }, + "runtime": { + "bin/placeholder/LBPUnion.ProjectLighthouse.Tests.dll": {} + } + }, + "ProjectLighthouse.Localization/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "compile": { + "bin/placeholder/ProjectLighthouse.Localization.dll": {} + }, + "runtime": { + "bin/placeholder/ProjectLighthouse.Localization.dll": {} + } + } + } + }, + "libraries": { + "BCrypt.Net-Next/4.0.3": { + "sha512": "W+U9WvmZQgi5cX6FS5GDtDoPzUCV4LkBLkywq/kRZhuDwcbavOzcDAr3LXJFqHUi952Yj3LEYoWW0jbEUQChsA==", + "type": "package", + "path": "bcrypt.net-next/4.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "bcrypt.net-next.4.0.3.nupkg.sha512", + "bcrypt.net-next.nuspec", + "ico.png", + "lib/net20/BCrypt.Net-Next.dll", + "lib/net20/BCrypt.Net-Next.xml", + "lib/net35/BCrypt.Net-Next.dll", + "lib/net35/BCrypt.Net-Next.xml", + "lib/net462/BCrypt.Net-Next.dll", + "lib/net462/BCrypt.Net-Next.xml", + "lib/net472/BCrypt.Net-Next.dll", + "lib/net472/BCrypt.Net-Next.xml", + "lib/net48/BCrypt.Net-Next.dll", + "lib/net48/BCrypt.Net-Next.xml", + "lib/net5.0/BCrypt.Net-Next.dll", + "lib/net5.0/BCrypt.Net-Next.xml", + "lib/net6.0/BCrypt.Net-Next.dll", + "lib/net6.0/BCrypt.Net-Next.xml", + "lib/netstandard2.0/BCrypt.Net-Next.dll", + "lib/netstandard2.0/BCrypt.Net-Next.xml", + "lib/netstandard2.1/BCrypt.Net-Next.dll", + "lib/netstandard2.1/BCrypt.Net-Next.xml", + "readme.md" + ] + }, + "BouncyCastle.Cryptography/2.6.1": { + "sha512": "vZsG2YILhthgRqO+ZVgRff4ZFKKTl0v7kqaVBLCtRvpREhfBP33pcWrdA3PRYgWuFL1RxiUFvjMUHTdBZlJcoA==", + "type": "package", + "path": "bouncycastle.cryptography/2.6.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "README.md", + "bouncycastle.cryptography.2.6.1.nupkg.sha512", + "bouncycastle.cryptography.nuspec", + "lib/net461/BouncyCastle.Cryptography.dll", + "lib/net461/BouncyCastle.Cryptography.xml", + "lib/net6.0/BouncyCastle.Cryptography.dll", + "lib/net6.0/BouncyCastle.Cryptography.xml", + "lib/netstandard2.0/BouncyCastle.Cryptography.dll", + "lib/netstandard2.0/BouncyCastle.Cryptography.xml", + "packageIcon.png" + ] + }, + "Castle.Core/5.1.1": { + "sha512": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "type": "package", + "path": "castle.core/5.1.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ASL - Apache Software Foundation License.txt", + "CHANGELOG.md", + "LICENSE", + "castle-logo.png", + "castle.core.5.1.1.nupkg.sha512", + "castle.core.nuspec", + "lib/net462/Castle.Core.dll", + "lib/net462/Castle.Core.xml", + "lib/net6.0/Castle.Core.dll", + "lib/net6.0/Castle.Core.xml", + "lib/netstandard2.0/Castle.Core.dll", + "lib/netstandard2.0/Castle.Core.xml", + "lib/netstandard2.1/Castle.Core.dll", + "lib/netstandard2.1/Castle.Core.xml", + "readme.txt" + ] + }, + "coverlet.collector/6.0.4": { + "sha512": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg==", + "type": "package", + "path": "coverlet.collector/6.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "VSTestIntegration.md", + "build/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyModel.dll", + "build/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "build/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "build/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "build/netstandard2.0/Mono.Cecil.Mdb.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/Newtonsoft.Json.dll", + "build/netstandard2.0/NuGet.Frameworks.dll", + "build/netstandard2.0/NuGet.Versioning.dll", + "build/netstandard2.0/System.Buffers.dll", + "build/netstandard2.0/System.Collections.Immutable.dll", + "build/netstandard2.0/System.Memory.dll", + "build/netstandard2.0/System.Numerics.Vectors.dll", + "build/netstandard2.0/System.Reflection.Metadata.dll", + "build/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", + "build/netstandard2.0/System.Text.Encodings.Web.dll", + "build/netstandard2.0/System.Text.Json.dll", + "build/netstandard2.0/System.Threading.Tasks.Extensions.dll", + "build/netstandard2.0/coverlet.collector.deps.json", + "build/netstandard2.0/coverlet.collector.dll", + "build/netstandard2.0/coverlet.collector.pdb", + "build/netstandard2.0/coverlet.collector.targets", + "build/netstandard2.0/coverlet.core.dll", + "build/netstandard2.0/coverlet.core.pdb", + "build/netstandard2.0/coverlet.core.xml", + "build/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "coverlet-icon.png", + "coverlet.collector.6.0.4.nupkg.sha512", + "coverlet.collector.nuspec" + ] + }, + "Discord.Net.Core/3.17.4": { + "sha512": "tMCilkXI6Gqqn6ipyysyuv3qHUNY1LNUbEpRHF6Q5jqW0Tckvu/EuZ2r/1xJatxvC8EoohIA05Dq3N3rrRlxBQ==", + "type": "package", + "path": "discord.net.core/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.core.3.17.4.nupkg.sha512", + "discord.net.core.nuspec", + "lib/net461/Discord.Net.Core.dll", + "lib/net461/Discord.Net.Core.xml", + "lib/net5.0/Discord.Net.Core.dll", + "lib/net5.0/Discord.Net.Core.xml", + "lib/net6.0/Discord.Net.Core.dll", + "lib/net6.0/Discord.Net.Core.xml", + "lib/net8.0/Discord.Net.Core.dll", + "lib/net8.0/Discord.Net.Core.xml", + "lib/net9.0/Discord.Net.Core.dll", + "lib/net9.0/Discord.Net.Core.xml", + "lib/netstandard2.0/Discord.Net.Core.dll", + "lib/netstandard2.0/Discord.Net.Core.xml", + "lib/netstandard2.1/Discord.Net.Core.dll", + "lib/netstandard2.1/Discord.Net.Core.xml" + ] + }, + "Discord.Net.Rest/3.17.4": { + "sha512": "j3YRvFY9Rd0cCPQpRbTb12fGdcO41Cg0haKSZ/6fqHy1WEzZcKRpU8wC9a9e6yIwc5Gi0jrqYAQ/jvXartOqlg==", + "type": "package", + "path": "discord.net.rest/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.rest.3.17.4.nupkg.sha512", + "discord.net.rest.nuspec", + "lib/net461/Discord.Net.Rest.dll", + "lib/net461/Discord.Net.Rest.xml", + "lib/net5.0/Discord.Net.Rest.dll", + "lib/net5.0/Discord.Net.Rest.xml", + "lib/net6.0/Discord.Net.Rest.dll", + "lib/net6.0/Discord.Net.Rest.xml", + "lib/net8.0/Discord.Net.Rest.dll", + "lib/net8.0/Discord.Net.Rest.xml", + "lib/net9.0/Discord.Net.Rest.dll", + "lib/net9.0/Discord.Net.Rest.xml", + "lib/netstandard2.0/Discord.Net.Rest.dll", + "lib/netstandard2.0/Discord.Net.Rest.xml", + "lib/netstandard2.1/Discord.Net.Rest.dll", + "lib/netstandard2.1/Discord.Net.Rest.xml" + ] + }, + "Discord.Net.Webhook/3.17.4": { + "sha512": "NGr75To1uxeyMEPsR4lo5+m/d2ALGzsgAUBCv/27tBU5G0Ss9fjaemPumcQtXO1uJSBQallxreWsn/LfMQHc5A==", + "type": "package", + "path": "discord.net.webhook/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.webhook.3.17.4.nupkg.sha512", + "discord.net.webhook.nuspec", + "lib/net5.0/Discord.Net.Webhook.dll", + "lib/net5.0/Discord.Net.Webhook.xml", + "lib/net6.0/Discord.Net.Webhook.dll", + "lib/net6.0/Discord.Net.Webhook.xml", + "lib/net8.0/Discord.Net.Webhook.dll", + "lib/net8.0/Discord.Net.Webhook.xml", + "lib/net9.0/Discord.Net.Webhook.dll", + "lib/net9.0/Discord.Net.Webhook.xml", + "lib/netstandard2.0/Discord.Net.Webhook.dll", + "lib/netstandard2.0/Discord.Net.Webhook.xml", + "lib/netstandard2.1/Discord.Net.Webhook.dll", + "lib/netstandard2.1/Discord.Net.Webhook.xml" + ] + }, + "DistributedLock.Core/1.0.6": { + "sha512": "WFAz6x82K+4uiByDk1Qz2lmcm2FrOyCzZjNauzbLeHPou6Ur2C9Ig7d6vxP7/kKvzSrrQoW6k3pUOOcikb9Jgw==", + "type": "package", + "path": "distributedlock.core/1.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "distributedlock.core.1.0.6.nupkg.sha512", + "distributedlock.core.nuspec", + "lib/net462/DistributedLock.Core.dll", + "lib/net462/DistributedLock.Core.xml", + "lib/net8.0/DistributedLock.Core.dll", + "lib/net8.0/DistributedLock.Core.xml", + "lib/netstandard2.0/DistributedLock.Core.dll", + "lib/netstandard2.0/DistributedLock.Core.xml", + "lib/netstandard2.1/DistributedLock.Core.dll", + "lib/netstandard2.1/DistributedLock.Core.xml", + "package.readme.md" + ] + }, + "DistributedLock.MySql/1.0.2": { + "sha512": "1FIaBNM1/EmFeKc9qFNGf+8D/g3ZyBXoGYp0j+DQqKdfJJ500m45zYR4PWFsy1RYUL3E8VNnSvGpxUhB6OKrww==", + "type": "package", + "path": "distributedlock.mysql/1.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "distributedlock.mysql.1.0.2.nupkg.sha512", + "distributedlock.mysql.nuspec", + "lib/net462/DistributedLock.MySql.dll", + "lib/net462/DistributedLock.MySql.xml", + "lib/netstandard2.0/DistributedLock.MySql.dll", + "lib/netstandard2.0/DistributedLock.MySql.xml", + "lib/netstandard2.1/DistributedLock.MySql.dll", + "lib/netstandard2.1/DistributedLock.MySql.xml", + "package.readme.md" + ] + }, + "Humanizer.Core/2.14.1": { + "sha512": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "type": "package", + "path": "humanizer.core/2.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "humanizer.core.2.14.1.nupkg.sha512", + "humanizer.core.nuspec", + "lib/net6.0/Humanizer.dll", + "lib/net6.0/Humanizer.xml", + "lib/netstandard1.0/Humanizer.dll", + "lib/netstandard1.0/Humanizer.xml", + "lib/netstandard2.0/Humanizer.dll", + "lib/netstandard2.0/Humanizer.xml", + "logo.png" + ] + }, + "JetBrains.Annotations/2024.3.0": { + "sha512": "ox5pkeLQXjvJdyAB4b2sBYAlqZGLh3PjSnP1bQNVx72ONuTJ9+34/+Rq91Fc0dG29XG9RgZur9+NcP4riihTug==", + "type": "package", + "path": "jetbrains.annotations/2024.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "jetbrains.annotations.2024.3.0.nupkg.sha512", + "jetbrains.annotations.nuspec", + "lib/net20/JetBrains.Annotations.dll", + "lib/net20/JetBrains.Annotations.xml", + "lib/netstandard1.0/JetBrains.Annotations.deps.json", + "lib/netstandard1.0/JetBrains.Annotations.dll", + "lib/netstandard1.0/JetBrains.Annotations.xml", + "lib/netstandard2.0/JetBrains.Annotations.deps.json", + "lib/netstandard2.0/JetBrains.Annotations.dll", + "lib/netstandard2.0/JetBrains.Annotations.xml", + "lib/portable40-net40+sl5+win8+wp8+wpa81/JetBrains.Annotations.dll", + "lib/portable40-net40+sl5+win8+wp8+wpa81/JetBrains.Annotations.xml", + "readme.md" + ] + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore/8.0.18": { + "sha512": "H4GKNR5eGHpK5yovhsO3BvOfzKlSv8DVclVYi1JLN5wfei+HAbskbi9nMGGamgtqgVXX1RAAduGKGQWlWGlfKw==", + "type": "package", + "path": "microsoft.aspnetcore.diagnostics.entityframeworkcore/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.xml", + "microsoft.aspnetcore.diagnostics.entityframeworkcore.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.diagnostics.entityframeworkcore.nuspec" + ] + }, + "Microsoft.AspNetCore.Mvc.Testing/8.0.18": { + "sha512": "QfMWUySY4rtLkzdqT/i431ZA+iydEc1pEZoFDpkpu8U9Lc6RlOoZvK4oBU47G+TxqNcHz4omf0JrCqpfL1wq6g==", + "type": "package", + "path": "microsoft.aspnetcore.mvc.testing/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "build/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets", + "buildTransitive/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets", + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll", + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.xml", + "microsoft.aspnetcore.mvc.testing.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.mvc.testing.nuspec", + "tasks/netstandard2.0/Microsoft.AspNetCore.Mvc.Testing.Tasks.dll" + ] + }, + "Microsoft.AspNetCore.TestHost/8.0.18": { + "sha512": "ofyg3Go9hNptZkZt6MXS2W8LTe+ayceXOebf3XTxywGHn9rbtg/cwXjwcMZ3e6On2p1eSEBtHUmdi6YWplXuSQ==", + "type": "package", + "path": "microsoft.aspnetcore.testhost/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll", + "lib/net8.0/Microsoft.AspNetCore.TestHost.xml", + "microsoft.aspnetcore.testhost.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.testhost.nuspec" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "sha512": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", + "buildTransitive/net462/_._", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "sha512": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==", + "type": "package", + "path": "microsoft.codeanalysis.analyzers/3.3.3", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "analyzers/dotnet/cs/Microsoft.CodeAnalysis.Analyzers.dll", + "analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.Analyzers.dll", + "analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/Microsoft.CodeAnalysis.Analyzers.dll", + "analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll", + "analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "build/Microsoft.CodeAnalysis.Analyzers.props", + "build/Microsoft.CodeAnalysis.Analyzers.targets", + "build/config/analysislevel_2_9_8_all.editorconfig", + "build/config/analysislevel_2_9_8_default.editorconfig", + "build/config/analysislevel_2_9_8_minimum.editorconfig", + "build/config/analysislevel_2_9_8_none.editorconfig", + "build/config/analysislevel_2_9_8_recommended.editorconfig", + "build/config/analysislevel_3_3_all.editorconfig", + "build/config/analysislevel_3_3_default.editorconfig", + "build/config/analysislevel_3_3_minimum.editorconfig", + "build/config/analysislevel_3_3_none.editorconfig", + "build/config/analysislevel_3_3_recommended.editorconfig", + "build/config/analysislevel_3_all.editorconfig", + "build/config/analysislevel_3_default.editorconfig", + "build/config/analysislevel_3_minimum.editorconfig", + "build/config/analysislevel_3_none.editorconfig", + "build/config/analysislevel_3_recommended.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_all.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_default.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_minimum.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_none.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_recommended.editorconfig", + "build/config/analysislevelcorrectness_3_3_all.editorconfig", + "build/config/analysislevelcorrectness_3_3_default.editorconfig", + "build/config/analysislevelcorrectness_3_3_minimum.editorconfig", + "build/config/analysislevelcorrectness_3_3_none.editorconfig", + "build/config/analysislevelcorrectness_3_3_recommended.editorconfig", + "build/config/analysislevelcorrectness_3_all.editorconfig", + "build/config/analysislevelcorrectness_3_default.editorconfig", + "build/config/analysislevelcorrectness_3_minimum.editorconfig", + "build/config/analysislevelcorrectness_3_none.editorconfig", + "build/config/analysislevelcorrectness_3_recommended.editorconfig", + "build/config/analysislevellibrary_2_9_8_all.editorconfig", + "build/config/analysislevellibrary_2_9_8_default.editorconfig", + "build/config/analysislevellibrary_2_9_8_minimum.editorconfig", + "build/config/analysislevellibrary_2_9_8_none.editorconfig", + "build/config/analysislevellibrary_2_9_8_recommended.editorconfig", + "build/config/analysislevellibrary_3_3_all.editorconfig", + "build/config/analysislevellibrary_3_3_default.editorconfig", + "build/config/analysislevellibrary_3_3_minimum.editorconfig", + "build/config/analysislevellibrary_3_3_none.editorconfig", + "build/config/analysislevellibrary_3_3_recommended.editorconfig", + "build/config/analysislevellibrary_3_all.editorconfig", + "build/config/analysislevellibrary_3_default.editorconfig", + "build/config/analysislevellibrary_3_minimum.editorconfig", + "build/config/analysislevellibrary_3_none.editorconfig", + "build/config/analysislevellibrary_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_recommended.editorconfig", + "documentation/Analyzer Configuration.md", + "documentation/Microsoft.CodeAnalysis.Analyzers.md", + "documentation/Microsoft.CodeAnalysis.Analyzers.sarif", + "editorconfig/AllRulesDefault/.editorconfig", + "editorconfig/AllRulesDisabled/.editorconfig", + "editorconfig/AllRulesEnabled/.editorconfig", + "editorconfig/CorrectnessRulesDefault/.editorconfig", + "editorconfig/CorrectnessRulesEnabled/.editorconfig", + "editorconfig/DataflowRulesDefault/.editorconfig", + "editorconfig/DataflowRulesEnabled/.editorconfig", + "editorconfig/LibraryRulesDefault/.editorconfig", + "editorconfig/LibraryRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDesignRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDesignRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDocumentationRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDocumentationRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisLocalizationRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisLocalizationRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisPerformanceRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisPerformanceRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled/.editorconfig", + "editorconfig/PortedFromFxCopRulesDefault/.editorconfig", + "editorconfig/PortedFromFxCopRulesEnabled/.editorconfig", + "microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", + "microsoft.codeanalysis.analyzers.nuspec", + "rulesets/AllRulesDefault.ruleset", + "rulesets/AllRulesDisabled.ruleset", + "rulesets/AllRulesEnabled.ruleset", + "rulesets/CorrectnessRulesDefault.ruleset", + "rulesets/CorrectnessRulesEnabled.ruleset", + "rulesets/DataflowRulesDefault.ruleset", + "rulesets/DataflowRulesEnabled.ruleset", + "rulesets/LibraryRulesDefault.ruleset", + "rulesets/LibraryRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisCompatibilityRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisCompatibilityRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisCorrectnessRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisCorrectnessRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisDesignRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisDesignRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisDocumentationRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisDocumentationRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisLocalizationRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisLocalizationRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisPerformanceRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisPerformanceRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled.ruleset", + "rulesets/PortedFromFxCopRulesDefault.ruleset", + "rulesets/PortedFromFxCopRulesEnabled.ruleset", + "tools/install.ps1", + "tools/uninstall.ps1" + ] + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "sha512": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "type": "package", + "path": "microsoft.codeanalysis.common/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll", + "microsoft.codeanalysis.common.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.common.nuspec" + ] + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "sha512": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "type": "package", + "path": "microsoft.codeanalysis.csharp/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll", + "microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.csharp.nuspec" + ] + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "sha512": "h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", + "type": "package", + "path": "microsoft.codeanalysis.csharp.workspaces/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.csharp.workspaces.nuspec" + ] + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "sha512": "l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", + "type": "package", + "path": "microsoft.codeanalysis.workspaces.common/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.workspaces.common.nuspec" + ] + }, + "Microsoft.CodeCoverage/17.14.1": { + "sha512": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg==", + "type": "package", + "path": "microsoft.codecoverage/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.txt", + "build/netstandard2.0/CodeCoverage/CodeCoverage.config", + "build/netstandard2.0/CodeCoverage/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/Cov_x86.config", + "build/netstandard2.0/CodeCoverage/amd64/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/amd64/Cov_x64.config", + "build/netstandard2.0/CodeCoverage/amd64/covrun64.dll", + "build/netstandard2.0/CodeCoverage/amd64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/arm64/Cov_arm64.config", + "build/netstandard2.0/CodeCoverage/arm64/covrunarm64.dll", + "build/netstandard2.0/CodeCoverage/arm64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/codecoveragemessages.dll", + "build/netstandard2.0/CodeCoverage/coreclr/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "build/netstandard2.0/CodeCoverage/covrun32.dll", + "build/netstandard2.0/CodeCoverage/msdia140.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Interprocess.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.props", + "build/netstandard2.0/Microsoft.CodeCoverage.targets", + "build/netstandard2.0/Microsoft.DiaSymReader.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TraceDataCollector.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/ThirdPartyNotices.txt", + "build/netstandard2.0/alpine/x64/Cov_x64.config", + "build/netstandard2.0/alpine/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/alpine/x64/libInstrumentationEngine.so", + "build/netstandard2.0/arm64/MicrosoftInstrumentationEngine_arm64.dll", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/macos/x64/Cov_x64.config", + "build/netstandard2.0/macos/x64/libCoverageInstrumentationMethod.dylib", + "build/netstandard2.0/macos/x64/libInstrumentationEngine.dylib", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ubuntu/x64/Cov_x64.config", + "build/netstandard2.0/ubuntu/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/ubuntu/x64/libInstrumentationEngine.so", + "build/netstandard2.0/x64/MicrosoftInstrumentationEngine_x64.dll", + "build/netstandard2.0/x86/MicrosoftInstrumentationEngine_x86.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "lib/net462/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "microsoft.codecoverage.17.14.1.nupkg.sha512", + "microsoft.codecoverage.nuspec" + ] + }, + "Microsoft.Data.Sqlite.Core/8.0.6": { + "sha512": "umhZ0ZF2RI81rGFTnYmCxI+Euj4Aqe/6Y4+8CxN9OVJNGDNIqB5laJ3wxQTU8zXCcm2k9F7FL+/6RVoOT4z1Fw==", + "type": "package", + "path": "microsoft.data.sqlite.core/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net6.0/Microsoft.Data.Sqlite.dll", + "lib/net6.0/Microsoft.Data.Sqlite.xml", + "lib/net8.0/Microsoft.Data.Sqlite.dll", + "lib/net8.0/Microsoft.Data.Sqlite.xml", + "lib/netstandard2.0/Microsoft.Data.Sqlite.dll", + "lib/netstandard2.0/Microsoft.Data.Sqlite.xml", + "microsoft.data.sqlite.core.8.0.6.nupkg.sha512", + "microsoft.data.sqlite.core.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore/8.0.18": { + "sha512": "LBc07vlgPxEXmjF0Kgn1S0mip3KLDPVD1OQOFu+4Mfpg1Z8OPMJ82MVCkqek1Ex2WeCzVGbNI9nRXcepHB+48g==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.18": { + "sha512": "aQGpxj0/RKXhSqDFbWENQgOg6WQH3z5Dezu3VBXaTCBHE6hAWQIZmmqdpO1k+lkANsoCSwPJZ4iFRqPPZXBXzg==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.18": { + "sha512": "aYkyWRkb+o9++mtIWn5XSYPVND5N9mFFfvdmBX1s6kCss6XTaZsFXf8QjvaiXAcGblp/HoYzS5lusx0ZqeFxzQ==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Design/8.0.18": { + "sha512": "ONya9HGDtULSfoxld0ir12lxOxX2zp4TRYp6pO3wwXtWSYK3bU1kUSZMIJdeewznYcOfpCJVuSJVch6Y5xtIIQ==", + "type": "package", + "path": "microsoft.entityframeworkcore.design/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "build/net8.0/Microsoft.EntityFrameworkCore.Design.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.xml", + "microsoft.entityframeworkcore.design.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.design.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.18": { + "sha512": "SL067ITd6QfDF9wNsNtGm3fROpnv3SNrOY3Fjb+efEUnKn5NI0sUitrtpUim+t1DtCJIs7qgmyCPdD3zjSt4Xw==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Sqlite/8.0.6": { + "sha512": "nC4cZN4zReTb22qd9WDU0eDmlXvkyf2g2pqQ3VIHJbkpJcdWSY/PDgwGpbpShsVcAjXbkjGiUcv9aGwa61xQPw==", + "type": "package", + "path": "microsoft.entityframeworkcore.sqlite/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/_._", + "microsoft.entityframeworkcore.sqlite.8.0.6.nupkg.sha512", + "microsoft.entityframeworkcore.sqlite.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Sqlite.Core/8.0.6": { + "sha512": "87xfPtqSouxWWdynYZv/rubd0rOUeiN9+XeoMWQzpZm/5svH1TuvzFODGIY0zKuXS18NiOFyHl9N6///eaEs/Q==", + "type": "package", + "path": "microsoft.entityframeworkcore.sqlite.core/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.xml", + "microsoft.entityframeworkcore.sqlite.core.8.0.6.nupkg.sha512", + "microsoft.entityframeworkcore.sqlite.core.nuspec" + ] + }, + "Microsoft.Extensions.ApiDescription.Server/8.0.0": { + "sha512": "jDM3a95WerM8g6IcMiBXq1qRS9dqmEUpgnCk2DeMWpPkYtp1ia+CkXabOnK93JmhVlUmv8l9WMPsCSUm+WqkIA==", + "type": "package", + "path": "microsoft.extensions.apidescription.server/8.0.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "build/Microsoft.Extensions.ApiDescription.Server.props", + "build/Microsoft.Extensions.ApiDescription.Server.targets", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets", + "microsoft.extensions.apidescription.server.8.0.0.nupkg.sha512", + "microsoft.extensions.apidescription.server.nuspec", + "tools/Newtonsoft.Json.dll", + "tools/dotnet-getdocument.deps.json", + "tools/dotnet-getdocument.dll", + "tools/dotnet-getdocument.runtimeconfig.json", + "tools/net462-x86/GetDocument.Insider.exe", + "tools/net462-x86/GetDocument.Insider.exe.config", + "tools/net462-x86/System.Buffers.dll", + "tools/net462-x86/System.Diagnostics.DiagnosticSource.dll", + "tools/net462-x86/System.Memory.dll", + "tools/net462-x86/System.Numerics.Vectors.dll", + "tools/net462-x86/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net462/GetDocument.Insider.exe", + "tools/net462/GetDocument.Insider.exe.config", + "tools/net462/System.Buffers.dll", + "tools/net462/System.Diagnostics.DiagnosticSource.dll", + "tools/net462/System.Memory.dll", + "tools/net462/System.Numerics.Vectors.dll", + "tools/net462/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net8.0/GetDocument.Insider.deps.json", + "tools/net8.0/GetDocument.Insider.dll", + "tools/net8.0/GetDocument.Insider.exe", + "tools/net8.0/GetDocument.Insider.runtimeconfig.json", + "tools/net8.0/Microsoft.AspNetCore.Connections.Abstractions.dll", + "tools/net8.0/Microsoft.AspNetCore.Connections.Abstractions.xml", + "tools/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll", + "tools/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.xml", + "tools/net8.0/Microsoft.AspNetCore.Http.Features.dll", + "tools/net8.0/Microsoft.AspNetCore.Http.Features.xml", + "tools/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Features.dll", + "tools/net8.0/Microsoft.Extensions.Features.xml", + "tools/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Options.dll", + "tools/net8.0/Microsoft.Extensions.Primitives.dll", + "tools/net8.0/Microsoft.Net.Http.Headers.dll", + "tools/net8.0/Microsoft.Net.Http.Headers.xml", + "tools/net8.0/System.IO.Pipelines.dll", + "tools/netcoreapp2.1/GetDocument.Insider.deps.json", + "tools/netcoreapp2.1/GetDocument.Insider.dll", + "tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json", + "tools/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "sha512": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration/8.0.0": { + "sha512": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", + "type": "package", + "path": "microsoft.extensions.configuration/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.targets", + "lib/net462/Microsoft.Extensions.Configuration.dll", + "lib/net462/Microsoft.Extensions.Configuration.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.xml", + "microsoft.extensions.configuration.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Binder/8.0.2": { + "sha512": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", + "type": "package", + "path": "microsoft.extensions.configuration.binder/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll", + "analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets", + "lib/net462/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net462/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.xml", + "microsoft.extensions.configuration.binder.8.0.2.nupkg.sha512", + "microsoft.extensions.configuration.binder.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.CommandLine/8.0.0": { + "sha512": "NZuZMz3Q8Z780nKX3ifV1fE7lS+6pynDHK71OfU4OZ1ItgvDOhyOC7E6z+JMZrAj63zRpwbdldYFk499t3+1dQ==", + "type": "package", + "path": "microsoft.extensions.configuration.commandline/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.CommandLine.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.CommandLine.targets", + "lib/net462/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net462/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "microsoft.extensions.configuration.commandline.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.commandline.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": { + "sha512": "plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==", + "type": "package", + "path": "microsoft.extensions.configuration.environmentvariables/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.EnvironmentVariables.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.targets", + "lib/net462/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net462/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.environmentvariables.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.FileExtensions/8.0.1": { + "sha512": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", + "type": "package", + "path": "microsoft.extensions.configuration.fileextensions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.FileExtensions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.FileExtensions.targets", + "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.fileextensions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Json/8.0.1": { + "sha512": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", + "type": "package", + "path": "microsoft.extensions.configuration.json/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Json.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Json.targets", + "lib/net462/Microsoft.Extensions.Configuration.Json.dll", + "lib/net462/Microsoft.Extensions.Configuration.Json.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll", + "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.xml", + "microsoft.extensions.configuration.json.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.UserSecrets/8.0.1": { + "sha512": "7tYqdPPpAK+3jO9d5LTuCK2VxrEdf85Ol4trUr6ds4jclBecadWZ/RyPCbNjfbN5iGTfUnD/h65TOQuqQv2c+A==", + "type": "package", + "path": "microsoft.extensions.configuration.usersecrets/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/net462/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/net462/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "lib/net462/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net462/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "microsoft.extensions.configuration.usersecrets.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.usersecrets.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "sha512": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==", + "type": "package", + "path": "microsoft.extensions.dependencymodel/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyModel.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyModel.targets", + "lib/net462/Microsoft.Extensions.DependencyModel.dll", + "lib/net462/Microsoft.Extensions.DependencyModel.xml", + "lib/net6.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net6.0/Microsoft.Extensions.DependencyModel.xml", + "lib/net7.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net7.0/Microsoft.Extensions.DependencyModel.xml", + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net8.0/Microsoft.Extensions.DependencyModel.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.xml", + "microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencymodel.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Diagnostics/8.0.1": { + "sha512": "doVPCUUCY7c6LhBsEfiy3W1bvS7Mi6LkfQMS8nlC22jZWNxBv8VO8bdfeyvpYFst6Kxqk7HBC6lytmEoBssvSQ==", + "type": "package", + "path": "microsoft.extensions.diagnostics/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Diagnostics.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.targets", + "lib/net462/Microsoft.Extensions.Diagnostics.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.xml", + "lib/net6.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net6.0/Microsoft.Extensions.Diagnostics.xml", + "lib/net7.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net7.0/Microsoft.Extensions.Diagnostics.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.xml", + "microsoft.extensions.diagnostics.8.0.1.nupkg.sha512", + "microsoft.extensions.diagnostics.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "sha512": "elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "type": "package", + "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Diagnostics.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", + "microsoft.extensions.diagnostics.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "sha512": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", + "type": "package", + "path": "microsoft.extensions.fileproviders.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Abstractions.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.fileproviders.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileProviders.Physical/8.0.0": { + "sha512": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", + "type": "package", + "path": "microsoft.extensions.fileproviders.physical/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Physical.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Physical.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net6.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net6.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net7.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net7.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.xml", + "microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512", + "microsoft.extensions.fileproviders.physical.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileSystemGlobbing/8.0.0": { + "sha512": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==", + "type": "package", + "path": "microsoft.extensions.filesystemglobbing/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileSystemGlobbing.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileSystemGlobbing.targets", + "lib/net462/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net462/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net6.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net6.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net7.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net7.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512", + "microsoft.extensions.filesystemglobbing.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Hosting/8.0.1": { + "sha512": "bP9EEkHBEfjgYiG8nUaXqMk/ujwJrffOkNPP7onpRMO8R+OUSESSP4xHkCAXgYZ1COP2Q9lXlU5gkMFh20gRuw==", + "type": "package", + "path": "microsoft.extensions.hosting/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Hosting.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Hosting.targets", + "lib/net462/Microsoft.Extensions.Hosting.dll", + "lib/net462/Microsoft.Extensions.Hosting.xml", + "lib/net6.0/Microsoft.Extensions.Hosting.dll", + "lib/net6.0/Microsoft.Extensions.Hosting.xml", + "lib/net7.0/Microsoft.Extensions.Hosting.dll", + "lib/net7.0/Microsoft.Extensions.Hosting.xml", + "lib/net8.0/Microsoft.Extensions.Hosting.dll", + "lib/net8.0/Microsoft.Extensions.Hosting.xml", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.dll", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.xml", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.dll", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.xml", + "microsoft.extensions.hosting.8.0.1.nupkg.sha512", + "microsoft.extensions.hosting.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "sha512": "nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", + "type": "package", + "path": "microsoft.extensions.hosting.abstractions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Hosting.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Hosting.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.xml", + "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", + "microsoft.extensions.hosting.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Configuration/8.0.1": { + "sha512": "QWwTrsgOnJMmn+XUslm8D2H1n3PkP/u/v52FODtyBc/k4W9r3i2vcXXeeX/upnzllJYRRbrzVzT0OclfNJtBJA==", + "type": "package", + "path": "microsoft.extensions.logging.configuration/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Configuration.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Configuration.targets", + "lib/net462/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net462/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Configuration.xml", + "microsoft.extensions.logging.configuration.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.configuration.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Console/8.0.1": { + "sha512": "uzcg/5U2eLyn5LIKlERkdSxw6VPC1yydnOSQiRRWGBGN3kphq3iL4emORzrojScDmxRhv49gp5BI8U3Dz7y4iA==", + "type": "package", + "path": "microsoft.extensions.logging.console/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Console.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Console.targets", + "lib/net462/Microsoft.Extensions.Logging.Console.dll", + "lib/net462/Microsoft.Extensions.Logging.Console.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Console.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Console.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Console.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Console.xml", + "microsoft.extensions.logging.console.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.console.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Debug/8.0.1": { + "sha512": "B8hqNuYudC2RB+L/DI33uO4rf5by41fZVdcVL2oZj0UyoAZqnwTwYHp1KafoH4nkl1/23piNeybFFASaV2HkFg==", + "type": "package", + "path": "microsoft.extensions.logging.debug/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Debug.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Debug.targets", + "lib/net462/Microsoft.Extensions.Logging.Debug.dll", + "lib/net462/Microsoft.Extensions.Logging.Debug.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.xml", + "microsoft.extensions.logging.debug.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.debug.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.EventLog/8.0.1": { + "sha512": "ZD1m4GXoxcZeDJIq8qePKj+QAWeQNO/OG8skvrOG8RQfxLp9MAKRoliTc27xanoNUzeqvX5HhS/I7c0BvwAYUg==", + "type": "package", + "path": "microsoft.extensions.logging.eventlog/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.EventLog.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.EventLog.targets", + "lib/net462/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net462/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net6.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net6.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net7.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net7.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.xml", + "microsoft.extensions.logging.eventlog.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.eventlog.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.EventSource/8.0.1": { + "sha512": "YMXMAla6B6sEf/SnfZYTty633Ool3AH7KOw2LOaaEqwSo2piK4f7HMtzyc3CNiipDnq1fsUSuG5Oc7ZzpVy8WQ==", + "type": "package", + "path": "microsoft.extensions.logging.eventsource/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.EventSource.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.EventSource.targets", + "lib/net462/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net462/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net6.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net6.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net7.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net7.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.xml", + "microsoft.extensions.logging.eventsource.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.eventsource.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/8.0.2": { + "sha512": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "type": "package", + "path": "microsoft.extensions.options/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net6.0/Microsoft.Extensions.Options.dll", + "lib/net6.0/Microsoft.Extensions.Options.xml", + "lib/net7.0/Microsoft.Extensions.Options.dll", + "lib/net7.0/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.8.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": { + "sha512": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", + "type": "package", + "path": "microsoft.extensions.options.configurationextensions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Options.ConfigurationExtensions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.ConfigurationExtensions.targets", + "lib/net462/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net462/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net6.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net6.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net7.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net7.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512", + "microsoft.extensions.options.configurationextensions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "sha512": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "type": "package", + "path": "microsoft.extensions.primitives/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net6.0/Microsoft.Extensions.Primitives.dll", + "lib/net6.0/Microsoft.Extensions.Primitives.xml", + "lib/net7.0/Microsoft.Extensions.Primitives.dll", + "lib/net7.0/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.NET.Test.Sdk/17.14.1": { + "sha512": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==", + "type": "package", + "path": "microsoft.net.test.sdk/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "build/net462/Microsoft.NET.Test.Sdk.props", + "build/net462/Microsoft.NET.Test.Sdk.targets", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.cs", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.fs", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.vb", + "build/net8.0/Microsoft.NET.Test.Sdk.props", + "build/net8.0/Microsoft.NET.Test.Sdk.targets", + "build/netcoreapp2.0/Microsoft.NET.Test.Sdk.props", + "build/netcoreapp2.0/Microsoft.NET.Test.Sdk.targets", + "build/netstandard2.0/Microsoft.NET.Test.Sdk.props", + "build/netstandard2.0/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/net462/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/net8.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netcoreapp2.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netcoreapp2.0/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/netstandard2.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netstandard2.0/Microsoft.NET.Test.Sdk.targets", + "lib/native/_._", + "lib/net462/_._", + "lib/net8.0/_._", + "microsoft.net.test.sdk.17.14.1.nupkg.sha512", + "microsoft.net.test.sdk.nuspec" + ] + }, + "Microsoft.OpenApi/1.6.23": { + "sha512": "tZ1I0KXnn98CWuV8cpI247A17jaY+ILS9vvF7yhI0uPPEqF4P1d7BWL5Uwtel10w9NucllHB3nTkfYTAcHAh8g==", + "type": "package", + "path": "microsoft.openapi/1.6.23", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/netstandard2.0/Microsoft.OpenApi.dll", + "lib/netstandard2.0/Microsoft.OpenApi.pdb", + "lib/netstandard2.0/Microsoft.OpenApi.xml", + "microsoft.openapi.1.6.23.nupkg.sha512", + "microsoft.openapi.nuspec" + ] + }, + "Microsoft.TestPlatform.ObjectModel/17.14.1": { + "sha512": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ==", + "type": "package", + "path": "microsoft.testplatform.objectmodel/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "lib/net462/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net462/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net462/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net462/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "microsoft.testplatform.objectmodel.17.14.1.nupkg.sha512", + "microsoft.testplatform.objectmodel.nuspec" + ] + }, + "Microsoft.TestPlatform.TestHost/17.14.1": { + "sha512": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==", + "type": "package", + "path": "microsoft.testplatform.testhost/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.txt", + "build/net8.0/Microsoft.TestPlatform.TestHost.props", + "build/net8.0/Microsoft.TestPlatform.TestHost.targets", + "build/net8.0/x64/testhost.dll", + "build/net8.0/x64/testhost.exe", + "build/net8.0/x86/testhost.x86.dll", + "build/net8.0/x86/testhost.x86.exe", + "lib/net462/_._", + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll", + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/testhost.deps.json", + "lib/net8.0/testhost.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/x64/msdia140.dll", + "lib/net8.0/x86/msdia140.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "microsoft.testplatform.testhost.17.14.1.nupkg.sha512", + "microsoft.testplatform.testhost.nuspec" + ] + }, + "Mono.TextTemplating/2.2.1": { + "sha512": "KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==", + "type": "package", + "path": "mono.texttemplating/2.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net472/Mono.TextTemplating.dll", + "lib/netstandard2.0/Mono.TextTemplating.dll", + "mono.texttemplating.2.2.1.nupkg.sha512", + "mono.texttemplating.nuspec" + ] + }, + "Moq/4.20.72": { + "sha512": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "type": "package", + "path": "moq/4.20.72", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "lib/net462/Moq.dll", + "lib/net6.0/Moq.dll", + "lib/netstandard2.0/Moq.dll", + "lib/netstandard2.1/Moq.dll", + "moq.4.20.72.nupkg.sha512", + "moq.nuspec", + "readme.md" + ] + }, + "MySqlConnector/2.3.5": { + "sha512": "AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", + "type": "package", + "path": "mysqlconnector/2.3.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/MySqlConnector.dll", + "lib/net462/MySqlConnector.xml", + "lib/net471/MySqlConnector.dll", + "lib/net471/MySqlConnector.xml", + "lib/net48/MySqlConnector.dll", + "lib/net48/MySqlConnector.xml", + "lib/net6.0/MySqlConnector.dll", + "lib/net6.0/MySqlConnector.xml", + "lib/net7.0/MySqlConnector.dll", + "lib/net7.0/MySqlConnector.xml", + "lib/net8.0/MySqlConnector.dll", + "lib/net8.0/MySqlConnector.xml", + "lib/netstandard2.0/MySqlConnector.dll", + "lib/netstandard2.0/MySqlConnector.xml", + "lib/netstandard2.1/MySqlConnector.dll", + "lib/netstandard2.1/MySqlConnector.xml", + "logo.png", + "mysqlconnector.2.3.5.nupkg.sha512", + "mysqlconnector.nuspec" + ] + }, + "Newtonsoft.Json/13.0.3": { + "sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "type": "package", + "path": "newtonsoft.json/13.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "README.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/net6.0/Newtonsoft.Json.dll", + "lib/net6.0/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.3.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + }, + "Pfim/0.11.3": { + "sha512": "UNVStuGHVIGyBlQaLX8VY6KpzZm/pG2zpV8ewNSXNFKFVPn8dLQKJITfps3lwUMzwTL+Do7RrMUvgQ1ZsPTu4w==", + "type": "package", + "path": "pfim/0.11.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Pfim.dll", + "pfim.0.11.3.nupkg.sha512", + "pfim.nuspec" + ] + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "sha512": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", + "type": "package", + "path": "pipelines.sockets.unofficial/2.2.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Pipelines.Sockets.Unofficial.dll", + "lib/net461/Pipelines.Sockets.Unofficial.xml", + "lib/net472/Pipelines.Sockets.Unofficial.dll", + "lib/net472/Pipelines.Sockets.Unofficial.xml", + "lib/net5.0/Pipelines.Sockets.Unofficial.dll", + "lib/net5.0/Pipelines.Sockets.Unofficial.xml", + "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.dll", + "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.xml", + "lib/netstandard2.0/Pipelines.Sockets.Unofficial.dll", + "lib/netstandard2.0/Pipelines.Sockets.Unofficial.xml", + "lib/netstandard2.1/Pipelines.Sockets.Unofficial.dll", + "lib/netstandard2.1/Pipelines.Sockets.Unofficial.xml", + "pipelines.sockets.unofficial.2.2.8.nupkg.sha512", + "pipelines.sockets.unofficial.nuspec" + ] + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.2": { + "sha512": "XjnlcxVBLnEMbyEc5cZzgZeDyLvAniACZQ04W1slWN0f4rmfNzl98gEMvHnFH0fMDF06z9MmgGi/Sr7hJ+BVnw==", + "type": "package", + "path": "pomelo.entityframeworkcore.mysql/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon.png", + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll", + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.xml", + "pomelo.entityframeworkcore.mysql.8.0.2.nupkg.sha512", + "pomelo.entityframeworkcore.mysql.nuspec" + ] + }, + "Redis.OM/1.0.1": { + "sha512": "0kreYGe1w3dy6Ymv+wbdCfcpSu8p9uGGmz3Z+Kp4XbTrF1QrcJFgq9mWMQ7Js538Mb7AR+IaKIcpYX0C0asHgg==", + "type": "package", + "path": "redis.om/1.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon-square.png", + "lib/netstandard2.0/Redis.OM.dll", + "lib/netstandard2.0/Redis.OM.xml", + "redis.om.1.0.1.nupkg.sha512", + "redis.om.nuspec" + ] + }, + "SharpZipLib/1.4.2": { + "sha512": "yjj+3zgz8zgXpiiC3ZdF/iyTBbz2fFvMxZFEBPUcwZjIvXOf37Ylm+K58hqMfIBt5JgU/Z2uoUS67JmTLe973A==", + "type": "package", + "path": "sharpziplib/1.4.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "images/sharpziplib-nuget-256x256.png", + "lib/net6.0/ICSharpCode.SharpZipLib.dll", + "lib/net6.0/ICSharpCode.SharpZipLib.pdb", + "lib/net6.0/ICSharpCode.SharpZipLib.xml", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.dll", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.pdb", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.xml", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.dll", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.pdb", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.xml", + "sharpziplib.1.4.2.nupkg.sha512", + "sharpziplib.nuspec" + ] + }, + "SixLabors.ImageSharp/3.1.10": { + "sha512": "R1HEPcqx3v+kvlOTPouP0g/Nzzud9pHtjlgGbFax3Ivaz8kkaGfS2EPfyDGpmfoTUQ3nQ5wxdhYyYa9fwYA9cw==", + "type": "package", + "path": "sixlabors.imagesharp/3.1.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE", + "build/SixLabors.ImageSharp.props", + "lib/net6.0/SixLabors.ImageSharp.dll", + "lib/net6.0/SixLabors.ImageSharp.xml", + "sixlabors.imagesharp.128.png", + "sixlabors.imagesharp.3.1.10.nupkg.sha512", + "sixlabors.imagesharp.nuspec" + ] + }, + "SQLitePCLRaw.bundle_e_sqlite3/2.1.6": { + "sha512": "BmAf6XWt4TqtowmiWe4/5rRot6GerAeklmOPfviOvwLoF5WwgxcJHAxZtySuyW9r9w+HLILnm8VfJFLCUJYW8A==", + "type": "package", + "path": "sqlitepclraw.bundle_e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/monoandroid90/SQLitePCLRaw.batteries_v2.dll", + "lib/net461/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-android31.0/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-android31.0/SQLitePCLRaw.batteries_v2.xml", + "lib/net6.0-ios14.0/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-ios14.2/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-tvos10.0/SQLitePCLRaw.batteries_v2.dll", + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll", + "lib/xamarinios10/SQLitePCLRaw.batteries_v2.dll", + "sqlitepclraw.bundle_e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.bundle_e_sqlite3.nuspec" + ] + }, + "SQLitePCLRaw.core/2.1.6": { + "sha512": "wO6v9GeMx9CUngAet8hbO7xdm+M42p1XeJq47ogyRoYSvNSp0NGLI+MgC0bhrMk9C17MTVFlLiN6ylyExLCc5w==", + "type": "package", + "path": "sqlitepclraw.core/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/SQLitePCLRaw.core.dll", + "sqlitepclraw.core.2.1.6.nupkg.sha512", + "sqlitepclraw.core.nuspec" + ] + }, + "SQLitePCLRaw.lib.e_sqlite3/2.1.6": { + "sha512": "2ObJJLkIUIxRpOUlZNGuD4rICpBnrBR5anjyfUFQep4hMOIeqW+XGQYzrNmHSVz5xSWZ3klSbh7sFR6UyDj68Q==", + "type": "package", + "path": "sqlitepclraw.lib.e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "buildTransitive/net461/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net6.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net7.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net8.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "lib/net461/_._", + "lib/netstandard2.0/_._", + "runtimes/browser-wasm/nativeassets/net6.0/e_sqlite3.a", + "runtimes/browser-wasm/nativeassets/net7.0/e_sqlite3.a", + "runtimes/browser-wasm/nativeassets/net8.0/e_sqlite3.a", + "runtimes/linux-arm/native/libe_sqlite3.so", + "runtimes/linux-arm64/native/libe_sqlite3.so", + "runtimes/linux-armel/native/libe_sqlite3.so", + "runtimes/linux-mips64/native/libe_sqlite3.so", + "runtimes/linux-musl-arm/native/libe_sqlite3.so", + "runtimes/linux-musl-arm64/native/libe_sqlite3.so", + "runtimes/linux-musl-x64/native/libe_sqlite3.so", + "runtimes/linux-ppc64le/native/libe_sqlite3.so", + "runtimes/linux-s390x/native/libe_sqlite3.so", + "runtimes/linux-x64/native/libe_sqlite3.so", + "runtimes/linux-x86/native/libe_sqlite3.so", + "runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib", + "runtimes/maccatalyst-x64/native/libe_sqlite3.dylib", + "runtimes/osx-arm64/native/libe_sqlite3.dylib", + "runtimes/osx-x64/native/libe_sqlite3.dylib", + "runtimes/win-arm/native/e_sqlite3.dll", + "runtimes/win-arm64/native/e_sqlite3.dll", + "runtimes/win-x64/native/e_sqlite3.dll", + "runtimes/win-x86/native/e_sqlite3.dll", + "runtimes/win10-arm/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-arm64/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-x64/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-x86/nativeassets/uap10.0/e_sqlite3.dll", + "sqlitepclraw.lib.e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.lib.e_sqlite3.nuspec" + ] + }, + "SQLitePCLRaw.provider.e_sqlite3/2.1.6": { + "sha512": "PQ2Oq3yepLY4P7ll145P3xtx2bX8xF4PzaKPRpw9jZlKvfe4LE/saAV82inND9usn1XRpmxXk7Lal3MTI+6CNg==", + "type": "package", + "path": "sqlitepclraw.provider.e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net6.0-windows7.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "lib/netstandard2.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "sqlitepclraw.provider.e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.provider.e_sqlite3.nuspec" + ] + }, + "StackExchange.Redis/2.7.17": { + "sha512": "PduekHww3CrCBr1ebIPX4k4zdah9wjJ4AQZXfp+JfGJQfwf8s1SHSY7kthDi9MP0ULcYrNw4xnbRXFMbCryIig==", + "type": "package", + "path": "stackexchange.redis/2.7.17", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/StackExchange.Redis.dll", + "lib/net461/StackExchange.Redis.xml", + "lib/net472/StackExchange.Redis.dll", + "lib/net472/StackExchange.Redis.xml", + "lib/net6.0/StackExchange.Redis.dll", + "lib/net6.0/StackExchange.Redis.xml", + "lib/netcoreapp3.1/StackExchange.Redis.dll", + "lib/netcoreapp3.1/StackExchange.Redis.xml", + "lib/netstandard2.0/StackExchange.Redis.dll", + "lib/netstandard2.0/StackExchange.Redis.xml", + "stackexchange.redis.2.7.17.nupkg.sha512", + "stackexchange.redis.nuspec" + ] + }, + "Swashbuckle.AspNetCore/9.0.3": { + "sha512": "Akk4oFgy0ST8Q8pZTfPbrt045tWNyMMiKhlbYjG3qnjQZLz645IL5vhQm7NLicc2sAAQ+vftArIlsYWFevmb2g==", + "type": "package", + "path": "swashbuckle.aspnetcore/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/Swashbuckle.AspNetCore.props", + "buildMultiTargeting/Swashbuckle.AspNetCore.props", + "docs/package-readme.md", + "swashbuckle.aspnetcore.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.nuspec" + ] + }, + "Swashbuckle.AspNetCore.Swagger/9.0.3": { + "sha512": "CGpkZDWj1g/yH/0wYkxUtBhiFo5TY/Esq2fS0vlBvLOs1UL2Jzef9tdtYmTdd3zBPtnMyXQcsXjMt9yCxz4VaA==", + "type": "package", + "path": "swashbuckle.aspnetcore.swagger/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swagger.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swagger.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/9.0.3": { + "sha512": "STqjhw1TZiEGmIRgE6jcJUOcgU/Fjquc6dP4GqbuwBzqWZAWr/9T7FZOGWYEwKnmkMplzlUNepGHwnUrfTP0fw==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggergen/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swaggergen.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swaggergen.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerUI/9.0.3": { + "sha512": "DgJKJASz5OAygeKv2+N0FCZVhQylESqLXrtrRAqIT0vKpX7t5ImJ1FL6+6OqxKiamGkL0jchRXR8OgpMSsMh8w==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggerui/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swaggerui.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swaggerui.nuspec" + ] + }, + "System.CodeDom/4.4.0": { + "sha512": "2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==", + "type": "package", + "path": "system.codedom/4.4.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.CodeDom.dll", + "lib/netstandard2.0/System.CodeDom.dll", + "ref/net461/System.CodeDom.dll", + "ref/net461/System.CodeDom.xml", + "ref/netstandard2.0/System.CodeDom.dll", + "ref/netstandard2.0/System.CodeDom.xml", + "system.codedom.4.4.0.nupkg.sha512", + "system.codedom.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Collections.Immutable/8.0.0": { + "sha512": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "type": "package", + "path": "system.collections.immutable/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Collections.Immutable.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets", + "lib/net462/System.Collections.Immutable.dll", + "lib/net462/System.Collections.Immutable.xml", + "lib/net6.0/System.Collections.Immutable.dll", + "lib/net6.0/System.Collections.Immutable.xml", + "lib/net7.0/System.Collections.Immutable.dll", + "lib/net7.0/System.Collections.Immutable.xml", + "lib/net8.0/System.Collections.Immutable.dll", + "lib/net8.0/System.Collections.Immutable.xml", + "lib/netstandard2.0/System.Collections.Immutable.dll", + "lib/netstandard2.0/System.Collections.Immutable.xml", + "system.collections.immutable.8.0.0.nupkg.sha512", + "system.collections.immutable.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition/6.0.0": { + "sha512": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", + "type": "package", + "path": "system.composition/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.targets", + "buildTransitive/netcoreapp3.1/_._", + "system.composition.6.0.0.nupkg.sha512", + "system.composition.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.AttributedModel/6.0.0": { + "sha512": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==", + "type": "package", + "path": "system.composition.attributedmodel/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.AttributedModel.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.AttributedModel.dll", + "lib/net461/System.Composition.AttributedModel.xml", + "lib/net6.0/System.Composition.AttributedModel.dll", + "lib/net6.0/System.Composition.AttributedModel.xml", + "lib/netstandard2.0/System.Composition.AttributedModel.dll", + "lib/netstandard2.0/System.Composition.AttributedModel.xml", + "system.composition.attributedmodel.6.0.0.nupkg.sha512", + "system.composition.attributedmodel.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Convention/6.0.0": { + "sha512": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", + "type": "package", + "path": "system.composition.convention/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Convention.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Convention.dll", + "lib/net461/System.Composition.Convention.xml", + "lib/net6.0/System.Composition.Convention.dll", + "lib/net6.0/System.Composition.Convention.xml", + "lib/netstandard2.0/System.Composition.Convention.dll", + "lib/netstandard2.0/System.Composition.Convention.xml", + "system.composition.convention.6.0.0.nupkg.sha512", + "system.composition.convention.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Hosting/6.0.0": { + "sha512": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", + "type": "package", + "path": "system.composition.hosting/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Hosting.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Hosting.dll", + "lib/net461/System.Composition.Hosting.xml", + "lib/net6.0/System.Composition.Hosting.dll", + "lib/net6.0/System.Composition.Hosting.xml", + "lib/netstandard2.0/System.Composition.Hosting.dll", + "lib/netstandard2.0/System.Composition.Hosting.xml", + "system.composition.hosting.6.0.0.nupkg.sha512", + "system.composition.hosting.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Runtime/6.0.0": { + "sha512": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==", + "type": "package", + "path": "system.composition.runtime/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Runtime.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Runtime.dll", + "lib/net461/System.Composition.Runtime.xml", + "lib/net6.0/System.Composition.Runtime.dll", + "lib/net6.0/System.Composition.Runtime.xml", + "lib/netstandard2.0/System.Composition.Runtime.dll", + "lib/netstandard2.0/System.Composition.Runtime.xml", + "system.composition.runtime.6.0.0.nupkg.sha512", + "system.composition.runtime.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.TypedParts/6.0.0": { + "sha512": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", + "type": "package", + "path": "system.composition.typedparts/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.TypedParts.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.TypedParts.dll", + "lib/net461/System.Composition.TypedParts.xml", + "lib/net6.0/System.Composition.TypedParts.dll", + "lib/net6.0/System.Composition.TypedParts.xml", + "lib/netstandard2.0/System.Composition.TypedParts.dll", + "lib/netstandard2.0/System.Composition.TypedParts.xml", + "system.composition.typedparts.6.0.0.nupkg.sha512", + "system.composition.typedparts.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.EventLog/8.0.1": { + "sha512": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg==", + "type": "package", + "path": "system.diagnostics.eventlog/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Diagnostics.EventLog.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Diagnostics.EventLog.targets", + "lib/net462/System.Diagnostics.EventLog.dll", + "lib/net462/System.Diagnostics.EventLog.xml", + "lib/net6.0/System.Diagnostics.EventLog.dll", + "lib/net6.0/System.Diagnostics.EventLog.xml", + "lib/net7.0/System.Diagnostics.EventLog.dll", + "lib/net7.0/System.Diagnostics.EventLog.xml", + "lib/net8.0/System.Diagnostics.EventLog.dll", + "lib/net8.0/System.Diagnostics.EventLog.xml", + "lib/netstandard2.0/System.Diagnostics.EventLog.dll", + "lib/netstandard2.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.xml", + "system.diagnostics.eventlog.8.0.1.nupkg.sha512", + "system.diagnostics.eventlog.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Interactive.Async/6.0.1": { + "sha512": "f8H1O4ZWDQo344y5NQU76G4SIjWMuKDVXL9OM1dg6K5YZnLkc8iCdQDybBvMcC6ufk61jzXGVAX6UCDu0qDSjA==", + "type": "package", + "path": "system.interactive.async/6.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Logo.png", + "lib/net48/System.Interactive.Async.dll", + "lib/net48/System.Interactive.Async.xml", + "lib/net6.0/System.Interactive.Async.dll", + "lib/net6.0/System.Interactive.Async.xml", + "lib/netstandard2.0/System.Interactive.Async.dll", + "lib/netstandard2.0/System.Interactive.Async.xml", + "lib/netstandard2.1/System.Interactive.Async.dll", + "lib/netstandard2.1/System.Interactive.Async.xml", + "system.interactive.async.6.0.1.nupkg.sha512", + "system.interactive.async.nuspec" + ] + }, + "System.IO.Pipelines/8.0.0": { + "sha512": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "type": "package", + "path": "system.io.pipelines/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Pipelines.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", + "lib/net462/System.IO.Pipelines.dll", + "lib/net462/System.IO.Pipelines.xml", + "lib/net6.0/System.IO.Pipelines.dll", + "lib/net6.0/System.IO.Pipelines.xml", + "lib/net7.0/System.IO.Pipelines.dll", + "lib/net7.0/System.IO.Pipelines.xml", + "lib/net8.0/System.IO.Pipelines.dll", + "lib/net8.0/System.IO.Pipelines.xml", + "lib/netstandard2.0/System.IO.Pipelines.dll", + "lib/netstandard2.0/System.IO.Pipelines.xml", + "system.io.pipelines.8.0.0.nupkg.sha512", + "system.io.pipelines.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Linq.Async/6.0.1": { + "sha512": "0YhHcaroWpQ9UCot3Pizah7ryAzQhNvobLMSxeDIGmnXfkQn8u5owvpOH0K6EVB+z9L7u6Cc4W17Br/+jyttEQ==", + "type": "package", + "path": "system.linq.async/6.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Logo.png", + "lib/net48/System.Linq.Async.dll", + "lib/net48/System.Linq.Async.xml", + "lib/net6.0/System.Linq.Async.dll", + "lib/net6.0/System.Linq.Async.xml", + "lib/netstandard2.0/System.Linq.Async.dll", + "lib/netstandard2.0/System.Linq.Async.xml", + "lib/netstandard2.1/System.Linq.Async.dll", + "lib/netstandard2.1/System.Linq.Async.xml", + "ref/net48/System.Linq.Async.dll", + "ref/net48/System.Linq.Async.xml", + "ref/net6.0/System.Linq.Async.dll", + "ref/net6.0/System.Linq.Async.xml", + "ref/netstandard2.0/System.Linq.Async.dll", + "ref/netstandard2.0/System.Linq.Async.xml", + "ref/netstandard2.1/System.Linq.Async.dll", + "ref/netstandard2.1/System.Linq.Async.xml", + "system.linq.async.6.0.1.nupkg.sha512", + "system.linq.async.nuspec" + ] + }, + "System.Memory/4.5.3": { + "sha512": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "type": "package", + "path": "system.memory/4.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netcoreapp2.1/_._", + "lib/netstandard1.1/System.Memory.dll", + "lib/netstandard1.1/System.Memory.xml", + "lib/netstandard2.0/System.Memory.dll", + "lib/netstandard2.0/System.Memory.xml", + "ref/netcoreapp2.1/_._", + "system.memory.4.5.3.nupkg.sha512", + "system.memory.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Reflection.Metadata/8.0.0": { + "sha512": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "type": "package", + "path": "system.reflection.metadata/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Reflection.Metadata.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Reflection.Metadata.targets", + "lib/net462/System.Reflection.Metadata.dll", + "lib/net462/System.Reflection.Metadata.xml", + "lib/net6.0/System.Reflection.Metadata.dll", + "lib/net6.0/System.Reflection.Metadata.xml", + "lib/net7.0/System.Reflection.Metadata.dll", + "lib/net7.0/System.Reflection.Metadata.xml", + "lib/net8.0/System.Reflection.Metadata.dll", + "lib/net8.0/System.Reflection.Metadata.xml", + "lib/netstandard2.0/System.Reflection.Metadata.dll", + "lib/netstandard2.0/System.Reflection.Metadata.xml", + "system.reflection.metadata.8.0.0.nupkg.sha512", + "system.reflection.metadata.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "sha512": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "type": "package", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net461/System.Runtime.CompilerServices.Unsafe.xml", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml", + "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "system.runtime.compilerservices.unsafe.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Encoding.CodePages/6.0.0": { + "sha512": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "type": "package", + "path": "system.text.encoding.codepages/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.Text.Encoding.CodePages.dll", + "lib/net461/System.Text.Encoding.CodePages.xml", + "lib/net6.0/System.Text.Encoding.CodePages.dll", + "lib/net6.0/System.Text.Encoding.CodePages.xml", + "lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll", + "lib/netcoreapp3.1/System.Text.Encoding.CodePages.xml", + "lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "system.text.encoding.codepages.6.0.0.nupkg.sha512", + "system.text.encoding.codepages.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Json/8.0.5": { + "sha512": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", + "type": "package", + "path": "system.text.json/8.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "buildTransitive/net461/System.Text.Json.targets", + "buildTransitive/net462/System.Text.Json.targets", + "buildTransitive/net6.0/System.Text.Json.targets", + "buildTransitive/netcoreapp2.0/System.Text.Json.targets", + "buildTransitive/netstandard2.0/System.Text.Json.targets", + "lib/net462/System.Text.Json.dll", + "lib/net462/System.Text.Json.xml", + "lib/net6.0/System.Text.Json.dll", + "lib/net6.0/System.Text.Json.xml", + "lib/net7.0/System.Text.Json.dll", + "lib/net7.0/System.Text.Json.xml", + "lib/net8.0/System.Text.Json.dll", + "lib/net8.0/System.Text.Json.xml", + "lib/netstandard2.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.xml", + "system.text.json.8.0.5.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Threading.Channels/6.0.0": { + "sha512": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "type": "package", + "path": "system.threading.channels/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Threading.Channels.dll", + "lib/net461/System.Threading.Channels.xml", + "lib/net6.0/System.Threading.Channels.dll", + "lib/net6.0/System.Threading.Channels.xml", + "lib/netcoreapp3.1/System.Threading.Channels.dll", + "lib/netcoreapp3.1/System.Threading.Channels.xml", + "lib/netstandard2.0/System.Threading.Channels.dll", + "lib/netstandard2.0/System.Threading.Channels.xml", + "lib/netstandard2.1/System.Threading.Channels.dll", + "lib/netstandard2.1/System.Threading.Channels.xml", + "system.threading.channels.6.0.0.nupkg.sha512", + "system.threading.channels.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.ValueTuple/4.5.0": { + "sha512": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==", + "type": "package", + "path": "system.valuetuple/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.ValueTuple.dll", + "lib/net461/System.ValueTuple.xml", + "lib/net47/System.ValueTuple.dll", + "lib/net47/System.ValueTuple.xml", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.0/System.ValueTuple.dll", + "lib/netstandard1.0/System.ValueTuple.xml", + "lib/netstandard2.0/_._", + "lib/portable-net40+sl4+win8+wp8/System.ValueTuple.dll", + "lib/portable-net40+sl4+win8+wp8/System.ValueTuple.xml", + "lib/uap10.0.16299/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net461/System.ValueTuple.dll", + "ref/net47/System.ValueTuple.dll", + "ref/netcoreapp2.0/_._", + "ref/netstandard2.0/_._", + "ref/portable-net40+sl4+win8+wp8/System.ValueTuple.dll", + "ref/uap10.0.16299/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.valuetuple.4.5.0.nupkg.sha512", + "system.valuetuple.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Ulid/1.2.6": { + "sha512": "TDfJ/q4nJJ7LTxHErWYXRFs7laAUJhnT7Do+fpxxNg+uQOC1GKWLFuyJMKyMyIxQhFjWNC5XcFbr7R6HP9PFgw==", + "type": "package", + "path": "ulid/1.2.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "lib/net5.0/Ulid.dll", + "lib/net5.0/Ulid.xml", + "lib/netcoreapp2.1/Ulid.dll", + "lib/netcoreapp2.1/Ulid.xml", + "lib/netcoreapp3.1/Ulid.dll", + "lib/netcoreapp3.1/Ulid.xml", + "lib/netstandard2.0/Ulid.dll", + "lib/netstandard2.0/Ulid.xml", + "ulid.1.2.6.nupkg.sha512", + "ulid.nuspec" + ] + }, + "xunit/2.9.3": { + "sha512": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "type": "package", + "path": "xunit/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "xunit.2.9.3.nupkg.sha512", + "xunit.nuspec" + ] + }, + "xunit.abstractions/2.0.3": { + "sha512": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", + "type": "package", + "path": "xunit.abstractions/2.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/xunit.abstractions.dll", + "lib/net35/xunit.abstractions.xml", + "lib/netstandard1.0/xunit.abstractions.dll", + "lib/netstandard1.0/xunit.abstractions.xml", + "lib/netstandard2.0/xunit.abstractions.dll", + "lib/netstandard2.0/xunit.abstractions.xml", + "xunit.abstractions.2.0.3.nupkg.sha512", + "xunit.abstractions.nuspec" + ] + }, + "xunit.analyzers/1.18.0": { + "sha512": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==", + "type": "package", + "path": "xunit.analyzers/1.18.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "analyzers/dotnet/cs/xunit.analyzers.dll", + "analyzers/dotnet/cs/xunit.analyzers.fixes.dll", + "tools/install.ps1", + "tools/uninstall.ps1", + "xunit.analyzers.1.18.0.nupkg.sha512", + "xunit.analyzers.nuspec" + ] + }, + "xunit.assert/2.9.3": { + "sha512": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==", + "type": "package", + "path": "xunit.assert/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net6.0/xunit.assert.dll", + "lib/net6.0/xunit.assert.xml", + "lib/netstandard1.1/xunit.assert.dll", + "lib/netstandard1.1/xunit.assert.xml", + "xunit.assert.2.9.3.nupkg.sha512", + "xunit.assert.nuspec" + ] + }, + "xunit.core/2.9.3": { + "sha512": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "type": "package", + "path": "xunit.core/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/xunit.core.props", + "build/xunit.core.targets", + "buildMultiTargeting/xunit.core.props", + "buildMultiTargeting/xunit.core.targets", + "xunit.core.2.9.3.nupkg.sha512", + "xunit.core.nuspec" + ] + }, + "xunit.extensibility.core/2.9.3": { + "sha512": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "type": "package", + "path": "xunit.extensibility.core/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.core.dll", + "lib/net452/xunit.core.dll.tdnet", + "lib/net452/xunit.core.xml", + "lib/net452/xunit.runner.tdnet.dll", + "lib/net452/xunit.runner.utility.net452.dll", + "lib/netstandard1.1/xunit.core.dll", + "lib/netstandard1.1/xunit.core.xml", + "xunit.extensibility.core.2.9.3.nupkg.sha512", + "xunit.extensibility.core.nuspec" + ] + }, + "xunit.extensibility.execution/2.9.3": { + "sha512": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "type": "package", + "path": "xunit.extensibility.execution/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.execution.desktop.dll", + "lib/net452/xunit.execution.desktop.xml", + "lib/netstandard1.1/xunit.execution.dotnet.dll", + "lib/netstandard1.1/xunit.execution.dotnet.xml", + "xunit.extensibility.execution.2.9.3.nupkg.sha512", + "xunit.extensibility.execution.nuspec" + ] + }, + "xunit.runner.visualstudio/3.1.1": { + "sha512": "gNu2zhnuwjq5vQlU4S7yK/lfaKZDLmtcu+vTjnhfTlMAUYn+Hmgu8IIX0UCwWepYkk+Szx03DHx1bDnc9Fd+9w==", + "type": "package", + "path": "xunit.runner.visualstudio/3.1.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/net472/xunit.abstractions.dll", + "build/net472/xunit.runner.visualstudio.props", + "build/net472/xunit.runner.visualstudio.testadapter.dll", + "build/net8.0/xunit.abstractions.dll", + "build/net8.0/xunit.runner.visualstudio.props", + "build/net8.0/xunit.runner.visualstudio.testadapter.dll", + "lib/net472/_._", + "lib/net8.0/_._", + "xunit.runner.visualstudio.3.1.1.nupkg.sha512", + "xunit.runner.visualstudio.nuspec" + ] + }, + "YamlDotNet/16.3.0": { + "sha512": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==", + "type": "package", + "path": "yamldotnet/16.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "images/yamldotnet.png", + "lib/net47/YamlDotNet.dll", + "lib/net47/YamlDotNet.xml", + "lib/net6.0/YamlDotNet.dll", + "lib/net6.0/YamlDotNet.xml", + "lib/net8.0/YamlDotNet.dll", + "lib/net8.0/YamlDotNet.xml", + "lib/netstandard2.0/YamlDotNet.dll", + "lib/netstandard2.0/YamlDotNet.xml", + "lib/netstandard2.1/YamlDotNet.dll", + "lib/netstandard2.1/YamlDotNet.xml", + "yamldotnet.16.3.0.nupkg.sha512", + "yamldotnet.nuspec" + ] + }, + "LBPUnion.ProjectLighthouse/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse/ProjectLighthouse.csproj", + "msbuildProject": "../ProjectLighthouse/ProjectLighthouse.csproj" + }, + "LBPUnion.ProjectLighthouse.Servers.GameServer/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse.Servers.GameServer/ProjectLighthouse.Servers.GameServer.csproj", + "msbuildProject": "../ProjectLighthouse.Servers.GameServer/ProjectLighthouse.Servers.GameServer.csproj" + }, + "LBPUnion.ProjectLighthouse.Tests/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj", + "msbuildProject": "../ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj" + }, + "ProjectLighthouse.Localization/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj", + "msbuildProject": "../ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "JetBrains.Annotations >= 2024.3.0", + "LBPUnion.ProjectLighthouse >= 1.0.0", + "LBPUnion.ProjectLighthouse.Servers.GameServer >= 1.0.0", + "LBPUnion.ProjectLighthouse.Tests >= 1.0.0", + "Microsoft.AspNetCore.Mvc.Testing >= 8.0.18", + "Microsoft.EntityFrameworkCore.Design >= 8.0.18", + "Microsoft.NET.Test.Sdk >= 17.14.1", + "coverlet.collector >= 6.0.4", + "xunit >= 2.9.3", + "xunit.runner.visualstudio >= 3.1.1" + ] + }, + "packageFolders": { + "C:\\Users\\Faisa\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\ProjectLighthouse.Tests.GameApiTests.csproj", + "projectName": "ProjectLighthouse.Tests.GameApiTests", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\ProjectLighthouse.Tests.GameApiTests.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.GameServer\\ProjectLighthouse.Servers.GameServer.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.GameServer\\ProjectLighthouse.Servers.GameServer.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Mvc.Testing": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.14.1, )" + }, + "coverlet.collector": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[6.0.4, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.1.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/ProjectLighthouse.Tests.GameApiTests/obj/project.nuget.cache b/ProjectLighthouse.Tests.GameApiTests/obj/project.nuget.cache new file mode 100644 index 00000000..d27d5129 --- /dev/null +++ b/ProjectLighthouse.Tests.GameApiTests/obj/project.nuget.cache @@ -0,0 +1,124 @@ +{ + "version": 2, + "dgSpecHash": "aVIlhUPul2g=", + "success": true, + "projectFilePath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.GameApiTests\\ProjectLighthouse.Tests.GameApiTests.csproj", + "expectedPackageFiles": [ + "C:\\Users\\Faisa\\.nuget\\packages\\bcrypt.net-next\\4.0.3\\bcrypt.net-next.4.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\bouncycastle.cryptography\\2.6.1\\bouncycastle.cryptography.2.6.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\castle.core\\5.1.1\\castle.core.5.1.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\coverlet.collector\\6.0.4\\coverlet.collector.6.0.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.core\\3.17.4\\discord.net.core.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.rest\\3.17.4\\discord.net.rest.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.webhook\\3.17.4\\discord.net.webhook.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\distributedlock.core\\1.0.6\\distributedlock.core.1.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\distributedlock.mysql\\1.0.2\\distributedlock.mysql.1.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\jetbrains.annotations\\2024.3.0\\jetbrains.annotations.2024.3.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.diagnostics.entityframeworkcore\\8.0.18\\microsoft.aspnetcore.diagnostics.entityframeworkcore.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.mvc.testing\\8.0.18\\microsoft.aspnetcore.mvc.testing.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.testhost\\8.0.18\\microsoft.aspnetcore.testhost.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\8.0.0\\microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\4.5.0\\microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\4.5.0\\microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codecoverage\\17.14.1\\microsoft.codecoverage.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.data.sqlite.core\\8.0.6\\microsoft.data.sqlite.core.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.18\\microsoft.entityframeworkcore.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.18\\microsoft.entityframeworkcore.abstractions.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.18\\microsoft.entityframeworkcore.analyzers.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.design\\8.0.18\\microsoft.entityframeworkcore.design.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.18\\microsoft.entityframeworkcore.relational.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.sqlite\\8.0.6\\microsoft.entityframeworkcore.sqlite.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.sqlite.core\\8.0.6\\microsoft.entityframeworkcore.sqlite.core.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.apidescription.server\\8.0.0\\microsoft.extensions.apidescription.server.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration\\8.0.0\\microsoft.extensions.configuration.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.binder\\8.0.2\\microsoft.extensions.configuration.binder.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\8.0.0\\microsoft.extensions.configuration.commandline.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\8.0.0\\microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\8.0.1\\microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.json\\8.0.1\\microsoft.extensions.configuration.json.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\8.0.1\\microsoft.extensions.configuration.usersecrets.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencymodel\\8.0.2\\microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.diagnostics\\8.0.1\\microsoft.extensions.diagnostics.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\8.0.1\\microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\8.0.0\\microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\8.0.0\\microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\8.0.0\\microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.hosting\\8.0.1\\microsoft.extensions.hosting.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\8.0.1\\microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.configuration\\8.0.1\\microsoft.extensions.logging.configuration.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.console\\8.0.1\\microsoft.extensions.logging.console.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.debug\\8.0.1\\microsoft.extensions.logging.debug.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.eventlog\\8.0.1\\microsoft.extensions.logging.eventlog.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.eventsource\\8.0.1\\microsoft.extensions.logging.eventsource.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\8.0.0\\microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.net.test.sdk\\17.14.1\\microsoft.net.test.sdk.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.openapi\\1.6.23\\microsoft.openapi.1.6.23.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.testplatform.objectmodel\\17.14.1\\microsoft.testplatform.objectmodel.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.testplatform.testhost\\17.14.1\\microsoft.testplatform.testhost.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\moq\\4.20.72\\moq.4.20.72.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\mysqlconnector\\2.3.5\\mysqlconnector.2.3.5.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pfim\\0.11.3\\pfim.0.11.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.8\\pipelines.sockets.unofficial.2.2.8.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pomelo.entityframeworkcore.mysql\\8.0.2\\pomelo.entityframeworkcore.mysql.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\redis.om\\1.0.1\\redis.om.1.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sharpziplib\\1.4.2\\sharpziplib.1.4.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sixlabors.imagesharp\\3.1.10\\sixlabors.imagesharp.3.1.10.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.bundle_e_sqlite3\\2.1.6\\sqlitepclraw.bundle_e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.core\\2.1.6\\sqlitepclraw.core.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.lib.e_sqlite3\\2.1.6\\sqlitepclraw.lib.e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.provider.e_sqlite3\\2.1.6\\sqlitepclraw.provider.e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\stackexchange.redis\\2.7.17\\stackexchange.redis.2.7.17.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore\\9.0.3\\swashbuckle.aspnetcore.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\9.0.3\\swashbuckle.aspnetcore.swagger.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\9.0.3\\swashbuckle.aspnetcore.swaggergen.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\9.0.3\\swashbuckle.aspnetcore.swaggerui.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.collections.immutable\\8.0.0\\system.collections.immutable.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.diagnostics.eventlog\\8.0.1\\system.diagnostics.eventlog.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.interactive.async\\6.0.1\\system.interactive.async.6.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.io.pipelines\\8.0.0\\system.io.pipelines.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.linq.async\\6.0.1\\system.linq.async.6.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.reflection.metadata\\8.0.0\\system.reflection.metadata.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.text.json\\8.0.5\\system.text.json.8.0.5.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.valuetuple\\4.5.0\\system.valuetuple.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\ulid\\1.2.6\\ulid.1.2.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit\\2.9.3\\xunit.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.abstractions\\2.0.3\\xunit.abstractions.2.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.analyzers\\1.18.0\\xunit.analyzers.1.18.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.assert\\2.9.3\\xunit.assert.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.core\\2.9.3\\xunit.core.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.extensibility.core\\2.9.3\\xunit.extensibility.core.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.extensibility.execution\\2.9.3\\xunit.extensibility.execution.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.runner.visualstudio\\3.1.1\\xunit.runner.visualstudio.3.1.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\yamldotnet\\16.3.0\\yamldotnet.16.3.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.netcore.app.ref\\8.0.19\\microsoft.netcore.app.ref.8.0.19.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.windowsdesktop.app.ref\\8.0.19\\microsoft.windowsdesktop.app.ref.8.0.19.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.app.ref\\8.0.19\\microsoft.aspnetcore.app.ref.8.0.19.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/AssemblyInfo.cs b/ProjectLighthouse.Tests.WebsiteTests/AssemblyInfo.cs index 7db84979..83577565 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/AssemblyInfo.cs +++ b/ProjectLighthouse.Tests.WebsiteTests/AssemblyInfo.cs @@ -1,3 +1,3 @@ -using Xunit; - +using Xunit; + [assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/Extensions/WebDriverExtensions.cs b/ProjectLighthouse.Tests.WebsiteTests/Extensions/WebDriverExtensions.cs index 0dcaf297..503c5285 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/Extensions/WebDriverExtensions.cs +++ b/ProjectLighthouse.Tests.WebsiteTests/Extensions/WebDriverExtensions.cs @@ -1,13 +1,13 @@ -using System; -using OpenQA.Selenium; - -namespace ProjectLighthouse.Tests.WebsiteTests.Extensions; - -public static class WebDriverExtensions -{ - private static Uri GetUri(this IWebDriver driver) => new(driver.Url); - - public static string GetPath(this IWebDriver driver) => driver.GetUri().AbsolutePath; - - public static string GetErrorMessage(this IWebDriver driver) => driver.FindElement(By.CssSelector("#error-message > p")).Text; +using System; +using OpenQA.Selenium; + +namespace ProjectLighthouse.Tests.WebsiteTests.Extensions; + +public static class WebDriverExtensions +{ + private static Uri GetUri(this IWebDriver driver) => new(driver.Url); + + public static string GetPath(this IWebDriver driver) => driver.GetUri().AbsolutePath; + + public static string GetErrorMessage(this IWebDriver driver) => driver.FindElement(By.CssSelector("#error-message > p")).Text; } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/Integration/AdminTests.cs b/ProjectLighthouse.Tests.WebsiteTests/Integration/AdminTests.cs index 93b9e1f4..ba82fb5e 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/Integration/AdminTests.cs +++ b/ProjectLighthouse.Tests.WebsiteTests/Integration/AdminTests.cs @@ -1,72 +1,72 @@ -using System; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using LBPUnion.ProjectLighthouse.Types.Users; -using OpenQA.Selenium; -using Xunit; - -namespace ProjectLighthouse.Tests.WebsiteTests.Integration; - -[Trait("Category", "Integration")] -public class AdminTests : LighthouseWebTest -{ - private const string adminPanelButtonXPath = "/html/body/div/header/div/div/div/a[2]/span"; - - [Fact] - public async Task ShouldShowAdminPanelButtonWhenAdmin() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - this.Driver.Manage().Cookies.DeleteAllCookies(); - - UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("i'm an engineering failure")); - - WebTokenEntity webToken = new() - { - UserId = user.UserId, - UserToken = CryptoHelper.GenerateAuthToken(), - ExpiresAt = DateTime.UtcNow + TimeSpan.FromHours(1), - Verified = true, - }; - - database.WebTokens.Add(webToken); - user.PermissionLevel = PermissionLevel.Administrator; - await database.SaveChangesAsync(); - - this.Driver.Navigate().GoToUrl(this.BaseAddress + "/"); - this.Driver.Manage().Cookies.AddCookie(new Cookie("LighthouseToken", webToken.UserToken)); - this.Driver.Navigate().Refresh(); - - Assert.Equal("Admin", this.Driver.FindElement(By.XPath(adminPanelButtonXPath)).Text); - } - - [Fact] - public async Task ShouldNotShowAdminPanelButtonWhenNotAdmin() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - this.Driver.Manage().Cookies.DeleteAllCookies(); - - UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("i'm an engineering failure")); - - WebTokenEntity webToken = new() - { - UserId = user.UserId, - UserToken = CryptoHelper.GenerateAuthToken(), - ExpiresAt = DateTime.UtcNow + TimeSpan.FromHours(1), - Verified = true, - }; - - database.WebTokens.Add(webToken); - user.PermissionLevel = PermissionLevel.Default; - await database.SaveChangesAsync(); - - this.Driver.Navigate().GoToUrl(this.BaseAddress + "/"); - this.Driver.Manage().Cookies.AddCookie(new Cookie("LighthouseToken", webToken.UserToken)); - this.Driver.Navigate().Refresh(); - - Assert.Empty(this.Driver.FindElements(By.XPath(adminPanelButtonXPath))); - } +using System; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Users; +using OpenQA.Selenium; +using Xunit; + +namespace ProjectLighthouse.Tests.WebsiteTests.Integration; + +[Trait("Category", "Integration")] +public class AdminTests : LighthouseWebTest +{ + private const string adminPanelButtonXPath = "/html/body/div/header/div/div/div/a[2]/span"; + + [Fact] + public async Task ShouldShowAdminPanelButtonWhenAdmin() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + this.Driver.Manage().Cookies.DeleteAllCookies(); + + UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("i'm an engineering failure")); + + WebTokenEntity webToken = new() + { + UserId = user.UserId, + UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.UtcNow + TimeSpan.FromHours(1), + Verified = true, + }; + + database.WebTokens.Add(webToken); + user.PermissionLevel = PermissionLevel.Administrator; + await database.SaveChangesAsync(); + + this.Driver.Navigate().GoToUrl(this.BaseAddress + "/"); + this.Driver.Manage().Cookies.AddCookie(new Cookie("LighthouseToken", webToken.UserToken)); + this.Driver.Navigate().Refresh(); + + Assert.Equal("Admin", this.Driver.FindElement(By.XPath(adminPanelButtonXPath)).Text); + } + + [Fact] + public async Task ShouldNotShowAdminPanelButtonWhenNotAdmin() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + this.Driver.Manage().Cookies.DeleteAllCookies(); + + UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("i'm an engineering failure")); + + WebTokenEntity webToken = new() + { + UserId = user.UserId, + UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.UtcNow + TimeSpan.FromHours(1), + Verified = true, + }; + + database.WebTokens.Add(webToken); + user.PermissionLevel = PermissionLevel.Default; + await database.SaveChangesAsync(); + + this.Driver.Navigate().GoToUrl(this.BaseAddress + "/"); + this.Driver.Manage().Cookies.AddCookie(new Cookie("LighthouseToken", webToken.UserToken)); + this.Driver.Navigate().Refresh(); + + Assert.Empty(this.Driver.FindElements(By.XPath(adminPanelButtonXPath))); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/Integration/AuthenticationTests.cs b/ProjectLighthouse.Tests.WebsiteTests/Integration/AuthenticationTests.cs index ce6316a7..cdd528c8 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/Integration/AuthenticationTests.cs +++ b/ProjectLighthouse.Tests.WebsiteTests/Integration/AuthenticationTests.cs @@ -1,112 +1,112 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Localization.StringLists; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using Microsoft.EntityFrameworkCore; -using OpenQA.Selenium; -using ProjectLighthouse.Tests.WebsiteTests.Extensions; -using Xunit; - -namespace ProjectLighthouse.Tests.WebsiteTests.Integration; - -[Trait("Category", "Integration")] -public class AuthenticationTests : LighthouseWebTest -{ - [Fact] - public async Task ShouldLoginWithPassword() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - this.Driver.Manage().Cookies.DeleteAllCookies(); - - string password = CryptoHelper.Sha256Hash(CryptoHelper.GenerateRandomBytes(64).ToArray()); - UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash(CryptoHelper.Sha256Hash(password))); - - // Sometimes not having this causes a race condition - // ReSharper disable once MethodHasAsyncOverload - database.SaveChanges(); - - await this.Driver.Navigate().GoToUrlAsync(this.BaseAddress + "/login"); - - this.Driver.FindElement(By.Id("text")).SendKeys(user.Username); - this.Driver.FindElement(By.Id("password")).SendKeys(password); - - this.Driver.FindElement(By.Id("submit")).Click(); - - WebTokenEntity? webToken = await database.WebTokens.FirstOrDefaultAsync(t => t.UserId == user.UserId); - Assert.NotNull(webToken); - } - - [Fact] - public async Task ShouldNotLoginWithNoPassword() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - this.Driver.Manage().Cookies.DeleteAllCookies(); - - UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("just like the hindenberg,")); - - this.Driver.Navigate().GoToUrl(this.BaseAddress + "/login"); - - this.Driver.FindElement(By.Id("text")).SendKeys(user.Username); - - this.Driver.FindElement(By.Id("submit")).Click(); - - WebTokenEntity? webToken = await database.WebTokens.FirstOrDefaultAsync(t => t.UserId == user.UserId); - Assert.Null(webToken); - - Assert.Equal("/login", this.Driver.GetPath()); - Assert.Equal("The username or password you entered is invalid.", this.Driver.GetErrorMessage()); - } - - [Fact] - public async Task ShouldNotLoginWithWrongPassword() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - this.Driver.Manage().Cookies.DeleteAllCookies(); - - UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("i'm an engineering failure")); - - this.Driver.Navigate().GoToUrl(this.BaseAddress + "/login"); - - this.Driver.FindElement(By.Id("text")).SendKeys(user.Username); - this.Driver.FindElement(By.Id("password")).SendKeys("nah man"); - - this.Driver.FindElement(By.Id("submit")).Click(); - - WebTokenEntity? webToken = await database.WebTokens.FirstOrDefaultAsync(t => t.UserId == user.UserId); - Assert.Null(webToken); - } - - [Fact] - public async Task ShouldLoginWithInjectedCookie() - { - const string loggedInAsUsernameTextXPath = "/html/body/div/div/div/div/p[1]"; - - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("i'm an engineering failure")); - - WebTokenEntity webToken = new() - { - UserId = user.UserId, - UserToken = CryptoHelper.GenerateAuthToken(), - ExpiresAt = DateTime.UtcNow + TimeSpan.FromHours(1), - Verified = true, - }; - - database.WebTokens.Add(webToken); - await database.SaveChangesAsync(); - - INavigation navigation = this.Driver.Navigate(); - - navigation.GoToUrl(this.BaseAddress + "/"); - Assert.DoesNotContain(user.Username, this.Driver.FindElement(By.XPath(loggedInAsUsernameTextXPath)).Text); - this.Driver.Manage().Cookies.AddCookie(new Cookie("LighthouseToken", webToken.UserToken)); - navigation.Refresh(); - - Assert.Equal(Translate(LandingPageStrings.LoggedInAs, user.Username), this.Driver.FindElement(By.XPath(loggedInAsUsernameTextXPath)).Text); - } +using System; +using System.Linq; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Localization.StringLists; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using Microsoft.EntityFrameworkCore; +using OpenQA.Selenium; +using ProjectLighthouse.Tests.WebsiteTests.Extensions; +using Xunit; + +namespace ProjectLighthouse.Tests.WebsiteTests.Integration; + +[Trait("Category", "Integration")] +public class AuthenticationTests : LighthouseWebTest +{ + [Fact] + public async Task ShouldLoginWithPassword() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + this.Driver.Manage().Cookies.DeleteAllCookies(); + + string password = CryptoHelper.Sha256Hash(CryptoHelper.GenerateRandomBytes(64).ToArray()); + UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash(CryptoHelper.Sha256Hash(password))); + + // Sometimes not having this causes a race condition + // ReSharper disable once MethodHasAsyncOverload + database.SaveChanges(); + + await this.Driver.Navigate().GoToUrlAsync(this.BaseAddress + "/login"); + + this.Driver.FindElement(By.Id("text")).SendKeys(user.Username); + this.Driver.FindElement(By.Id("password")).SendKeys(password); + + this.Driver.FindElement(By.Id("submit")).Click(); + + WebTokenEntity? webToken = await database.WebTokens.FirstOrDefaultAsync(t => t.UserId == user.UserId); + Assert.NotNull(webToken); + } + + [Fact] + public async Task ShouldNotLoginWithNoPassword() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + this.Driver.Manage().Cookies.DeleteAllCookies(); + + UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("just like the hindenberg,")); + + this.Driver.Navigate().GoToUrl(this.BaseAddress + "/login"); + + this.Driver.FindElement(By.Id("text")).SendKeys(user.Username); + + this.Driver.FindElement(By.Id("submit")).Click(); + + WebTokenEntity? webToken = await database.WebTokens.FirstOrDefaultAsync(t => t.UserId == user.UserId); + Assert.Null(webToken); + + Assert.Equal("/login", this.Driver.GetPath()); + Assert.Equal("The username or password you entered is invalid.", this.Driver.GetErrorMessage()); + } + + [Fact] + public async Task ShouldNotLoginWithWrongPassword() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + this.Driver.Manage().Cookies.DeleteAllCookies(); + + UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("i'm an engineering failure")); + + this.Driver.Navigate().GoToUrl(this.BaseAddress + "/login"); + + this.Driver.FindElement(By.Id("text")).SendKeys(user.Username); + this.Driver.FindElement(By.Id("password")).SendKeys("nah man"); + + this.Driver.FindElement(By.Id("submit")).Click(); + + WebTokenEntity? webToken = await database.WebTokens.FirstOrDefaultAsync(t => t.UserId == user.UserId); + Assert.Null(webToken); + } + + [Fact] + public async Task ShouldLoginWithInjectedCookie() + { + const string loggedInAsUsernameTextXPath = "/html/body/div/div/div/div/p[1]"; + + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + UserEntity user = await database.CreateUser($"unitTestUser{CryptoHelper.GenerateRandomInt32()}", CryptoHelper.BCryptHash("i'm an engineering failure")); + + WebTokenEntity webToken = new() + { + UserId = user.UserId, + UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.UtcNow + TimeSpan.FromHours(1), + Verified = true, + }; + + database.WebTokens.Add(webToken); + await database.SaveChangesAsync(); + + INavigation navigation = this.Driver.Navigate(); + + navigation.GoToUrl(this.BaseAddress + "/"); + Assert.DoesNotContain(user.Username, this.Driver.FindElement(By.XPath(loggedInAsUsernameTextXPath)).Text); + this.Driver.Manage().Cookies.AddCookie(new Cookie("LighthouseToken", webToken.UserToken)); + navigation.Refresh(); + + Assert.Equal(Translate(LandingPageStrings.LoggedInAs, user.Username), this.Driver.FindElement(By.XPath(loggedInAsUsernameTextXPath)).Text); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/Integration/LighthouseWebTest.cs b/ProjectLighthouse.Tests.WebsiteTests/Integration/LighthouseWebTest.cs index 48b61077..12582c25 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/Integration/LighthouseWebTest.cs +++ b/ProjectLighthouse.Tests.WebsiteTests/Integration/LighthouseWebTest.cs @@ -1,60 +1,60 @@ -using System; -using System.Linq; -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Localization; -using LBPUnion.ProjectLighthouse.Servers.Website.Startup; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Hosting.Server.Features; -using OpenQA.Selenium; -using OpenQA.Selenium.Chrome; -using Xunit; - -namespace ProjectLighthouse.Tests.WebsiteTests.Integration; - -[Collection(nameof(LighthouseWebTest))] -public class LighthouseWebTest : IDisposable -{ - protected readonly string BaseAddress; - - protected readonly IWebDriver Driver; - private readonly IWebHost webHost = new WebHostBuilder().UseKestrel().UseStartup().UseWebRoot("StaticFiles").Build(); - - protected LighthouseWebTest() - { - ServerConfiguration.Instance.DbConnectionString = "server=127.0.0.1;uid=root;pwd=lighthouse_tests;database=lighthouse_tests"; - ServerConfiguration.Instance.TwoFactorConfiguration.TwoFactorEnabled = false; - - this.webHost.Start(); - - IServerAddressesFeature? serverAddressesFeature = this.webHost.ServerFeatures.Get(); - if (serverAddressesFeature == null) throw new ArgumentNullException(); - - this.BaseAddress = serverAddressesFeature.Addresses.First(); - - ChromeOptions chromeOptions = new(); - if (Convert.ToBoolean(Environment.GetEnvironmentVariable("CI") ?? "false")) - { - chromeOptions.AddArgument("headless"); - chromeOptions.AddArgument("no-sandbox"); - chromeOptions.AddArgument("disable-dev-shm-usage"); - Console.WriteLine(@"We are in a CI environment, so chrome headless mode has been enabled."); - } - - this.Driver = new ChromeDriver(chromeOptions); - this.Driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1); - } - - protected static string Translate(TranslatableString translatableString) => translatableString.Translate(LocalizationManager.DefaultLang); - - protected static string Translate(TranslatableString translatableString, params object?[] objects) => - translatableString.Translate(LocalizationManager.DefaultLang, objects); - - public void Dispose() - { - this.Driver.Close(); - this.Driver.Dispose(); - this.webHost.Dispose(); - - GC.SuppressFinalize(this); - } +using System; +using System.Linq; +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Localization; +using LBPUnion.ProjectLighthouse.Servers.Website.Startup; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Hosting.Server.Features; +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; +using Xunit; + +namespace ProjectLighthouse.Tests.WebsiteTests.Integration; + +[Collection(nameof(LighthouseWebTest))] +public class LighthouseWebTest : IDisposable +{ + protected readonly string BaseAddress; + + protected readonly IWebDriver Driver; + private readonly IWebHost webHost = new WebHostBuilder().UseKestrel().UseStartup().UseWebRoot("StaticFiles").Build(); + + protected LighthouseWebTest() + { + ServerConfiguration.Instance.DbConnectionString = "server=127.0.0.1;uid=root;pwd=lighthouse_tests;database=lighthouse_tests"; + ServerConfiguration.Instance.TwoFactorConfiguration.TwoFactorEnabled = false; + + this.webHost.Start(); + + IServerAddressesFeature? serverAddressesFeature = this.webHost.ServerFeatures.Get(); + if (serverAddressesFeature == null) throw new ArgumentNullException(); + + this.BaseAddress = serverAddressesFeature.Addresses.First(); + + ChromeOptions chromeOptions = new(); + if (Convert.ToBoolean(Environment.GetEnvironmentVariable("CI") ?? "false")) + { + chromeOptions.AddArgument("headless"); + chromeOptions.AddArgument("no-sandbox"); + chromeOptions.AddArgument("disable-dev-shm-usage"); + Console.WriteLine(@"We are in a CI environment, so chrome headless mode has been enabled."); + } + + this.Driver = new ChromeDriver(chromeOptions); + this.Driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1); + } + + protected static string Translate(TranslatableString translatableString) => translatableString.Translate(LocalizationManager.DefaultLang); + + protected static string Translate(TranslatableString translatableString, params object?[] objects) => + translatableString.Translate(LocalizationManager.DefaultLang, objects); + + public void Dispose() + { + this.Driver.Close(); + this.Driver.Dispose(); + this.webHost.Dispose(); + + GC.SuppressFinalize(this); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/Integration/RegisterTests.cs b/ProjectLighthouse.Tests.WebsiteTests/Integration/RegisterTests.cs index b1441bc2..f576474d 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/Integration/RegisterTests.cs +++ b/ProjectLighthouse.Tests.WebsiteTests/Integration/RegisterTests.cs @@ -1,112 +1,112 @@ -using System.Linq; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Localization.StringLists; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using Microsoft.EntityFrameworkCore; -using OpenQA.Selenium; -using ProjectLighthouse.Tests.WebsiteTests.Extensions; -using Xunit; - -namespace ProjectLighthouse.Tests.WebsiteTests.Integration; - -[Trait("Category", "Integration")] -public class RegisterTests : LighthouseWebTest -{ - [Fact] - public async Task ShouldRegister() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - this.Driver.Manage().Cookies.DeleteAllCookies(); - - ServerConfiguration.Instance.Authentication.RegistrationEnabled = true; - - string username = ("unitTestUser" + CryptoHelper.GenerateRandomInt32(0, int.MaxValue))[..16]; - string password = CryptoHelper.Sha256Hash(CryptoHelper.GenerateRandomBytes(64).ToArray()); - - this.Driver.Navigate().GoToUrl(this.BaseAddress + "/register"); - - this.Driver.FindElement(By.Id("text")).SendKeys(username); - - this.Driver.FindElement(By.Id("password")).SendKeys(password); - this.Driver.FindElement(By.Id("confirmPassword")).SendKeys(password); - - this.Driver.FindElement(By.Id("age-checkbox")).Click(); - - this.Driver.FindElement(By.Id("submit")).Click(); - - UserEntity? user = await database.Users.FirstOrDefaultAsync(u => u.Username == username); - Assert.NotNull(user); - - Assert.Equal("/", this.Driver.GetPath()); - - ServerConfiguration.Instance.Authentication.RegistrationEnabled = false; - } - - [Fact] - public async Task ShouldNotRegisterWithMismatchingPasswords() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - this.Driver.Manage().Cookies.DeleteAllCookies(); - - ServerConfiguration.Instance.Authentication.RegistrationEnabled = true; - - string username = ("unitTestUser" + CryptoHelper.GenerateRandomInt32(0, int.MaxValue))[..16]; - string password = CryptoHelper.Sha256Hash(CryptoHelper.GenerateRandomBytes(64).ToArray()); - - this.Driver.Navigate().GoToUrl(this.BaseAddress + "/register"); - - this.Driver.FindElement(By.Id("text")).SendKeys(username); - - this.Driver.FindElement(By.Id("password")).SendKeys(password); - this.Driver.FindElement(By.Id("confirmPassword")).SendKeys(password + "a"); - - this.Driver.FindElement(By.Id("age-checkbox")).Click(); - - this.Driver.FindElement(By.Id("submit")).Click(); - - UserEntity? user = await database.Users.FirstOrDefaultAsync(u => u.Username == username); - Assert.Null(user); - - Assert.Equal("/register", this.Driver.GetPath()); - Assert.Equal(Translate(ErrorStrings.PasswordDoesntMatch), this.Driver.GetErrorMessage()); - - ServerConfiguration.Instance.Authentication.RegistrationEnabled = false; - } - - [Fact] - public async Task ShouldNotRegisterWithTakenUsername() - { - await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); - this.Driver.Manage().Cookies.DeleteAllCookies(); - - ServerConfiguration.Instance.Authentication.RegistrationEnabled = true; - - string username = ("unitTestUser" + CryptoHelper.GenerateRandomInt32(0, int.MaxValue))[..16]; - string password = CryptoHelper.Sha256Hash(CryptoHelper.GenerateRandomBytes(64).ToArray()); - - await database.CreateUser(username, CryptoHelper.BCryptHash(password)); - UserEntity? user = await database.Users.FirstOrDefaultAsync(u => u.Username == username); - Assert.NotNull(user); - - this.Driver.Navigate().GoToUrl(this.BaseAddress + "/register"); - - this.Driver.FindElement(By.Id("text")).SendKeys(username); - - this.Driver.FindElement(By.Id("password")).SendKeys(password); - this.Driver.FindElement(By.Id("confirmPassword")).SendKeys(password); - - this.Driver.FindElement(By.Id("age-checkbox")).Click(); - - this.Driver.FindElement(By.Id("submit")).Click(); - - Assert.Equal("/register", this.Driver.GetPath()); - - Assert.Equal(Translate(ErrorStrings.UsernameTaken), this.Driver.GetErrorMessage()); - - ServerConfiguration.Instance.Authentication.RegistrationEnabled = false; - } +using System.Linq; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Localization.StringLists; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using Microsoft.EntityFrameworkCore; +using OpenQA.Selenium; +using ProjectLighthouse.Tests.WebsiteTests.Extensions; +using Xunit; + +namespace ProjectLighthouse.Tests.WebsiteTests.Integration; + +[Trait("Category", "Integration")] +public class RegisterTests : LighthouseWebTest +{ + [Fact] + public async Task ShouldRegister() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + this.Driver.Manage().Cookies.DeleteAllCookies(); + + ServerConfiguration.Instance.Authentication.RegistrationEnabled = true; + + string username = ("unitTestUser" + CryptoHelper.GenerateRandomInt32(0, int.MaxValue))[..16]; + string password = CryptoHelper.Sha256Hash(CryptoHelper.GenerateRandomBytes(64).ToArray()); + + this.Driver.Navigate().GoToUrl(this.BaseAddress + "/register"); + + this.Driver.FindElement(By.Id("text")).SendKeys(username); + + this.Driver.FindElement(By.Id("password")).SendKeys(password); + this.Driver.FindElement(By.Id("confirmPassword")).SendKeys(password); + + this.Driver.FindElement(By.Id("age-checkbox")).Click(); + + this.Driver.FindElement(By.Id("submit")).Click(); + + UserEntity? user = await database.Users.FirstOrDefaultAsync(u => u.Username == username); + Assert.NotNull(user); + + Assert.Equal("/", this.Driver.GetPath()); + + ServerConfiguration.Instance.Authentication.RegistrationEnabled = false; + } + + [Fact] + public async Task ShouldNotRegisterWithMismatchingPasswords() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + this.Driver.Manage().Cookies.DeleteAllCookies(); + + ServerConfiguration.Instance.Authentication.RegistrationEnabled = true; + + string username = ("unitTestUser" + CryptoHelper.GenerateRandomInt32(0, int.MaxValue))[..16]; + string password = CryptoHelper.Sha256Hash(CryptoHelper.GenerateRandomBytes(64).ToArray()); + + this.Driver.Navigate().GoToUrl(this.BaseAddress + "/register"); + + this.Driver.FindElement(By.Id("text")).SendKeys(username); + + this.Driver.FindElement(By.Id("password")).SendKeys(password); + this.Driver.FindElement(By.Id("confirmPassword")).SendKeys(password + "a"); + + this.Driver.FindElement(By.Id("age-checkbox")).Click(); + + this.Driver.FindElement(By.Id("submit")).Click(); + + UserEntity? user = await database.Users.FirstOrDefaultAsync(u => u.Username == username); + Assert.Null(user); + + Assert.Equal("/register", this.Driver.GetPath()); + Assert.Equal(Translate(ErrorStrings.PasswordDoesntMatch), this.Driver.GetErrorMessage()); + + ServerConfiguration.Instance.Authentication.RegistrationEnabled = false; + } + + [Fact] + public async Task ShouldNotRegisterWithTakenUsername() + { + await using DatabaseContext database = await IntegrationHelper.GetIntegrationDatabase(); + this.Driver.Manage().Cookies.DeleteAllCookies(); + + ServerConfiguration.Instance.Authentication.RegistrationEnabled = true; + + string username = ("unitTestUser" + CryptoHelper.GenerateRandomInt32(0, int.MaxValue))[..16]; + string password = CryptoHelper.Sha256Hash(CryptoHelper.GenerateRandomBytes(64).ToArray()); + + await database.CreateUser(username, CryptoHelper.BCryptHash(password)); + UserEntity? user = await database.Users.FirstOrDefaultAsync(u => u.Username == username); + Assert.NotNull(user); + + this.Driver.Navigate().GoToUrl(this.BaseAddress + "/register"); + + this.Driver.FindElement(By.Id("text")).SendKeys(username); + + this.Driver.FindElement(By.Id("password")).SendKeys(password); + this.Driver.FindElement(By.Id("confirmPassword")).SendKeys(password); + + this.Driver.FindElement(By.Id("age-checkbox")).Click(); + + this.Driver.FindElement(By.Id("submit")).Click(); + + Assert.Equal("/register", this.Driver.GetPath()); + + Assert.Equal(Translate(ErrorStrings.UsernameTaken), this.Driver.GetErrorMessage()); + + ServerConfiguration.Instance.Authentication.RegistrationEnabled = false; + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj b/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj index 2d78501d..c06fc9b4 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj +++ b/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj @@ -1,38 +1,38 @@ - - - - net8.0 - enable - - false - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - - - - + + + + net8.0 + enable + + false + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + + + diff --git a/ProjectLighthouse.Tests.WebsiteTests/bin/Debug/net8.0/CoverletSourceRootsMapping_ProjectLighthouse.Tests.WebsiteTests b/ProjectLighthouse.Tests.WebsiteTests/bin/Debug/net8.0/CoverletSourceRootsMapping_ProjectLighthouse.Tests.WebsiteTests new file mode 100644 index 00000000..18253f37 Binary files /dev/null and b/ProjectLighthouse.Tests.WebsiteTests/bin/Debug/net8.0/CoverletSourceRootsMapping_ProjectLighthouse.Tests.WebsiteTests differ diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.AssemblyInfo.cs b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.AssemblyInfo.cs new file mode 100644 index 00000000..8c3893ef --- /dev/null +++ b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("ProjectLighthouse.Tests.WebsiteTests")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+509240db396eac0c69bd7ed8e09b71f630a8de72")] +[assembly: System.Reflection.AssemblyProductAttribute("ProjectLighthouse.Tests.WebsiteTests")] +[assembly: System.Reflection.AssemblyTitleAttribute("ProjectLighthouse.Tests.WebsiteTests")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.AssemblyInfoInputs.cache b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.AssemblyInfoInputs.cache new file mode 100644 index 00000000..0f701e2f --- /dev/null +++ b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +9114fff14b95c5135b680ce99db8a619d63b955e22fd4bdb8264f2831b631f6f diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.GeneratedMSBuildEditorConfig.editorconfig b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 00000000..064d2b5d --- /dev/null +++ b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,15 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = ProjectLighthouse.Tests.WebsiteTests +build_property.ProjectDir = G:\LBP 3 ONLINE ARCHIVE\LBP 3 ONLINE SITE RECREACTION\ProjectLighthouse\ProjectLighthouse.Tests.WebsiteTests\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.assets.cache b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.assets.cache new file mode 100644 index 00000000..7827fd43 Binary files /dev/null and b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.assets.cache differ diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.csproj.AssemblyReference.cache b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.csproj.AssemblyReference.cache new file mode 100644 index 00000000..39837618 Binary files /dev/null and b/ProjectLighthouse.Tests.WebsiteTests/obj/Debug/net8.0/ProjectLighthouse.Tests.WebsiteTests.csproj.AssemblyReference.cache differ diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.dgspec.json b/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.dgspec.json new file mode 100644 index 00000000..0ad3a3f0 --- /dev/null +++ b/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.dgspec.json @@ -0,0 +1,575 @@ +{ + "format": 1, + "restore": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\ProjectLighthouse.Tests.WebsiteTests.csproj": {} + }, + "projects": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj", + "projectName": "ProjectLighthouse.Localization", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.Website\\ProjectLighthouse.Servers.Website.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.Website\\ProjectLighthouse.Servers.Website.csproj", + "projectName": "LBPUnion.ProjectLighthouse.Servers.Website", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.Website\\ProjectLighthouse.Servers.Website.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.Website\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "QRCoder": { + "target": "Package", + "version": "[1.6.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Host.win-x64", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\ProjectLighthouse.Tests.WebsiteTests.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\ProjectLighthouse.Tests.WebsiteTests.csproj", + "projectName": "ProjectLighthouse.Tests.WebsiteTests", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\ProjectLighthouse.Tests.WebsiteTests.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.Website\\ProjectLighthouse.Servers.Website.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.Website\\ProjectLighthouse.Servers.Website.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Mvc.Testing": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.14.1, )" + }, + "Selenium.WebDriver": { + "target": "Package", + "version": "[4.34.0, )" + }, + "Selenium.WebDriver.ChromeDriver": { + "target": "Package", + "version": "[138.0.7204.9400, )" + }, + "coverlet.collector": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[6.0.4, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.1.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "projectName": "LBPUnion.ProjectLighthouse.Tests", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Mvc.Testing": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Sqlite": { + "target": "Package", + "version": "[8.0.6, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.14.1, )" + }, + "Moq": { + "target": "Package", + "version": "[4.20.72, )" + }, + "coverlet.collector": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[6.0.4, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.1.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj", + "projectName": "LBPUnion.ProjectLighthouse", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "BCrypt.Net-Next": { + "target": "Package", + "version": "[4.0.3, )" + }, + "BouncyCastle.Cryptography": { + "target": "Package", + "version": "[2.6.1, )" + }, + "Discord.Net.Webhook": { + "target": "Package", + "version": "[3.17.4, )" + }, + "DistributedLock.MySql": { + "target": "Package", + "version": "[1.0.2, )" + }, + "GitInfo": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.5.0, )" + }, + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Pfim": { + "target": "Package", + "version": "[0.11.3, )" + }, + "Pomelo.EntityFrameworkCore.MySql": { + "target": "Package", + "version": "[8.0.2, )" + }, + "Redis.OM": { + "target": "Package", + "version": "[1.0.1, )" + }, + "SharpZipLib": { + "target": "Package", + "version": "[1.4.2, )" + }, + "SixLabors.ImageSharp": { + "target": "Package", + "version": "[3.1.10, )" + }, + "Swashbuckle.AspNetCore": { + "target": "Package", + "version": "[9.0.3, )" + }, + "YamlDotNet": { + "target": "Package", + "version": "[16.3.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.g.props b/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.g.props new file mode 100644 index 00000000..553d7b2b --- /dev/null +++ b/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.g.props @@ -0,0 +1,30 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Faisa\.nuget\packages\ + PackageReference + 6.14.0 + + + + + + + + + + + + + + + + C:\Users\Faisa\.nuget\packages\xunit.analyzers\1.18.0 + C:\Users\Faisa\.nuget\packages\microsoft.extensions.apidescription.server\8.0.0 + C:\Users\Faisa\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3 + + \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.g.targets b/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.g.targets new file mode 100644 index 00000000..01533a70 --- /dev/null +++ b/ProjectLighthouse.Tests.WebsiteTests/obj/ProjectLighthouse.Tests.WebsiteTests.csproj.nuget.g.targets @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/project.assets.json b/ProjectLighthouse.Tests.WebsiteTests/obj/project.assets.json new file mode 100644 index 00000000..fac8da67 --- /dev/null +++ b/ProjectLighthouse.Tests.WebsiteTests/obj/project.assets.json @@ -0,0 +1,6058 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "BCrypt.Net-Next/4.0.3": { + "type": "package", + "compile": { + "lib/net6.0/BCrypt.Net-Next.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/BCrypt.Net-Next.dll": { + "related": ".xml" + } + } + }, + "BouncyCastle.Cryptography/2.6.1": { + "type": "package", + "compile": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "related": ".xml" + } + } + }, + "Castle.Core/5.1.1": { + "type": "package", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + }, + "compile": { + "lib/net6.0/Castle.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Castle.Core.dll": { + "related": ".xml" + } + } + }, + "coverlet.collector/6.0.4": { + "type": "package", + "build": { + "build/netstandard2.0/coverlet.collector.targets": {} + } + }, + "Discord.Net.Core/3.17.4": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "13.0.3", + "System.Collections.Immutable": "8.0.0", + "System.Interactive.Async": "6.0.1", + "System.ValueTuple": "4.5.0" + }, + "compile": { + "lib/net8.0/Discord.Net.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Core.dll": { + "related": ".xml" + } + } + }, + "Discord.Net.Rest/3.17.4": { + "type": "package", + "dependencies": { + "Discord.Net.Core": "3.17.4" + }, + "compile": { + "lib/net8.0/Discord.Net.Rest.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Rest.dll": { + "related": ".xml" + } + } + }, + "Discord.Net.Webhook/3.17.4": { + "type": "package", + "dependencies": { + "Discord.Net.Core": "3.17.4", + "Discord.Net.Rest": "3.17.4" + }, + "compile": { + "lib/net8.0/Discord.Net.Webhook.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Webhook.dll": { + "related": ".xml" + } + } + }, + "DistributedLock.Core/1.0.6": { + "type": "package", + "compile": { + "lib/net8.0/DistributedLock.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/DistributedLock.Core.dll": { + "related": ".xml" + } + } + }, + "DistributedLock.MySql/1.0.2": { + "type": "package", + "dependencies": { + "DistributedLock.Core": "[1.0.6, 1.1.0)", + "MySqlConnector": "2.3.5" + }, + "compile": { + "lib/netstandard2.1/DistributedLock.MySql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/DistributedLock.MySql.dll": { + "related": ".xml" + } + } + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Humanizer.dll": { + "related": ".xml" + } + } + }, + "JetBrains.Annotations/2024.3.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/JetBrains.Annotations.dll": { + "related": ".deps.json;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/JetBrains.Annotations.dll": { + "related": ".deps.json;.xml" + } + } + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "8.0.18" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.AspNetCore.Mvc.Testing/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.TestHost": "8.0.18", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Extensions.Hosting": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ], + "build": { + "buildTransitive/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets": {} + } + }, + "Microsoft.AspNetCore.TestHost/8.0.18": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "type": "package", + "build": { + "build/_._": {} + } + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "[4.5.0]", + "Microsoft.CodeAnalysis.Common": "[4.5.0]", + "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.CodeAnalysis.Common": "[4.5.0]", + "System.Composition": "6.0.0", + "System.IO.Pipelines": "6.0.3", + "System.Threading.Channels": "6.0.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeCoverage/17.14.1": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "runtime": { + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "build": { + "build/netstandard2.0/Microsoft.CodeCoverage.props": {}, + "build/netstandard2.0/Microsoft.CodeCoverage.targets": {} + } + }, + "Microsoft.Data.Sqlite.Core/8.0.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.core": "2.1.6" + }, + "compile": { + "lib/net8.0/Microsoft.Data.Sqlite.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Data.Sqlite.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.18", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.18", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.18": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.18": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Design/8.0.18": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.5.0", + "Microsoft.EntityFrameworkCore.Relational": "8.0.18", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Mono.TextTemplating": "2.2.1" + }, + "compile": { + "lib/net8.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll": { + "related": ".xml" + } + }, + "build": { + "build/net8.0/Microsoft.EntityFrameworkCore.Design.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.18", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Sqlite/8.0.6": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Sqlite.Core": "8.0.6", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.6" + }, + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Sqlite.Core/8.0.6": { + "type": "package", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "8.0.6", + "Microsoft.EntityFrameworkCore.Relational": "8.0.6", + "Microsoft.Extensions.DependencyModel": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.ApiDescription.Server/8.0.0": { + "type": "package", + "build": { + "build/_._": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/_._": {} + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Binder/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets": {} + } + }, + "Microsoft.Extensions.Configuration.CommandLine/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.FileExtensions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Json/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.UserSecrets/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.props": {}, + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.targets": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Diagnostics/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileProviders.Physical/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileSystemGlobbing/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Hosting/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.CommandLine": "8.0.0", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Configuration.UserSecrets": "8.0.1", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Logging.Console": "8.0.1", + "Microsoft.Extensions.Logging.Debug": "8.0.1", + "Microsoft.Extensions.Logging.EventLog": "8.0.1", + "Microsoft.Extensions.Logging.EventSource": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Hosting.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Logging.Configuration/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Console/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Debug/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.EventLog/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "System.Diagnostics.EventLog": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.EventSource/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.NET.Test.Sdk/17.14.1": { + "type": "package", + "dependencies": { + "Microsoft.CodeCoverage": "17.14.1", + "Microsoft.TestPlatform.TestHost": "17.14.1" + }, + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + }, + "build": { + "build/net8.0/Microsoft.NET.Test.Sdk.props": {}, + "build/net8.0/Microsoft.NET.Test.Sdk.targets": {} + } + }, + "Microsoft.OpenApi/1.6.23": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + } + }, + "Microsoft.TestPlatform.ObjectModel/17.14.1": { + "type": "package", + "dependencies": { + "System.Reflection.Metadata": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "runtime": { + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "resource": { + "lib/net8.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.TestPlatform.TestHost/17.14.1": { + "type": "package", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.14.1", + "Newtonsoft.Json": "13.0.3" + }, + "compile": { + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/net8.0/testhost.dll": { + "related": ".deps.json" + } + }, + "runtime": { + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/net8.0/testhost.dll": { + "related": ".deps.json" + } + }, + "resource": { + "lib/net8.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "build/net8.0/Microsoft.TestPlatform.TestHost.props": {}, + "build/net8.0/Microsoft.TestPlatform.TestHost.targets": {} + } + }, + "Mono.TextTemplating/2.2.1": { + "type": "package", + "dependencies": { + "System.CodeDom": "4.4.0" + }, + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/Mono.TextTemplating.dll": {} + } + }, + "Moq/4.20.72": { + "type": "package", + "dependencies": { + "Castle.Core": "5.1.1" + }, + "compile": { + "lib/net6.0/Moq.dll": {} + }, + "runtime": { + "lib/net6.0/Moq.dll": {} + } + }, + "MySqlConnector/2.3.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "7.0.1" + }, + "compile": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "compile": { + "lib/net6.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + } + }, + "Pfim/0.11.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/Pfim.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Pfim.dll": {} + } + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "5.0.1" + }, + "compile": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "related": ".xml" + } + } + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "[8.0.2, 8.0.999]", + "MySqlConnector": "2.3.5" + }, + "compile": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "related": ".xml" + } + } + }, + "QRCoder/1.6.0": { + "type": "package", + "compile": { + "lib/net6.0/QRCoder.dll": {} + }, + "runtime": { + "lib/net6.0/QRCoder.dll": {} + } + }, + "Redis.OM/1.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Newtonsoft.Json": "13.0.1", + "StackExchange.Redis": "2.7.17", + "System.Text.Json": "8.0.5", + "Ulid": "1.2.6" + }, + "compile": { + "lib/netstandard2.0/Redis.OM.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Redis.OM.dll": { + "related": ".xml" + } + } + }, + "Selenium.WebDriver/4.34.0": { + "type": "package", + "compile": { + "lib/net8.0/WebDriver.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/WebDriver.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/Selenium.WebDriver.targets": {} + } + }, + "Selenium.WebDriver.ChromeDriver/138.0.7204.9400": { + "type": "package", + "build": { + "build/Selenium.WebDriver.ChromeDriver.targets": {} + } + }, + "SharpZipLib/1.4.2": { + "type": "package", + "compile": { + "lib/net6.0/ICSharpCode.SharpZipLib.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net6.0/ICSharpCode.SharpZipLib.dll": { + "related": ".pdb;.xml" + } + } + }, + "SixLabors.ImageSharp/3.1.10": { + "type": "package", + "compile": { + "lib/net6.0/SixLabors.ImageSharp.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/SixLabors.ImageSharp.dll": { + "related": ".xml" + } + }, + "build": { + "build/_._": {} + } + }, + "SQLitePCLRaw.bundle_e_sqlite3/2.1.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.6", + "SQLitePCLRaw.provider.e_sqlite3": "2.1.6" + }, + "compile": { + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll": {} + }, + "runtime": { + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll": {} + } + }, + "SQLitePCLRaw.core/2.1.6": { + "type": "package", + "dependencies": { + "System.Memory": "4.5.3" + }, + "compile": { + "lib/netstandard2.0/SQLitePCLRaw.core.dll": {} + }, + "runtime": { + "lib/netstandard2.0/SQLitePCLRaw.core.dll": {} + } + }, + "SQLitePCLRaw.lib.e_sqlite3/2.1.6": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + }, + "build": { + "buildTransitive/net8.0/SQLitePCLRaw.lib.e_sqlite3.targets": {} + }, + "runtimeTargets": { + "runtimes/browser-wasm/nativeassets/net8.0/e_sqlite3.a": { + "assetType": "native", + "rid": "browser-wasm" + }, + "runtimes/linux-arm/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-arm" + }, + "runtimes/linux-arm64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-arm64" + }, + "runtimes/linux-armel/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-armel" + }, + "runtimes/linux-mips64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-mips64" + }, + "runtimes/linux-musl-arm/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-arm" + }, + "runtimes/linux-musl-arm64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-arm64" + }, + "runtimes/linux-musl-x64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-x64" + }, + "runtimes/linux-ppc64le/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-ppc64le" + }, + "runtimes/linux-s390x/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-s390x" + }, + "runtimes/linux-x64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-x64" + }, + "runtimes/linux-x86/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-x86" + }, + "runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "maccatalyst-arm64" + }, + "runtimes/maccatalyst-x64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "maccatalyst-x64" + }, + "runtimes/osx-arm64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "osx-arm64" + }, + "runtimes/osx-x64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "osx-x64" + }, + "runtimes/win-arm/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-arm" + }, + "runtimes/win-arm64/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-arm64" + }, + "runtimes/win-x64/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-x64" + }, + "runtimes/win-x86/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-x86" + } + } + }, + "SQLitePCLRaw.provider.e_sqlite3/2.1.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.core": "2.1.6" + }, + "compile": { + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll": {} + }, + "runtime": { + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll": {} + } + }, + "StackExchange.Redis/2.7.17": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Pipelines.Sockets.Unofficial": "2.2.8" + }, + "compile": { + "lib/net6.0/StackExchange.Redis.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/StackExchange.Redis.dll": { + "related": ".xml" + } + } + }, + "Swashbuckle.AspNetCore/9.0.3": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.ApiDescription.Server": "8.0.0", + "Swashbuckle.AspNetCore.Swagger": "9.0.3", + "Swashbuckle.AspNetCore.SwaggerGen": "9.0.3", + "Swashbuckle.AspNetCore.SwaggerUI": "9.0.3" + }, + "build": { + "build/_._": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/_._": {} + } + }, + "Swashbuckle.AspNetCore.Swagger/9.0.3": { + "type": "package", + "dependencies": { + "Microsoft.OpenApi": "1.6.23" + }, + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/9.0.3": { + "type": "package", + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "9.0.3" + }, + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/9.0.3": { + "type": "package", + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "System.CodeDom/4.4.0": { + "type": "package", + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.CodeDom.dll": {} + } + }, + "System.Collections.Immutable/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Collections.Immutable.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Collections.Immutable.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Composition/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Convention": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0", + "System.Composition.TypedParts": "6.0.0" + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.AttributedModel/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.AttributedModel.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Convention/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Convention.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Hosting/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.Runtime": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Hosting.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Runtime/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Runtime.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.TypedParts/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.TypedParts.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Diagnostics.EventLog/8.0.1": { + "type": "package", + "compile": { + "lib/net8.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll": { + "assetType": "runtime", + "rid": "win" + }, + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Interactive.Async/6.0.1": { + "type": "package", + "dependencies": { + "System.Linq.Async": "6.0.1" + }, + "compile": { + "lib/net6.0/System.Interactive.Async.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Interactive.Async.dll": { + "related": ".xml" + } + } + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Linq.Async/6.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0" + }, + "compile": { + "ref/net6.0/System.Linq.Async.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Linq.Async.dll": { + "related": ".xml" + } + } + }, + "System.Memory/4.5.3": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, + "System.Reflection.Metadata/8.0.0": { + "type": "package", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + }, + "compile": { + "lib/net8.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Text.Encoding.CodePages/6.0.0": { + "type": "package", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Text.Encoding.CodePages.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Text.Json/8.0.5": { + "type": "package", + "compile": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/System.Text.Json.targets": {} + } + }, + "System.Threading.Channels/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.ValueTuple/4.5.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, + "Ulid/1.2.6": { + "type": "package", + "compile": { + "lib/net5.0/Ulid.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/Ulid.dll": { + "related": ".xml" + } + } + }, + "xunit/2.9.3": { + "type": "package", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.abstractions/2.0.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + } + }, + "xunit.analyzers/1.18.0": { + "type": "package" + }, + "xunit.assert/2.9.3": { + "type": "package", + "compile": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + } + }, + "xunit.core/2.9.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + }, + "build": { + "build/xunit.core.props": {}, + "build/xunit.core.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/xunit.core.props": {}, + "buildMultiTargeting/xunit.core.targets": {} + } + }, + "xunit.extensibility.core/2.9.3": { + "type": "package", + "dependencies": { + "xunit.abstractions": "2.0.3" + }, + "compile": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + } + }, + "xunit.extensibility.execution/2.9.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + }, + "compile": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + } + }, + "xunit.runner.visualstudio/3.1.1": { + "type": "package", + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + }, + "build": { + "build/net8.0/xunit.runner.visualstudio.props": {} + } + }, + "YamlDotNet/16.3.0": { + "type": "package", + "compile": { + "lib/net8.0/YamlDotNet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/YamlDotNet.dll": { + "related": ".xml" + } + } + }, + "LBPUnion.ProjectLighthouse/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "BCrypt.Net-Next": "4.0.3", + "BouncyCastle.Cryptography": "2.6.1", + "Discord.Net.Webhook": "3.17.4", + "DistributedLock.MySql": "1.0.2", + "JetBrains.Annotations": "2024.3.0", + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "8.0.18", + "Microsoft.EntityFrameworkCore": "8.0.18", + "Pfim": "0.11.3", + "Pomelo.EntityFrameworkCore.MySql": "8.0.2", + "ProjectLighthouse.Localization": "1.0.0", + "Redis.OM": "1.0.1", + "SharpZipLib": "1.4.2", + "SixLabors.ImageSharp": "3.1.10", + "Swashbuckle.AspNetCore": "9.0.3", + "YamlDotNet": "16.3.0" + }, + "compile": { + "bin/placeholder/LBPUnion.ProjectLighthouse.dll": {} + }, + "runtime": { + "bin/placeholder/LBPUnion.ProjectLighthouse.dll": {} + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "LBPUnion.ProjectLighthouse.Servers.Website/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "LBPUnion.ProjectLighthouse": "1.0.0", + "ProjectLighthouse.Localization": "1.0.0", + "QRCoder": "1.6.0" + }, + "compile": { + "bin/placeholder/LBPUnion.ProjectLighthouse.Servers.Website.dll": {} + }, + "runtime": { + "bin/placeholder/LBPUnion.ProjectLighthouse.Servers.Website.dll": {} + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "LBPUnion.ProjectLighthouse.Tests/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "JetBrains.Annotations": "2024.3.0", + "LBPUnion.ProjectLighthouse": "1.0.0", + "Microsoft.AspNetCore.Mvc.Testing": "8.0.18", + "Microsoft.EntityFrameworkCore.Sqlite": "8.0.6", + "Microsoft.NET.Test.Sdk": "17.14.1", + "Moq": "4.20.72", + "xunit": "2.9.3" + }, + "compile": { + "bin/placeholder/LBPUnion.ProjectLighthouse.Tests.dll": {} + }, + "runtime": { + "bin/placeholder/LBPUnion.ProjectLighthouse.Tests.dll": {} + } + }, + "ProjectLighthouse.Localization/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "compile": { + "bin/placeholder/ProjectLighthouse.Localization.dll": {} + }, + "runtime": { + "bin/placeholder/ProjectLighthouse.Localization.dll": {} + } + } + } + }, + "libraries": { + "BCrypt.Net-Next/4.0.3": { + "sha512": "W+U9WvmZQgi5cX6FS5GDtDoPzUCV4LkBLkywq/kRZhuDwcbavOzcDAr3LXJFqHUi952Yj3LEYoWW0jbEUQChsA==", + "type": "package", + "path": "bcrypt.net-next/4.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "bcrypt.net-next.4.0.3.nupkg.sha512", + "bcrypt.net-next.nuspec", + "ico.png", + "lib/net20/BCrypt.Net-Next.dll", + "lib/net20/BCrypt.Net-Next.xml", + "lib/net35/BCrypt.Net-Next.dll", + "lib/net35/BCrypt.Net-Next.xml", + "lib/net462/BCrypt.Net-Next.dll", + "lib/net462/BCrypt.Net-Next.xml", + "lib/net472/BCrypt.Net-Next.dll", + "lib/net472/BCrypt.Net-Next.xml", + "lib/net48/BCrypt.Net-Next.dll", + "lib/net48/BCrypt.Net-Next.xml", + "lib/net5.0/BCrypt.Net-Next.dll", + "lib/net5.0/BCrypt.Net-Next.xml", + "lib/net6.0/BCrypt.Net-Next.dll", + "lib/net6.0/BCrypt.Net-Next.xml", + "lib/netstandard2.0/BCrypt.Net-Next.dll", + "lib/netstandard2.0/BCrypt.Net-Next.xml", + "lib/netstandard2.1/BCrypt.Net-Next.dll", + "lib/netstandard2.1/BCrypt.Net-Next.xml", + "readme.md" + ] + }, + "BouncyCastle.Cryptography/2.6.1": { + "sha512": "vZsG2YILhthgRqO+ZVgRff4ZFKKTl0v7kqaVBLCtRvpREhfBP33pcWrdA3PRYgWuFL1RxiUFvjMUHTdBZlJcoA==", + "type": "package", + "path": "bouncycastle.cryptography/2.6.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "README.md", + "bouncycastle.cryptography.2.6.1.nupkg.sha512", + "bouncycastle.cryptography.nuspec", + "lib/net461/BouncyCastle.Cryptography.dll", + "lib/net461/BouncyCastle.Cryptography.xml", + "lib/net6.0/BouncyCastle.Cryptography.dll", + "lib/net6.0/BouncyCastle.Cryptography.xml", + "lib/netstandard2.0/BouncyCastle.Cryptography.dll", + "lib/netstandard2.0/BouncyCastle.Cryptography.xml", + "packageIcon.png" + ] + }, + "Castle.Core/5.1.1": { + "sha512": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "type": "package", + "path": "castle.core/5.1.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ASL - Apache Software Foundation License.txt", + "CHANGELOG.md", + "LICENSE", + "castle-logo.png", + "castle.core.5.1.1.nupkg.sha512", + "castle.core.nuspec", + "lib/net462/Castle.Core.dll", + "lib/net462/Castle.Core.xml", + "lib/net6.0/Castle.Core.dll", + "lib/net6.0/Castle.Core.xml", + "lib/netstandard2.0/Castle.Core.dll", + "lib/netstandard2.0/Castle.Core.xml", + "lib/netstandard2.1/Castle.Core.dll", + "lib/netstandard2.1/Castle.Core.xml", + "readme.txt" + ] + }, + "coverlet.collector/6.0.4": { + "sha512": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg==", + "type": "package", + "path": "coverlet.collector/6.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "VSTestIntegration.md", + "build/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyModel.dll", + "build/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "build/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "build/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "build/netstandard2.0/Mono.Cecil.Mdb.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/Newtonsoft.Json.dll", + "build/netstandard2.0/NuGet.Frameworks.dll", + "build/netstandard2.0/NuGet.Versioning.dll", + "build/netstandard2.0/System.Buffers.dll", + "build/netstandard2.0/System.Collections.Immutable.dll", + "build/netstandard2.0/System.Memory.dll", + "build/netstandard2.0/System.Numerics.Vectors.dll", + "build/netstandard2.0/System.Reflection.Metadata.dll", + "build/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", + "build/netstandard2.0/System.Text.Encodings.Web.dll", + "build/netstandard2.0/System.Text.Json.dll", + "build/netstandard2.0/System.Threading.Tasks.Extensions.dll", + "build/netstandard2.0/coverlet.collector.deps.json", + "build/netstandard2.0/coverlet.collector.dll", + "build/netstandard2.0/coverlet.collector.pdb", + "build/netstandard2.0/coverlet.collector.targets", + "build/netstandard2.0/coverlet.core.dll", + "build/netstandard2.0/coverlet.core.pdb", + "build/netstandard2.0/coverlet.core.xml", + "build/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "coverlet-icon.png", + "coverlet.collector.6.0.4.nupkg.sha512", + "coverlet.collector.nuspec" + ] + }, + "Discord.Net.Core/3.17.4": { + "sha512": "tMCilkXI6Gqqn6ipyysyuv3qHUNY1LNUbEpRHF6Q5jqW0Tckvu/EuZ2r/1xJatxvC8EoohIA05Dq3N3rrRlxBQ==", + "type": "package", + "path": "discord.net.core/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.core.3.17.4.nupkg.sha512", + "discord.net.core.nuspec", + "lib/net461/Discord.Net.Core.dll", + "lib/net461/Discord.Net.Core.xml", + "lib/net5.0/Discord.Net.Core.dll", + "lib/net5.0/Discord.Net.Core.xml", + "lib/net6.0/Discord.Net.Core.dll", + "lib/net6.0/Discord.Net.Core.xml", + "lib/net8.0/Discord.Net.Core.dll", + "lib/net8.0/Discord.Net.Core.xml", + "lib/net9.0/Discord.Net.Core.dll", + "lib/net9.0/Discord.Net.Core.xml", + "lib/netstandard2.0/Discord.Net.Core.dll", + "lib/netstandard2.0/Discord.Net.Core.xml", + "lib/netstandard2.1/Discord.Net.Core.dll", + "lib/netstandard2.1/Discord.Net.Core.xml" + ] + }, + "Discord.Net.Rest/3.17.4": { + "sha512": "j3YRvFY9Rd0cCPQpRbTb12fGdcO41Cg0haKSZ/6fqHy1WEzZcKRpU8wC9a9e6yIwc5Gi0jrqYAQ/jvXartOqlg==", + "type": "package", + "path": "discord.net.rest/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.rest.3.17.4.nupkg.sha512", + "discord.net.rest.nuspec", + "lib/net461/Discord.Net.Rest.dll", + "lib/net461/Discord.Net.Rest.xml", + "lib/net5.0/Discord.Net.Rest.dll", + "lib/net5.0/Discord.Net.Rest.xml", + "lib/net6.0/Discord.Net.Rest.dll", + "lib/net6.0/Discord.Net.Rest.xml", + "lib/net8.0/Discord.Net.Rest.dll", + "lib/net8.0/Discord.Net.Rest.xml", + "lib/net9.0/Discord.Net.Rest.dll", + "lib/net9.0/Discord.Net.Rest.xml", + "lib/netstandard2.0/Discord.Net.Rest.dll", + "lib/netstandard2.0/Discord.Net.Rest.xml", + "lib/netstandard2.1/Discord.Net.Rest.dll", + "lib/netstandard2.1/Discord.Net.Rest.xml" + ] + }, + "Discord.Net.Webhook/3.17.4": { + "sha512": "NGr75To1uxeyMEPsR4lo5+m/d2ALGzsgAUBCv/27tBU5G0Ss9fjaemPumcQtXO1uJSBQallxreWsn/LfMQHc5A==", + "type": "package", + "path": "discord.net.webhook/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.webhook.3.17.4.nupkg.sha512", + "discord.net.webhook.nuspec", + "lib/net5.0/Discord.Net.Webhook.dll", + "lib/net5.0/Discord.Net.Webhook.xml", + "lib/net6.0/Discord.Net.Webhook.dll", + "lib/net6.0/Discord.Net.Webhook.xml", + "lib/net8.0/Discord.Net.Webhook.dll", + "lib/net8.0/Discord.Net.Webhook.xml", + "lib/net9.0/Discord.Net.Webhook.dll", + "lib/net9.0/Discord.Net.Webhook.xml", + "lib/netstandard2.0/Discord.Net.Webhook.dll", + "lib/netstandard2.0/Discord.Net.Webhook.xml", + "lib/netstandard2.1/Discord.Net.Webhook.dll", + "lib/netstandard2.1/Discord.Net.Webhook.xml" + ] + }, + "DistributedLock.Core/1.0.6": { + "sha512": "WFAz6x82K+4uiByDk1Qz2lmcm2FrOyCzZjNauzbLeHPou6Ur2C9Ig7d6vxP7/kKvzSrrQoW6k3pUOOcikb9Jgw==", + "type": "package", + "path": "distributedlock.core/1.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "distributedlock.core.1.0.6.nupkg.sha512", + "distributedlock.core.nuspec", + "lib/net462/DistributedLock.Core.dll", + "lib/net462/DistributedLock.Core.xml", + "lib/net8.0/DistributedLock.Core.dll", + "lib/net8.0/DistributedLock.Core.xml", + "lib/netstandard2.0/DistributedLock.Core.dll", + "lib/netstandard2.0/DistributedLock.Core.xml", + "lib/netstandard2.1/DistributedLock.Core.dll", + "lib/netstandard2.1/DistributedLock.Core.xml", + "package.readme.md" + ] + }, + "DistributedLock.MySql/1.0.2": { + "sha512": "1FIaBNM1/EmFeKc9qFNGf+8D/g3ZyBXoGYp0j+DQqKdfJJ500m45zYR4PWFsy1RYUL3E8VNnSvGpxUhB6OKrww==", + "type": "package", + "path": "distributedlock.mysql/1.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "distributedlock.mysql.1.0.2.nupkg.sha512", + "distributedlock.mysql.nuspec", + "lib/net462/DistributedLock.MySql.dll", + "lib/net462/DistributedLock.MySql.xml", + "lib/netstandard2.0/DistributedLock.MySql.dll", + "lib/netstandard2.0/DistributedLock.MySql.xml", + "lib/netstandard2.1/DistributedLock.MySql.dll", + "lib/netstandard2.1/DistributedLock.MySql.xml", + "package.readme.md" + ] + }, + "Humanizer.Core/2.14.1": { + "sha512": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "type": "package", + "path": "humanizer.core/2.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "humanizer.core.2.14.1.nupkg.sha512", + "humanizer.core.nuspec", + "lib/net6.0/Humanizer.dll", + "lib/net6.0/Humanizer.xml", + "lib/netstandard1.0/Humanizer.dll", + "lib/netstandard1.0/Humanizer.xml", + "lib/netstandard2.0/Humanizer.dll", + "lib/netstandard2.0/Humanizer.xml", + "logo.png" + ] + }, + "JetBrains.Annotations/2024.3.0": { + "sha512": "ox5pkeLQXjvJdyAB4b2sBYAlqZGLh3PjSnP1bQNVx72ONuTJ9+34/+Rq91Fc0dG29XG9RgZur9+NcP4riihTug==", + "type": "package", + "path": "jetbrains.annotations/2024.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "jetbrains.annotations.2024.3.0.nupkg.sha512", + "jetbrains.annotations.nuspec", + "lib/net20/JetBrains.Annotations.dll", + "lib/net20/JetBrains.Annotations.xml", + "lib/netstandard1.0/JetBrains.Annotations.deps.json", + "lib/netstandard1.0/JetBrains.Annotations.dll", + "lib/netstandard1.0/JetBrains.Annotations.xml", + "lib/netstandard2.0/JetBrains.Annotations.deps.json", + "lib/netstandard2.0/JetBrains.Annotations.dll", + "lib/netstandard2.0/JetBrains.Annotations.xml", + "lib/portable40-net40+sl5+win8+wp8+wpa81/JetBrains.Annotations.dll", + "lib/portable40-net40+sl5+win8+wp8+wpa81/JetBrains.Annotations.xml", + "readme.md" + ] + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore/8.0.18": { + "sha512": "H4GKNR5eGHpK5yovhsO3BvOfzKlSv8DVclVYi1JLN5wfei+HAbskbi9nMGGamgtqgVXX1RAAduGKGQWlWGlfKw==", + "type": "package", + "path": "microsoft.aspnetcore.diagnostics.entityframeworkcore/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.xml", + "microsoft.aspnetcore.diagnostics.entityframeworkcore.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.diagnostics.entityframeworkcore.nuspec" + ] + }, + "Microsoft.AspNetCore.Mvc.Testing/8.0.18": { + "sha512": "QfMWUySY4rtLkzdqT/i431ZA+iydEc1pEZoFDpkpu8U9Lc6RlOoZvK4oBU47G+TxqNcHz4omf0JrCqpfL1wq6g==", + "type": "package", + "path": "microsoft.aspnetcore.mvc.testing/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "build/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets", + "buildTransitive/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets", + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll", + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.xml", + "microsoft.aspnetcore.mvc.testing.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.mvc.testing.nuspec", + "tasks/netstandard2.0/Microsoft.AspNetCore.Mvc.Testing.Tasks.dll" + ] + }, + "Microsoft.AspNetCore.TestHost/8.0.18": { + "sha512": "ofyg3Go9hNptZkZt6MXS2W8LTe+ayceXOebf3XTxywGHn9rbtg/cwXjwcMZ3e6On2p1eSEBtHUmdi6YWplXuSQ==", + "type": "package", + "path": "microsoft.aspnetcore.testhost/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll", + "lib/net8.0/Microsoft.AspNetCore.TestHost.xml", + "microsoft.aspnetcore.testhost.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.testhost.nuspec" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "sha512": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", + "buildTransitive/net462/_._", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "sha512": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==", + "type": "package", + "path": "microsoft.codeanalysis.analyzers/3.3.3", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "analyzers/dotnet/cs/Microsoft.CodeAnalysis.Analyzers.dll", + "analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.Analyzers.dll", + "analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/Microsoft.CodeAnalysis.Analyzers.dll", + "analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll", + "analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "build/Microsoft.CodeAnalysis.Analyzers.props", + "build/Microsoft.CodeAnalysis.Analyzers.targets", + "build/config/analysislevel_2_9_8_all.editorconfig", + "build/config/analysislevel_2_9_8_default.editorconfig", + "build/config/analysislevel_2_9_8_minimum.editorconfig", + "build/config/analysislevel_2_9_8_none.editorconfig", + "build/config/analysislevel_2_9_8_recommended.editorconfig", + "build/config/analysislevel_3_3_all.editorconfig", + "build/config/analysislevel_3_3_default.editorconfig", + "build/config/analysislevel_3_3_minimum.editorconfig", + "build/config/analysislevel_3_3_none.editorconfig", + "build/config/analysislevel_3_3_recommended.editorconfig", + "build/config/analysislevel_3_all.editorconfig", + "build/config/analysislevel_3_default.editorconfig", + "build/config/analysislevel_3_minimum.editorconfig", + "build/config/analysislevel_3_none.editorconfig", + "build/config/analysislevel_3_recommended.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_all.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_default.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_minimum.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_none.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_recommended.editorconfig", + "build/config/analysislevelcorrectness_3_3_all.editorconfig", + "build/config/analysislevelcorrectness_3_3_default.editorconfig", + "build/config/analysislevelcorrectness_3_3_minimum.editorconfig", + "build/config/analysislevelcorrectness_3_3_none.editorconfig", + "build/config/analysislevelcorrectness_3_3_recommended.editorconfig", + "build/config/analysislevelcorrectness_3_all.editorconfig", + "build/config/analysislevelcorrectness_3_default.editorconfig", + "build/config/analysislevelcorrectness_3_minimum.editorconfig", + "build/config/analysislevelcorrectness_3_none.editorconfig", + "build/config/analysislevelcorrectness_3_recommended.editorconfig", + "build/config/analysislevellibrary_2_9_8_all.editorconfig", + "build/config/analysislevellibrary_2_9_8_default.editorconfig", + "build/config/analysislevellibrary_2_9_8_minimum.editorconfig", + "build/config/analysislevellibrary_2_9_8_none.editorconfig", + "build/config/analysislevellibrary_2_9_8_recommended.editorconfig", + "build/config/analysislevellibrary_3_3_all.editorconfig", + "build/config/analysislevellibrary_3_3_default.editorconfig", + "build/config/analysislevellibrary_3_3_minimum.editorconfig", + "build/config/analysislevellibrary_3_3_none.editorconfig", + "build/config/analysislevellibrary_3_3_recommended.editorconfig", + "build/config/analysislevellibrary_3_all.editorconfig", + "build/config/analysislevellibrary_3_default.editorconfig", + "build/config/analysislevellibrary_3_minimum.editorconfig", + "build/config/analysislevellibrary_3_none.editorconfig", + "build/config/analysislevellibrary_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_recommended.editorconfig", + "documentation/Analyzer Configuration.md", + "documentation/Microsoft.CodeAnalysis.Analyzers.md", + "documentation/Microsoft.CodeAnalysis.Analyzers.sarif", + "editorconfig/AllRulesDefault/.editorconfig", + "editorconfig/AllRulesDisabled/.editorconfig", + "editorconfig/AllRulesEnabled/.editorconfig", + "editorconfig/CorrectnessRulesDefault/.editorconfig", + "editorconfig/CorrectnessRulesEnabled/.editorconfig", + "editorconfig/DataflowRulesDefault/.editorconfig", + "editorconfig/DataflowRulesEnabled/.editorconfig", + "editorconfig/LibraryRulesDefault/.editorconfig", + "editorconfig/LibraryRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDesignRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDesignRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDocumentationRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDocumentationRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisLocalizationRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisLocalizationRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisPerformanceRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisPerformanceRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled/.editorconfig", + "editorconfig/PortedFromFxCopRulesDefault/.editorconfig", + "editorconfig/PortedFromFxCopRulesEnabled/.editorconfig", + "microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", + "microsoft.codeanalysis.analyzers.nuspec", + "rulesets/AllRulesDefault.ruleset", + "rulesets/AllRulesDisabled.ruleset", + "rulesets/AllRulesEnabled.ruleset", + "rulesets/CorrectnessRulesDefault.ruleset", + "rulesets/CorrectnessRulesEnabled.ruleset", + "rulesets/DataflowRulesDefault.ruleset", + "rulesets/DataflowRulesEnabled.ruleset", + "rulesets/LibraryRulesDefault.ruleset", + "rulesets/LibraryRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisCompatibilityRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisCompatibilityRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisCorrectnessRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisCorrectnessRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisDesignRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisDesignRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisDocumentationRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisDocumentationRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisLocalizationRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisLocalizationRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisPerformanceRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisPerformanceRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled.ruleset", + "rulesets/PortedFromFxCopRulesDefault.ruleset", + "rulesets/PortedFromFxCopRulesEnabled.ruleset", + "tools/install.ps1", + "tools/uninstall.ps1" + ] + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "sha512": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "type": "package", + "path": "microsoft.codeanalysis.common/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll", + "microsoft.codeanalysis.common.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.common.nuspec" + ] + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "sha512": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "type": "package", + "path": "microsoft.codeanalysis.csharp/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll", + "microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.csharp.nuspec" + ] + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "sha512": "h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", + "type": "package", + "path": "microsoft.codeanalysis.csharp.workspaces/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.csharp.workspaces.nuspec" + ] + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "sha512": "l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", + "type": "package", + "path": "microsoft.codeanalysis.workspaces.common/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.workspaces.common.nuspec" + ] + }, + "Microsoft.CodeCoverage/17.14.1": { + "sha512": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg==", + "type": "package", + "path": "microsoft.codecoverage/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.txt", + "build/netstandard2.0/CodeCoverage/CodeCoverage.config", + "build/netstandard2.0/CodeCoverage/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/Cov_x86.config", + "build/netstandard2.0/CodeCoverage/amd64/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/amd64/Cov_x64.config", + "build/netstandard2.0/CodeCoverage/amd64/covrun64.dll", + "build/netstandard2.0/CodeCoverage/amd64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/arm64/Cov_arm64.config", + "build/netstandard2.0/CodeCoverage/arm64/covrunarm64.dll", + "build/netstandard2.0/CodeCoverage/arm64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/codecoveragemessages.dll", + "build/netstandard2.0/CodeCoverage/coreclr/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "build/netstandard2.0/CodeCoverage/covrun32.dll", + "build/netstandard2.0/CodeCoverage/msdia140.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Interprocess.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.props", + "build/netstandard2.0/Microsoft.CodeCoverage.targets", + "build/netstandard2.0/Microsoft.DiaSymReader.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TraceDataCollector.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/ThirdPartyNotices.txt", + "build/netstandard2.0/alpine/x64/Cov_x64.config", + "build/netstandard2.0/alpine/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/alpine/x64/libInstrumentationEngine.so", + "build/netstandard2.0/arm64/MicrosoftInstrumentationEngine_arm64.dll", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/macos/x64/Cov_x64.config", + "build/netstandard2.0/macos/x64/libCoverageInstrumentationMethod.dylib", + "build/netstandard2.0/macos/x64/libInstrumentationEngine.dylib", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ubuntu/x64/Cov_x64.config", + "build/netstandard2.0/ubuntu/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/ubuntu/x64/libInstrumentationEngine.so", + "build/netstandard2.0/x64/MicrosoftInstrumentationEngine_x64.dll", + "build/netstandard2.0/x86/MicrosoftInstrumentationEngine_x86.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "lib/net462/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "microsoft.codecoverage.17.14.1.nupkg.sha512", + "microsoft.codecoverage.nuspec" + ] + }, + "Microsoft.Data.Sqlite.Core/8.0.6": { + "sha512": "umhZ0ZF2RI81rGFTnYmCxI+Euj4Aqe/6Y4+8CxN9OVJNGDNIqB5laJ3wxQTU8zXCcm2k9F7FL+/6RVoOT4z1Fw==", + "type": "package", + "path": "microsoft.data.sqlite.core/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net6.0/Microsoft.Data.Sqlite.dll", + "lib/net6.0/Microsoft.Data.Sqlite.xml", + "lib/net8.0/Microsoft.Data.Sqlite.dll", + "lib/net8.0/Microsoft.Data.Sqlite.xml", + "lib/netstandard2.0/Microsoft.Data.Sqlite.dll", + "lib/netstandard2.0/Microsoft.Data.Sqlite.xml", + "microsoft.data.sqlite.core.8.0.6.nupkg.sha512", + "microsoft.data.sqlite.core.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore/8.0.18": { + "sha512": "LBc07vlgPxEXmjF0Kgn1S0mip3KLDPVD1OQOFu+4Mfpg1Z8OPMJ82MVCkqek1Ex2WeCzVGbNI9nRXcepHB+48g==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.18": { + "sha512": "aQGpxj0/RKXhSqDFbWENQgOg6WQH3z5Dezu3VBXaTCBHE6hAWQIZmmqdpO1k+lkANsoCSwPJZ4iFRqPPZXBXzg==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.18": { + "sha512": "aYkyWRkb+o9++mtIWn5XSYPVND5N9mFFfvdmBX1s6kCss6XTaZsFXf8QjvaiXAcGblp/HoYzS5lusx0ZqeFxzQ==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Design/8.0.18": { + "sha512": "ONya9HGDtULSfoxld0ir12lxOxX2zp4TRYp6pO3wwXtWSYK3bU1kUSZMIJdeewznYcOfpCJVuSJVch6Y5xtIIQ==", + "type": "package", + "path": "microsoft.entityframeworkcore.design/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "build/net8.0/Microsoft.EntityFrameworkCore.Design.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.xml", + "microsoft.entityframeworkcore.design.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.design.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.18": { + "sha512": "SL067ITd6QfDF9wNsNtGm3fROpnv3SNrOY3Fjb+efEUnKn5NI0sUitrtpUim+t1DtCJIs7qgmyCPdD3zjSt4Xw==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Sqlite/8.0.6": { + "sha512": "nC4cZN4zReTb22qd9WDU0eDmlXvkyf2g2pqQ3VIHJbkpJcdWSY/PDgwGpbpShsVcAjXbkjGiUcv9aGwa61xQPw==", + "type": "package", + "path": "microsoft.entityframeworkcore.sqlite/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/_._", + "microsoft.entityframeworkcore.sqlite.8.0.6.nupkg.sha512", + "microsoft.entityframeworkcore.sqlite.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Sqlite.Core/8.0.6": { + "sha512": "87xfPtqSouxWWdynYZv/rubd0rOUeiN9+XeoMWQzpZm/5svH1TuvzFODGIY0zKuXS18NiOFyHl9N6///eaEs/Q==", + "type": "package", + "path": "microsoft.entityframeworkcore.sqlite.core/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.xml", + "microsoft.entityframeworkcore.sqlite.core.8.0.6.nupkg.sha512", + "microsoft.entityframeworkcore.sqlite.core.nuspec" + ] + }, + "Microsoft.Extensions.ApiDescription.Server/8.0.0": { + "sha512": "jDM3a95WerM8g6IcMiBXq1qRS9dqmEUpgnCk2DeMWpPkYtp1ia+CkXabOnK93JmhVlUmv8l9WMPsCSUm+WqkIA==", + "type": "package", + "path": "microsoft.extensions.apidescription.server/8.0.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "build/Microsoft.Extensions.ApiDescription.Server.props", + "build/Microsoft.Extensions.ApiDescription.Server.targets", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets", + "microsoft.extensions.apidescription.server.8.0.0.nupkg.sha512", + "microsoft.extensions.apidescription.server.nuspec", + "tools/Newtonsoft.Json.dll", + "tools/dotnet-getdocument.deps.json", + "tools/dotnet-getdocument.dll", + "tools/dotnet-getdocument.runtimeconfig.json", + "tools/net462-x86/GetDocument.Insider.exe", + "tools/net462-x86/GetDocument.Insider.exe.config", + "tools/net462-x86/System.Buffers.dll", + "tools/net462-x86/System.Diagnostics.DiagnosticSource.dll", + "tools/net462-x86/System.Memory.dll", + "tools/net462-x86/System.Numerics.Vectors.dll", + "tools/net462-x86/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net462/GetDocument.Insider.exe", + "tools/net462/GetDocument.Insider.exe.config", + "tools/net462/System.Buffers.dll", + "tools/net462/System.Diagnostics.DiagnosticSource.dll", + "tools/net462/System.Memory.dll", + "tools/net462/System.Numerics.Vectors.dll", + "tools/net462/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net8.0/GetDocument.Insider.deps.json", + "tools/net8.0/GetDocument.Insider.dll", + "tools/net8.0/GetDocument.Insider.exe", + "tools/net8.0/GetDocument.Insider.runtimeconfig.json", + "tools/net8.0/Microsoft.AspNetCore.Connections.Abstractions.dll", + "tools/net8.0/Microsoft.AspNetCore.Connections.Abstractions.xml", + "tools/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll", + "tools/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.xml", + "tools/net8.0/Microsoft.AspNetCore.Http.Features.dll", + "tools/net8.0/Microsoft.AspNetCore.Http.Features.xml", + "tools/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Features.dll", + "tools/net8.0/Microsoft.Extensions.Features.xml", + "tools/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Options.dll", + "tools/net8.0/Microsoft.Extensions.Primitives.dll", + "tools/net8.0/Microsoft.Net.Http.Headers.dll", + "tools/net8.0/Microsoft.Net.Http.Headers.xml", + "tools/net8.0/System.IO.Pipelines.dll", + "tools/netcoreapp2.1/GetDocument.Insider.deps.json", + "tools/netcoreapp2.1/GetDocument.Insider.dll", + "tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json", + "tools/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "sha512": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration/8.0.0": { + "sha512": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", + "type": "package", + "path": "microsoft.extensions.configuration/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.targets", + "lib/net462/Microsoft.Extensions.Configuration.dll", + "lib/net462/Microsoft.Extensions.Configuration.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.xml", + "microsoft.extensions.configuration.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Binder/8.0.2": { + "sha512": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", + "type": "package", + "path": "microsoft.extensions.configuration.binder/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll", + "analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets", + "lib/net462/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net462/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.xml", + "microsoft.extensions.configuration.binder.8.0.2.nupkg.sha512", + "microsoft.extensions.configuration.binder.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.CommandLine/8.0.0": { + "sha512": "NZuZMz3Q8Z780nKX3ifV1fE7lS+6pynDHK71OfU4OZ1ItgvDOhyOC7E6z+JMZrAj63zRpwbdldYFk499t3+1dQ==", + "type": "package", + "path": "microsoft.extensions.configuration.commandline/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.CommandLine.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.CommandLine.targets", + "lib/net462/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net462/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "microsoft.extensions.configuration.commandline.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.commandline.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": { + "sha512": "plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==", + "type": "package", + "path": "microsoft.extensions.configuration.environmentvariables/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.EnvironmentVariables.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.targets", + "lib/net462/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net462/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.environmentvariables.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.FileExtensions/8.0.1": { + "sha512": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", + "type": "package", + "path": "microsoft.extensions.configuration.fileextensions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.FileExtensions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.FileExtensions.targets", + "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.fileextensions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Json/8.0.1": { + "sha512": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", + "type": "package", + "path": "microsoft.extensions.configuration.json/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Json.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Json.targets", + "lib/net462/Microsoft.Extensions.Configuration.Json.dll", + "lib/net462/Microsoft.Extensions.Configuration.Json.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll", + "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.xml", + "microsoft.extensions.configuration.json.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.UserSecrets/8.0.1": { + "sha512": "7tYqdPPpAK+3jO9d5LTuCK2VxrEdf85Ol4trUr6ds4jclBecadWZ/RyPCbNjfbN5iGTfUnD/h65TOQuqQv2c+A==", + "type": "package", + "path": "microsoft.extensions.configuration.usersecrets/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/net462/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/net462/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "lib/net462/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net462/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "microsoft.extensions.configuration.usersecrets.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.usersecrets.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "sha512": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==", + "type": "package", + "path": "microsoft.extensions.dependencymodel/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyModel.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyModel.targets", + "lib/net462/Microsoft.Extensions.DependencyModel.dll", + "lib/net462/Microsoft.Extensions.DependencyModel.xml", + "lib/net6.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net6.0/Microsoft.Extensions.DependencyModel.xml", + "lib/net7.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net7.0/Microsoft.Extensions.DependencyModel.xml", + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net8.0/Microsoft.Extensions.DependencyModel.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.xml", + "microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencymodel.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Diagnostics/8.0.1": { + "sha512": "doVPCUUCY7c6LhBsEfiy3W1bvS7Mi6LkfQMS8nlC22jZWNxBv8VO8bdfeyvpYFst6Kxqk7HBC6lytmEoBssvSQ==", + "type": "package", + "path": "microsoft.extensions.diagnostics/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Diagnostics.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.targets", + "lib/net462/Microsoft.Extensions.Diagnostics.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.xml", + "lib/net6.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net6.0/Microsoft.Extensions.Diagnostics.xml", + "lib/net7.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net7.0/Microsoft.Extensions.Diagnostics.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.xml", + "microsoft.extensions.diagnostics.8.0.1.nupkg.sha512", + "microsoft.extensions.diagnostics.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "sha512": "elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "type": "package", + "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Diagnostics.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", + "microsoft.extensions.diagnostics.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "sha512": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", + "type": "package", + "path": "microsoft.extensions.fileproviders.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Abstractions.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.fileproviders.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileProviders.Physical/8.0.0": { + "sha512": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", + "type": "package", + "path": "microsoft.extensions.fileproviders.physical/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Physical.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Physical.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net6.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net6.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net7.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net7.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.xml", + "microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512", + "microsoft.extensions.fileproviders.physical.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileSystemGlobbing/8.0.0": { + "sha512": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==", + "type": "package", + "path": "microsoft.extensions.filesystemglobbing/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileSystemGlobbing.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileSystemGlobbing.targets", + "lib/net462/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net462/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net6.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net6.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net7.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net7.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512", + "microsoft.extensions.filesystemglobbing.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Hosting/8.0.1": { + "sha512": "bP9EEkHBEfjgYiG8nUaXqMk/ujwJrffOkNPP7onpRMO8R+OUSESSP4xHkCAXgYZ1COP2Q9lXlU5gkMFh20gRuw==", + "type": "package", + "path": "microsoft.extensions.hosting/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Hosting.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Hosting.targets", + "lib/net462/Microsoft.Extensions.Hosting.dll", + "lib/net462/Microsoft.Extensions.Hosting.xml", + "lib/net6.0/Microsoft.Extensions.Hosting.dll", + "lib/net6.0/Microsoft.Extensions.Hosting.xml", + "lib/net7.0/Microsoft.Extensions.Hosting.dll", + "lib/net7.0/Microsoft.Extensions.Hosting.xml", + "lib/net8.0/Microsoft.Extensions.Hosting.dll", + "lib/net8.0/Microsoft.Extensions.Hosting.xml", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.dll", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.xml", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.dll", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.xml", + "microsoft.extensions.hosting.8.0.1.nupkg.sha512", + "microsoft.extensions.hosting.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "sha512": "nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", + "type": "package", + "path": "microsoft.extensions.hosting.abstractions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Hosting.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Hosting.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.xml", + "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", + "microsoft.extensions.hosting.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Configuration/8.0.1": { + "sha512": "QWwTrsgOnJMmn+XUslm8D2H1n3PkP/u/v52FODtyBc/k4W9r3i2vcXXeeX/upnzllJYRRbrzVzT0OclfNJtBJA==", + "type": "package", + "path": "microsoft.extensions.logging.configuration/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Configuration.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Configuration.targets", + "lib/net462/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net462/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Configuration.xml", + "microsoft.extensions.logging.configuration.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.configuration.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Console/8.0.1": { + "sha512": "uzcg/5U2eLyn5LIKlERkdSxw6VPC1yydnOSQiRRWGBGN3kphq3iL4emORzrojScDmxRhv49gp5BI8U3Dz7y4iA==", + "type": "package", + "path": "microsoft.extensions.logging.console/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Console.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Console.targets", + "lib/net462/Microsoft.Extensions.Logging.Console.dll", + "lib/net462/Microsoft.Extensions.Logging.Console.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Console.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Console.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Console.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Console.xml", + "microsoft.extensions.logging.console.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.console.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Debug/8.0.1": { + "sha512": "B8hqNuYudC2RB+L/DI33uO4rf5by41fZVdcVL2oZj0UyoAZqnwTwYHp1KafoH4nkl1/23piNeybFFASaV2HkFg==", + "type": "package", + "path": "microsoft.extensions.logging.debug/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Debug.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Debug.targets", + "lib/net462/Microsoft.Extensions.Logging.Debug.dll", + "lib/net462/Microsoft.Extensions.Logging.Debug.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.xml", + "microsoft.extensions.logging.debug.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.debug.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.EventLog/8.0.1": { + "sha512": "ZD1m4GXoxcZeDJIq8qePKj+QAWeQNO/OG8skvrOG8RQfxLp9MAKRoliTc27xanoNUzeqvX5HhS/I7c0BvwAYUg==", + "type": "package", + "path": "microsoft.extensions.logging.eventlog/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.EventLog.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.EventLog.targets", + "lib/net462/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net462/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net6.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net6.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net7.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net7.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.xml", + "microsoft.extensions.logging.eventlog.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.eventlog.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.EventSource/8.0.1": { + "sha512": "YMXMAla6B6sEf/SnfZYTty633Ool3AH7KOw2LOaaEqwSo2piK4f7HMtzyc3CNiipDnq1fsUSuG5Oc7ZzpVy8WQ==", + "type": "package", + "path": "microsoft.extensions.logging.eventsource/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.EventSource.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.EventSource.targets", + "lib/net462/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net462/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net6.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net6.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net7.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net7.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.xml", + "microsoft.extensions.logging.eventsource.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.eventsource.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/8.0.2": { + "sha512": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "type": "package", + "path": "microsoft.extensions.options/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net6.0/Microsoft.Extensions.Options.dll", + "lib/net6.0/Microsoft.Extensions.Options.xml", + "lib/net7.0/Microsoft.Extensions.Options.dll", + "lib/net7.0/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.8.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": { + "sha512": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", + "type": "package", + "path": "microsoft.extensions.options.configurationextensions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Options.ConfigurationExtensions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.ConfigurationExtensions.targets", + "lib/net462/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net462/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net6.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net6.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net7.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net7.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512", + "microsoft.extensions.options.configurationextensions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "sha512": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "type": "package", + "path": "microsoft.extensions.primitives/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net6.0/Microsoft.Extensions.Primitives.dll", + "lib/net6.0/Microsoft.Extensions.Primitives.xml", + "lib/net7.0/Microsoft.Extensions.Primitives.dll", + "lib/net7.0/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.NET.Test.Sdk/17.14.1": { + "sha512": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==", + "type": "package", + "path": "microsoft.net.test.sdk/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "build/net462/Microsoft.NET.Test.Sdk.props", + "build/net462/Microsoft.NET.Test.Sdk.targets", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.cs", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.fs", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.vb", + "build/net8.0/Microsoft.NET.Test.Sdk.props", + "build/net8.0/Microsoft.NET.Test.Sdk.targets", + "build/netcoreapp2.0/Microsoft.NET.Test.Sdk.props", + "build/netcoreapp2.0/Microsoft.NET.Test.Sdk.targets", + "build/netstandard2.0/Microsoft.NET.Test.Sdk.props", + "build/netstandard2.0/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/net462/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/net8.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netcoreapp2.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netcoreapp2.0/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/netstandard2.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netstandard2.0/Microsoft.NET.Test.Sdk.targets", + "lib/native/_._", + "lib/net462/_._", + "lib/net8.0/_._", + "microsoft.net.test.sdk.17.14.1.nupkg.sha512", + "microsoft.net.test.sdk.nuspec" + ] + }, + "Microsoft.OpenApi/1.6.23": { + "sha512": "tZ1I0KXnn98CWuV8cpI247A17jaY+ILS9vvF7yhI0uPPEqF4P1d7BWL5Uwtel10w9NucllHB3nTkfYTAcHAh8g==", + "type": "package", + "path": "microsoft.openapi/1.6.23", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/netstandard2.0/Microsoft.OpenApi.dll", + "lib/netstandard2.0/Microsoft.OpenApi.pdb", + "lib/netstandard2.0/Microsoft.OpenApi.xml", + "microsoft.openapi.1.6.23.nupkg.sha512", + "microsoft.openapi.nuspec" + ] + }, + "Microsoft.TestPlatform.ObjectModel/17.14.1": { + "sha512": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ==", + "type": "package", + "path": "microsoft.testplatform.objectmodel/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "lib/net462/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net462/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net462/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net462/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "microsoft.testplatform.objectmodel.17.14.1.nupkg.sha512", + "microsoft.testplatform.objectmodel.nuspec" + ] + }, + "Microsoft.TestPlatform.TestHost/17.14.1": { + "sha512": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==", + "type": "package", + "path": "microsoft.testplatform.testhost/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.txt", + "build/net8.0/Microsoft.TestPlatform.TestHost.props", + "build/net8.0/Microsoft.TestPlatform.TestHost.targets", + "build/net8.0/x64/testhost.dll", + "build/net8.0/x64/testhost.exe", + "build/net8.0/x86/testhost.x86.dll", + "build/net8.0/x86/testhost.x86.exe", + "lib/net462/_._", + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll", + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/testhost.deps.json", + "lib/net8.0/testhost.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/x64/msdia140.dll", + "lib/net8.0/x86/msdia140.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "microsoft.testplatform.testhost.17.14.1.nupkg.sha512", + "microsoft.testplatform.testhost.nuspec" + ] + }, + "Mono.TextTemplating/2.2.1": { + "sha512": "KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==", + "type": "package", + "path": "mono.texttemplating/2.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net472/Mono.TextTemplating.dll", + "lib/netstandard2.0/Mono.TextTemplating.dll", + "mono.texttemplating.2.2.1.nupkg.sha512", + "mono.texttemplating.nuspec" + ] + }, + "Moq/4.20.72": { + "sha512": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "type": "package", + "path": "moq/4.20.72", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "lib/net462/Moq.dll", + "lib/net6.0/Moq.dll", + "lib/netstandard2.0/Moq.dll", + "lib/netstandard2.1/Moq.dll", + "moq.4.20.72.nupkg.sha512", + "moq.nuspec", + "readme.md" + ] + }, + "MySqlConnector/2.3.5": { + "sha512": "AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", + "type": "package", + "path": "mysqlconnector/2.3.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/MySqlConnector.dll", + "lib/net462/MySqlConnector.xml", + "lib/net471/MySqlConnector.dll", + "lib/net471/MySqlConnector.xml", + "lib/net48/MySqlConnector.dll", + "lib/net48/MySqlConnector.xml", + "lib/net6.0/MySqlConnector.dll", + "lib/net6.0/MySqlConnector.xml", + "lib/net7.0/MySqlConnector.dll", + "lib/net7.0/MySqlConnector.xml", + "lib/net8.0/MySqlConnector.dll", + "lib/net8.0/MySqlConnector.xml", + "lib/netstandard2.0/MySqlConnector.dll", + "lib/netstandard2.0/MySqlConnector.xml", + "lib/netstandard2.1/MySqlConnector.dll", + "lib/netstandard2.1/MySqlConnector.xml", + "logo.png", + "mysqlconnector.2.3.5.nupkg.sha512", + "mysqlconnector.nuspec" + ] + }, + "Newtonsoft.Json/13.0.3": { + "sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "type": "package", + "path": "newtonsoft.json/13.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "README.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/net6.0/Newtonsoft.Json.dll", + "lib/net6.0/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.3.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + }, + "Pfim/0.11.3": { + "sha512": "UNVStuGHVIGyBlQaLX8VY6KpzZm/pG2zpV8ewNSXNFKFVPn8dLQKJITfps3lwUMzwTL+Do7RrMUvgQ1ZsPTu4w==", + "type": "package", + "path": "pfim/0.11.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Pfim.dll", + "pfim.0.11.3.nupkg.sha512", + "pfim.nuspec" + ] + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "sha512": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", + "type": "package", + "path": "pipelines.sockets.unofficial/2.2.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Pipelines.Sockets.Unofficial.dll", + "lib/net461/Pipelines.Sockets.Unofficial.xml", + "lib/net472/Pipelines.Sockets.Unofficial.dll", + "lib/net472/Pipelines.Sockets.Unofficial.xml", + "lib/net5.0/Pipelines.Sockets.Unofficial.dll", + "lib/net5.0/Pipelines.Sockets.Unofficial.xml", + "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.dll", + "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.xml", + "lib/netstandard2.0/Pipelines.Sockets.Unofficial.dll", + "lib/netstandard2.0/Pipelines.Sockets.Unofficial.xml", + "lib/netstandard2.1/Pipelines.Sockets.Unofficial.dll", + "lib/netstandard2.1/Pipelines.Sockets.Unofficial.xml", + "pipelines.sockets.unofficial.2.2.8.nupkg.sha512", + "pipelines.sockets.unofficial.nuspec" + ] + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.2": { + "sha512": "XjnlcxVBLnEMbyEc5cZzgZeDyLvAniACZQ04W1slWN0f4rmfNzl98gEMvHnFH0fMDF06z9MmgGi/Sr7hJ+BVnw==", + "type": "package", + "path": "pomelo.entityframeworkcore.mysql/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon.png", + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll", + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.xml", + "pomelo.entityframeworkcore.mysql.8.0.2.nupkg.sha512", + "pomelo.entityframeworkcore.mysql.nuspec" + ] + }, + "QRCoder/1.6.0": { + "sha512": "XmPA81eo+oRxBuyVdswsSkTGTE1d3thfF11Z1PdD7oB56A6HU4G4AAOdySmGRMb/cljwlFTMWUtosGEnwpS6GA==", + "type": "package", + "path": "qrcoder/1.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/QRCoder.dll", + "lib/net40/QRCoder.dll", + "lib/net5.0-windows7.0/QRCoder.dll", + "lib/net5.0/QRCoder.dll", + "lib/net6.0-windows7.0/QRCoder.dll", + "lib/net6.0/QRCoder.dll", + "lib/netstandard1.3/QRCoder.dll", + "lib/netstandard2.0/QRCoder.dll", + "nuget-icon.png", + "nuget-readme.md", + "qrcoder.1.6.0.nupkg.sha512", + "qrcoder.nuspec" + ] + }, + "Redis.OM/1.0.1": { + "sha512": "0kreYGe1w3dy6Ymv+wbdCfcpSu8p9uGGmz3Z+Kp4XbTrF1QrcJFgq9mWMQ7Js538Mb7AR+IaKIcpYX0C0asHgg==", + "type": "package", + "path": "redis.om/1.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon-square.png", + "lib/netstandard2.0/Redis.OM.dll", + "lib/netstandard2.0/Redis.OM.xml", + "redis.om.1.0.1.nupkg.sha512", + "redis.om.nuspec" + ] + }, + "Selenium.WebDriver/4.34.0": { + "sha512": "uNx+GF7WugHDPV2zpGDPlbSn3STQ6n0xFskFSeJdhEuuUTkIDfAsYnjVUiQidWDpy7mKzTz53ae7Thjghl3dng==", + "type": "package", + "path": "selenium.webdriver/4.34.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "build/Selenium.WebDriver.targets", + "buildTransitive/Selenium.WebDriver.targets", + "icon.png", + "lib/net8.0/WebDriver.dll", + "lib/net8.0/WebDriver.xml", + "lib/netstandard2.0/WebDriver.dll", + "lib/netstandard2.0/WebDriver.xml", + "manager/linux/selenium-manager", + "manager/macos/selenium-manager", + "manager/windows/selenium-manager.exe", + "selenium.webdriver.4.34.0.nupkg.sha512", + "selenium.webdriver.nuspec" + ] + }, + "Selenium.WebDriver.ChromeDriver/138.0.7204.9400": { + "sha512": "nVFFEbOaBeY0uWJikYNPlR1SQUb69eP0Jv3s7H0gLJHEbNMXPBSvkyVY3UYMYGpiEnFg+CUQD66Lw1yTV/mAdQ==", + "type": "package", + "path": "selenium.webdriver.chromedriver/138.0.7204.9400", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE", + "README.md", + "build/DefinePropertiesChromeDriver.targets", + "build/Selenium.WebDriver.ChromeDriver.targets", + "driver/linux64/LICENSE.chromedriver", + "driver/linux64/chromedriver", + "driver/mac64/LICENSE.chromedriver", + "driver/mac64/chromedriver", + "driver/mac64arm/LICENSE.chromedriver", + "driver/mac64arm/chromedriver", + "driver/win32/LICENSE.chromedriver", + "driver/win32/chromedriver.exe", + "nupkg-icon.png", + "selenium.webdriver.chromedriver.138.0.7204.9400.nupkg.sha512", + "selenium.webdriver.chromedriver.nuspec" + ] + }, + "SharpZipLib/1.4.2": { + "sha512": "yjj+3zgz8zgXpiiC3ZdF/iyTBbz2fFvMxZFEBPUcwZjIvXOf37Ylm+K58hqMfIBt5JgU/Z2uoUS67JmTLe973A==", + "type": "package", + "path": "sharpziplib/1.4.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "images/sharpziplib-nuget-256x256.png", + "lib/net6.0/ICSharpCode.SharpZipLib.dll", + "lib/net6.0/ICSharpCode.SharpZipLib.pdb", + "lib/net6.0/ICSharpCode.SharpZipLib.xml", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.dll", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.pdb", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.xml", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.dll", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.pdb", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.xml", + "sharpziplib.1.4.2.nupkg.sha512", + "sharpziplib.nuspec" + ] + }, + "SixLabors.ImageSharp/3.1.10": { + "sha512": "R1HEPcqx3v+kvlOTPouP0g/Nzzud9pHtjlgGbFax3Ivaz8kkaGfS2EPfyDGpmfoTUQ3nQ5wxdhYyYa9fwYA9cw==", + "type": "package", + "path": "sixlabors.imagesharp/3.1.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE", + "build/SixLabors.ImageSharp.props", + "lib/net6.0/SixLabors.ImageSharp.dll", + "lib/net6.0/SixLabors.ImageSharp.xml", + "sixlabors.imagesharp.128.png", + "sixlabors.imagesharp.3.1.10.nupkg.sha512", + "sixlabors.imagesharp.nuspec" + ] + }, + "SQLitePCLRaw.bundle_e_sqlite3/2.1.6": { + "sha512": "BmAf6XWt4TqtowmiWe4/5rRot6GerAeklmOPfviOvwLoF5WwgxcJHAxZtySuyW9r9w+HLILnm8VfJFLCUJYW8A==", + "type": "package", + "path": "sqlitepclraw.bundle_e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/monoandroid90/SQLitePCLRaw.batteries_v2.dll", + "lib/net461/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-android31.0/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-android31.0/SQLitePCLRaw.batteries_v2.xml", + "lib/net6.0-ios14.0/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-ios14.2/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-tvos10.0/SQLitePCLRaw.batteries_v2.dll", + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll", + "lib/xamarinios10/SQLitePCLRaw.batteries_v2.dll", + "sqlitepclraw.bundle_e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.bundle_e_sqlite3.nuspec" + ] + }, + "SQLitePCLRaw.core/2.1.6": { + "sha512": "wO6v9GeMx9CUngAet8hbO7xdm+M42p1XeJq47ogyRoYSvNSp0NGLI+MgC0bhrMk9C17MTVFlLiN6ylyExLCc5w==", + "type": "package", + "path": "sqlitepclraw.core/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/SQLitePCLRaw.core.dll", + "sqlitepclraw.core.2.1.6.nupkg.sha512", + "sqlitepclraw.core.nuspec" + ] + }, + "SQLitePCLRaw.lib.e_sqlite3/2.1.6": { + "sha512": "2ObJJLkIUIxRpOUlZNGuD4rICpBnrBR5anjyfUFQep4hMOIeqW+XGQYzrNmHSVz5xSWZ3klSbh7sFR6UyDj68Q==", + "type": "package", + "path": "sqlitepclraw.lib.e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "buildTransitive/net461/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net6.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net7.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net8.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "lib/net461/_._", + "lib/netstandard2.0/_._", + "runtimes/browser-wasm/nativeassets/net6.0/e_sqlite3.a", + "runtimes/browser-wasm/nativeassets/net7.0/e_sqlite3.a", + "runtimes/browser-wasm/nativeassets/net8.0/e_sqlite3.a", + "runtimes/linux-arm/native/libe_sqlite3.so", + "runtimes/linux-arm64/native/libe_sqlite3.so", + "runtimes/linux-armel/native/libe_sqlite3.so", + "runtimes/linux-mips64/native/libe_sqlite3.so", + "runtimes/linux-musl-arm/native/libe_sqlite3.so", + "runtimes/linux-musl-arm64/native/libe_sqlite3.so", + "runtimes/linux-musl-x64/native/libe_sqlite3.so", + "runtimes/linux-ppc64le/native/libe_sqlite3.so", + "runtimes/linux-s390x/native/libe_sqlite3.so", + "runtimes/linux-x64/native/libe_sqlite3.so", + "runtimes/linux-x86/native/libe_sqlite3.so", + "runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib", + "runtimes/maccatalyst-x64/native/libe_sqlite3.dylib", + "runtimes/osx-arm64/native/libe_sqlite3.dylib", + "runtimes/osx-x64/native/libe_sqlite3.dylib", + "runtimes/win-arm/native/e_sqlite3.dll", + "runtimes/win-arm64/native/e_sqlite3.dll", + "runtimes/win-x64/native/e_sqlite3.dll", + "runtimes/win-x86/native/e_sqlite3.dll", + "runtimes/win10-arm/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-arm64/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-x64/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-x86/nativeassets/uap10.0/e_sqlite3.dll", + "sqlitepclraw.lib.e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.lib.e_sqlite3.nuspec" + ] + }, + "SQLitePCLRaw.provider.e_sqlite3/2.1.6": { + "sha512": "PQ2Oq3yepLY4P7ll145P3xtx2bX8xF4PzaKPRpw9jZlKvfe4LE/saAV82inND9usn1XRpmxXk7Lal3MTI+6CNg==", + "type": "package", + "path": "sqlitepclraw.provider.e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net6.0-windows7.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "lib/netstandard2.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "sqlitepclraw.provider.e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.provider.e_sqlite3.nuspec" + ] + }, + "StackExchange.Redis/2.7.17": { + "sha512": "PduekHww3CrCBr1ebIPX4k4zdah9wjJ4AQZXfp+JfGJQfwf8s1SHSY7kthDi9MP0ULcYrNw4xnbRXFMbCryIig==", + "type": "package", + "path": "stackexchange.redis/2.7.17", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/StackExchange.Redis.dll", + "lib/net461/StackExchange.Redis.xml", + "lib/net472/StackExchange.Redis.dll", + "lib/net472/StackExchange.Redis.xml", + "lib/net6.0/StackExchange.Redis.dll", + "lib/net6.0/StackExchange.Redis.xml", + "lib/netcoreapp3.1/StackExchange.Redis.dll", + "lib/netcoreapp3.1/StackExchange.Redis.xml", + "lib/netstandard2.0/StackExchange.Redis.dll", + "lib/netstandard2.0/StackExchange.Redis.xml", + "stackexchange.redis.2.7.17.nupkg.sha512", + "stackexchange.redis.nuspec" + ] + }, + "Swashbuckle.AspNetCore/9.0.3": { + "sha512": "Akk4oFgy0ST8Q8pZTfPbrt045tWNyMMiKhlbYjG3qnjQZLz645IL5vhQm7NLicc2sAAQ+vftArIlsYWFevmb2g==", + "type": "package", + "path": "swashbuckle.aspnetcore/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/Swashbuckle.AspNetCore.props", + "buildMultiTargeting/Swashbuckle.AspNetCore.props", + "docs/package-readme.md", + "swashbuckle.aspnetcore.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.nuspec" + ] + }, + "Swashbuckle.AspNetCore.Swagger/9.0.3": { + "sha512": "CGpkZDWj1g/yH/0wYkxUtBhiFo5TY/Esq2fS0vlBvLOs1UL2Jzef9tdtYmTdd3zBPtnMyXQcsXjMt9yCxz4VaA==", + "type": "package", + "path": "swashbuckle.aspnetcore.swagger/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swagger.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swagger.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/9.0.3": { + "sha512": "STqjhw1TZiEGmIRgE6jcJUOcgU/Fjquc6dP4GqbuwBzqWZAWr/9T7FZOGWYEwKnmkMplzlUNepGHwnUrfTP0fw==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggergen/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swaggergen.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swaggergen.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerUI/9.0.3": { + "sha512": "DgJKJASz5OAygeKv2+N0FCZVhQylESqLXrtrRAqIT0vKpX7t5ImJ1FL6+6OqxKiamGkL0jchRXR8OgpMSsMh8w==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggerui/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swaggerui.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swaggerui.nuspec" + ] + }, + "System.CodeDom/4.4.0": { + "sha512": "2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==", + "type": "package", + "path": "system.codedom/4.4.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.CodeDom.dll", + "lib/netstandard2.0/System.CodeDom.dll", + "ref/net461/System.CodeDom.dll", + "ref/net461/System.CodeDom.xml", + "ref/netstandard2.0/System.CodeDom.dll", + "ref/netstandard2.0/System.CodeDom.xml", + "system.codedom.4.4.0.nupkg.sha512", + "system.codedom.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Collections.Immutable/8.0.0": { + "sha512": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "type": "package", + "path": "system.collections.immutable/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Collections.Immutable.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets", + "lib/net462/System.Collections.Immutable.dll", + "lib/net462/System.Collections.Immutable.xml", + "lib/net6.0/System.Collections.Immutable.dll", + "lib/net6.0/System.Collections.Immutable.xml", + "lib/net7.0/System.Collections.Immutable.dll", + "lib/net7.0/System.Collections.Immutable.xml", + "lib/net8.0/System.Collections.Immutable.dll", + "lib/net8.0/System.Collections.Immutable.xml", + "lib/netstandard2.0/System.Collections.Immutable.dll", + "lib/netstandard2.0/System.Collections.Immutable.xml", + "system.collections.immutable.8.0.0.nupkg.sha512", + "system.collections.immutable.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition/6.0.0": { + "sha512": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", + "type": "package", + "path": "system.composition/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.targets", + "buildTransitive/netcoreapp3.1/_._", + "system.composition.6.0.0.nupkg.sha512", + "system.composition.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.AttributedModel/6.0.0": { + "sha512": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==", + "type": "package", + "path": "system.composition.attributedmodel/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.AttributedModel.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.AttributedModel.dll", + "lib/net461/System.Composition.AttributedModel.xml", + "lib/net6.0/System.Composition.AttributedModel.dll", + "lib/net6.0/System.Composition.AttributedModel.xml", + "lib/netstandard2.0/System.Composition.AttributedModel.dll", + "lib/netstandard2.0/System.Composition.AttributedModel.xml", + "system.composition.attributedmodel.6.0.0.nupkg.sha512", + "system.composition.attributedmodel.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Convention/6.0.0": { + "sha512": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", + "type": "package", + "path": "system.composition.convention/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Convention.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Convention.dll", + "lib/net461/System.Composition.Convention.xml", + "lib/net6.0/System.Composition.Convention.dll", + "lib/net6.0/System.Composition.Convention.xml", + "lib/netstandard2.0/System.Composition.Convention.dll", + "lib/netstandard2.0/System.Composition.Convention.xml", + "system.composition.convention.6.0.0.nupkg.sha512", + "system.composition.convention.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Hosting/6.0.0": { + "sha512": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", + "type": "package", + "path": "system.composition.hosting/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Hosting.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Hosting.dll", + "lib/net461/System.Composition.Hosting.xml", + "lib/net6.0/System.Composition.Hosting.dll", + "lib/net6.0/System.Composition.Hosting.xml", + "lib/netstandard2.0/System.Composition.Hosting.dll", + "lib/netstandard2.0/System.Composition.Hosting.xml", + "system.composition.hosting.6.0.0.nupkg.sha512", + "system.composition.hosting.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Runtime/6.0.0": { + "sha512": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==", + "type": "package", + "path": "system.composition.runtime/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Runtime.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Runtime.dll", + "lib/net461/System.Composition.Runtime.xml", + "lib/net6.0/System.Composition.Runtime.dll", + "lib/net6.0/System.Composition.Runtime.xml", + "lib/netstandard2.0/System.Composition.Runtime.dll", + "lib/netstandard2.0/System.Composition.Runtime.xml", + "system.composition.runtime.6.0.0.nupkg.sha512", + "system.composition.runtime.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.TypedParts/6.0.0": { + "sha512": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", + "type": "package", + "path": "system.composition.typedparts/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.TypedParts.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.TypedParts.dll", + "lib/net461/System.Composition.TypedParts.xml", + "lib/net6.0/System.Composition.TypedParts.dll", + "lib/net6.0/System.Composition.TypedParts.xml", + "lib/netstandard2.0/System.Composition.TypedParts.dll", + "lib/netstandard2.0/System.Composition.TypedParts.xml", + "system.composition.typedparts.6.0.0.nupkg.sha512", + "system.composition.typedparts.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.EventLog/8.0.1": { + "sha512": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg==", + "type": "package", + "path": "system.diagnostics.eventlog/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Diagnostics.EventLog.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Diagnostics.EventLog.targets", + "lib/net462/System.Diagnostics.EventLog.dll", + "lib/net462/System.Diagnostics.EventLog.xml", + "lib/net6.0/System.Diagnostics.EventLog.dll", + "lib/net6.0/System.Diagnostics.EventLog.xml", + "lib/net7.0/System.Diagnostics.EventLog.dll", + "lib/net7.0/System.Diagnostics.EventLog.xml", + "lib/net8.0/System.Diagnostics.EventLog.dll", + "lib/net8.0/System.Diagnostics.EventLog.xml", + "lib/netstandard2.0/System.Diagnostics.EventLog.dll", + "lib/netstandard2.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.xml", + "system.diagnostics.eventlog.8.0.1.nupkg.sha512", + "system.diagnostics.eventlog.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Interactive.Async/6.0.1": { + "sha512": "f8H1O4ZWDQo344y5NQU76G4SIjWMuKDVXL9OM1dg6K5YZnLkc8iCdQDybBvMcC6ufk61jzXGVAX6UCDu0qDSjA==", + "type": "package", + "path": "system.interactive.async/6.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Logo.png", + "lib/net48/System.Interactive.Async.dll", + "lib/net48/System.Interactive.Async.xml", + "lib/net6.0/System.Interactive.Async.dll", + "lib/net6.0/System.Interactive.Async.xml", + "lib/netstandard2.0/System.Interactive.Async.dll", + "lib/netstandard2.0/System.Interactive.Async.xml", + "lib/netstandard2.1/System.Interactive.Async.dll", + "lib/netstandard2.1/System.Interactive.Async.xml", + "system.interactive.async.6.0.1.nupkg.sha512", + "system.interactive.async.nuspec" + ] + }, + "System.IO.Pipelines/8.0.0": { + "sha512": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "type": "package", + "path": "system.io.pipelines/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Pipelines.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", + "lib/net462/System.IO.Pipelines.dll", + "lib/net462/System.IO.Pipelines.xml", + "lib/net6.0/System.IO.Pipelines.dll", + "lib/net6.0/System.IO.Pipelines.xml", + "lib/net7.0/System.IO.Pipelines.dll", + "lib/net7.0/System.IO.Pipelines.xml", + "lib/net8.0/System.IO.Pipelines.dll", + "lib/net8.0/System.IO.Pipelines.xml", + "lib/netstandard2.0/System.IO.Pipelines.dll", + "lib/netstandard2.0/System.IO.Pipelines.xml", + "system.io.pipelines.8.0.0.nupkg.sha512", + "system.io.pipelines.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Linq.Async/6.0.1": { + "sha512": "0YhHcaroWpQ9UCot3Pizah7ryAzQhNvobLMSxeDIGmnXfkQn8u5owvpOH0K6EVB+z9L7u6Cc4W17Br/+jyttEQ==", + "type": "package", + "path": "system.linq.async/6.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Logo.png", + "lib/net48/System.Linq.Async.dll", + "lib/net48/System.Linq.Async.xml", + "lib/net6.0/System.Linq.Async.dll", + "lib/net6.0/System.Linq.Async.xml", + "lib/netstandard2.0/System.Linq.Async.dll", + "lib/netstandard2.0/System.Linq.Async.xml", + "lib/netstandard2.1/System.Linq.Async.dll", + "lib/netstandard2.1/System.Linq.Async.xml", + "ref/net48/System.Linq.Async.dll", + "ref/net48/System.Linq.Async.xml", + "ref/net6.0/System.Linq.Async.dll", + "ref/net6.0/System.Linq.Async.xml", + "ref/netstandard2.0/System.Linq.Async.dll", + "ref/netstandard2.0/System.Linq.Async.xml", + "ref/netstandard2.1/System.Linq.Async.dll", + "ref/netstandard2.1/System.Linq.Async.xml", + "system.linq.async.6.0.1.nupkg.sha512", + "system.linq.async.nuspec" + ] + }, + "System.Memory/4.5.3": { + "sha512": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "type": "package", + "path": "system.memory/4.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netcoreapp2.1/_._", + "lib/netstandard1.1/System.Memory.dll", + "lib/netstandard1.1/System.Memory.xml", + "lib/netstandard2.0/System.Memory.dll", + "lib/netstandard2.0/System.Memory.xml", + "ref/netcoreapp2.1/_._", + "system.memory.4.5.3.nupkg.sha512", + "system.memory.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Reflection.Metadata/8.0.0": { + "sha512": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "type": "package", + "path": "system.reflection.metadata/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Reflection.Metadata.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Reflection.Metadata.targets", + "lib/net462/System.Reflection.Metadata.dll", + "lib/net462/System.Reflection.Metadata.xml", + "lib/net6.0/System.Reflection.Metadata.dll", + "lib/net6.0/System.Reflection.Metadata.xml", + "lib/net7.0/System.Reflection.Metadata.dll", + "lib/net7.0/System.Reflection.Metadata.xml", + "lib/net8.0/System.Reflection.Metadata.dll", + "lib/net8.0/System.Reflection.Metadata.xml", + "lib/netstandard2.0/System.Reflection.Metadata.dll", + "lib/netstandard2.0/System.Reflection.Metadata.xml", + "system.reflection.metadata.8.0.0.nupkg.sha512", + "system.reflection.metadata.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "sha512": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "type": "package", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net461/System.Runtime.CompilerServices.Unsafe.xml", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml", + "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "system.runtime.compilerservices.unsafe.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Encoding.CodePages/6.0.0": { + "sha512": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "type": "package", + "path": "system.text.encoding.codepages/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.Text.Encoding.CodePages.dll", + "lib/net461/System.Text.Encoding.CodePages.xml", + "lib/net6.0/System.Text.Encoding.CodePages.dll", + "lib/net6.0/System.Text.Encoding.CodePages.xml", + "lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll", + "lib/netcoreapp3.1/System.Text.Encoding.CodePages.xml", + "lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "system.text.encoding.codepages.6.0.0.nupkg.sha512", + "system.text.encoding.codepages.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Json/8.0.5": { + "sha512": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", + "type": "package", + "path": "system.text.json/8.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "buildTransitive/net461/System.Text.Json.targets", + "buildTransitive/net462/System.Text.Json.targets", + "buildTransitive/net6.0/System.Text.Json.targets", + "buildTransitive/netcoreapp2.0/System.Text.Json.targets", + "buildTransitive/netstandard2.0/System.Text.Json.targets", + "lib/net462/System.Text.Json.dll", + "lib/net462/System.Text.Json.xml", + "lib/net6.0/System.Text.Json.dll", + "lib/net6.0/System.Text.Json.xml", + "lib/net7.0/System.Text.Json.dll", + "lib/net7.0/System.Text.Json.xml", + "lib/net8.0/System.Text.Json.dll", + "lib/net8.0/System.Text.Json.xml", + "lib/netstandard2.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.xml", + "system.text.json.8.0.5.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Threading.Channels/6.0.0": { + "sha512": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "type": "package", + "path": "system.threading.channels/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Threading.Channels.dll", + "lib/net461/System.Threading.Channels.xml", + "lib/net6.0/System.Threading.Channels.dll", + "lib/net6.0/System.Threading.Channels.xml", + "lib/netcoreapp3.1/System.Threading.Channels.dll", + "lib/netcoreapp3.1/System.Threading.Channels.xml", + "lib/netstandard2.0/System.Threading.Channels.dll", + "lib/netstandard2.0/System.Threading.Channels.xml", + "lib/netstandard2.1/System.Threading.Channels.dll", + "lib/netstandard2.1/System.Threading.Channels.xml", + "system.threading.channels.6.0.0.nupkg.sha512", + "system.threading.channels.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.ValueTuple/4.5.0": { + "sha512": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==", + "type": "package", + "path": "system.valuetuple/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.ValueTuple.dll", + "lib/net461/System.ValueTuple.xml", + "lib/net47/System.ValueTuple.dll", + "lib/net47/System.ValueTuple.xml", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.0/System.ValueTuple.dll", + "lib/netstandard1.0/System.ValueTuple.xml", + "lib/netstandard2.0/_._", + "lib/portable-net40+sl4+win8+wp8/System.ValueTuple.dll", + "lib/portable-net40+sl4+win8+wp8/System.ValueTuple.xml", + "lib/uap10.0.16299/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net461/System.ValueTuple.dll", + "ref/net47/System.ValueTuple.dll", + "ref/netcoreapp2.0/_._", + "ref/netstandard2.0/_._", + "ref/portable-net40+sl4+win8+wp8/System.ValueTuple.dll", + "ref/uap10.0.16299/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.valuetuple.4.5.0.nupkg.sha512", + "system.valuetuple.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Ulid/1.2.6": { + "sha512": "TDfJ/q4nJJ7LTxHErWYXRFs7laAUJhnT7Do+fpxxNg+uQOC1GKWLFuyJMKyMyIxQhFjWNC5XcFbr7R6HP9PFgw==", + "type": "package", + "path": "ulid/1.2.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "lib/net5.0/Ulid.dll", + "lib/net5.0/Ulid.xml", + "lib/netcoreapp2.1/Ulid.dll", + "lib/netcoreapp2.1/Ulid.xml", + "lib/netcoreapp3.1/Ulid.dll", + "lib/netcoreapp3.1/Ulid.xml", + "lib/netstandard2.0/Ulid.dll", + "lib/netstandard2.0/Ulid.xml", + "ulid.1.2.6.nupkg.sha512", + "ulid.nuspec" + ] + }, + "xunit/2.9.3": { + "sha512": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "type": "package", + "path": "xunit/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "xunit.2.9.3.nupkg.sha512", + "xunit.nuspec" + ] + }, + "xunit.abstractions/2.0.3": { + "sha512": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", + "type": "package", + "path": "xunit.abstractions/2.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/xunit.abstractions.dll", + "lib/net35/xunit.abstractions.xml", + "lib/netstandard1.0/xunit.abstractions.dll", + "lib/netstandard1.0/xunit.abstractions.xml", + "lib/netstandard2.0/xunit.abstractions.dll", + "lib/netstandard2.0/xunit.abstractions.xml", + "xunit.abstractions.2.0.3.nupkg.sha512", + "xunit.abstractions.nuspec" + ] + }, + "xunit.analyzers/1.18.0": { + "sha512": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==", + "type": "package", + "path": "xunit.analyzers/1.18.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "analyzers/dotnet/cs/xunit.analyzers.dll", + "analyzers/dotnet/cs/xunit.analyzers.fixes.dll", + "tools/install.ps1", + "tools/uninstall.ps1", + "xunit.analyzers.1.18.0.nupkg.sha512", + "xunit.analyzers.nuspec" + ] + }, + "xunit.assert/2.9.3": { + "sha512": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==", + "type": "package", + "path": "xunit.assert/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net6.0/xunit.assert.dll", + "lib/net6.0/xunit.assert.xml", + "lib/netstandard1.1/xunit.assert.dll", + "lib/netstandard1.1/xunit.assert.xml", + "xunit.assert.2.9.3.nupkg.sha512", + "xunit.assert.nuspec" + ] + }, + "xunit.core/2.9.3": { + "sha512": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "type": "package", + "path": "xunit.core/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/xunit.core.props", + "build/xunit.core.targets", + "buildMultiTargeting/xunit.core.props", + "buildMultiTargeting/xunit.core.targets", + "xunit.core.2.9.3.nupkg.sha512", + "xunit.core.nuspec" + ] + }, + "xunit.extensibility.core/2.9.3": { + "sha512": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "type": "package", + "path": "xunit.extensibility.core/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.core.dll", + "lib/net452/xunit.core.dll.tdnet", + "lib/net452/xunit.core.xml", + "lib/net452/xunit.runner.tdnet.dll", + "lib/net452/xunit.runner.utility.net452.dll", + "lib/netstandard1.1/xunit.core.dll", + "lib/netstandard1.1/xunit.core.xml", + "xunit.extensibility.core.2.9.3.nupkg.sha512", + "xunit.extensibility.core.nuspec" + ] + }, + "xunit.extensibility.execution/2.9.3": { + "sha512": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "type": "package", + "path": "xunit.extensibility.execution/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.execution.desktop.dll", + "lib/net452/xunit.execution.desktop.xml", + "lib/netstandard1.1/xunit.execution.dotnet.dll", + "lib/netstandard1.1/xunit.execution.dotnet.xml", + "xunit.extensibility.execution.2.9.3.nupkg.sha512", + "xunit.extensibility.execution.nuspec" + ] + }, + "xunit.runner.visualstudio/3.1.1": { + "sha512": "gNu2zhnuwjq5vQlU4S7yK/lfaKZDLmtcu+vTjnhfTlMAUYn+Hmgu8IIX0UCwWepYkk+Szx03DHx1bDnc9Fd+9w==", + "type": "package", + "path": "xunit.runner.visualstudio/3.1.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/net472/xunit.abstractions.dll", + "build/net472/xunit.runner.visualstudio.props", + "build/net472/xunit.runner.visualstudio.testadapter.dll", + "build/net8.0/xunit.abstractions.dll", + "build/net8.0/xunit.runner.visualstudio.props", + "build/net8.0/xunit.runner.visualstudio.testadapter.dll", + "lib/net472/_._", + "lib/net8.0/_._", + "xunit.runner.visualstudio.3.1.1.nupkg.sha512", + "xunit.runner.visualstudio.nuspec" + ] + }, + "YamlDotNet/16.3.0": { + "sha512": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==", + "type": "package", + "path": "yamldotnet/16.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "images/yamldotnet.png", + "lib/net47/YamlDotNet.dll", + "lib/net47/YamlDotNet.xml", + "lib/net6.0/YamlDotNet.dll", + "lib/net6.0/YamlDotNet.xml", + "lib/net8.0/YamlDotNet.dll", + "lib/net8.0/YamlDotNet.xml", + "lib/netstandard2.0/YamlDotNet.dll", + "lib/netstandard2.0/YamlDotNet.xml", + "lib/netstandard2.1/YamlDotNet.dll", + "lib/netstandard2.1/YamlDotNet.xml", + "yamldotnet.16.3.0.nupkg.sha512", + "yamldotnet.nuspec" + ] + }, + "LBPUnion.ProjectLighthouse/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse/ProjectLighthouse.csproj", + "msbuildProject": "../ProjectLighthouse/ProjectLighthouse.csproj" + }, + "LBPUnion.ProjectLighthouse.Servers.Website/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse.Servers.Website/ProjectLighthouse.Servers.Website.csproj", + "msbuildProject": "../ProjectLighthouse.Servers.Website/ProjectLighthouse.Servers.Website.csproj" + }, + "LBPUnion.ProjectLighthouse.Tests/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj", + "msbuildProject": "../ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj" + }, + "ProjectLighthouse.Localization/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj", + "msbuildProject": "../ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "JetBrains.Annotations >= 2024.3.0", + "LBPUnion.ProjectLighthouse >= 1.0.0", + "LBPUnion.ProjectLighthouse.Servers.Website >= 1.0.0", + "LBPUnion.ProjectLighthouse.Tests >= 1.0.0", + "Microsoft.AspNetCore.Mvc.Testing >= 8.0.18", + "Microsoft.EntityFrameworkCore.Design >= 8.0.18", + "Microsoft.NET.Test.Sdk >= 17.14.1", + "ProjectLighthouse.Localization >= 1.0.0", + "Selenium.WebDriver >= 4.34.0", + "Selenium.WebDriver.ChromeDriver >= 138.0.7204.9400", + "coverlet.collector >= 6.0.4", + "xunit >= 2.9.3", + "xunit.runner.visualstudio >= 3.1.1" + ] + }, + "packageFolders": { + "C:\\Users\\Faisa\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\ProjectLighthouse.Tests.WebsiteTests.csproj", + "projectName": "ProjectLighthouse.Tests.WebsiteTests", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\ProjectLighthouse.Tests.WebsiteTests.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.Website\\ProjectLighthouse.Servers.Website.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Servers.Website\\ProjectLighthouse.Servers.Website.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj" + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Mvc.Testing": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.14.1, )" + }, + "Selenium.WebDriver": { + "target": "Package", + "version": "[4.34.0, )" + }, + "Selenium.WebDriver.ChromeDriver": { + "target": "Package", + "version": "[138.0.7204.9400, )" + }, + "coverlet.collector": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[6.0.4, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.1.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/ProjectLighthouse.Tests.WebsiteTests/obj/project.nuget.cache b/ProjectLighthouse.Tests.WebsiteTests/obj/project.nuget.cache new file mode 100644 index 00000000..63e68007 --- /dev/null +++ b/ProjectLighthouse.Tests.WebsiteTests/obj/project.nuget.cache @@ -0,0 +1,127 @@ +{ + "version": 2, + "dgSpecHash": "D2/2MF0NkRs=", + "success": true, + "projectFilePath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests.WebsiteTests\\ProjectLighthouse.Tests.WebsiteTests.csproj", + "expectedPackageFiles": [ + "C:\\Users\\Faisa\\.nuget\\packages\\bcrypt.net-next\\4.0.3\\bcrypt.net-next.4.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\bouncycastle.cryptography\\2.6.1\\bouncycastle.cryptography.2.6.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\castle.core\\5.1.1\\castle.core.5.1.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\coverlet.collector\\6.0.4\\coverlet.collector.6.0.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.core\\3.17.4\\discord.net.core.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.rest\\3.17.4\\discord.net.rest.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.webhook\\3.17.4\\discord.net.webhook.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\distributedlock.core\\1.0.6\\distributedlock.core.1.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\distributedlock.mysql\\1.0.2\\distributedlock.mysql.1.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\jetbrains.annotations\\2024.3.0\\jetbrains.annotations.2024.3.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.diagnostics.entityframeworkcore\\8.0.18\\microsoft.aspnetcore.diagnostics.entityframeworkcore.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.mvc.testing\\8.0.18\\microsoft.aspnetcore.mvc.testing.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.testhost\\8.0.18\\microsoft.aspnetcore.testhost.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\8.0.0\\microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\4.5.0\\microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\4.5.0\\microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codecoverage\\17.14.1\\microsoft.codecoverage.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.data.sqlite.core\\8.0.6\\microsoft.data.sqlite.core.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.18\\microsoft.entityframeworkcore.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.18\\microsoft.entityframeworkcore.abstractions.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.18\\microsoft.entityframeworkcore.analyzers.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.design\\8.0.18\\microsoft.entityframeworkcore.design.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.18\\microsoft.entityframeworkcore.relational.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.sqlite\\8.0.6\\microsoft.entityframeworkcore.sqlite.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.sqlite.core\\8.0.6\\microsoft.entityframeworkcore.sqlite.core.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.apidescription.server\\8.0.0\\microsoft.extensions.apidescription.server.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration\\8.0.0\\microsoft.extensions.configuration.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.binder\\8.0.2\\microsoft.extensions.configuration.binder.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\8.0.0\\microsoft.extensions.configuration.commandline.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\8.0.0\\microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\8.0.1\\microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.json\\8.0.1\\microsoft.extensions.configuration.json.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\8.0.1\\microsoft.extensions.configuration.usersecrets.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencymodel\\8.0.2\\microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.diagnostics\\8.0.1\\microsoft.extensions.diagnostics.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\8.0.1\\microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\8.0.0\\microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\8.0.0\\microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\8.0.0\\microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.hosting\\8.0.1\\microsoft.extensions.hosting.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\8.0.1\\microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.configuration\\8.0.1\\microsoft.extensions.logging.configuration.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.console\\8.0.1\\microsoft.extensions.logging.console.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.debug\\8.0.1\\microsoft.extensions.logging.debug.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.eventlog\\8.0.1\\microsoft.extensions.logging.eventlog.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.eventsource\\8.0.1\\microsoft.extensions.logging.eventsource.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\8.0.0\\microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.net.test.sdk\\17.14.1\\microsoft.net.test.sdk.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.openapi\\1.6.23\\microsoft.openapi.1.6.23.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.testplatform.objectmodel\\17.14.1\\microsoft.testplatform.objectmodel.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.testplatform.testhost\\17.14.1\\microsoft.testplatform.testhost.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\moq\\4.20.72\\moq.4.20.72.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\mysqlconnector\\2.3.5\\mysqlconnector.2.3.5.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pfim\\0.11.3\\pfim.0.11.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.8\\pipelines.sockets.unofficial.2.2.8.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pomelo.entityframeworkcore.mysql\\8.0.2\\pomelo.entityframeworkcore.mysql.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\qrcoder\\1.6.0\\qrcoder.1.6.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\redis.om\\1.0.1\\redis.om.1.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\selenium.webdriver\\4.34.0\\selenium.webdriver.4.34.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\selenium.webdriver.chromedriver\\138.0.7204.9400\\selenium.webdriver.chromedriver.138.0.7204.9400.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sharpziplib\\1.4.2\\sharpziplib.1.4.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sixlabors.imagesharp\\3.1.10\\sixlabors.imagesharp.3.1.10.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.bundle_e_sqlite3\\2.1.6\\sqlitepclraw.bundle_e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.core\\2.1.6\\sqlitepclraw.core.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.lib.e_sqlite3\\2.1.6\\sqlitepclraw.lib.e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.provider.e_sqlite3\\2.1.6\\sqlitepclraw.provider.e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\stackexchange.redis\\2.7.17\\stackexchange.redis.2.7.17.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore\\9.0.3\\swashbuckle.aspnetcore.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\9.0.3\\swashbuckle.aspnetcore.swagger.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\9.0.3\\swashbuckle.aspnetcore.swaggergen.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\9.0.3\\swashbuckle.aspnetcore.swaggerui.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.collections.immutable\\8.0.0\\system.collections.immutable.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.diagnostics.eventlog\\8.0.1\\system.diagnostics.eventlog.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.interactive.async\\6.0.1\\system.interactive.async.6.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.io.pipelines\\8.0.0\\system.io.pipelines.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.linq.async\\6.0.1\\system.linq.async.6.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.reflection.metadata\\8.0.0\\system.reflection.metadata.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.text.json\\8.0.5\\system.text.json.8.0.5.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.valuetuple\\4.5.0\\system.valuetuple.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\ulid\\1.2.6\\ulid.1.2.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit\\2.9.3\\xunit.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.abstractions\\2.0.3\\xunit.abstractions.2.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.analyzers\\1.18.0\\xunit.analyzers.1.18.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.assert\\2.9.3\\xunit.assert.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.core\\2.9.3\\xunit.core.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.extensibility.core\\2.9.3\\xunit.extensibility.core.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.extensibility.execution\\2.9.3\\xunit.extensibility.execution.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.runner.visualstudio\\3.1.1\\xunit.runner.visualstudio.3.1.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\yamldotnet\\16.3.0\\yamldotnet.16.3.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.netcore.app.ref\\8.0.19\\microsoft.netcore.app.ref.8.0.19.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.windowsdesktop.app.ref\\8.0.19\\microsoft.windowsdesktop.app.ref.8.0.19.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.app.ref\\8.0.19\\microsoft.aspnetcore.app.ref.8.0.19.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/ProjectLighthouse.Tests/ExampleFiles/TestGarbage.bin b/ProjectLighthouse.Tests/ExampleFiles/TestGarbage.bin index 5ec6cb6d..21861d75 100644 --- a/ProjectLighthouse.Tests/ExampleFiles/TestGarbage.bin +++ b/ProjectLighthouse.Tests/ExampleFiles/TestGarbage.bin @@ -1,27 +1,27 @@ -��N����g��▒;ݎ�soVy��ʖQ�▒�9؋�L`� -m�]�� ��!�p�x/JY@��{�����Yj�G��4���O�c{��9���|n=�Ԫ����З�O��œRF���{����SQ��Fх �����0>� ��hλ37=��,�f��� -���C����^�ݳrY��I�����/�^�ue�ױ~WϮ���6ҝ)SgQ�ǰ�VF~]�~����GY5��o04��s[��FgƄ|��;�p�.�O�[��>d�ɉ�C��M��9�T꨿:��)�N��;z'��7�>,����cc�h0���+�c�� - B��▒��lTFH /�*�m��F�W�̚��Q��q��ϰ�R{���߂O{��_D��mM�!����?�i-1(��fK��▒&���&l���nI��/▒�6��� - �H�6��m�Ԯ��,�F�zuT���D�%�d�C��Q)N��hS�}mZ�~�>x���@� "A�O�n�� ¸��jbh��[����p�V��^+����r�F�� �]���m{����ҋ�v��4^QA+����X^O�D����`���\Y3�q#�j��#E�n��[�禽��BÙ -�E";�/�`�jS/_�j9Ƒ� - ���?�����V���\������9M��i��;k(���Z# - k��w�M�O - �r - ?�s~��Ԑ�]�!�^�'�Kw������q7��)���X�j�o&�|{0��*2����� -�b�&Jh�▒�y��7���<�� ��ꝱϷ�g -+~��&�1S�\x�Wf��J�Ԓݣpd�2=�W�Ub����i�? - ��5��ں}��j�e#=գ��Q���5�rX6���*݋���� - �у�j:1f�MG�����ϮZ��3��7��-�q������oaE+��▒ m� ����Q�/7��`�x['�7� --��nFV桖��1�smP��v�;�B��>X��u- -M�p%�3��k )�y� ���œ &Z�$��(�(�u�z�~����'B%�:��<鍷��� - ��T -��=�v���r�U������▒)���m���d,��q(f.���ίv�Rߏ ��:�F ��&V��wZ�E&����D���� -i ��9���%����w��eM▒��/qH~q@�<��YH���BLKx�V���v� - ��t�U�1�I����������|K�HL8�G�O�����6̆~� �s)��۹�zM���0cG9�(����$v�ʑd�Uy���_Sn�>��G�����y�\I*(��� - �ĀI���x�cє8�%�!c�ٮb▒l����.M�u�<�$GPx.-� - �޷���!eF9 -H`)[���▒������g���n�6j �͓�a�eߞ'���� >�`28��0��Q5d/Ǥ��q�8��J�赱r�iD(��*��Z� -����>K4��G�]�q\�}m��3����)�s&��[����1T!��t�=ӱl�;$����~��vH` - Z,޳K�_�F�?K)���i��Ի<*)�e�=��`�/i͐+U�d���i�����Wҭ���h�[̃䝍�}��:���Z���υq�ɂnRcrx깼36��b��9�-"{�a^j;�������ӵ��f�[��̓o����D`)����F7��ݩ/��>����h��r��M1��(Tc0E4 - Ol�O��ƷB�c桩��ًM[�{���>�A^C +��N����g��▒;ݎ�soVy��ʖQ�▒�9؋�L`� +m�]�� ��!�p�x/JY@��{�����Yj�G��4���O�c{��9���|n=�Ԫ����З�O��œRF���{����SQ��Fх �����0>� ��hλ37=��,�f��� +���C����^�ݳrY��I�����/�^�ue�ױ~WϮ���6ҝ)SgQ�ǰ�VF~]�~����GY5��o04��s[��FgƄ|��;�p�.�O�[��>d�ɉ�C��M��9�T꨿:��)�N��;z'��7�>,����cc�h0���+�c�� + B��▒��lTFH /�*�m��F�W�̚��Q��q��ϰ�R{���߂O{��_D��mM�!����?�i-1(��fK��▒&���&l���nI��/▒�6��� + �H�6��m�Ԯ��,�F�zuT���D�%�d�C��Q)N��hS�}mZ�~�>x���@� "A�O�n�� ¸��jbh��[����p�V��^+����r�F�� �]���m{����ҋ�v��4^QA+����X^O�D����`���\Y3�q#�j��#E�n��[�禽��BÙ +�E";�/�`�jS/_�j9Ƒ� + ���?�����V���\������9M��i��;k(���Z# + k��w�M�O + �r + ?�s~��Ԑ�]�!�^�'�Kw������q7��)���X�j�o&�|{0��*2����� +�b�&Jh�▒�y��7���<�� ��ꝱϷ�g ++~��&�1S�\x�Wf��J�Ԓݣpd�2=�W�Ub����i�? + ��5��ں}��j�e#=գ��Q���5�rX6���*݋���� + �у�j:1f�MG�����ϮZ��3��7��-�q������oaE+��▒ m� ����Q�/7��`�x['�7� +-��nFV桖��1�smP��v�;�B��>X��u- +M�p%�3��k )�y� ���œ &Z�$��(�(�u�z�~����'B%�:��<鍷��� + ��T +��=�v���r�U������▒)���m���d,��q(f.���ίv�Rߏ ��:�F ��&V��wZ�E&����D���� +i ��9���%����w��eM▒��/qH~q@�<��YH���BLKx�V���v� + ��t�U�1�I����������|K�HL8�G�O�����6̆~� �s)��۹�zM���0cG9�(����$v�ʑd�Uy���_Sn�>��G�����y�\I*(��� + �ĀI���x�cє8�%�!c�ٮb▒l����.M�u�<�$GPx.-� + �޷���!eF9 +H`)[���▒������g���n�6j �͓�a�eߞ'���� >�`28��0��Q5d/Ǥ��q�8��J�赱r�iD(��*��Z� +����>K4��G�]�q\�}m��3����)�s&��[����1T!��t�=ӱl�;$����~��vH` + Z,޳K�_�F�?K)���i��Ի<*)�e�=��`�/i͐+U�d���i�����Wҭ���h�[̃䝍�}��:���Z���υq�ɂnRcrx깼36��b��9�-"{�a^j;�������ӵ��f�[��̓o����D`)����F7��ݩ/��>����h��r��M1��(Tc0E4 + Ol�O��ƷB�c桩��ًM[�{���>�A^C diff --git a/ProjectLighthouse.Tests/ExampleFiles/TestScript.ff b/ProjectLighthouse.Tests/ExampleFiles/TestScript.ff index dfc876f9..a1852222 100644 --- a/ProjectLighthouse.Tests/ExampleFiles/TestScript.ff +++ b/ProjectLighthouse.Tests/ExampleFiles/TestScript.ff @@ -1,3 +1,3 @@ -FSHb - +FSHb + this is not my stuff to upload so its just gonna be a file like this for now :/ \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Helpers/IntegrationHelper.cs b/ProjectLighthouse.Tests/Helpers/IntegrationHelper.cs index 5562036a..bf19afa8 100644 --- a/ProjectLighthouse.Tests/Helpers/IntegrationHelper.cs +++ b/ProjectLighthouse.Tests/Helpers/IntegrationHelper.cs @@ -1,43 +1,43 @@ -using System; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; - -namespace LBPUnion.ProjectLighthouse.Tests.Helpers; - -public static class IntegrationHelper -{ - private static readonly Lazy dbConnected = new(() => - { - using DatabaseContext database = DatabaseContext.CreateNewInstance(); - return database.Database.CanConnect(); - }); - - - /// - /// Resets the database to a clean state and returns a new DatabaseContext. - /// - /// A new fresh instance of DatabaseContext - public static async Task GetIntegrationDatabase() - { - if (!dbConnected.Value) - { - throw new Exception("Database is not connected.\n" + - "Please ensure that the database is running and that the connection string is correct.\n" + - $"Connection string: {ServerConfiguration.Instance.DbConnectionString}"); - } - await ClearRooms(); - await using DatabaseContext database = DatabaseContext.CreateNewInstance(); - await database.Database.EnsureDeletedAsync(); - await database.Database.EnsureCreatedAsync(); - - return DatabaseContext.CreateNewInstance(); - } - - private static async Task ClearRooms() - { - await RoomHelper.Rooms.RemoveAllAsync(); - } - +using System; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; + +namespace LBPUnion.ProjectLighthouse.Tests.Helpers; + +public static class IntegrationHelper +{ + private static readonly Lazy dbConnected = new(() => + { + using DatabaseContext database = DatabaseContext.CreateNewInstance(); + return database.Database.CanConnect(); + }); + + + /// + /// Resets the database to a clean state and returns a new DatabaseContext. + /// + /// A new fresh instance of DatabaseContext + public static async Task GetIntegrationDatabase() + { + if (!dbConnected.Value) + { + throw new Exception("Database is not connected.\n" + + "Please ensure that the database is running and that the connection string is correct.\n" + + $"Connection string: {ServerConfiguration.Instance.DbConnectionString}"); + } + await ClearRooms(); + await using DatabaseContext database = DatabaseContext.CreateNewInstance(); + await database.Database.EnsureDeletedAsync(); + await database.Database.EnsureCreatedAsync(); + + return DatabaseContext.CreateNewInstance(); + } + + private static async Task ClearRooms() + { + await RoomHelper.Rooms.RemoveAllAsync(); + } + } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Helpers/MockHelper.cs b/ProjectLighthouse.Tests/Helpers/MockHelper.cs index 64dc10c3..a3550c60 100644 --- a/ProjectLighthouse.Tests/Helpers/MockHelper.cs +++ b/ProjectLighthouse.Tests/Helpers/MockHelper.cs @@ -1,149 +1,149 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Data.Common; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Entities.Token; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Controllers; -using Microsoft.Data.Sqlite; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Helpers; - -public static class MockHelper -{ - - public static UserEntity GetUnitTestUser() => - new() - { - Username = "unittest", - UserId = 1, - }; - - public static GameTokenEntity GetUnitTestToken() => - new() - { - Platform = Platform.UnitTest, - UserId = 1, - ExpiresAt = DateTime.MaxValue, - TokenId = 1, - UserToken = "unittest", - }; - - public static T2 CastTo(this IActionResult result) where T1 : ObjectResult - { - T1 typedResult = Assert.IsType(result); - Assert.NotNull(typedResult); - Assert.NotNull(typedResult.Value); - T2 finalResult = Assert.IsType(typedResult.Value); - Assert.NotNull(finalResult); - return finalResult; - } - - private static async Task> GetInMemoryDbOptions() - { - DbConnection connection = new SqliteConnection("DataSource=:memory:"); - await connection.OpenAsync(); - return new DbContextOptionsBuilder().UseSqlite(connection); - } - - public static async Task GetTestDatabase(params object[] sets) - { - await RoomHelper.Rooms.RemoveAllAsync(); - - Dictionary setDict = new(); - foreach (IList list in sets) - { - Type? type = list.GetType().GetGenericArguments().ElementAtOrDefault(0); - if (type == null) continue; - setDict[type] = list; - } - - setDict.TryAdd(typeof(GameTokenEntity), new List()); - setDict.TryAdd(typeof(UserEntity), new List()); - - // add the default user token if another token with id 1 isn't specified - if (setDict.TryGetValue(typeof(GameTokenEntity), out IList? tokens)) - { - if (tokens.Cast().FirstOrDefault(t => t.TokenId == 1) == null) - { - setDict[typeof(GameTokenEntity)].Add(GetUnitTestToken()); - } - } - - // add the default user if another user with id 1 isn't specified - if (setDict.TryGetValue(typeof(UserEntity), out IList? users)) - { - if (users.Cast().FirstOrDefault(u => u.UserId == 1) == null) - { - setDict[typeof(UserEntity)].Add(GetUnitTestUser()); - } - } - - DbContextOptions options = (await GetInMemoryDbOptions()).Options; - - await using DatabaseContext context = new(options); - await context.Database.EnsureCreatedAsync(); - - foreach (IList list in setDict.Select(p => p.Value)) - { - foreach (object item in list) - { - context.Add(item); - } - } - - await context.SaveChangesAsync(); - - return new DatabaseContext(options); - } - - public static void SetupTestController(this ControllerBase controllerBase, string? body = null) - { - SetupTestController(controllerBase, GetUnitTestToken(), body); - } - - public static void SetupTestController(this ControllerBase controllerBase, GameTokenEntity token, string? body = null) - { - controllerBase.ControllerContext = GetMockControllerContext(body); - SetupTestGameToken(controllerBase, token); - } - - public static ControllerContext GetMockControllerContext() => - new() - { - HttpContext = new DefaultHttpContext(), - }; - - private static ControllerContext GetMockControllerContext(string? body) => - new() - { - HttpContext = new DefaultHttpContext - { - Request = - { - ContentLength = body?.Length ?? 0, - Body = new MemoryStream(Encoding.ASCII.GetBytes(body ?? string.Empty)), - }, - }, - ActionDescriptor = new ControllerActionDescriptor - { - ActionName = "", - }, - }; - - private static void SetupTestGameToken(ControllerBase controller, GameTokenEntity token) - { - controller.HttpContext.Items["Token"] = token; - } +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data.Common; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Controllers; +using Microsoft.Data.Sqlite; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Helpers; + +public static class MockHelper +{ + + public static UserEntity GetUnitTestUser() => + new() + { + Username = "unittest", + UserId = 1, + }; + + public static GameTokenEntity GetUnitTestToken() => + new() + { + Platform = Platform.UnitTest, + UserId = 1, + ExpiresAt = DateTime.MaxValue, + TokenId = 1, + UserToken = "unittest", + }; + + public static T2 CastTo(this IActionResult result) where T1 : ObjectResult + { + T1 typedResult = Assert.IsType(result); + Assert.NotNull(typedResult); + Assert.NotNull(typedResult.Value); + T2 finalResult = Assert.IsType(typedResult.Value); + Assert.NotNull(finalResult); + return finalResult; + } + + private static async Task> GetInMemoryDbOptions() + { + DbConnection connection = new SqliteConnection("DataSource=:memory:"); + await connection.OpenAsync(); + return new DbContextOptionsBuilder().UseSqlite(connection); + } + + public static async Task GetTestDatabase(params object[] sets) + { + await RoomHelper.Rooms.RemoveAllAsync(); + + Dictionary setDict = new(); + foreach (IList list in sets) + { + Type? type = list.GetType().GetGenericArguments().ElementAtOrDefault(0); + if (type == null) continue; + setDict[type] = list; + } + + setDict.TryAdd(typeof(GameTokenEntity), new List()); + setDict.TryAdd(typeof(UserEntity), new List()); + + // add the default user token if another token with id 1 isn't specified + if (setDict.TryGetValue(typeof(GameTokenEntity), out IList? tokens)) + { + if (tokens.Cast().FirstOrDefault(t => t.TokenId == 1) == null) + { + setDict[typeof(GameTokenEntity)].Add(GetUnitTestToken()); + } + } + + // add the default user if another user with id 1 isn't specified + if (setDict.TryGetValue(typeof(UserEntity), out IList? users)) + { + if (users.Cast().FirstOrDefault(u => u.UserId == 1) == null) + { + setDict[typeof(UserEntity)].Add(GetUnitTestUser()); + } + } + + DbContextOptions options = (await GetInMemoryDbOptions()).Options; + + await using DatabaseContext context = new(options); + await context.Database.EnsureCreatedAsync(); + + foreach (IList list in setDict.Select(p => p.Value)) + { + foreach (object item in list) + { + context.Add(item); + } + } + + await context.SaveChangesAsync(); + + return new DatabaseContext(options); + } + + public static void SetupTestController(this ControllerBase controllerBase, string? body = null) + { + SetupTestController(controllerBase, GetUnitTestToken(), body); + } + + public static void SetupTestController(this ControllerBase controllerBase, GameTokenEntity token, string? body = null) + { + controllerBase.ControllerContext = GetMockControllerContext(body); + SetupTestGameToken(controllerBase, token); + } + + public static ControllerContext GetMockControllerContext() => + new() + { + HttpContext = new DefaultHttpContext(), + }; + + private static ControllerContext GetMockControllerContext(string? body) => + new() + { + HttpContext = new DefaultHttpContext + { + Request = + { + ContentLength = body?.Length ?? 0, + Body = new MemoryStream(Encoding.ASCII.GetBytes(body ?? string.Empty)), + }, + }, + ActionDescriptor = new ControllerActionDescriptor + { + ActionName = "", + }, + }; + + private static void SetupTestGameToken(ControllerBase controller, GameTokenEntity token) + { + controller.HttpContext.Items["Token"] = token; + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Integration/LighthouseServerTest.cs b/ProjectLighthouse.Tests/Integration/LighthouseServerTest.cs index 5faa9ff9..2b8ee166 100644 --- a/ProjectLighthouse.Tests/Integration/LighthouseServerTest.cs +++ b/ProjectLighthouse.Tests/Integration/LighthouseServerTest.cs @@ -1,145 +1,145 @@ -using System; -using System.IO; -using System.Net.Http; -using System.Security.Cryptography; -using System.Threading.Tasks; -using System.Xml.Serialization; -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Tickets; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Users; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.TestHost; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Integration; - -[Collection(nameof(LighthouseServerTest))] -public class LighthouseServerTest where TStartup : class -{ - protected readonly HttpClient Client; - private readonly TestServer server; - - protected LighthouseServerTest() - { - ServerConfiguration.Instance.DbConnectionString = "server=127.0.0.1;uid=root;pwd=lighthouse_tests;database=lighthouse_tests"; - ServerConfiguration.Instance.DigestKey.PrimaryDigestKey = "lighthouse"; - this.server = new TestServer(new WebHostBuilder().UseStartup()); - this.Client = this.server.CreateClient(); - } - - public TestServer GetTestServer() => this.server; - - protected async Task CreateRandomUser() - { - await using DatabaseContext database = DatabaseContext.CreateNewInstance(); - - int userId = RandomNumberGenerator.GetInt32(int.MaxValue); - const string username = "unitTestUser"; - // if user already exists, find another random number - while (await database.Users.AnyAsync(u => u.Username == $"{username}{userId}")) - { - userId = RandomNumberGenerator.GetInt32(int.MaxValue); - } - - UserEntity user = new() - { - UserId = userId, - Username = $"{username}{userId}", - Password = CryptoHelper.BCryptHash($"unitTestPassword{userId}"), - LinkedPsnId = (ulong)userId, - }; - - database.Add(user); - await database.SaveChangesAsync(); - return user; - } - - protected async Task AuthenticateResponse() - { - UserEntity user = await this.CreateRandomUser(); - - byte[] ticketData = new TicketBuilder() - .SetUsername($"{user.Username}{user.UserId}") - .SetUserId((ulong)user.UserId) - .Build(); - - HttpResponseMessage response = await this.Client.PostAsync - ($"/LITTLEBIGPLANETPS3_XML/login?titleID={GameVersionHelper.LittleBigPlanet2TitleIds[0]}", new ByteArrayContent(ticketData)); - return response; - } - - protected async Task Authenticate() - { - HttpResponseMessage response = await this.AuthenticateResponse(); - - string responseContent = await response.Content.ReadAsStringAsync(); - - XmlSerializer serializer = new(typeof(LoginResult)); - return (LoginResult)serializer.Deserialize(new StringReader(responseContent))!; - } - - protected Task AuthenticatedRequest(string endpoint, string mmAuth) => this.AuthenticatedRequest(endpoint, mmAuth, HttpMethod.Get); - - private static string GetDigestCookie(string mmAuth) => mmAuth["MM_AUTH=".Length..]; - - private Task AuthenticatedRequest(string endpoint, string mmAuth, HttpMethod method) - { - if (!endpoint.StartsWith("/")) endpoint = $"/{endpoint}"; - - using HttpRequestMessage requestMessage = new(method, endpoint); - requestMessage.Headers.Add("Cookie", mmAuth); - string path = endpoint.Split("?", StringSplitOptions.RemoveEmptyEntries)[0]; - - string digest = CryptoHelper.ComputeDigest(path, GetDigestCookie(mmAuth), Array.Empty(), "lighthouse"); - requestMessage.Headers.Add("X-Digest-A", digest); - - return this.Client.SendAsync(requestMessage); - } - - public async Task UploadFileEndpointRequest(string filePath) - { - byte[] bytes = await File.ReadAllBytesAsync(filePath); - string hash = CryptoHelper.Sha1Hash(bytes).ToLower(); - - return await this.Client.PostAsync($"/LITTLEBIGPLANETPS3_XML/upload/{hash}", new ByteArrayContent(bytes)); - } - - protected async Task AuthenticatedUploadFileEndpointRequest(string filePath, string mmAuth) - { - byte[] bytes = await File.ReadAllBytesAsync(filePath); - string hash = CryptoHelper.Sha1Hash(bytes).ToLower(); - using HttpRequestMessage requestMessage = new(HttpMethod.Post, $"/LITTLEBIGPLANETPS3_XML/upload/{hash}"); - requestMessage.Headers.Add("Cookie", mmAuth); - requestMessage.Content = new ByteArrayContent(bytes); - string digest = CryptoHelper.ComputeDigest($"/LITTLEBIGPLANETPS3_XML/upload/{hash}", GetDigestCookie(mmAuth), bytes, "lighthouse", true); - requestMessage.Headers.Add("X-Digest-B", digest); - return await this.Client.SendAsync(requestMessage); - } - - public async Task UploadFileRequest(string endpoint, string filePath) - => await this.Client.PostAsync(endpoint, new StringContent(await File.ReadAllTextAsync(filePath))); - - public async Task UploadDataRequest(string endpoint, byte[] data) => await this.Client.PostAsync(endpoint, new ByteArrayContent(data)); - - public async Task AuthenticatedUploadFileRequest(string endpoint, string filePath, string mmAuth) - { - using HttpRequestMessage requestMessage = new(HttpMethod.Post, endpoint); - requestMessage.Headers.Add("Cookie", mmAuth); - requestMessage.Content = new StringContent(await File.ReadAllTextAsync(filePath)); - return await this.Client.SendAsync(requestMessage); - } - - protected async Task AuthenticatedUploadDataRequest(string endpoint, byte[] data, string mmAuth) - { - using HttpRequestMessage requestMessage = new(HttpMethod.Post, endpoint); - requestMessage.Headers.Add("Cookie", mmAuth); - requestMessage.Content = new ByteArrayContent(data); - string digest = CryptoHelper.ComputeDigest(endpoint, GetDigestCookie(mmAuth), data, "lighthouse"); - requestMessage.Headers.Add("X-Digest-A", digest); - return await this.Client.SendAsync(requestMessage); - } +using System; +using System.IO; +using System.Net.Http; +using System.Security.Cryptography; +using System.Threading.Tasks; +using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Tickets; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Users; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.TestHost; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Integration; + +[Collection(nameof(LighthouseServerTest))] +public class LighthouseServerTest where TStartup : class +{ + protected readonly HttpClient Client; + private readonly TestServer server; + + protected LighthouseServerTest() + { + ServerConfiguration.Instance.DbConnectionString = "server=127.0.0.1;uid=root;pwd=lighthouse_tests;database=lighthouse_tests"; + ServerConfiguration.Instance.DigestKey.PrimaryDigestKey = "lighthouse"; + this.server = new TestServer(new WebHostBuilder().UseStartup()); + this.Client = this.server.CreateClient(); + } + + public TestServer GetTestServer() => this.server; + + protected async Task CreateRandomUser() + { + await using DatabaseContext database = DatabaseContext.CreateNewInstance(); + + int userId = RandomNumberGenerator.GetInt32(int.MaxValue); + const string username = "unitTestUser"; + // if user already exists, find another random number + while (await database.Users.AnyAsync(u => u.Username == $"{username}{userId}")) + { + userId = RandomNumberGenerator.GetInt32(int.MaxValue); + } + + UserEntity user = new() + { + UserId = userId, + Username = $"{username}{userId}", + Password = CryptoHelper.BCryptHash($"unitTestPassword{userId}"), + LinkedPsnId = (ulong)userId, + }; + + database.Add(user); + await database.SaveChangesAsync(); + return user; + } + + protected async Task AuthenticateResponse() + { + UserEntity user = await this.CreateRandomUser(); + + byte[] ticketData = new TicketBuilder() + .SetUsername($"{user.Username}{user.UserId}") + .SetUserId((ulong)user.UserId) + .Build(); + + HttpResponseMessage response = await this.Client.PostAsync + ($"/LITTLEBIGPLANETPS3_XML/login?titleID={GameVersionHelper.LittleBigPlanet2TitleIds[0]}", new ByteArrayContent(ticketData)); + return response; + } + + protected async Task Authenticate() + { + HttpResponseMessage response = await this.AuthenticateResponse(); + + string responseContent = await response.Content.ReadAsStringAsync(); + + XmlSerializer serializer = new(typeof(LoginResult)); + return (LoginResult)serializer.Deserialize(new StringReader(responseContent))!; + } + + protected Task AuthenticatedRequest(string endpoint, string mmAuth) => this.AuthenticatedRequest(endpoint, mmAuth, HttpMethod.Get); + + private static string GetDigestCookie(string mmAuth) => mmAuth["MM_AUTH=".Length..]; + + private Task AuthenticatedRequest(string endpoint, string mmAuth, HttpMethod method) + { + if (!endpoint.StartsWith("/")) endpoint = $"/{endpoint}"; + + using HttpRequestMessage requestMessage = new(method, endpoint); + requestMessage.Headers.Add("Cookie", mmAuth); + string path = endpoint.Split("?", StringSplitOptions.RemoveEmptyEntries)[0]; + + string digest = CryptoHelper.ComputeDigest(path, GetDigestCookie(mmAuth), Array.Empty(), "lighthouse"); + requestMessage.Headers.Add("X-Digest-A", digest); + + return this.Client.SendAsync(requestMessage); + } + + public async Task UploadFileEndpointRequest(string filePath) + { + byte[] bytes = await File.ReadAllBytesAsync(filePath); + string hash = CryptoHelper.Sha1Hash(bytes).ToLower(); + + return await this.Client.PostAsync($"/LITTLEBIGPLANETPS3_XML/upload/{hash}", new ByteArrayContent(bytes)); + } + + protected async Task AuthenticatedUploadFileEndpointRequest(string filePath, string mmAuth) + { + byte[] bytes = await File.ReadAllBytesAsync(filePath); + string hash = CryptoHelper.Sha1Hash(bytes).ToLower(); + using HttpRequestMessage requestMessage = new(HttpMethod.Post, $"/LITTLEBIGPLANETPS3_XML/upload/{hash}"); + requestMessage.Headers.Add("Cookie", mmAuth); + requestMessage.Content = new ByteArrayContent(bytes); + string digest = CryptoHelper.ComputeDigest($"/LITTLEBIGPLANETPS3_XML/upload/{hash}", GetDigestCookie(mmAuth), bytes, "lighthouse", true); + requestMessage.Headers.Add("X-Digest-B", digest); + return await this.Client.SendAsync(requestMessage); + } + + public async Task UploadFileRequest(string endpoint, string filePath) + => await this.Client.PostAsync(endpoint, new StringContent(await File.ReadAllTextAsync(filePath))); + + public async Task UploadDataRequest(string endpoint, byte[] data) => await this.Client.PostAsync(endpoint, new ByteArrayContent(data)); + + public async Task AuthenticatedUploadFileRequest(string endpoint, string filePath, string mmAuth) + { + using HttpRequestMessage requestMessage = new(HttpMethod.Post, endpoint); + requestMessage.Headers.Add("Cookie", mmAuth); + requestMessage.Content = new StringContent(await File.ReadAllTextAsync(filePath)); + return await this.Client.SendAsync(requestMessage); + } + + protected async Task AuthenticatedUploadDataRequest(string endpoint, byte[] data, string mmAuth) + { + using HttpRequestMessage requestMessage = new(HttpMethod.Post, endpoint); + requestMessage.Headers.Add("Cookie", mmAuth); + requestMessage.Content = new ByteArrayContent(data); + string digest = CryptoHelper.ComputeDigest(endpoint, GetDigestCookie(mmAuth), data, "lighthouse"); + requestMessage.Headers.Add("X-Digest-A", digest); + return await this.Client.SendAsync(requestMessage); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Integration/Serialization/SerializationDependencyTests.cs b/ProjectLighthouse.Tests/Integration/Serialization/SerializationDependencyTests.cs index 96f7f800..a4e0c517 100644 --- a/ProjectLighthouse.Tests/Integration/Serialization/SerializationDependencyTests.cs +++ b/ProjectLighthouse.Tests/Integration/Serialization/SerializationDependencyTests.cs @@ -1,160 +1,160 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Xml.Serialization; -using LBPUnion.ProjectLighthouse.Serialization; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Integration.Serialization; - -[Trait("Category", "Integration")] -public class SerializationDependencyTests -{ - private static IServiceProvider GetTestServiceProvider(params object[] dependencies) - { - ServiceCollection collection = new(); - foreach (object o in dependencies) - { - ServiceDescriptor descriptor = new(o.GetType(), o); - collection.Add(descriptor); - } - return new DefaultServiceProviderFactory().CreateServiceProvider(collection); - } - - public class TestDependency - { - public TestDependency(string secret) - { - this.Secret = secret; - } - public string Secret { get; } - } - - public class DependencyTest : TestSerializable, INeedsPreparationForSerialization - { - [DefaultValue("")] - [XmlElement("secret")] - public string Secret { get; set; } = ""; - - public void PrepareSerialization(TestDependency testDependency) - { - this.Secret = testDependency.Secret; - } - } - - [Fact] - public void ShouldInjectDependency() - { - DependencyTest serializable = new(); - TestDependency testDependency = new("bruh"); - string serialized = LighthouseSerializer.Serialize(GetTestServiceProvider(testDependency), serializable); - Assert.True(serialized == "bruh"); - } - - public class RecursiveDependencyTest : TestSerializable - { - [XmlElement("dependency")] - public DependencyTest Dependency { get; set; } = new(); - } - - [Fact] - public void ShouldInjectDependencyIntoNestedClass() - { - RecursiveDependencyTest serializable = new(); - TestDependency testDependency = new("bruh"); - string serialized = LighthouseSerializer.Serialize(GetTestServiceProvider(testDependency), serializable); - Assert.True(serialized == "bruh"); - } - - public class RecursiveDependencyTestWithPreparation : TestSerializable, INeedsPreparationForSerialization - { - [XmlElement("dependency")] - public DependencyTest Dependency { get; set; } = new(); - - [XmlElement("prepared")] - public string PreparedField { get; set; } = ""; - - public void PrepareSerialization() - { - this.PreparedField = "test"; - } - } - - public class DependencyOrderTest : TestSerializable, INeedsPreparationForSerialization - { - [XmlElement("dependency")] - public DependencyTest Dependency { get; set; } = null!; - - [XmlElement("nestedDependency")] - public RecursiveDependencyTestWithPreparation RecursiveDependency { get; set; } = null!; - - public void PrepareSerialization(TestDependency testDependency) - { - this.Dependency = new DependencyTest(); - this.RecursiveDependency = new RecursiveDependencyTestWithPreparation(); - } - } - - [Fact] - public void ShouldDependenciesBePreparedInOrder() - { - DependencyOrderTest serializable = new(); - TestDependency testDependency = new("bruh"); - string serialized = LighthouseSerializer.Serialize(GetTestServiceProvider(testDependency), serializable); - Assert.True(serialized == - "" + - "bruh" + - "bruhtest" + - ""); - } - - public class CounterDependency - { - private int counter; - public int Counter => this.counter++; - - public CounterDependency() - { - this.counter = 0; - } - - } - - public class ListDependencyItem : ILbpSerializable, INeedsPreparationForSerialization - { - [XmlElement("counter")] - public int Counter { get; set; } = -1; - - public void PrepareSerialization(CounterDependency counter) - { - this.Counter = counter.Counter; - } - } - - public class ListDependencyTest : TestSerializable - { - [XmlElement("item")] - public List Items { get; set; } = new(); - } - - [Fact] - public void ShouldPrepareItemsInList() - { - ListDependencyTest serializable = new() - { - Items = new List - { - new(), - new(), - new(), - }, - }; - CounterDependency counterDependency = new(); - string serialized = LighthouseSerializer.Serialize(GetTestServiceProvider(counterDependency), serializable); - Assert.True(serialized == "012"); - } - +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Serialization; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Integration.Serialization; + +[Trait("Category", "Integration")] +public class SerializationDependencyTests +{ + private static IServiceProvider GetTestServiceProvider(params object[] dependencies) + { + ServiceCollection collection = new(); + foreach (object o in dependencies) + { + ServiceDescriptor descriptor = new(o.GetType(), o); + collection.Add(descriptor); + } + return new DefaultServiceProviderFactory().CreateServiceProvider(collection); + } + + public class TestDependency + { + public TestDependency(string secret) + { + this.Secret = secret; + } + public string Secret { get; } + } + + public class DependencyTest : TestSerializable, INeedsPreparationForSerialization + { + [DefaultValue("")] + [XmlElement("secret")] + public string Secret { get; set; } = ""; + + public void PrepareSerialization(TestDependency testDependency) + { + this.Secret = testDependency.Secret; + } + } + + [Fact] + public void ShouldInjectDependency() + { + DependencyTest serializable = new(); + TestDependency testDependency = new("bruh"); + string serialized = LighthouseSerializer.Serialize(GetTestServiceProvider(testDependency), serializable); + Assert.True(serialized == "bruh"); + } + + public class RecursiveDependencyTest : TestSerializable + { + [XmlElement("dependency")] + public DependencyTest Dependency { get; set; } = new(); + } + + [Fact] + public void ShouldInjectDependencyIntoNestedClass() + { + RecursiveDependencyTest serializable = new(); + TestDependency testDependency = new("bruh"); + string serialized = LighthouseSerializer.Serialize(GetTestServiceProvider(testDependency), serializable); + Assert.True(serialized == "bruh"); + } + + public class RecursiveDependencyTestWithPreparation : TestSerializable, INeedsPreparationForSerialization + { + [XmlElement("dependency")] + public DependencyTest Dependency { get; set; } = new(); + + [XmlElement("prepared")] + public string PreparedField { get; set; } = ""; + + public void PrepareSerialization() + { + this.PreparedField = "test"; + } + } + + public class DependencyOrderTest : TestSerializable, INeedsPreparationForSerialization + { + [XmlElement("dependency")] + public DependencyTest Dependency { get; set; } = null!; + + [XmlElement("nestedDependency")] + public RecursiveDependencyTestWithPreparation RecursiveDependency { get; set; } = null!; + + public void PrepareSerialization(TestDependency testDependency) + { + this.Dependency = new DependencyTest(); + this.RecursiveDependency = new RecursiveDependencyTestWithPreparation(); + } + } + + [Fact] + public void ShouldDependenciesBePreparedInOrder() + { + DependencyOrderTest serializable = new(); + TestDependency testDependency = new("bruh"); + string serialized = LighthouseSerializer.Serialize(GetTestServiceProvider(testDependency), serializable); + Assert.True(serialized == + "" + + "bruh" + + "bruhtest" + + ""); + } + + public class CounterDependency + { + private int counter; + public int Counter => this.counter++; + + public CounterDependency() + { + this.counter = 0; + } + + } + + public class ListDependencyItem : ILbpSerializable, INeedsPreparationForSerialization + { + [XmlElement("counter")] + public int Counter { get; set; } = -1; + + public void PrepareSerialization(CounterDependency counter) + { + this.Counter = counter.Counter; + } + } + + public class ListDependencyTest : TestSerializable + { + [XmlElement("item")] + public List Items { get; set; } = new(); + } + + [Fact] + public void ShouldPrepareItemsInList() + { + ListDependencyTest serializable = new() + { + Items = new List + { + new(), + new(), + new(), + }, + }; + CounterDependency counterDependency = new(); + string serialized = LighthouseSerializer.Serialize(GetTestServiceProvider(counterDependency), serializable); + Assert.True(serialized == "012"); + } + } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Integration/Serialization/SerializationTests.cs b/ProjectLighthouse.Tests/Integration/Serialization/SerializationTests.cs index 8d30fbd0..d06bc7bc 100644 --- a/ProjectLighthouse.Tests/Integration/Serialization/SerializationTests.cs +++ b/ProjectLighthouse.Tests/Integration/Serialization/SerializationTests.cs @@ -1,219 +1,219 @@ -using System; -using System.ComponentModel; -using System.Xml.Serialization; -using LBPUnion.ProjectLighthouse.Serialization; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using Microsoft.Extensions.DependencyInjection; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Integration.Serialization; - -public class TestSerializable : ILbpSerializable, IHasCustomRoot -{ - public virtual string GetRoot() => "xmlRoot"; -} - -[Trait("Category", "Integration")] -public class SerializationTests -{ - private static IServiceProvider GetEmptyServiceProvider() => new DefaultServiceProviderFactory().CreateServiceProvider(new ServiceCollection()); - - [Fact] - public void ShouldNotSerializeNullObject() - { - TestSerializable? serializable = null; - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.True(serialized == ""); - } - - [Fact] - public void ShouldSerializeFullEmptyTag() - { - TestSerializable serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.True(serialized == ""); - } - - [Fact] - public void ShouldSerializeWithCustomRoot() - { - TestSerializable serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.True(serialized == ""); - } - - public class OverriddenRoot : TestSerializable - { - public override string GetRoot() => "xmlRoot2"; - } - - [Fact] - public void ShouldSerializeWithOverriddenRoot() - { - OverriddenRoot serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.True(serialized == ""); - } - - [XmlRoot("xmlRoot3")] - public class RootAttribute : ILbpSerializable { } - - [Fact] - public void ShouldSerializeWithRootAttribute() - { - RootAttribute serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.True(serialized == ""); - } - - public class DefaultValueInt : TestSerializable - { - [DefaultValue(6)] - [XmlElement("defaultValueInt")] - public int DefaultValueTest { get; set; } = 6; - } - - [Fact] - public void ShouldNotSerializeDefaultValueInt() - { - DefaultValueInt serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == ""); - } - - public class NonDefaultValueInt : TestSerializable - { - [DefaultValue(6)] - [XmlElement("nonDefaultValueInt")] - public int NonDefaultValueTest { get; set; } - } - - [Fact] - public void ShouldNotSerializeNonDefaultValueInt() - { - NonDefaultValueInt serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == "0"); - } - - public class DefaultNullableStringTest : TestSerializable - { - [DefaultValue(null)] - [XmlElement("defaultNullableString")] - public string? DefaultNullableString { get; set; } - } - - [Fact] - public void ShouldNotSerializeDefaultNullableString() - { - DefaultNullableStringTest serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == ""); - } - - public class NullNullableStringTest : TestSerializable - { - [XmlElement("nullableString")] - public string? NullableString { get; set; } - } - - [Fact] - public void ShouldNotSerializeNullNullableString() - { - NullNullableStringTest serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == ""); - } - - [Fact] - public void ShouldSerializeNonNullNullableString() - { - NullNullableStringTest serializable = new() - { - NullableString = "notNull", - }; - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == "notNull"); - } - - public class NonEmptyStringTest : TestSerializable - { - [XmlElement("stringTest")] - public string StringTest { get; set; } = "test"; - } - - [Fact] - public void ShouldSerializeNonNullableString() - { - NonEmptyStringTest serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == "test"); - } - - [XmlRoot("xmlRoot", Namespace = "test")] - public class NameSpaceTest : TestSerializable - { - [XmlElement("test", Namespace = "test2")] - public int TestValue { get; set; } = 1; - } - - [Fact] - public void ShouldExcludeNamespace() - { - NameSpaceTest serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == "1"); - } - - public class AttributeTest : TestSerializable - { - [XmlAttribute("string")] - public string StringAttribute { get; set; } = "test"; - [XmlAttribute("int")] - public int NumberAttribute { get; set; } = 5; - } - - [Fact] - public void ShouldSerializeAttributes() - { - AttributeTest serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == ""); - } - - public class NestingTest : TestSerializable - { - [XmlElement("nested")] - public NestedType NestedType { get; set; } = new(); - } - - public class NestedType : ILbpSerializable - { - [XmlElement("attributeTest")] - public AttributeTest AttributeTest { get; set; } = new(); - [XmlElement("nestedString")] - public NonEmptyStringTest NonEmptyString { get; set; } = new(); - } - - [Fact] - public void ShouldSerializeNestedType() - { - NestingTest serializable = new(); - string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); - Assert.False(string.IsNullOrWhiteSpace(serialized)); - Assert.True(serialized == - "" + - "" + - "test" + - ""); - } - +using System; +using System.ComponentModel; +using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Serialization; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using Microsoft.Extensions.DependencyInjection; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Integration.Serialization; + +public class TestSerializable : ILbpSerializable, IHasCustomRoot +{ + public virtual string GetRoot() => "xmlRoot"; +} + +[Trait("Category", "Integration")] +public class SerializationTests +{ + private static IServiceProvider GetEmptyServiceProvider() => new DefaultServiceProviderFactory().CreateServiceProvider(new ServiceCollection()); + + [Fact] + public void ShouldNotSerializeNullObject() + { + TestSerializable? serializable = null; + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.True(serialized == ""); + } + + [Fact] + public void ShouldSerializeFullEmptyTag() + { + TestSerializable serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.True(serialized == ""); + } + + [Fact] + public void ShouldSerializeWithCustomRoot() + { + TestSerializable serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.True(serialized == ""); + } + + public class OverriddenRoot : TestSerializable + { + public override string GetRoot() => "xmlRoot2"; + } + + [Fact] + public void ShouldSerializeWithOverriddenRoot() + { + OverriddenRoot serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.True(serialized == ""); + } + + [XmlRoot("xmlRoot3")] + public class RootAttribute : ILbpSerializable { } + + [Fact] + public void ShouldSerializeWithRootAttribute() + { + RootAttribute serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.True(serialized == ""); + } + + public class DefaultValueInt : TestSerializable + { + [DefaultValue(6)] + [XmlElement("defaultValueInt")] + public int DefaultValueTest { get; set; } = 6; + } + + [Fact] + public void ShouldNotSerializeDefaultValueInt() + { + DefaultValueInt serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == ""); + } + + public class NonDefaultValueInt : TestSerializable + { + [DefaultValue(6)] + [XmlElement("nonDefaultValueInt")] + public int NonDefaultValueTest { get; set; } + } + + [Fact] + public void ShouldNotSerializeNonDefaultValueInt() + { + NonDefaultValueInt serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == "0"); + } + + public class DefaultNullableStringTest : TestSerializable + { + [DefaultValue(null)] + [XmlElement("defaultNullableString")] + public string? DefaultNullableString { get; set; } + } + + [Fact] + public void ShouldNotSerializeDefaultNullableString() + { + DefaultNullableStringTest serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == ""); + } + + public class NullNullableStringTest : TestSerializable + { + [XmlElement("nullableString")] + public string? NullableString { get; set; } + } + + [Fact] + public void ShouldNotSerializeNullNullableString() + { + NullNullableStringTest serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == ""); + } + + [Fact] + public void ShouldSerializeNonNullNullableString() + { + NullNullableStringTest serializable = new() + { + NullableString = "notNull", + }; + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == "notNull"); + } + + public class NonEmptyStringTest : TestSerializable + { + [XmlElement("stringTest")] + public string StringTest { get; set; } = "test"; + } + + [Fact] + public void ShouldSerializeNonNullableString() + { + NonEmptyStringTest serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == "test"); + } + + [XmlRoot("xmlRoot", Namespace = "test")] + public class NameSpaceTest : TestSerializable + { + [XmlElement("test", Namespace = "test2")] + public int TestValue { get; set; } = 1; + } + + [Fact] + public void ShouldExcludeNamespace() + { + NameSpaceTest serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == "1"); + } + + public class AttributeTest : TestSerializable + { + [XmlAttribute("string")] + public string StringAttribute { get; set; } = "test"; + [XmlAttribute("int")] + public int NumberAttribute { get; set; } = 5; + } + + [Fact] + public void ShouldSerializeAttributes() + { + AttributeTest serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == ""); + } + + public class NestingTest : TestSerializable + { + [XmlElement("nested")] + public NestedType NestedType { get; set; } = new(); + } + + public class NestedType : ILbpSerializable + { + [XmlElement("attributeTest")] + public AttributeTest AttributeTest { get; set; } = new(); + [XmlElement("nestedString")] + public NonEmptyStringTest NonEmptyString { get; set; } = new(); + } + + [Fact] + public void ShouldSerializeNestedType() + { + NestingTest serializable = new(); + string serialized = LighthouseSerializer.Serialize(GetEmptyServiceProvider(), serializable); + Assert.False(string.IsNullOrWhiteSpace(serialized)); + Assert.True(serialized == + "" + + "" + + "test" + + ""); + } + } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj index 15874823..76ef3522 100644 --- a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj +++ b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj @@ -1,42 +1,42 @@ - - - - enable - - false - - net8.0 - - LBPUnion.ProjectLighthouse.Tests - - LBPUnion.ProjectLighthouse.Tests - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - PreserveNewest - - - - + + + + enable + + false + + net8.0 + + LBPUnion.ProjectLighthouse.Tests + + LBPUnion.ProjectLighthouse.Tests + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + PreserveNewest + + + + diff --git a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj.DotSettings b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj.DotSettings index eccc8454..a502f551 100644 --- a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj.DotSettings +++ b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj.DotSettings @@ -1,2 +1,2 @@ - + True \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Unit/EmailCooldownTests.cs b/ProjectLighthouse.Tests/Unit/EmailCooldownTests.cs index 682fe576..3a5b0f1b 100644 --- a/ProjectLighthouse.Tests/Unit/EmailCooldownTests.cs +++ b/ProjectLighthouse.Tests/Unit/EmailCooldownTests.cs @@ -1,97 +1,97 @@ -using System.Collections.Concurrent; -using System.Reflection; -using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Unit; - -[Trait("Category", "Unit")] -public class EmailCooldownTests -{ - private static ConcurrentDictionary? GetInternalDict => - typeof(SMTPHelper).GetField("recentlySentMail", BindingFlags.NonPublic | BindingFlags.Static)?.GetValue(null) as ConcurrentDictionary; - - /* - * TODO This way of testing sucks because it relies on internal implementation, - * but half of this codebase is static singletons so my hand has kinda been forced - */ - - [Fact] - public void CanSendMail_WhenExpirationReached() - { - MethodInfo? canSendMethod = typeof(SMTPHelper).GetMethod("CanSendMail", BindingFlags.NonPublic | BindingFlags.Static); - Assert.NotNull(canSendMethod); - - UserEntity userEntity = new() - { - UserId = 1, - }; - - Assert.NotNull(GetInternalDict); - - GetInternalDict.Clear(); - - GetInternalDict.TryAdd(1, 0); - - bool? canSend = (bool?)canSendMethod.Invoke(null, new object?[] { userEntity, }); - - const bool expectedValue = true; - - Assert.NotNull(canSend); - Assert.Equal(expectedValue, canSend); - } - - [Fact] - public void CanSendMail_WhenExpirationNotReached() - { - MethodInfo? canSendMethod = - typeof(SMTPHelper).GetMethod("CanSendMail", BindingFlags.NonPublic | BindingFlags.Static); - Assert.NotNull(canSendMethod); - - UserEntity userEntity = new() - { - UserId = 1, - }; - - Assert.NotNull(GetInternalDict); - - GetInternalDict.Clear(); - - GetInternalDict.TryAdd(1, long.MaxValue); - - bool? canSend = (bool?)canSendMethod.Invoke(null, new object?[] { userEntity, }); - - const bool expectedValue = false; - - Assert.NotNull(canSend); - Assert.Equal(expectedValue, canSend); - } - - [Fact] - public void CanSendMail_ExpiredEntriesAreRemoved() - { - MethodInfo? canSendMethod = typeof(SMTPHelper).GetMethod("CanSendMail", BindingFlags.NonPublic | BindingFlags.Static); - Assert.NotNull(canSendMethod); - - UserEntity userEntity = new() - { - UserId = 1, - }; - - Assert.NotNull(GetInternalDict); - - GetInternalDict.Clear(); - - GetInternalDict.TryAdd(2, 0); - GetInternalDict.TryAdd(3, TimeHelper.TimestampMillis - 100); - GetInternalDict.TryAdd(4, long.MaxValue); - - canSendMethod.Invoke(null, new object?[] { userEntity, }); - - Assert.False(GetInternalDict.TryGetValue(2, out _)); - Assert.False(GetInternalDict.TryGetValue(3, out _)); - Assert.True(GetInternalDict.TryGetValue(4, out _)); - } - +using System.Collections.Concurrent; +using System.Reflection; +using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Unit; + +[Trait("Category", "Unit")] +public class EmailCooldownTests +{ + private static ConcurrentDictionary? GetInternalDict => + typeof(SMTPHelper).GetField("recentlySentMail", BindingFlags.NonPublic | BindingFlags.Static)?.GetValue(null) as ConcurrentDictionary; + + /* + * TODO This way of testing sucks because it relies on internal implementation, + * but half of this codebase is static singletons so my hand has kinda been forced + */ + + [Fact] + public void CanSendMail_WhenExpirationReached() + { + MethodInfo? canSendMethod = typeof(SMTPHelper).GetMethod("CanSendMail", BindingFlags.NonPublic | BindingFlags.Static); + Assert.NotNull(canSendMethod); + + UserEntity userEntity = new() + { + UserId = 1, + }; + + Assert.NotNull(GetInternalDict); + + GetInternalDict.Clear(); + + GetInternalDict.TryAdd(1, 0); + + bool? canSend = (bool?)canSendMethod.Invoke(null, new object?[] { userEntity, }); + + const bool expectedValue = true; + + Assert.NotNull(canSend); + Assert.Equal(expectedValue, canSend); + } + + [Fact] + public void CanSendMail_WhenExpirationNotReached() + { + MethodInfo? canSendMethod = + typeof(SMTPHelper).GetMethod("CanSendMail", BindingFlags.NonPublic | BindingFlags.Static); + Assert.NotNull(canSendMethod); + + UserEntity userEntity = new() + { + UserId = 1, + }; + + Assert.NotNull(GetInternalDict); + + GetInternalDict.Clear(); + + GetInternalDict.TryAdd(1, long.MaxValue); + + bool? canSend = (bool?)canSendMethod.Invoke(null, new object?[] { userEntity, }); + + const bool expectedValue = false; + + Assert.NotNull(canSend); + Assert.Equal(expectedValue, canSend); + } + + [Fact] + public void CanSendMail_ExpiredEntriesAreRemoved() + { + MethodInfo? canSendMethod = typeof(SMTPHelper).GetMethod("CanSendMail", BindingFlags.NonPublic | BindingFlags.Static); + Assert.NotNull(canSendMethod); + + UserEntity userEntity = new() + { + UserId = 1, + }; + + Assert.NotNull(GetInternalDict); + + GetInternalDict.Clear(); + + GetInternalDict.TryAdd(2, 0); + GetInternalDict.TryAdd(3, TimeHelper.TimestampMillis - 100); + GetInternalDict.TryAdd(4, long.MaxValue); + + canSendMethod.Invoke(null, new object?[] { userEntity, }); + + Assert.False(GetInternalDict.TryGetValue(2, out _)); + Assert.False(GetInternalDict.TryGetValue(3, out _)); + Assert.True(GetInternalDict.TryGetValue(4, out _)); + } + } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Unit/FileTypeTests.cs b/ProjectLighthouse.Tests/Unit/FileTypeTests.cs index 719b0d84..be891239 100644 --- a/ProjectLighthouse.Tests/Unit/FileTypeTests.cs +++ b/ProjectLighthouse.Tests/Unit/FileTypeTests.cs @@ -1,60 +1,60 @@ -using System; -using System.IO; -using LBPUnion.ProjectLighthouse.Types.Resources; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Unit; - -[Trait("Category", "Unit")] -public class FileTypeTests -{ - [Fact] - public void ShouldRecognizeLevel() - { - LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestLevel.lvl")); - Assert.True(file.FileType == LbpFileType.Level); - } - - [Fact] - public void ShouldRecognizeScript() - { - LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestScript.ff")); - Assert.True(file.FileType == LbpFileType.Script); - } - - [Fact] - public void ShouldRecognizeTexture() - { - LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestTexture.tex")); - Assert.True(file.FileType == LbpFileType.Texture); - } - - [Fact] - public void ShouldRecognizeFileArchive() - { - LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestFarc.farc")); - Assert.True(file.FileType == LbpFileType.FileArchive); - } - - [Fact] - public void ShouldNotRecognizeFileArchiveAsScript() - { - LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestFarc.farc")); - Assert.False(file.FileType == LbpFileType.Script); - Assert.True(file.FileType == LbpFileType.FileArchive); - } - - [Fact] - public void ShouldRecognizeNothingAsUnknown() - { - LbpFile file = new(Array.Empty()); - Assert.True(file.FileType == LbpFileType.Unknown); - } - - [Fact] - public void ShouldRecognizeGarbageAsUnknown() - { - LbpFile file = new("free pc only $900"u8.ToArray()); - Assert.True(file.FileType == LbpFileType.Unknown); - } +using System; +using System.IO; +using LBPUnion.ProjectLighthouse.Types.Resources; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Unit; + +[Trait("Category", "Unit")] +public class FileTypeTests +{ + [Fact] + public void ShouldRecognizeLevel() + { + LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestLevel.lvl")); + Assert.True(file.FileType == LbpFileType.Level); + } + + [Fact] + public void ShouldRecognizeScript() + { + LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestScript.ff")); + Assert.True(file.FileType == LbpFileType.Script); + } + + [Fact] + public void ShouldRecognizeTexture() + { + LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestTexture.tex")); + Assert.True(file.FileType == LbpFileType.Texture); + } + + [Fact] + public void ShouldRecognizeFileArchive() + { + LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestFarc.farc")); + Assert.True(file.FileType == LbpFileType.FileArchive); + } + + [Fact] + public void ShouldNotRecognizeFileArchiveAsScript() + { + LbpFile file = new(File.ReadAllBytes("ExampleFiles/TestFarc.farc")); + Assert.False(file.FileType == LbpFileType.Script); + Assert.True(file.FileType == LbpFileType.FileArchive); + } + + [Fact] + public void ShouldRecognizeNothingAsUnknown() + { + LbpFile file = new(Array.Empty()); + Assert.True(file.FileType == LbpFileType.Unknown); + } + + [Fact] + public void ShouldRecognizeGarbageAsUnknown() + { + LbpFile file = new("free pc only $900"u8.ToArray()); + Assert.True(file.FileType == LbpFileType.Unknown); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Unit/FilterTests.cs b/ProjectLighthouse.Tests/Unit/FilterTests.cs index a3eae2e9..96b9dbad 100644 --- a/ProjectLighthouse.Tests/Unit/FilterTests.cs +++ b/ProjectLighthouse.Tests/Unit/FilterTests.cs @@ -1,869 +1,869 @@ -using System; -using System.Collections.Generic; -using LBPUnion.ProjectLighthouse.Filter; -using LBPUnion.ProjectLighthouse.Filter.Filters; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Levels; -using LBPUnion.ProjectLighthouse.Types.Users; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Unit; - -[Trait("Category", "Unit")] -public class FilterTests -{ - [Fact] - public void QueryBuilder_DoesDeepClone() - { - SlotQueryBuilder queryBuilder = new(); - queryBuilder.AddFilter(new CrossControlFilter()); - - SlotQueryBuilder clonedBuilder = queryBuilder.Clone(); - - Assert.NotEqual(queryBuilder, clonedBuilder); - } - - [Fact] - public void AdventureFilter_ShouldAccept_WhenAdventure() - { - AdventureFilter adventureFilter = new(); - Func adventureFunc = adventureFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - IsAdventurePlanet = true, - }; - - Assert.True(adventureFunc(slot)); - } - - [Fact] - public void AdventureFilter_ShouldReject_WhenNotAdventure() - { - AdventureFilter adventureFilter = new(); - Func adventureFunc = adventureFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - IsAdventurePlanet = false, - }; - - Assert.False(adventureFunc(slot)); - } - - [Fact] - public void AuthorLabelFilter_ShouldAccept_WhenExactMatch() - { - string[] filters = - { - "LABEL_Test", "LABEL_Unit", - }; - AuthorLabelFilter labelFilter = new(filters); - Func labelFunc = labelFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - AuthorLabels = "LABEL_Test,LABEL_Unit", - }; - - Assert.True(labelFunc(slot)); - } - - [Fact] - public void AuthorLabelFilter_ShouldAccept_WhenExactMatch_AndExtraLabelsPresent() - { - string[] filters = - { - "LABEL_Test", "LABEL_Unit", - }; - AuthorLabelFilter labelFilter = new(filters); - Func labelFunc = labelFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - AuthorLabels = "LABEL_Test,LABEL_Unit,LABEL_Lighthouse,LABEL_Bruh", - }; - - Assert.True(labelFunc(slot)); - } - - [Fact] - public void AuthorLabelFilter_ShouldAccept_WhenFilterEmpty_AndLabelsEmpty() - { - string[] filters = Array.Empty(); - AuthorLabelFilter labelFilter = new(filters); - Func labelFunc = labelFilter.GetPredicate().Compile(); - - SlotEntity slotWithNoLabels = new() - { - AuthorLabels = "", - }; - - Assert.True(labelFunc(slotWithNoLabels)); - } - - [Fact] - public void AuthorLabelFilter_ShouldReject_WhenNoneMatch() - { - string[] filters = - { - "LABEL_Test", "LABEL_Unit", - }; - AuthorLabelFilter labelFilter = new(filters); - Func labelFunc = labelFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - AuthorLabels = "LABEL_Adventure,LABEL_Versus", - }; - - Assert.False(labelFunc(slot)); - } - - [Fact] - public void CreatorFilter_ShouldAccept_WhenCreatorIdMatch() - { - const int creatorId = 27; - CreatorFilter creatorFilter = new(creatorId); - Func creatorFunc = creatorFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CreatorId = creatorId, - }; - - Assert.True(creatorFunc(slot)); - } - - [Fact] - public void CreatorFilter_ShouldReject_WhenCreatorIdMismatch() - { - const int filterCreatorId = 27; - const int slotCreatorId = 28; - CreatorFilter creatorFilter = new(filterCreatorId); - Func creatorFunc = creatorFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CreatorId = slotCreatorId, - }; - - Assert.False(creatorFunc(slot)); - } - - [Fact] - public void CrossControlFilter_ShouldAccept_WhenCrossControlRequired() - { - CrossControlFilter crossControlFilter = new(); - Func ccFunc = crossControlFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CrossControllerRequired = true, - }; - - Assert.True(ccFunc(slot)); - } - - [Fact] - public void CrossControlFilter_ShouldReject_WhenCrossControlNotRequired() - { - CrossControlFilter crossControlFilter = new(); - Func ccFunc = crossControlFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CrossControllerRequired = false, - }; - - Assert.False(ccFunc(slot)); - } - - [Fact] - public void ExcludeAdventureFilter_ShouldReject_WhenAdventure() - { - ExcludeAdventureFilter excludeAdventureFilter = new(); - Func adventureFunc = excludeAdventureFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - IsAdventurePlanet = true, - }; - - Assert.False(adventureFunc(slot)); - } - - [Fact] - public void ExcludeAdventureFilter_ShouldAccept_WhenNotAdventure() - { - ExcludeAdventureFilter excludeAdventureFilter = new(); - Func adventureFunc = excludeAdventureFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - IsAdventurePlanet = false, - }; - - Assert.True(adventureFunc(slot)); - } - - [Fact] - public void ExcludeCrossControlFilter_ShouldAccept_WhenNotCrossControl() - { - ExcludeCrossControlFilter crossControlFilter = new(); - Func crossControlFunc = crossControlFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CrossControllerRequired = false, - }; - - Assert.True(crossControlFunc(slot)); - } - - [Fact] - public void ExcludeCrossControlFilter_ShouldReject_WhenCrossControl() - { - ExcludeCrossControlFilter crossControlFilter = new(); - Func crossControlFunc = crossControlFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CrossControllerRequired = true, - }; - - Assert.False(crossControlFunc(slot)); - } - - [Fact] - public void ExcludeLBP1OnlyFilter_ShouldReject_WhenLbp1Only_AndTokenNotLbp1_AndNotCreator() - { - ExcludeLBP1OnlyFilter excludeLBP1 = new(10, GameVersion.LittleBigPlanet2); - Func excludeFunc = excludeLBP1.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Lbp1Only = true, - }; - - Assert.False(excludeFunc(slot)); - } - - [Fact] - public void ExcludeLBP1OnlyFilter_ShouldAccept_WhenLbp1Only_AndTokenLbp1() - { - ExcludeLBP1OnlyFilter excludeLBP1 = new(10, GameVersion.LittleBigPlanet1); - Func excludeFunc = excludeLBP1.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Lbp1Only = true, - }; - - Assert.True(excludeFunc(slot)); - } - - [Fact] - public void ExcludeLBP1OnlyFilter_ShouldAccept_WhenLbp1Only_AndTokenNotLbp1_AndIsCreator() - { - ExcludeLBP1OnlyFilter excludeLBP1 = new(10, GameVersion.LittleBigPlanet2); - Func excludeFunc = excludeLBP1.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CreatorId = 10, - Lbp1Only = true, - }; - - Assert.True(excludeFunc(slot)); - } - - [Fact] - public void ExcludeMovePackFilter_ShouldReject_WhenMoveRequired() - { - ExcludeMovePackFilter excludeMove = new(); - Func excludeFunc = excludeMove.GetPredicate().Compile(); - - SlotEntity slot = new() - { - MoveRequired = true, - }; - - Assert.False(excludeFunc(slot)); - } - - [Fact] - public void ExcludeMovePackFilter_ShouldAccept_WhenMoveNotRequired() - { - ExcludeMovePackFilter excludeMove = new(); - Func excludeFunc = excludeMove.GetPredicate().Compile(); - - SlotEntity slot = new() - { - MoveRequired = false, - }; - - Assert.True(excludeFunc(slot)); - } - - [Fact] - public void FirstUploadedFilter_ShouldReject_WhenOlderThanStartTime() - { - FirstUploadedFilter uploadFilter = new(1000); - Func uploadFunc = uploadFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - FirstUploaded = 999, - }; - - Assert.False(uploadFunc(slot)); - } - - [Fact] - public void FirstUploadedFilter_ShouldAccept_WhenNewerThanStartTime() - { - FirstUploadedFilter uploadFilter = new(1000); - Func uploadFunc = uploadFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - FirstUploaded = 1001, - }; - - Assert.True(uploadFunc(slot)); - } - - [Fact] - public void FirstUploadedFilter_ShouldReject_WhenOlderThanEndTime() - { - FirstUploadedFilter uploadFilter = new(0, 1000); - Func uploadFunc = uploadFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - FirstUploaded = 1001, - }; - - Assert.False(uploadFunc(slot)); - } - - [Fact] - public void FirstUploadedFilter_ShouldAccept_WhenNewerThanEndTime() - { - FirstUploadedFilter uploadFilter = new(0, 1000); - Func uploadFunc = uploadFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - FirstUploaded = 999, - }; - - Assert.True(uploadFunc(slot)); - } - - [Fact] - public void GameVersionFilter_ShouldAccept_WhenExact_AndEqual() - { - GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet1, true); - Func versionFunc = gameVersionFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - GameVersion = GameVersion.LittleBigPlanet1, - }; - - Assert.True(versionFunc(slot)); - } - - [Fact] - public void GameVersionFilter_ShouldReject_WhenExact_AndNotEqual() - { - GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet2, true); - Func versionFunc = gameVersionFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - GameVersion = GameVersion.LittleBigPlanet1, - }; - - Assert.False(versionFunc(slot)); - } - - [Fact] - public void GameVersionFilter_ShouldAccept_WhenNotExact_AndGreaterThan() - { - GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet2); - Func versionFunc = gameVersionFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - GameVersion = GameVersion.LittleBigPlanet1, - }; - - Assert.True(versionFunc(slot)); - } - - [Fact] - public void GameVersionFilter_ShouldAccept_WhenNotExact_AndEqual() - { - GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet2); - Func versionFunc = gameVersionFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - GameVersion = GameVersion.LittleBigPlanet2, - }; - - Assert.True(versionFunc(slot)); - } - - [Fact] - public void GameVersionFilter_ShouldReject_WhenNotExact_AndLessThan() - { - GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet1); - Func versionFunc = gameVersionFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - GameVersion = GameVersion.LittleBigPlanet2, - }; - - Assert.False(versionFunc(slot)); - } - - [Fact] - public void GameVersionFilter_ShouldReject_WhenVersionNotInList() - { - GameVersionListFilter gameVersionListFilter = new(GameVersion.LittleBigPlanet1, GameVersion.LittleBigPlanet2); - Func versionFunc = gameVersionListFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - GameVersion = GameVersion.LittleBigPlanet3, - }; - - Assert.False(versionFunc(slot)); - } - - [Fact] - public void GameVersionFilter_ShouldAccept_WhenVersionIsInList() - { - GameVersionListFilter gameVersionListFilter = new(GameVersion.LittleBigPlanet1, GameVersion.LittleBigPlanet2); - Func versionFunc = gameVersionListFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - GameVersion = GameVersion.LittleBigPlanet1, - }; - - Assert.True(versionFunc(slot)); - } - - [Fact] - public void HiddenSlotFilter_ShouldReject_WhenHidden() - { - HiddenSlotFilter hiddenSlotFilter = new(); - Func hiddenFunc = hiddenSlotFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Hidden = true, - }; - - Assert.False(hiddenFunc(slot)); - } - - [Fact] - public void HiddenSlotFilter_ShouldAccept_WhenNotHidden() - { - HiddenSlotFilter hiddenSlotFilter = new(); - Func hiddenFunc = hiddenSlotFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Hidden = false, - }; - - Assert.True(hiddenFunc(slot)); - } - - [Fact] - public void MoveFilter_ShouldAccept_WhenMoveRequired() - { - MovePackFilter movePackFilter = new(); - Func moveFunc = movePackFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - MoveRequired = true, - }; - - Assert.True(moveFunc(slot)); - } - - [Fact] - public void MoveFilter_ShouldReject_WhenMoveNotRequired() - { - MovePackFilter movePackFilter = new(); - Func moveFunc = movePackFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - MoveRequired = false, - }; - - Assert.False(moveFunc(slot)); - } - - [Fact] - public void PlayerCountFilter_ShouldReject_WhenHigherThanMaxPlayers() - { - PlayerCountFilter playerCountFilter = new(maxPlayers: 2); - Func countFunc = playerCountFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - MinimumPlayers = 1, - MaximumPlayers = 4, - }; - - Assert.False(countFunc(slot)); - } - - [Fact] - public void PlayerCountFilter_ShouldReject_WhenLowerThanMinPlayers() - { - PlayerCountFilter playerCountFilter = new(minPlayers: 2); - Func countFunc = playerCountFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - MinimumPlayers = 1, - MaximumPlayers = 4, - }; - - Assert.False(countFunc(slot)); - } - - [Fact] - public void PlayerCountFilter_ShouldAccept_WhenLowerThanMaxPlayers() - { - PlayerCountFilter playerCountFilter = new(maxPlayers: 3); - Func countFunc = playerCountFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - MinimumPlayers = 1, - MaximumPlayers = 2, - }; - - Assert.True(countFunc(slot)); - } - - [Fact] - public void PlayerCountFilter_ShouldAccept_WhenHigherThanMinPlayers() - { - PlayerCountFilter playerCountFilter = new(minPlayers: 2); - Func countFunc = playerCountFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - MinimumPlayers = 3, - MaximumPlayers = 4, - }; - - Assert.True(countFunc(slot)); - } - - [Fact] - public void ResultTypeFilter_ShouldReject_WhenSlotNotPresent() - { - ResultTypeFilter resultFilter = new(); - Func resultFunc = resultFilter.GetPredicate().Compile(); - - SlotEntity slot = new(); - - Assert.False(resultFunc(slot)); - } - - [Fact] - public void ResultTypeFilter_ShouldAccept_WhenSlotPresent() - { - ResultTypeFilter resultFilter = new("slot"); - Func resultFunc = resultFilter.GetPredicate().Compile(); - - SlotEntity slot = new(); - - Assert.True(resultFunc(slot)); - } - - [Fact] - public void SlotIdFilter_ShouldReject_WhenSlotIdNotPresent() - { - SlotIdFilter idFilter = new(new List - { - 2, - }); - Func idFunc = idFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - SlotId = 1, - }; - - Assert.False(idFunc(slot)); - } - - [Fact] - public void SlotIdFilter_ShouldAccept_WhenSlotIdPresent() - { - SlotIdFilter idFilter = new(new List - { - 2, - }); - Func idFunc = idFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - SlotId = 2, - }; - - Assert.True(idFunc(slot)); - } - - [Fact] - public void SlotTypeFilter_ShouldAccept_WhenSlotTypeMatches() - { - SlotTypeFilter slotTypeFilter = new(SlotType.User); - Func typeFunc = slotTypeFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Type = SlotType.User, - }; - - Assert.True(typeFunc(slot)); - } - - [Fact] - public void SlotTypeFilter_ShouldAccept_WhenSlotTypeDoesNotMatch() - { - SlotTypeFilter slotTypeFilter = new(SlotType.User); - Func typeFunc = slotTypeFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Type = SlotType.Developer, - }; - - Assert.False(typeFunc(slot)); - } - - [Fact] - public void SubLevelFilter_ShouldAccept_WhenUserIsCreator_AndNotSubLevel() - { - SubLevelFilter subLevelFilter = new(2); - Func subLevelFunc = subLevelFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CreatorId = 2, - SubLevel = false, - }; - - Assert.True(subLevelFunc(slot)); - } - - [Fact] - public void SubLevelFilter_ShouldAccept_WhenUserIsCreator_AndSubLevel() - { - SubLevelFilter subLevelFilter = new(2); - Func subLevelFunc = subLevelFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CreatorId = 2, - SubLevel = true, - }; - - Assert.True(subLevelFunc(slot)); - } - - [Fact] - public void SubLevelFilter_ShouldReject_WhenUserIsNotCreator_AndSubLevel() - { - SubLevelFilter subLevelFilter = new(2); - Func subLevelFunc = subLevelFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CreatorId = 1, - SubLevel = true, - }; - - Assert.False(subLevelFunc(slot)); - } - - [Fact] - public void SubLevelFilter_ShouldAccept_WhenUserIsNotCreator_AndNotSubLevel() - { - SubLevelFilter subLevelFilter = new(2); - Func subLevelFunc = subLevelFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - CreatorId = 1, - SubLevel = false, - }; - - Assert.True(subLevelFunc(slot)); - } - - [Fact] - public void TeamPickFilter_ShouldAccept_WhenTeamPick() - { - TeamPickFilter teamPickFilter = new(); - Func teamPickFunc = teamPickFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - TeamPickTime = 1, - }; - - Assert.True(teamPickFunc(slot)); - } - - [Fact] - public void TeamPickFilter_ShouldReject_WhenNotTeamPick() - { - TeamPickFilter teamPickFilter = new(); - Func teamPickFunc = teamPickFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - TeamPickTime = 0, - }; - - Assert.False(teamPickFunc(slot)); - } - - [Fact] - public void TextFilter_ShouldAccept_WhenDescriptionContainsText() - { - TextFilter textFilter = new("test"); - Func textFunc = textFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Description = "unit test", - }; - - Assert.True(textFunc(slot)); - } - - [Fact] - public void TextFilter_ShouldReject_WhenDescriptionDoesNotContainText() - { - TextFilter textFilter = new("test"); - Func textFunc = textFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Description = "fraction exam", - }; - - Assert.False(textFunc(slot)); - } - - [Fact] - public void TextFilter_ShouldAccept_WhenNameContainsText() - { - TextFilter textFilter = new("test"); - Func textFunc = textFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Name = "unit test", - }; - - Assert.True(textFunc(slot)); - } - - [Fact] - public void TextFilter_ShouldReject_WhenNameDoesNotContainText() - { - TextFilter textFilter = new("test"); - Func textFunc = textFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Name = "fraction exam", - }; - - Assert.False(textFunc(slot)); - } - - [Fact] - public void TextFilter_ShouldAccept_WhenIdContainsText() - { - TextFilter textFilter = new("21"); - Func textFunc = textFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - SlotId = 21, - }; - - Assert.True(textFunc(slot)); - } - - [Fact] - public void TextFilter_ShouldReject_WhenIdDoesNotContainText() - { - TextFilter textFilter = new("21"); - Func textFunc = textFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - SlotId = 19, - }; - - Assert.False(textFunc(slot)); - } - - [Fact] - public void TextFilter_ShouldAccept_WhenCreatorUsernameContainsText() - { - TextFilter textFilter = new("test"); - Func textFunc = textFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Creator = new UserEntity - { - Username = "test", - }, - }; - - Assert.True(textFunc(slot)); - } - - [Fact] - public void TextFilter_ShouldReject_WhenCreatorUsernameDoesNotContainText() - { - TextFilter textFilter = new("test"); - Func textFunc = textFilter.GetPredicate().Compile(); - - SlotEntity slot = new() - { - Creator = new UserEntity - { - Username = "bruh", - }, - }; - - Assert.False(textFunc(slot)); - } +using System; +using System.Collections.Generic; +using LBPUnion.ProjectLighthouse.Filter; +using LBPUnion.ProjectLighthouse.Filter.Filters; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Levels; +using LBPUnion.ProjectLighthouse.Types.Users; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Unit; + +[Trait("Category", "Unit")] +public class FilterTests +{ + [Fact] + public void QueryBuilder_DoesDeepClone() + { + SlotQueryBuilder queryBuilder = new(); + queryBuilder.AddFilter(new CrossControlFilter()); + + SlotQueryBuilder clonedBuilder = queryBuilder.Clone(); + + Assert.NotEqual(queryBuilder, clonedBuilder); + } + + [Fact] + public void AdventureFilter_ShouldAccept_WhenAdventure() + { + AdventureFilter adventureFilter = new(); + Func adventureFunc = adventureFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + IsAdventurePlanet = true, + }; + + Assert.True(adventureFunc(slot)); + } + + [Fact] + public void AdventureFilter_ShouldReject_WhenNotAdventure() + { + AdventureFilter adventureFilter = new(); + Func adventureFunc = adventureFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + IsAdventurePlanet = false, + }; + + Assert.False(adventureFunc(slot)); + } + + [Fact] + public void AuthorLabelFilter_ShouldAccept_WhenExactMatch() + { + string[] filters = + { + "LABEL_Test", "LABEL_Unit", + }; + AuthorLabelFilter labelFilter = new(filters); + Func labelFunc = labelFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + AuthorLabels = "LABEL_Test,LABEL_Unit", + }; + + Assert.True(labelFunc(slot)); + } + + [Fact] + public void AuthorLabelFilter_ShouldAccept_WhenExactMatch_AndExtraLabelsPresent() + { + string[] filters = + { + "LABEL_Test", "LABEL_Unit", + }; + AuthorLabelFilter labelFilter = new(filters); + Func labelFunc = labelFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + AuthorLabels = "LABEL_Test,LABEL_Unit,LABEL_Lighthouse,LABEL_Bruh", + }; + + Assert.True(labelFunc(slot)); + } + + [Fact] + public void AuthorLabelFilter_ShouldAccept_WhenFilterEmpty_AndLabelsEmpty() + { + string[] filters = Array.Empty(); + AuthorLabelFilter labelFilter = new(filters); + Func labelFunc = labelFilter.GetPredicate().Compile(); + + SlotEntity slotWithNoLabels = new() + { + AuthorLabels = "", + }; + + Assert.True(labelFunc(slotWithNoLabels)); + } + + [Fact] + public void AuthorLabelFilter_ShouldReject_WhenNoneMatch() + { + string[] filters = + { + "LABEL_Test", "LABEL_Unit", + }; + AuthorLabelFilter labelFilter = new(filters); + Func labelFunc = labelFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + AuthorLabels = "LABEL_Adventure,LABEL_Versus", + }; + + Assert.False(labelFunc(slot)); + } + + [Fact] + public void CreatorFilter_ShouldAccept_WhenCreatorIdMatch() + { + const int creatorId = 27; + CreatorFilter creatorFilter = new(creatorId); + Func creatorFunc = creatorFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CreatorId = creatorId, + }; + + Assert.True(creatorFunc(slot)); + } + + [Fact] + public void CreatorFilter_ShouldReject_WhenCreatorIdMismatch() + { + const int filterCreatorId = 27; + const int slotCreatorId = 28; + CreatorFilter creatorFilter = new(filterCreatorId); + Func creatorFunc = creatorFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CreatorId = slotCreatorId, + }; + + Assert.False(creatorFunc(slot)); + } + + [Fact] + public void CrossControlFilter_ShouldAccept_WhenCrossControlRequired() + { + CrossControlFilter crossControlFilter = new(); + Func ccFunc = crossControlFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CrossControllerRequired = true, + }; + + Assert.True(ccFunc(slot)); + } + + [Fact] + public void CrossControlFilter_ShouldReject_WhenCrossControlNotRequired() + { + CrossControlFilter crossControlFilter = new(); + Func ccFunc = crossControlFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CrossControllerRequired = false, + }; + + Assert.False(ccFunc(slot)); + } + + [Fact] + public void ExcludeAdventureFilter_ShouldReject_WhenAdventure() + { + ExcludeAdventureFilter excludeAdventureFilter = new(); + Func adventureFunc = excludeAdventureFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + IsAdventurePlanet = true, + }; + + Assert.False(adventureFunc(slot)); + } + + [Fact] + public void ExcludeAdventureFilter_ShouldAccept_WhenNotAdventure() + { + ExcludeAdventureFilter excludeAdventureFilter = new(); + Func adventureFunc = excludeAdventureFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + IsAdventurePlanet = false, + }; + + Assert.True(adventureFunc(slot)); + } + + [Fact] + public void ExcludeCrossControlFilter_ShouldAccept_WhenNotCrossControl() + { + ExcludeCrossControlFilter crossControlFilter = new(); + Func crossControlFunc = crossControlFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CrossControllerRequired = false, + }; + + Assert.True(crossControlFunc(slot)); + } + + [Fact] + public void ExcludeCrossControlFilter_ShouldReject_WhenCrossControl() + { + ExcludeCrossControlFilter crossControlFilter = new(); + Func crossControlFunc = crossControlFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CrossControllerRequired = true, + }; + + Assert.False(crossControlFunc(slot)); + } + + [Fact] + public void ExcludeLBP1OnlyFilter_ShouldReject_WhenLbp1Only_AndTokenNotLbp1_AndNotCreator() + { + ExcludeLBP1OnlyFilter excludeLBP1 = new(10, GameVersion.LittleBigPlanet2); + Func excludeFunc = excludeLBP1.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Lbp1Only = true, + }; + + Assert.False(excludeFunc(slot)); + } + + [Fact] + public void ExcludeLBP1OnlyFilter_ShouldAccept_WhenLbp1Only_AndTokenLbp1() + { + ExcludeLBP1OnlyFilter excludeLBP1 = new(10, GameVersion.LittleBigPlanet1); + Func excludeFunc = excludeLBP1.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Lbp1Only = true, + }; + + Assert.True(excludeFunc(slot)); + } + + [Fact] + public void ExcludeLBP1OnlyFilter_ShouldAccept_WhenLbp1Only_AndTokenNotLbp1_AndIsCreator() + { + ExcludeLBP1OnlyFilter excludeLBP1 = new(10, GameVersion.LittleBigPlanet2); + Func excludeFunc = excludeLBP1.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CreatorId = 10, + Lbp1Only = true, + }; + + Assert.True(excludeFunc(slot)); + } + + [Fact] + public void ExcludeMovePackFilter_ShouldReject_WhenMoveRequired() + { + ExcludeMovePackFilter excludeMove = new(); + Func excludeFunc = excludeMove.GetPredicate().Compile(); + + SlotEntity slot = new() + { + MoveRequired = true, + }; + + Assert.False(excludeFunc(slot)); + } + + [Fact] + public void ExcludeMovePackFilter_ShouldAccept_WhenMoveNotRequired() + { + ExcludeMovePackFilter excludeMove = new(); + Func excludeFunc = excludeMove.GetPredicate().Compile(); + + SlotEntity slot = new() + { + MoveRequired = false, + }; + + Assert.True(excludeFunc(slot)); + } + + [Fact] + public void FirstUploadedFilter_ShouldReject_WhenOlderThanStartTime() + { + FirstUploadedFilter uploadFilter = new(1000); + Func uploadFunc = uploadFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + FirstUploaded = 999, + }; + + Assert.False(uploadFunc(slot)); + } + + [Fact] + public void FirstUploadedFilter_ShouldAccept_WhenNewerThanStartTime() + { + FirstUploadedFilter uploadFilter = new(1000); + Func uploadFunc = uploadFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + FirstUploaded = 1001, + }; + + Assert.True(uploadFunc(slot)); + } + + [Fact] + public void FirstUploadedFilter_ShouldReject_WhenOlderThanEndTime() + { + FirstUploadedFilter uploadFilter = new(0, 1000); + Func uploadFunc = uploadFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + FirstUploaded = 1001, + }; + + Assert.False(uploadFunc(slot)); + } + + [Fact] + public void FirstUploadedFilter_ShouldAccept_WhenNewerThanEndTime() + { + FirstUploadedFilter uploadFilter = new(0, 1000); + Func uploadFunc = uploadFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + FirstUploaded = 999, + }; + + Assert.True(uploadFunc(slot)); + } + + [Fact] + public void GameVersionFilter_ShouldAccept_WhenExact_AndEqual() + { + GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet1, true); + Func versionFunc = gameVersionFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + GameVersion = GameVersion.LittleBigPlanet1, + }; + + Assert.True(versionFunc(slot)); + } + + [Fact] + public void GameVersionFilter_ShouldReject_WhenExact_AndNotEqual() + { + GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet2, true); + Func versionFunc = gameVersionFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + GameVersion = GameVersion.LittleBigPlanet1, + }; + + Assert.False(versionFunc(slot)); + } + + [Fact] + public void GameVersionFilter_ShouldAccept_WhenNotExact_AndGreaterThan() + { + GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet2); + Func versionFunc = gameVersionFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + GameVersion = GameVersion.LittleBigPlanet1, + }; + + Assert.True(versionFunc(slot)); + } + + [Fact] + public void GameVersionFilter_ShouldAccept_WhenNotExact_AndEqual() + { + GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet2); + Func versionFunc = gameVersionFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + GameVersion = GameVersion.LittleBigPlanet2, + }; + + Assert.True(versionFunc(slot)); + } + + [Fact] + public void GameVersionFilter_ShouldReject_WhenNotExact_AndLessThan() + { + GameVersionFilter gameVersionFilter = new(GameVersion.LittleBigPlanet1); + Func versionFunc = gameVersionFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + GameVersion = GameVersion.LittleBigPlanet2, + }; + + Assert.False(versionFunc(slot)); + } + + [Fact] + public void GameVersionFilter_ShouldReject_WhenVersionNotInList() + { + GameVersionListFilter gameVersionListFilter = new(GameVersion.LittleBigPlanet1, GameVersion.LittleBigPlanet2); + Func versionFunc = gameVersionListFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + GameVersion = GameVersion.LittleBigPlanet3, + }; + + Assert.False(versionFunc(slot)); + } + + [Fact] + public void GameVersionFilter_ShouldAccept_WhenVersionIsInList() + { + GameVersionListFilter gameVersionListFilter = new(GameVersion.LittleBigPlanet1, GameVersion.LittleBigPlanet2); + Func versionFunc = gameVersionListFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + GameVersion = GameVersion.LittleBigPlanet1, + }; + + Assert.True(versionFunc(slot)); + } + + [Fact] + public void HiddenSlotFilter_ShouldReject_WhenHidden() + { + HiddenSlotFilter hiddenSlotFilter = new(); + Func hiddenFunc = hiddenSlotFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Hidden = true, + }; + + Assert.False(hiddenFunc(slot)); + } + + [Fact] + public void HiddenSlotFilter_ShouldAccept_WhenNotHidden() + { + HiddenSlotFilter hiddenSlotFilter = new(); + Func hiddenFunc = hiddenSlotFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Hidden = false, + }; + + Assert.True(hiddenFunc(slot)); + } + + [Fact] + public void MoveFilter_ShouldAccept_WhenMoveRequired() + { + MovePackFilter movePackFilter = new(); + Func moveFunc = movePackFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + MoveRequired = true, + }; + + Assert.True(moveFunc(slot)); + } + + [Fact] + public void MoveFilter_ShouldReject_WhenMoveNotRequired() + { + MovePackFilter movePackFilter = new(); + Func moveFunc = movePackFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + MoveRequired = false, + }; + + Assert.False(moveFunc(slot)); + } + + [Fact] + public void PlayerCountFilter_ShouldReject_WhenHigherThanMaxPlayers() + { + PlayerCountFilter playerCountFilter = new(maxPlayers: 2); + Func countFunc = playerCountFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + MinimumPlayers = 1, + MaximumPlayers = 4, + }; + + Assert.False(countFunc(slot)); + } + + [Fact] + public void PlayerCountFilter_ShouldReject_WhenLowerThanMinPlayers() + { + PlayerCountFilter playerCountFilter = new(minPlayers: 2); + Func countFunc = playerCountFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + MinimumPlayers = 1, + MaximumPlayers = 4, + }; + + Assert.False(countFunc(slot)); + } + + [Fact] + public void PlayerCountFilter_ShouldAccept_WhenLowerThanMaxPlayers() + { + PlayerCountFilter playerCountFilter = new(maxPlayers: 3); + Func countFunc = playerCountFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + MinimumPlayers = 1, + MaximumPlayers = 2, + }; + + Assert.True(countFunc(slot)); + } + + [Fact] + public void PlayerCountFilter_ShouldAccept_WhenHigherThanMinPlayers() + { + PlayerCountFilter playerCountFilter = new(minPlayers: 2); + Func countFunc = playerCountFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + MinimumPlayers = 3, + MaximumPlayers = 4, + }; + + Assert.True(countFunc(slot)); + } + + [Fact] + public void ResultTypeFilter_ShouldReject_WhenSlotNotPresent() + { + ResultTypeFilter resultFilter = new(); + Func resultFunc = resultFilter.GetPredicate().Compile(); + + SlotEntity slot = new(); + + Assert.False(resultFunc(slot)); + } + + [Fact] + public void ResultTypeFilter_ShouldAccept_WhenSlotPresent() + { + ResultTypeFilter resultFilter = new("slot"); + Func resultFunc = resultFilter.GetPredicate().Compile(); + + SlotEntity slot = new(); + + Assert.True(resultFunc(slot)); + } + + [Fact] + public void SlotIdFilter_ShouldReject_WhenSlotIdNotPresent() + { + SlotIdFilter idFilter = new(new List + { + 2, + }); + Func idFunc = idFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + SlotId = 1, + }; + + Assert.False(idFunc(slot)); + } + + [Fact] + public void SlotIdFilter_ShouldAccept_WhenSlotIdPresent() + { + SlotIdFilter idFilter = new(new List + { + 2, + }); + Func idFunc = idFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + SlotId = 2, + }; + + Assert.True(idFunc(slot)); + } + + [Fact] + public void SlotTypeFilter_ShouldAccept_WhenSlotTypeMatches() + { + SlotTypeFilter slotTypeFilter = new(SlotType.User); + Func typeFunc = slotTypeFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Type = SlotType.User, + }; + + Assert.True(typeFunc(slot)); + } + + [Fact] + public void SlotTypeFilter_ShouldAccept_WhenSlotTypeDoesNotMatch() + { + SlotTypeFilter slotTypeFilter = new(SlotType.User); + Func typeFunc = slotTypeFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Type = SlotType.Developer, + }; + + Assert.False(typeFunc(slot)); + } + + [Fact] + public void SubLevelFilter_ShouldAccept_WhenUserIsCreator_AndNotSubLevel() + { + SubLevelFilter subLevelFilter = new(2); + Func subLevelFunc = subLevelFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CreatorId = 2, + SubLevel = false, + }; + + Assert.True(subLevelFunc(slot)); + } + + [Fact] + public void SubLevelFilter_ShouldAccept_WhenUserIsCreator_AndSubLevel() + { + SubLevelFilter subLevelFilter = new(2); + Func subLevelFunc = subLevelFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CreatorId = 2, + SubLevel = true, + }; + + Assert.True(subLevelFunc(slot)); + } + + [Fact] + public void SubLevelFilter_ShouldReject_WhenUserIsNotCreator_AndSubLevel() + { + SubLevelFilter subLevelFilter = new(2); + Func subLevelFunc = subLevelFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CreatorId = 1, + SubLevel = true, + }; + + Assert.False(subLevelFunc(slot)); + } + + [Fact] + public void SubLevelFilter_ShouldAccept_WhenUserIsNotCreator_AndNotSubLevel() + { + SubLevelFilter subLevelFilter = new(2); + Func subLevelFunc = subLevelFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + CreatorId = 1, + SubLevel = false, + }; + + Assert.True(subLevelFunc(slot)); + } + + [Fact] + public void TeamPickFilter_ShouldAccept_WhenTeamPick() + { + TeamPickFilter teamPickFilter = new(); + Func teamPickFunc = teamPickFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + TeamPickTime = 1, + }; + + Assert.True(teamPickFunc(slot)); + } + + [Fact] + public void TeamPickFilter_ShouldReject_WhenNotTeamPick() + { + TeamPickFilter teamPickFilter = new(); + Func teamPickFunc = teamPickFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + TeamPickTime = 0, + }; + + Assert.False(teamPickFunc(slot)); + } + + [Fact] + public void TextFilter_ShouldAccept_WhenDescriptionContainsText() + { + TextFilter textFilter = new("test"); + Func textFunc = textFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Description = "unit test", + }; + + Assert.True(textFunc(slot)); + } + + [Fact] + public void TextFilter_ShouldReject_WhenDescriptionDoesNotContainText() + { + TextFilter textFilter = new("test"); + Func textFunc = textFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Description = "fraction exam", + }; + + Assert.False(textFunc(slot)); + } + + [Fact] + public void TextFilter_ShouldAccept_WhenNameContainsText() + { + TextFilter textFilter = new("test"); + Func textFunc = textFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Name = "unit test", + }; + + Assert.True(textFunc(slot)); + } + + [Fact] + public void TextFilter_ShouldReject_WhenNameDoesNotContainText() + { + TextFilter textFilter = new("test"); + Func textFunc = textFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Name = "fraction exam", + }; + + Assert.False(textFunc(slot)); + } + + [Fact] + public void TextFilter_ShouldAccept_WhenIdContainsText() + { + TextFilter textFilter = new("21"); + Func textFunc = textFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + SlotId = 21, + }; + + Assert.True(textFunc(slot)); + } + + [Fact] + public void TextFilter_ShouldReject_WhenIdDoesNotContainText() + { + TextFilter textFilter = new("21"); + Func textFunc = textFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + SlotId = 19, + }; + + Assert.False(textFunc(slot)); + } + + [Fact] + public void TextFilter_ShouldAccept_WhenCreatorUsernameContainsText() + { + TextFilter textFilter = new("test"); + Func textFunc = textFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Creator = new UserEntity + { + Username = "test", + }, + }; + + Assert.True(textFunc(slot)); + } + + [Fact] + public void TextFilter_ShouldReject_WhenCreatorUsernameDoesNotContainText() + { + TextFilter textFilter = new("test"); + Func textFunc = textFilter.GetPredicate().Compile(); + + SlotEntity slot = new() + { + Creator = new UserEntity + { + Username = "bruh", + }, + }; + + Assert.False(textFunc(slot)); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Unit/LocationTests.cs b/ProjectLighthouse.Tests/Unit/LocationTests.cs index a97b80af..061a21c7 100644 --- a/ProjectLighthouse.Tests/Unit/LocationTests.cs +++ b/ProjectLighthouse.Tests/Unit/LocationTests.cs @@ -1,85 +1,85 @@ -using System.IO; -using System.Xml.Serialization; -using LBPUnion.ProjectLighthouse.Types.Entities.Level; -using LBPUnion.ProjectLighthouse.Types.Entities.Profile; -using LBPUnion.ProjectLighthouse.Types.Misc; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Unit; - -[Trait("Category", "Unit")] -public class LocationTests -{ - [Fact] - public void ShouldSetAndReadUserLocation() - { - Location expected = new() - { - X = 1000, - Y = 5000, - }; - UserEntity user = new() - { - Location = new Location - { - X = expected.X, - Y = expected.Y, - }, - }; - Assert.True(user.Location.X == expected.X); - Assert.True(user.Location.Y == expected.Y); - Assert.True(user.LocationPacked == 4_294_967_301_000); - } - - [Fact] - public void ShouldSetAndReadSlotLocation() - { - Location expected = new() - { - X = 1000, - Y = 5000, - }; - SlotEntity slot = new() - { - Location = new Location - { - X = expected.X, - Y = expected.Y, - }, - }; - Assert.True(slot.Location.X == expected.X); - Assert.True(slot.Location.Y == expected.Y); - Assert.True(slot.LocationPacked == 4_294_967_301_000); - } - - [Fact] - public void ShouldReadLocationAfterDeserialization() - { - XmlSerializer deserializer = new(typeof(GameUserSlot)); - const string slotData = "testtest40009000"; - - GameUserSlot? deserialized = (GameUserSlot?)deserializer.Deserialize(new StringReader(slotData)); - Assert.True(deserialized != null); - Assert.True(deserialized.Name == "test"); - Assert.True(deserialized.Location.X == 4000); - Assert.True(deserialized.Location.Y == 9000); - SlotEntity entity = SlotBase.ConvertToEntity(deserialized); - Assert.True(entity.LocationPacked == 17_179_869_193_000); - } - - [Fact] - public void ShouldDeserializeEmptyLocation() - { - XmlSerializer deserializer = new(typeof(GameUserSlot)); - const string slotData = "test"; - - GameUserSlot? deserialized = (GameUserSlot?)deserializer.Deserialize(new StringReader(slotData)); - Assert.True(deserialized != null); - Assert.True(deserialized.Name == "test"); - Assert.True(deserialized.Location.X == 0); - Assert.True(deserialized.Location.Y == 0); - SlotEntity entity = SlotBase.ConvertToEntity(deserialized); - Assert.True(entity.LocationPacked == 0); - } +using System.IO; +using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Misc; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Unit; + +[Trait("Category", "Unit")] +public class LocationTests +{ + [Fact] + public void ShouldSetAndReadUserLocation() + { + Location expected = new() + { + X = 1000, + Y = 5000, + }; + UserEntity user = new() + { + Location = new Location + { + X = expected.X, + Y = expected.Y, + }, + }; + Assert.True(user.Location.X == expected.X); + Assert.True(user.Location.Y == expected.Y); + Assert.True(user.LocationPacked == 4_294_967_301_000); + } + + [Fact] + public void ShouldSetAndReadSlotLocation() + { + Location expected = new() + { + X = 1000, + Y = 5000, + }; + SlotEntity slot = new() + { + Location = new Location + { + X = expected.X, + Y = expected.Y, + }, + }; + Assert.True(slot.Location.X == expected.X); + Assert.True(slot.Location.Y == expected.Y); + Assert.True(slot.LocationPacked == 4_294_967_301_000); + } + + [Fact] + public void ShouldReadLocationAfterDeserialization() + { + XmlSerializer deserializer = new(typeof(GameUserSlot)); + const string slotData = "testtest40009000"; + + GameUserSlot? deserialized = (GameUserSlot?)deserializer.Deserialize(new StringReader(slotData)); + Assert.True(deserialized != null); + Assert.True(deserialized.Name == "test"); + Assert.True(deserialized.Location.X == 4000); + Assert.True(deserialized.Location.Y == 9000); + SlotEntity entity = SlotBase.ConvertToEntity(deserialized); + Assert.True(entity.LocationPacked == 17_179_869_193_000); + } + + [Fact] + public void ShouldDeserializeEmptyLocation() + { + XmlSerializer deserializer = new(typeof(GameUserSlot)); + const string slotData = "test"; + + GameUserSlot? deserialized = (GameUserSlot?)deserializer.Deserialize(new StringReader(slotData)); + Assert.True(deserialized != null); + Assert.True(deserialized.Name == "test"); + Assert.True(deserialized.Location.X == 0); + Assert.True(deserialized.Location.Y == 0); + SlotEntity entity = SlotBase.ConvertToEntity(deserialized); + Assert.True(entity.LocationPacked == 0); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Unit/ModerationTests.cs b/ProjectLighthouse.Tests/Unit/ModerationTests.cs index c574abf4..15a0c0b9 100644 --- a/ProjectLighthouse.Tests/Unit/ModerationTests.cs +++ b/ProjectLighthouse.Tests/Unit/ModerationTests.cs @@ -1,86 +1,86 @@ -using System; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Administration.Maintenance.RepeatingTasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Tests.Helpers; -using LBPUnion.ProjectLighthouse.Types.Entities.Moderation; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Unit; - -[Trait("Category", "Unit")] -public class ModerationTests -{ - [Fact] - public async Task DismissExpiredCases_ShouldDismissExpiredCase() - { - await using DatabaseContext database = await MockHelper.GetTestDatabase(); - - ModerationCaseEntity @case = new() - { - CaseId = 1, - CreatorId = 1, - ExpiresAt = DateTime.UnixEpoch, - CreatorUsername = "unitTestUser", - }; - - database.Cases.Add(@case); - - await database.SaveChangesAsync(); - - DismissExpiredCasesTask task = new(); - await task.Run(database); - - Assert.NotNull(await database.Cases.FirstOrDefaultAsync(c => c.CaseId == 1 && c.DismissedAt != null)); - } - - [Fact] - public async Task DismissExpiredCases_ShouldNotDismissActiveCase() - { - await using DatabaseContext database = await MockHelper.GetTestDatabase(); - - ModerationCaseEntity @case = new() - { - CaseId = 2, - CreatorId = 1, - ExpiresAt = DateTime.UtcNow.AddHours(1), - CreatorUsername = "unitTestUser", - }; - - database.Cases.Add(@case); - - await database.SaveChangesAsync(); - - DismissExpiredCasesTask task = new(); - await task.Run(database); - - Assert.NotNull(await database.Cases.FirstOrDefaultAsync(c => c.CaseId == 2 && c.DismissedAt == null)); - } - - [Fact] - public async Task DismissExpiredCases_ShouldNotDismissAlreadyDismissedCase() - { - await using DatabaseContext database = await MockHelper.GetTestDatabase(); - - ModerationCaseEntity @case = new() - { - CaseId = 3, - CreatorId = 1, - ExpiresAt = DateTime.UnixEpoch, - DismissedAt = DateTime.UnixEpoch, - CreatorUsername = "unitTestUser", - }; - - database.Cases.Add(@case); - - await database.SaveChangesAsync(); - - DismissExpiredCasesTask task = new(); - await task.Run(database); - - // check that the case was not dismissed again by comparing original time to new time - Assert.NotNull( - await database.Cases.FirstOrDefaultAsync(c => c.CaseId == 3 && c.DismissedAt == DateTime.UnixEpoch)); - } +using System; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Administration.Maintenance.RepeatingTasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Tests.Helpers; +using LBPUnion.ProjectLighthouse.Types.Entities.Moderation; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Unit; + +[Trait("Category", "Unit")] +public class ModerationTests +{ + [Fact] + public async Task DismissExpiredCases_ShouldDismissExpiredCase() + { + await using DatabaseContext database = await MockHelper.GetTestDatabase(); + + ModerationCaseEntity @case = new() + { + CaseId = 1, + CreatorId = 1, + ExpiresAt = DateTime.UnixEpoch, + CreatorUsername = "unitTestUser", + }; + + database.Cases.Add(@case); + + await database.SaveChangesAsync(); + + DismissExpiredCasesTask task = new(); + await task.Run(database); + + Assert.NotNull(await database.Cases.FirstOrDefaultAsync(c => c.CaseId == 1 && c.DismissedAt != null)); + } + + [Fact] + public async Task DismissExpiredCases_ShouldNotDismissActiveCase() + { + await using DatabaseContext database = await MockHelper.GetTestDatabase(); + + ModerationCaseEntity @case = new() + { + CaseId = 2, + CreatorId = 1, + ExpiresAt = DateTime.UtcNow.AddHours(1), + CreatorUsername = "unitTestUser", + }; + + database.Cases.Add(@case); + + await database.SaveChangesAsync(); + + DismissExpiredCasesTask task = new(); + await task.Run(database); + + Assert.NotNull(await database.Cases.FirstOrDefaultAsync(c => c.CaseId == 2 && c.DismissedAt == null)); + } + + [Fact] + public async Task DismissExpiredCases_ShouldNotDismissAlreadyDismissedCase() + { + await using DatabaseContext database = await MockHelper.GetTestDatabase(); + + ModerationCaseEntity @case = new() + { + CaseId = 3, + CreatorId = 1, + ExpiresAt = DateTime.UnixEpoch, + DismissedAt = DateTime.UnixEpoch, + CreatorUsername = "unitTestUser", + }; + + database.Cases.Add(@case); + + await database.SaveChangesAsync(); + + DismissExpiredCasesTask task = new(); + await task.Run(database); + + // check that the case was not dismissed again by comparing original time to new time + Assert.NotNull( + await database.Cases.FirstOrDefaultAsync(c => c.CaseId == 3 && c.DismissedAt == DateTime.UnixEpoch)); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Unit/PaginationTests.cs b/ProjectLighthouse.Tests/Unit/PaginationTests.cs index de591d94..5518972e 100644 --- a/ProjectLighthouse.Tests/Unit/PaginationTests.cs +++ b/ProjectLighthouse.Tests/Unit/PaginationTests.cs @@ -1,238 +1,238 @@ -using System.Collections.Generic; -using System.Linq; -using LBPUnion.ProjectLighthouse.Configuration; -using LBPUnion.ProjectLighthouse.Extensions; -using LBPUnion.ProjectLighthouse.Types.Filter; -using LBPUnion.ProjectLighthouse.Types.Serialization; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Primitives; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Unit; - -[Trait("Category", "Unit")] -public class PaginationTests -{ - [Fact] - public void GetPaginationData_IsReadFromQuery() - { - DefaultHttpContext defaultHttpContext = new() - { - Request = - { - Query = new QueryCollection(new Dictionary - { - { - "pageStart", new StringValues("10") - }, - { - "pageSize", new StringValues("15") - }, - }), - }, - }; - - PaginationData pageData = defaultHttpContext.Request.GetPaginationData(); - - const int expectedPageStart = 10; - const int expectedPageSize = 15; - - Assert.Equal(expectedPageStart, pageData.PageStart); - Assert.Equal(expectedPageSize, pageData.PageSize); - } - - [Fact] - public void GetPaginationData_IsPageStartSetToDefault_WhenMissing() - { - DefaultHttpContext defaultHttpContext = new() - { - Request = - { - Query = new QueryCollection(new Dictionary - { - { - "pageSize", new StringValues("15") - }, - }), - }, - }; - PaginationData pageData = defaultHttpContext.Request.GetPaginationData(); - - const int expectedPageStart = 0; - const int expectedPageSize = 15; - - Assert.Equal(expectedPageStart, pageData.PageStart); - Assert.Equal(expectedPageSize, pageData.PageSize); - } - - [Fact] - public void GetPaginationData_IsPageSizeSetToDefault_WhenMissing() - { - ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots = 50; - - DefaultHttpContext defaultHttpContext = new() - { - Request = - { - Query = new QueryCollection(new Dictionary - { - { - "pageStart", new StringValues("10") - }, - }), - }, - }; - PaginationData pageData = defaultHttpContext.Request.GetPaginationData(); - - const int expectedPageStart = 10; - const int expectedPageSize = 50; - - Assert.Equal(expectedPageStart, pageData.PageStart); - Assert.Equal(expectedPageSize, pageData.PageSize); - } - - [Fact] - public void GetPaginationData_NegativeValuesAreSetToZero() - { - ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots = 50; - - DefaultHttpContext defaultHttpContext = new() - { - Request = - { - Query = new QueryCollection(new Dictionary - { - { - "pageStart", new StringValues("-10") - }, - { - "pageSize", new StringValues("-10") - }, - }), - }, - }; - PaginationData pageData = defaultHttpContext.Request.GetPaginationData(); - - const int expectedPageStart = 0; - const int expectedPageSize = 10; - - Assert.Equal(expectedPageStart, pageData.PageStart); - Assert.Equal(expectedPageSize, pageData.PageSize); - } - - [Fact] - public void ApplyPagination_ShouldApplyCorrectPagination() - { - List users = new(); - for (int i = 0; i < 30; i++) - { - users.Add(new GameUser - { - UserId = i+1, - }); - } - - PaginationData pageData = new() - { - PageSize = 5, - PageStart = 6, - }; - List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); - - Assert.Equal(pageData.PageSize, pagedUsers.Count); - Assert.Equal(6, pagedUsers[0].UserId); - Assert.Equal(10, pagedUsers[4].UserId); - } - - [Fact] - public void ApplyPagination_ShouldClampPageStart_WhenNegative() - { - List users = new(); - for (int i = 0; i < 30; i++) - { - users.Add(new GameUser - { - UserId = i + 1, - }); - } - - PaginationData pageData = new() - { - PageSize = 5, - PageStart = -5, - }; - List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); - - Assert.Equal(pageData.PageSize, pagedUsers.Count); - Assert.Equal(1, pagedUsers[0].UserId); - Assert.Equal(5, pagedUsers[4].UserId); - } - - [Fact] - public void ApplyPagination_ShouldReturnEmpty_WhenPageSizeNegative() - { - List users = new(); - for (int i = 0; i < 30; i++) - { - users.Add(new GameUser - { - UserId = i + 1, - }); - } - - PaginationData pageData = new() - { - PageSize = -5, - PageStart = 0, - }; - List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); - - Assert.Empty(pagedUsers); - } - - [Fact] - public void ApplyPagination_ShouldClampPageSize_WhenSizeExceedsMaxElements() - { - List users = new(); - for (int i = 0; i < 30; i++) - { - users.Add(new GameUser - { - UserId = i + 1, - }); - } - - PaginationData pageData = new() - { - PageSize = 10, - PageStart = 0, - MaxElements = 1, - }; - List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); - - Assert.Single(pagedUsers); - } - - [Fact] - public void ApplyPagination_ShouldClampPageSize_WhenSizeExceedsInternalLimit() - { - List users = new(); - for (int i = 0; i < 1001; i++) - { - users.Add(new GameUser - { - UserId = i + 1, - }); - } - - PaginationData pageData = new() - { - PageSize = int.MaxValue, - PageStart = 0, - MaxElements = int.MaxValue, - }; - List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); - - Assert.Equal(1000, pagedUsers.Count); - } +using System.Collections.Generic; +using System.Linq; +using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Extensions; +using LBPUnion.ProjectLighthouse.Types.Filter; +using LBPUnion.ProjectLighthouse.Types.Serialization; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Primitives; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Unit; + +[Trait("Category", "Unit")] +public class PaginationTests +{ + [Fact] + public void GetPaginationData_IsReadFromQuery() + { + DefaultHttpContext defaultHttpContext = new() + { + Request = + { + Query = new QueryCollection(new Dictionary + { + { + "pageStart", new StringValues("10") + }, + { + "pageSize", new StringValues("15") + }, + }), + }, + }; + + PaginationData pageData = defaultHttpContext.Request.GetPaginationData(); + + const int expectedPageStart = 10; + const int expectedPageSize = 15; + + Assert.Equal(expectedPageStart, pageData.PageStart); + Assert.Equal(expectedPageSize, pageData.PageSize); + } + + [Fact] + public void GetPaginationData_IsPageStartSetToDefault_WhenMissing() + { + DefaultHttpContext defaultHttpContext = new() + { + Request = + { + Query = new QueryCollection(new Dictionary + { + { + "pageSize", new StringValues("15") + }, + }), + }, + }; + PaginationData pageData = defaultHttpContext.Request.GetPaginationData(); + + const int expectedPageStart = 0; + const int expectedPageSize = 15; + + Assert.Equal(expectedPageStart, pageData.PageStart); + Assert.Equal(expectedPageSize, pageData.PageSize); + } + + [Fact] + public void GetPaginationData_IsPageSizeSetToDefault_WhenMissing() + { + ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots = 50; + + DefaultHttpContext defaultHttpContext = new() + { + Request = + { + Query = new QueryCollection(new Dictionary + { + { + "pageStart", new StringValues("10") + }, + }), + }, + }; + PaginationData pageData = defaultHttpContext.Request.GetPaginationData(); + + const int expectedPageStart = 10; + const int expectedPageSize = 50; + + Assert.Equal(expectedPageStart, pageData.PageStart); + Assert.Equal(expectedPageSize, pageData.PageSize); + } + + [Fact] + public void GetPaginationData_NegativeValuesAreSetToZero() + { + ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots = 50; + + DefaultHttpContext defaultHttpContext = new() + { + Request = + { + Query = new QueryCollection(new Dictionary + { + { + "pageStart", new StringValues("-10") + }, + { + "pageSize", new StringValues("-10") + }, + }), + }, + }; + PaginationData pageData = defaultHttpContext.Request.GetPaginationData(); + + const int expectedPageStart = 0; + const int expectedPageSize = 10; + + Assert.Equal(expectedPageStart, pageData.PageStart); + Assert.Equal(expectedPageSize, pageData.PageSize); + } + + [Fact] + public void ApplyPagination_ShouldApplyCorrectPagination() + { + List users = new(); + for (int i = 0; i < 30; i++) + { + users.Add(new GameUser + { + UserId = i+1, + }); + } + + PaginationData pageData = new() + { + PageSize = 5, + PageStart = 6, + }; + List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); + + Assert.Equal(pageData.PageSize, pagedUsers.Count); + Assert.Equal(6, pagedUsers[0].UserId); + Assert.Equal(10, pagedUsers[4].UserId); + } + + [Fact] + public void ApplyPagination_ShouldClampPageStart_WhenNegative() + { + List users = new(); + for (int i = 0; i < 30; i++) + { + users.Add(new GameUser + { + UserId = i + 1, + }); + } + + PaginationData pageData = new() + { + PageSize = 5, + PageStart = -5, + }; + List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); + + Assert.Equal(pageData.PageSize, pagedUsers.Count); + Assert.Equal(1, pagedUsers[0].UserId); + Assert.Equal(5, pagedUsers[4].UserId); + } + + [Fact] + public void ApplyPagination_ShouldReturnEmpty_WhenPageSizeNegative() + { + List users = new(); + for (int i = 0; i < 30; i++) + { + users.Add(new GameUser + { + UserId = i + 1, + }); + } + + PaginationData pageData = new() + { + PageSize = -5, + PageStart = 0, + }; + List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); + + Assert.Empty(pagedUsers); + } + + [Fact] + public void ApplyPagination_ShouldClampPageSize_WhenSizeExceedsMaxElements() + { + List users = new(); + for (int i = 0; i < 30; i++) + { + users.Add(new GameUser + { + UserId = i + 1, + }); + } + + PaginationData pageData = new() + { + PageSize = 10, + PageStart = 0, + MaxElements = 1, + }; + List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); + + Assert.Single(pagedUsers); + } + + [Fact] + public void ApplyPagination_ShouldClampPageSize_WhenSizeExceedsInternalLimit() + { + List users = new(); + for (int i = 0; i < 1001; i++) + { + users.Add(new GameUser + { + UserId = i + 1, + }); + } + + PaginationData pageData = new() + { + PageSize = int.MaxValue, + PageStart = 0, + MaxElements = int.MaxValue, + }; + List pagedUsers = users.AsQueryable().ApplyPagination(pageData).ToList(); + + Assert.Equal(1000, pagedUsers.Count); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Unit/RepeatingTaskTests.cs b/ProjectLighthouse.Tests/Unit/RepeatingTaskTests.cs index 678f434c..6499692f 100644 --- a/ProjectLighthouse.Tests/Unit/RepeatingTaskTests.cs +++ b/ProjectLighthouse.Tests/Unit/RepeatingTaskTests.cs @@ -1,120 +1,120 @@ -using System; -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Database; -using LBPUnion.ProjectLighthouse.Services; -using LBPUnion.ProjectLighthouse.Types.Maintenance; -using Microsoft.Extensions.DependencyInjection; -using Moq; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Unit; - -[Trait("Category", "Unit")] -public class RepeatingTaskTests -{ - private class TestTask : IRepeatingTask - { - public string Name { get; init; } = ""; - public TimeSpan RepeatInterval => TimeSpan.FromSeconds(5); - public DateTime LastRan { get; set; } - public Task Run(DatabaseContext database) => Task.CompletedTask; - } - - [Fact] - public void GetNextTask_ShouldReturnNull_WhenTaskListEmpty() - { - List tasks = new(); - IServiceProvider provider = new DefaultServiceProviderFactory().CreateServiceProvider(new ServiceCollection()); - RepeatingTaskService service = new(provider, tasks); - - bool gotTask = service.TryGetNextTask(out IRepeatingTask? outTask); - Assert.False(gotTask); - Assert.Null(outTask); - } - - [Fact] - public void GetNextTask_ShouldReturnTask_WhenTaskListContainsOne() - { - List tasks = new() - { - new TestTask(), - }; - IServiceProvider provider = new DefaultServiceProviderFactory().CreateServiceProvider(new ServiceCollection()); - RepeatingTaskService service = new(provider, tasks); - - bool gotTask = service.TryGetNextTask(out IRepeatingTask? outTask); - Assert.True(gotTask); - Assert.NotNull(outTask); - } - - [Fact] - public void GetNextTask_ShouldReturnShortestTask_WhenTaskListContainsMultiple() - { - List tasks = new() - { - new TestTask - { - Name = "Task 1", - LastRan = DateTime.UtcNow, - }, - new TestTask - { - Name = "Task 2", - LastRan = DateTime.UtcNow.AddMinutes(1), - }, - new TestTask - { - Name = "Task 3", - LastRan = DateTime.UtcNow.AddMinutes(-1), - }, - }; - IServiceProvider provider = new DefaultServiceProviderFactory().CreateServiceProvider(new ServiceCollection()); - RepeatingTaskService service = new(provider, tasks); - - bool gotTask = service.TryGetNextTask(out IRepeatingTask? outTask); - Assert.True(gotTask); - Assert.NotNull(outTask); - Assert.Equal("Task 3", outTask.Name); - } - - [Fact] - public async Task BackgroundService_ShouldExecuteTask_AndUpdateTime() - { - Mock taskMock = new(); - taskMock.Setup(t => t.Run(It.IsAny())).Returns(Task.CompletedTask); - taskMock.SetupGet(t => t.RepeatInterval).Returns(TimeSpan.FromSeconds(10)); - TaskCompletionSource taskCompletion = new(); - DateTime lastRan = default; - taskMock.SetupSet(t => t.LastRan = It.IsAny()) - .Callback(time => - { - lastRan = time; - taskCompletion.TrySetResult(); - }); - taskMock.SetupGet(t => t.LastRan).Returns(() => lastRan); - List tasks = new() - { - taskMock.Object, - }; - ServiceCollection serviceCollection = new(); - serviceCollection.AddScoped(_ => new Mock().Object); - IServiceProvider provider = new DefaultServiceProviderFactory().CreateServiceProvider(serviceCollection); - - RepeatingTaskService service = new(provider, tasks); - - CancellationTokenSource stoppingToken = new(); - - await service.StartAsync(stoppingToken.Token); - - await taskCompletion.Task; - stoppingToken.Cancel(); - - Assert.NotNull(service.ExecuteTask); - await service.ExecuteTask; - - taskMock.Verify(x => x.Run(It.IsAny()), Times.Once); - taskMock.VerifySet(x => x.LastRan = It.IsAny(), Times.Once()); - } +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Services; +using LBPUnion.ProjectLighthouse.Types.Maintenance; +using Microsoft.Extensions.DependencyInjection; +using Moq; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Unit; + +[Trait("Category", "Unit")] +public class RepeatingTaskTests +{ + private class TestTask : IRepeatingTask + { + public string Name { get; init; } = ""; + public TimeSpan RepeatInterval => TimeSpan.FromSeconds(5); + public DateTime LastRan { get; set; } + public Task Run(DatabaseContext database) => Task.CompletedTask; + } + + [Fact] + public void GetNextTask_ShouldReturnNull_WhenTaskListEmpty() + { + List tasks = new(); + IServiceProvider provider = new DefaultServiceProviderFactory().CreateServiceProvider(new ServiceCollection()); + RepeatingTaskService service = new(provider, tasks); + + bool gotTask = service.TryGetNextTask(out IRepeatingTask? outTask); + Assert.False(gotTask); + Assert.Null(outTask); + } + + [Fact] + public void GetNextTask_ShouldReturnTask_WhenTaskListContainsOne() + { + List tasks = new() + { + new TestTask(), + }; + IServiceProvider provider = new DefaultServiceProviderFactory().CreateServiceProvider(new ServiceCollection()); + RepeatingTaskService service = new(provider, tasks); + + bool gotTask = service.TryGetNextTask(out IRepeatingTask? outTask); + Assert.True(gotTask); + Assert.NotNull(outTask); + } + + [Fact] + public void GetNextTask_ShouldReturnShortestTask_WhenTaskListContainsMultiple() + { + List tasks = new() + { + new TestTask + { + Name = "Task 1", + LastRan = DateTime.UtcNow, + }, + new TestTask + { + Name = "Task 2", + LastRan = DateTime.UtcNow.AddMinutes(1), + }, + new TestTask + { + Name = "Task 3", + LastRan = DateTime.UtcNow.AddMinutes(-1), + }, + }; + IServiceProvider provider = new DefaultServiceProviderFactory().CreateServiceProvider(new ServiceCollection()); + RepeatingTaskService service = new(provider, tasks); + + bool gotTask = service.TryGetNextTask(out IRepeatingTask? outTask); + Assert.True(gotTask); + Assert.NotNull(outTask); + Assert.Equal("Task 3", outTask.Name); + } + + [Fact] + public async Task BackgroundService_ShouldExecuteTask_AndUpdateTime() + { + Mock taskMock = new(); + taskMock.Setup(t => t.Run(It.IsAny())).Returns(Task.CompletedTask); + taskMock.SetupGet(t => t.RepeatInterval).Returns(TimeSpan.FromSeconds(10)); + TaskCompletionSource taskCompletion = new(); + DateTime lastRan = default; + taskMock.SetupSet(t => t.LastRan = It.IsAny()) + .Callback(time => + { + lastRan = time; + taskCompletion.TrySetResult(); + }); + taskMock.SetupGet(t => t.LastRan).Returns(() => lastRan); + List tasks = new() + { + taskMock.Object, + }; + ServiceCollection serviceCollection = new(); + serviceCollection.AddScoped(_ => new Mock().Object); + IServiceProvider provider = new DefaultServiceProviderFactory().CreateServiceProvider(serviceCollection); + + RepeatingTaskService service = new(provider, tasks); + + CancellationTokenSource stoppingToken = new(); + + await service.StartAsync(stoppingToken.Token); + + await taskCompletion.Task; + stoppingToken.Cancel(); + + Assert.NotNull(service.ExecuteTask); + await service.ExecuteTask; + + taskMock.Verify(x => x.Run(It.IsAny()), Times.Once); + taskMock.VerifySet(x => x.LastRan = It.IsAny(), Times.Once()); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/Unit/ResourceTests.cs b/ProjectLighthouse.Tests/Unit/ResourceTests.cs index 314a2475..bbfadd4b 100644 --- a/ProjectLighthouse.Tests/Unit/ResourceTests.cs +++ b/ProjectLighthouse.Tests/Unit/ResourceTests.cs @@ -1,100 +1,100 @@ -using System; -using System.IO; -using System.Threading.Tasks; -using LBPUnion.ProjectLighthouse.Files; -using LBPUnion.ProjectLighthouse.Types.Resources; -using Xunit; - -namespace LBPUnion.ProjectLighthouse.Tests.Unit; - -[Trait("Category", "Unit")] -public class ResourceTests -{ - - [Fact] - public void IsResourceValid_ReturnsTrue_ForValidResource() - { - string[] resources = { - "g123456", "g123", "98f54143ab4e86b28c3afee0f50f2f51cfb2ed38", "0ebe53fc820a544798000188d39bfda94f53fe37" - }; - Assert.Multiple(() => - { - foreach (string resource in resources) - { - Assert.True(FileHelper.IsResourceValid(resource)); - } - }); - - } - - [Fact] - public void IsResourceValid_ReturnsFalse_ForInvalidResource() - { - string[] resources = - { - "G0234", "g123456789012334567", "b28c3afee0f50f2f51cfb2ed38", "../Test", - }; - Assert.Multiple(() => - { - foreach (string resource in resources) - { - Assert.False(FileHelper.IsResourceValid(resource)); - } - }); - } - - [Fact] - public void ShouldNotDeleteResourceFolder() - { - FileHelper.EnsureDirectoryCreated(FileHelper.ResourcePath); - Assert.True(Directory.Exists(FileHelper.ResourcePath)); - FileHelper.DeleteResource(FileHelper.ResourcePath); - Assert.True(Directory.Exists(FileHelper.ResourcePath)); - } - - [Fact] - public void ShouldNotDeleteImagesFolder() - { - FileHelper.EnsureDirectoryCreated(FileHelper.ImagePath); - Assert.True(Directory.Exists(FileHelper.ImagePath)); - FileHelper.DeleteResource(FileHelper.ImagePath); - Assert.True(Directory.Exists(FileHelper.ImagePath)); - } - - [Fact] - public void ShouldNotRecursivelyTraverseImage() - { - string path = Path.Combine(FileHelper.ImagePath, $"..{Path.DirectorySeparatorChar}appsettings.json"); - FileHelper.DeleteResource(path); - Assert.True(File.Exists(Path.Combine(FileHelper.ImagePath, $"..{Path.DirectorySeparatorChar}appsettings.json"))); - } - - [Fact] - public void ShouldNotRecursivelyTraverseResource() - { - string path = Path.Combine(FileHelper.ResourcePath, $"..{Path.DirectorySeparatorChar}appsettings.json"); - FileHelper.DeleteResource(path); - Assert.True(File.Exists(Path.Combine(FileHelper.ResourcePath, $"..{Path.DirectorySeparatorChar}appsettings.json"))); - } - - [Fact] - public async Task ShouldDeleteResourceAndImage() - { - FileHelper.EnsureDirectoryCreated(FileHelper.ResourcePath); - FileHelper.EnsureDirectoryCreated(FileHelper.ImagePath); - string? hash = await FileHelper.ParseBase64Image("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8r8NQDwAFCQGsNA7jBAAAAABJRU5ErkJggg=="); - LbpFile? file = LbpFile.FromHash("ed4e2857a2e315e4487ea976d1b398f57b863ff4"); - Assert.True(file != null); - // Convert resource to png - FileHelper.LbpFileToPNG(file); - - Assert.True(hash != null); - Assert.True(hash.Equals("ed4e2857a2e315e4487ea976d1b398f57b863ff4", StringComparison.InvariantCultureIgnoreCase)); - Assert.True(File.Exists(Path.Combine(FileHelper.ResourcePath, hash))); - Assert.True(File.Exists(Path.Combine(FileHelper.ImagePath, $"{hash}.png"))); - - FileHelper.DeleteResource(hash); - Assert.False(File.Exists(Path.Combine(FileHelper.ResourcePath, hash))); - Assert.False(File.Exists(Path.Combine(FileHelper.ImagePath, $"{hash}.png"))); - } +using System; +using System.IO; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Files; +using LBPUnion.ProjectLighthouse.Types.Resources; +using Xunit; + +namespace LBPUnion.ProjectLighthouse.Tests.Unit; + +[Trait("Category", "Unit")] +public class ResourceTests +{ + + [Fact] + public void IsResourceValid_ReturnsTrue_ForValidResource() + { + string[] resources = { + "g123456", "g123", "98f54143ab4e86b28c3afee0f50f2f51cfb2ed38", "0ebe53fc820a544798000188d39bfda94f53fe37" + }; + Assert.Multiple(() => + { + foreach (string resource in resources) + { + Assert.True(FileHelper.IsResourceValid(resource)); + } + }); + + } + + [Fact] + public void IsResourceValid_ReturnsFalse_ForInvalidResource() + { + string[] resources = + { + "G0234", "g123456789012334567", "b28c3afee0f50f2f51cfb2ed38", "../Test", + }; + Assert.Multiple(() => + { + foreach (string resource in resources) + { + Assert.False(FileHelper.IsResourceValid(resource)); + } + }); + } + + [Fact] + public void ShouldNotDeleteResourceFolder() + { + FileHelper.EnsureDirectoryCreated(FileHelper.ResourcePath); + Assert.True(Directory.Exists(FileHelper.ResourcePath)); + FileHelper.DeleteResource(FileHelper.ResourcePath); + Assert.True(Directory.Exists(FileHelper.ResourcePath)); + } + + [Fact] + public void ShouldNotDeleteImagesFolder() + { + FileHelper.EnsureDirectoryCreated(FileHelper.ImagePath); + Assert.True(Directory.Exists(FileHelper.ImagePath)); + FileHelper.DeleteResource(FileHelper.ImagePath); + Assert.True(Directory.Exists(FileHelper.ImagePath)); + } + + [Fact] + public void ShouldNotRecursivelyTraverseImage() + { + string path = Path.Combine(FileHelper.ImagePath, $"..{Path.DirectorySeparatorChar}appsettings.json"); + FileHelper.DeleteResource(path); + Assert.True(File.Exists(Path.Combine(FileHelper.ImagePath, $"..{Path.DirectorySeparatorChar}appsettings.json"))); + } + + [Fact] + public void ShouldNotRecursivelyTraverseResource() + { + string path = Path.Combine(FileHelper.ResourcePath, $"..{Path.DirectorySeparatorChar}appsettings.json"); + FileHelper.DeleteResource(path); + Assert.True(File.Exists(Path.Combine(FileHelper.ResourcePath, $"..{Path.DirectorySeparatorChar}appsettings.json"))); + } + + [Fact] + public async Task ShouldDeleteResourceAndImage() + { + FileHelper.EnsureDirectoryCreated(FileHelper.ResourcePath); + FileHelper.EnsureDirectoryCreated(FileHelper.ImagePath); + string? hash = await FileHelper.ParseBase64Image("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8r8NQDwAFCQGsNA7jBAAAAABJRU5ErkJggg=="); + LbpFile? file = LbpFile.FromHash("ed4e2857a2e315e4487ea976d1b398f57b863ff4"); + Assert.True(file != null); + // Convert resource to png + FileHelper.LbpFileToPNG(file); + + Assert.True(hash != null); + Assert.True(hash.Equals("ed4e2857a2e315e4487ea976d1b398f57b863ff4", StringComparison.InvariantCultureIgnoreCase)); + Assert.True(File.Exists(Path.Combine(FileHelper.ResourcePath, hash))); + Assert.True(File.Exists(Path.Combine(FileHelper.ImagePath, $"{hash}.png"))); + + FileHelper.DeleteResource(hash); + Assert.False(File.Exists(Path.Combine(FileHelper.ResourcePath, hash))); + Assert.False(File.Exists(Path.Combine(FileHelper.ImagePath, $"{hash}.png"))); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Tests/bin/Debug/net8.0/CoverletSourceRootsMapping_LBPUnion.ProjectLighthouse.Tests b/ProjectLighthouse.Tests/bin/Debug/net8.0/CoverletSourceRootsMapping_LBPUnion.ProjectLighthouse.Tests new file mode 100644 index 00000000..208be304 Binary files /dev/null and b/ProjectLighthouse.Tests/bin/Debug/net8.0/CoverletSourceRootsMapping_LBPUnion.ProjectLighthouse.Tests differ diff --git a/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.AssemblyInfo.cs b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.AssemblyInfo.cs new file mode 100644 index 00000000..8d52e60e --- /dev/null +++ b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("LBPUnion.ProjectLighthouse.Tests")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+509240db396eac0c69bd7ed8e09b71f630a8de72")] +[assembly: System.Reflection.AssemblyProductAttribute("LBPUnion.ProjectLighthouse.Tests")] +[assembly: System.Reflection.AssemblyTitleAttribute("LBPUnion.ProjectLighthouse.Tests")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.AssemblyInfoInputs.cache b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.AssemblyInfoInputs.cache new file mode 100644 index 00000000..faaf237e --- /dev/null +++ b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +6b89ea06ddc2a1c8a938ca178c0f85915603434fc871268ec6f76c4cd69a13e7 diff --git a/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.GeneratedMSBuildEditorConfig.editorconfig b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 00000000..9b736bd3 --- /dev/null +++ b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,15 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = LBPUnion.ProjectLighthouse.Tests +build_property.ProjectDir = G:\LBP 3 ONLINE ARCHIVE\LBP 3 ONLINE SITE RECREACTION\ProjectLighthouse\ProjectLighthouse.Tests\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.assets.cache b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.assets.cache new file mode 100644 index 00000000..75405a1d Binary files /dev/null and b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.assets.cache differ diff --git a/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.csproj.AssemblyReference.cache b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.csproj.AssemblyReference.cache new file mode 100644 index 00000000..4e1b4ed8 Binary files /dev/null and b/ProjectLighthouse.Tests/obj/Debug/net8.0/ProjectLighthouse.Tests.csproj.AssemblyReference.cache differ diff --git a/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.dgspec.json b/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.dgspec.json new file mode 100644 index 00000000..d3d38714 --- /dev/null +++ b/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.dgspec.json @@ -0,0 +1,352 @@ +{ + "format": 1, + "restore": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj": {} + }, + "projects": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj", + "projectName": "ProjectLighthouse.Localization", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "projectName": "LBPUnion.ProjectLighthouse.Tests", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Mvc.Testing": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Sqlite": { + "target": "Package", + "version": "[8.0.6, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.14.1, )" + }, + "Moq": { + "target": "Package", + "version": "[4.20.72, )" + }, + "coverlet.collector": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[6.0.4, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.1.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj", + "projectName": "LBPUnion.ProjectLighthouse", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Localization\\ProjectLighthouse.Localization.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "BCrypt.Net-Next": { + "target": "Package", + "version": "[4.0.3, )" + }, + "BouncyCastle.Cryptography": { + "target": "Package", + "version": "[2.6.1, )" + }, + "Discord.Net.Webhook": { + "target": "Package", + "version": "[3.17.4, )" + }, + "DistributedLock.MySql": { + "target": "Package", + "version": "[1.0.2, )" + }, + "GitInfo": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.5.0, )" + }, + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Pfim": { + "target": "Package", + "version": "[0.11.3, )" + }, + "Pomelo.EntityFrameworkCore.MySql": { + "target": "Package", + "version": "[8.0.2, )" + }, + "Redis.OM": { + "target": "Package", + "version": "[1.0.1, )" + }, + "SharpZipLib": { + "target": "Package", + "version": "[1.4.2, )" + }, + "SixLabors.ImageSharp": { + "target": "Package", + "version": "[3.1.10, )" + }, + "Swashbuckle.AspNetCore": { + "target": "Package", + "version": "[9.0.3, )" + }, + "YamlDotNet": { + "target": "Package", + "version": "[16.3.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.g.props b/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.g.props new file mode 100644 index 00000000..553d7b2b --- /dev/null +++ b/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.g.props @@ -0,0 +1,30 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Faisa\.nuget\packages\ + PackageReference + 6.14.0 + + + + + + + + + + + + + + + + C:\Users\Faisa\.nuget\packages\xunit.analyzers\1.18.0 + C:\Users\Faisa\.nuget\packages\microsoft.extensions.apidescription.server\8.0.0 + C:\Users\Faisa\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3 + + \ No newline at end of file diff --git a/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.g.targets b/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.g.targets new file mode 100644 index 00000000..954eb47a --- /dev/null +++ b/ProjectLighthouse.Tests/obj/ProjectLighthouse.Tests.csproj.nuget.g.targets @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ProjectLighthouse.Tests/obj/project.assets.json b/ProjectLighthouse.Tests/obj/project.assets.json new file mode 100644 index 00000000..d411dcb4 --- /dev/null +++ b/ProjectLighthouse.Tests/obj/project.assets.json @@ -0,0 +1,5901 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "BCrypt.Net-Next/4.0.3": { + "type": "package", + "compile": { + "lib/net6.0/BCrypt.Net-Next.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/BCrypt.Net-Next.dll": { + "related": ".xml" + } + } + }, + "BouncyCastle.Cryptography/2.6.1": { + "type": "package", + "compile": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "related": ".xml" + } + } + }, + "Castle.Core/5.1.1": { + "type": "package", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + }, + "compile": { + "lib/net6.0/Castle.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Castle.Core.dll": { + "related": ".xml" + } + } + }, + "coverlet.collector/6.0.4": { + "type": "package", + "build": { + "build/netstandard2.0/coverlet.collector.targets": {} + } + }, + "Discord.Net.Core/3.17.4": { + "type": "package", + "dependencies": { + "Newtonsoft.Json": "13.0.3", + "System.Collections.Immutable": "8.0.0", + "System.Interactive.Async": "6.0.1", + "System.ValueTuple": "4.5.0" + }, + "compile": { + "lib/net8.0/Discord.Net.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Core.dll": { + "related": ".xml" + } + } + }, + "Discord.Net.Rest/3.17.4": { + "type": "package", + "dependencies": { + "Discord.Net.Core": "3.17.4" + }, + "compile": { + "lib/net8.0/Discord.Net.Rest.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Rest.dll": { + "related": ".xml" + } + } + }, + "Discord.Net.Webhook/3.17.4": { + "type": "package", + "dependencies": { + "Discord.Net.Core": "3.17.4", + "Discord.Net.Rest": "3.17.4" + }, + "compile": { + "lib/net8.0/Discord.Net.Webhook.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Discord.Net.Webhook.dll": { + "related": ".xml" + } + } + }, + "DistributedLock.Core/1.0.6": { + "type": "package", + "compile": { + "lib/net8.0/DistributedLock.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/DistributedLock.Core.dll": { + "related": ".xml" + } + } + }, + "DistributedLock.MySql/1.0.2": { + "type": "package", + "dependencies": { + "DistributedLock.Core": "[1.0.6, 1.1.0)", + "MySqlConnector": "2.3.5" + }, + "compile": { + "lib/netstandard2.1/DistributedLock.MySql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/DistributedLock.MySql.dll": { + "related": ".xml" + } + } + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Humanizer.dll": { + "related": ".xml" + } + } + }, + "JetBrains.Annotations/2024.3.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/JetBrains.Annotations.dll": { + "related": ".deps.json;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/JetBrains.Annotations.dll": { + "related": ".deps.json;.xml" + } + } + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "8.0.18" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.AspNetCore.Mvc.Testing/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.TestHost": "8.0.18", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Extensions.Hosting": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ], + "build": { + "buildTransitive/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets": {} + } + }, + "Microsoft.AspNetCore.TestHost/8.0.18": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "type": "package", + "build": { + "build/_._": {} + } + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "[4.5.0]", + "Microsoft.CodeAnalysis.Common": "[4.5.0]", + "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.CodeAnalysis.Common": "[4.5.0]", + "System.Composition": "6.0.0", + "System.IO.Pipelines": "6.0.3", + "System.Threading.Channels": "6.0.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": { + "related": ".pdb;.xml" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeCoverage/17.14.1": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "runtime": { + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "build": { + "build/netstandard2.0/Microsoft.CodeCoverage.props": {}, + "build/netstandard2.0/Microsoft.CodeCoverage.targets": {} + } + }, + "Microsoft.Data.Sqlite.Core/8.0.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.core": "2.1.6" + }, + "compile": { + "lib/net8.0/Microsoft.Data.Sqlite.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Data.Sqlite.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.18", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.18", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.18": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.18": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Design/8.0.18": { + "type": "package", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.5.0", + "Microsoft.EntityFrameworkCore.Relational": "8.0.18", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Mono.TextTemplating": "2.2.1" + }, + "compile": { + "lib/net8.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll": { + "related": ".xml" + } + }, + "build": { + "build/net8.0/Microsoft.EntityFrameworkCore.Design.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.18": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.18", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Sqlite/8.0.6": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Sqlite.Core": "8.0.6", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.6" + }, + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.Sqlite.Core/8.0.6": { + "type": "package", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "8.0.6", + "Microsoft.EntityFrameworkCore.Relational": "8.0.6", + "Microsoft.Extensions.DependencyModel": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.ApiDescription.Server/8.0.0": { + "type": "package", + "build": { + "build/_._": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/_._": {} + } + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Binder/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets": {} + } + }, + "Microsoft.Extensions.Configuration.CommandLine/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.FileExtensions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Json/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.UserSecrets/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.props": {}, + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.targets": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Diagnostics/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileProviders.Physical/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.FileSystemGlobbing/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Hosting/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.CommandLine": "8.0.0", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Configuration.UserSecrets": "8.0.1", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Logging.Console": "8.0.1", + "Microsoft.Extensions.Logging.Debug": "8.0.1", + "Microsoft.Extensions.Logging.EventLog": "8.0.1", + "Microsoft.Extensions.Logging.EventSource": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Hosting.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Logging.Configuration/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Console/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Debug/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.EventLog/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "System.Diagnostics.EventLog": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.EventSource/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Options/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.NET.Test.Sdk/17.14.1": { + "type": "package", + "dependencies": { + "Microsoft.CodeCoverage": "17.14.1", + "Microsoft.TestPlatform.TestHost": "17.14.1" + }, + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + }, + "build": { + "build/net8.0/Microsoft.NET.Test.Sdk.props": {}, + "build/net8.0/Microsoft.NET.Test.Sdk.targets": {} + } + }, + "Microsoft.OpenApi/1.6.23": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + } + }, + "Microsoft.TestPlatform.ObjectModel/17.14.1": { + "type": "package", + "dependencies": { + "System.Reflection.Metadata": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "runtime": { + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "resource": { + "lib/net8.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.TestPlatform.TestHost/17.14.1": { + "type": "package", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.14.1", + "Newtonsoft.Json": "13.0.3" + }, + "compile": { + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/net8.0/testhost.dll": { + "related": ".deps.json" + } + }, + "runtime": { + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/net8.0/testhost.dll": { + "related": ".deps.json" + } + }, + "resource": { + "lib/net8.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "de" + }, + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "es" + }, + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "it" + }, + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hant" + }, + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "build/net8.0/Microsoft.TestPlatform.TestHost.props": {}, + "build/net8.0/Microsoft.TestPlatform.TestHost.targets": {} + } + }, + "Mono.TextTemplating/2.2.1": { + "type": "package", + "dependencies": { + "System.CodeDom": "4.4.0" + }, + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/Mono.TextTemplating.dll": {} + } + }, + "Moq/4.20.72": { + "type": "package", + "dependencies": { + "Castle.Core": "5.1.1" + }, + "compile": { + "lib/net6.0/Moq.dll": {} + }, + "runtime": { + "lib/net6.0/Moq.dll": {} + } + }, + "MySqlConnector/2.3.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "7.0.1" + }, + "compile": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "compile": { + "lib/net6.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + } + }, + "Pfim/0.11.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/Pfim.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Pfim.dll": {} + } + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "5.0.1" + }, + "compile": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "related": ".xml" + } + } + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "[8.0.2, 8.0.999]", + "MySqlConnector": "2.3.5" + }, + "compile": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "related": ".xml" + } + } + }, + "Redis.OM/1.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Newtonsoft.Json": "13.0.1", + "StackExchange.Redis": "2.7.17", + "System.Text.Json": "8.0.5", + "Ulid": "1.2.6" + }, + "compile": { + "lib/netstandard2.0/Redis.OM.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Redis.OM.dll": { + "related": ".xml" + } + } + }, + "SharpZipLib/1.4.2": { + "type": "package", + "compile": { + "lib/net6.0/ICSharpCode.SharpZipLib.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net6.0/ICSharpCode.SharpZipLib.dll": { + "related": ".pdb;.xml" + } + } + }, + "SixLabors.ImageSharp/3.1.10": { + "type": "package", + "compile": { + "lib/net6.0/SixLabors.ImageSharp.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/SixLabors.ImageSharp.dll": { + "related": ".xml" + } + }, + "build": { + "build/_._": {} + } + }, + "SQLitePCLRaw.bundle_e_sqlite3/2.1.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.6", + "SQLitePCLRaw.provider.e_sqlite3": "2.1.6" + }, + "compile": { + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll": {} + }, + "runtime": { + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll": {} + } + }, + "SQLitePCLRaw.core/2.1.6": { + "type": "package", + "dependencies": { + "System.Memory": "4.5.3" + }, + "compile": { + "lib/netstandard2.0/SQLitePCLRaw.core.dll": {} + }, + "runtime": { + "lib/netstandard2.0/SQLitePCLRaw.core.dll": {} + } + }, + "SQLitePCLRaw.lib.e_sqlite3/2.1.6": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + }, + "build": { + "buildTransitive/net8.0/SQLitePCLRaw.lib.e_sqlite3.targets": {} + }, + "runtimeTargets": { + "runtimes/browser-wasm/nativeassets/net8.0/e_sqlite3.a": { + "assetType": "native", + "rid": "browser-wasm" + }, + "runtimes/linux-arm/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-arm" + }, + "runtimes/linux-arm64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-arm64" + }, + "runtimes/linux-armel/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-armel" + }, + "runtimes/linux-mips64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-mips64" + }, + "runtimes/linux-musl-arm/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-arm" + }, + "runtimes/linux-musl-arm64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-arm64" + }, + "runtimes/linux-musl-x64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-musl-x64" + }, + "runtimes/linux-ppc64le/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-ppc64le" + }, + "runtimes/linux-s390x/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-s390x" + }, + "runtimes/linux-x64/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-x64" + }, + "runtimes/linux-x86/native/libe_sqlite3.so": { + "assetType": "native", + "rid": "linux-x86" + }, + "runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "maccatalyst-arm64" + }, + "runtimes/maccatalyst-x64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "maccatalyst-x64" + }, + "runtimes/osx-arm64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "osx-arm64" + }, + "runtimes/osx-x64/native/libe_sqlite3.dylib": { + "assetType": "native", + "rid": "osx-x64" + }, + "runtimes/win-arm/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-arm" + }, + "runtimes/win-arm64/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-arm64" + }, + "runtimes/win-x64/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-x64" + }, + "runtimes/win-x86/native/e_sqlite3.dll": { + "assetType": "native", + "rid": "win-x86" + } + } + }, + "SQLitePCLRaw.provider.e_sqlite3/2.1.6": { + "type": "package", + "dependencies": { + "SQLitePCLRaw.core": "2.1.6" + }, + "compile": { + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll": {} + }, + "runtime": { + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll": {} + } + }, + "StackExchange.Redis/2.7.17": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Pipelines.Sockets.Unofficial": "2.2.8" + }, + "compile": { + "lib/net6.0/StackExchange.Redis.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/StackExchange.Redis.dll": { + "related": ".xml" + } + } + }, + "Swashbuckle.AspNetCore/9.0.3": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.ApiDescription.Server": "8.0.0", + "Swashbuckle.AspNetCore.Swagger": "9.0.3", + "Swashbuckle.AspNetCore.SwaggerGen": "9.0.3", + "Swashbuckle.AspNetCore.SwaggerUI": "9.0.3" + }, + "build": { + "build/_._": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/_._": {} + } + }, + "Swashbuckle.AspNetCore.Swagger/9.0.3": { + "type": "package", + "dependencies": { + "Microsoft.OpenApi": "1.6.23" + }, + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/9.0.3": { + "type": "package", + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "9.0.3" + }, + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/9.0.3": { + "type": "package", + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "System.CodeDom/4.4.0": { + "type": "package", + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.CodeDom.dll": {} + } + }, + "System.Collections.Immutable/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Collections.Immutable.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Collections.Immutable.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Composition/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Convention": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0", + "System.Composition.TypedParts": "6.0.0" + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.AttributedModel/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.AttributedModel.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Convention/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Convention.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Hosting/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.Runtime": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Hosting.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.Runtime/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.Runtime.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Composition.TypedParts/6.0.0": { + "type": "package", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Composition.TypedParts.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Diagnostics.EventLog/8.0.1": { + "type": "package", + "compile": { + "lib/net8.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll": { + "assetType": "runtime", + "rid": "win" + }, + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Interactive.Async/6.0.1": { + "type": "package", + "dependencies": { + "System.Linq.Async": "6.0.1" + }, + "compile": { + "lib/net6.0/System.Interactive.Async.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Interactive.Async.dll": { + "related": ".xml" + } + } + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Linq.Async/6.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0" + }, + "compile": { + "ref/net6.0/System.Linq.Async.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Linq.Async.dll": { + "related": ".xml" + } + } + }, + "System.Memory/4.5.3": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, + "System.Reflection.Metadata/8.0.0": { + "type": "package", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + }, + "compile": { + "lib/net8.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Text.Encoding.CodePages/6.0.0": { + "type": "package", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Text.Encoding.CodePages.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Text.Json/8.0.5": { + "type": "package", + "compile": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/System.Text.Json.targets": {} + } + }, + "System.Threading.Channels/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.ValueTuple/4.5.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, + "Ulid/1.2.6": { + "type": "package", + "compile": { + "lib/net5.0/Ulid.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/Ulid.dll": { + "related": ".xml" + } + } + }, + "xunit/2.9.3": { + "type": "package", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.abstractions/2.0.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + } + }, + "xunit.analyzers/1.18.0": { + "type": "package" + }, + "xunit.assert/2.9.3": { + "type": "package", + "compile": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + } + }, + "xunit.core/2.9.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + }, + "build": { + "build/xunit.core.props": {}, + "build/xunit.core.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/xunit.core.props": {}, + "buildMultiTargeting/xunit.core.targets": {} + } + }, + "xunit.extensibility.core/2.9.3": { + "type": "package", + "dependencies": { + "xunit.abstractions": "2.0.3" + }, + "compile": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + } + }, + "xunit.extensibility.execution/2.9.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + }, + "compile": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + } + }, + "xunit.runner.visualstudio/3.1.1": { + "type": "package", + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + }, + "build": { + "build/net8.0/xunit.runner.visualstudio.props": {} + } + }, + "YamlDotNet/16.3.0": { + "type": "package", + "compile": { + "lib/net8.0/YamlDotNet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/YamlDotNet.dll": { + "related": ".xml" + } + } + }, + "LBPUnion.ProjectLighthouse/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "BCrypt.Net-Next": "4.0.3", + "BouncyCastle.Cryptography": "2.6.1", + "Discord.Net.Webhook": "3.17.4", + "DistributedLock.MySql": "1.0.2", + "JetBrains.Annotations": "2024.3.0", + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "8.0.18", + "Microsoft.EntityFrameworkCore": "8.0.18", + "Pfim": "0.11.3", + "Pomelo.EntityFrameworkCore.MySql": "8.0.2", + "ProjectLighthouse.Localization": "1.0.0", + "Redis.OM": "1.0.1", + "SharpZipLib": "1.4.2", + "SixLabors.ImageSharp": "3.1.10", + "Swashbuckle.AspNetCore": "9.0.3", + "YamlDotNet": "16.3.0" + }, + "compile": { + "bin/placeholder/LBPUnion.ProjectLighthouse.dll": {} + }, + "runtime": { + "bin/placeholder/LBPUnion.ProjectLighthouse.dll": {} + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "ProjectLighthouse.Localization/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "compile": { + "bin/placeholder/ProjectLighthouse.Localization.dll": {} + }, + "runtime": { + "bin/placeholder/ProjectLighthouse.Localization.dll": {} + } + } + } + }, + "libraries": { + "BCrypt.Net-Next/4.0.3": { + "sha512": "W+U9WvmZQgi5cX6FS5GDtDoPzUCV4LkBLkywq/kRZhuDwcbavOzcDAr3LXJFqHUi952Yj3LEYoWW0jbEUQChsA==", + "type": "package", + "path": "bcrypt.net-next/4.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "bcrypt.net-next.4.0.3.nupkg.sha512", + "bcrypt.net-next.nuspec", + "ico.png", + "lib/net20/BCrypt.Net-Next.dll", + "lib/net20/BCrypt.Net-Next.xml", + "lib/net35/BCrypt.Net-Next.dll", + "lib/net35/BCrypt.Net-Next.xml", + "lib/net462/BCrypt.Net-Next.dll", + "lib/net462/BCrypt.Net-Next.xml", + "lib/net472/BCrypt.Net-Next.dll", + "lib/net472/BCrypt.Net-Next.xml", + "lib/net48/BCrypt.Net-Next.dll", + "lib/net48/BCrypt.Net-Next.xml", + "lib/net5.0/BCrypt.Net-Next.dll", + "lib/net5.0/BCrypt.Net-Next.xml", + "lib/net6.0/BCrypt.Net-Next.dll", + "lib/net6.0/BCrypt.Net-Next.xml", + "lib/netstandard2.0/BCrypt.Net-Next.dll", + "lib/netstandard2.0/BCrypt.Net-Next.xml", + "lib/netstandard2.1/BCrypt.Net-Next.dll", + "lib/netstandard2.1/BCrypt.Net-Next.xml", + "readme.md" + ] + }, + "BouncyCastle.Cryptography/2.6.1": { + "sha512": "vZsG2YILhthgRqO+ZVgRff4ZFKKTl0v7kqaVBLCtRvpREhfBP33pcWrdA3PRYgWuFL1RxiUFvjMUHTdBZlJcoA==", + "type": "package", + "path": "bouncycastle.cryptography/2.6.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "README.md", + "bouncycastle.cryptography.2.6.1.nupkg.sha512", + "bouncycastle.cryptography.nuspec", + "lib/net461/BouncyCastle.Cryptography.dll", + "lib/net461/BouncyCastle.Cryptography.xml", + "lib/net6.0/BouncyCastle.Cryptography.dll", + "lib/net6.0/BouncyCastle.Cryptography.xml", + "lib/netstandard2.0/BouncyCastle.Cryptography.dll", + "lib/netstandard2.0/BouncyCastle.Cryptography.xml", + "packageIcon.png" + ] + }, + "Castle.Core/5.1.1": { + "sha512": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "type": "package", + "path": "castle.core/5.1.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ASL - Apache Software Foundation License.txt", + "CHANGELOG.md", + "LICENSE", + "castle-logo.png", + "castle.core.5.1.1.nupkg.sha512", + "castle.core.nuspec", + "lib/net462/Castle.Core.dll", + "lib/net462/Castle.Core.xml", + "lib/net6.0/Castle.Core.dll", + "lib/net6.0/Castle.Core.xml", + "lib/netstandard2.0/Castle.Core.dll", + "lib/netstandard2.0/Castle.Core.xml", + "lib/netstandard2.1/Castle.Core.dll", + "lib/netstandard2.1/Castle.Core.xml", + "readme.txt" + ] + }, + "coverlet.collector/6.0.4": { + "sha512": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg==", + "type": "package", + "path": "coverlet.collector/6.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "VSTestIntegration.md", + "build/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "build/netstandard2.0/Microsoft.Extensions.DependencyModel.dll", + "build/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "build/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "build/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "build/netstandard2.0/Mono.Cecil.Mdb.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/Newtonsoft.Json.dll", + "build/netstandard2.0/NuGet.Frameworks.dll", + "build/netstandard2.0/NuGet.Versioning.dll", + "build/netstandard2.0/System.Buffers.dll", + "build/netstandard2.0/System.Collections.Immutable.dll", + "build/netstandard2.0/System.Memory.dll", + "build/netstandard2.0/System.Numerics.Vectors.dll", + "build/netstandard2.0/System.Reflection.Metadata.dll", + "build/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", + "build/netstandard2.0/System.Text.Encodings.Web.dll", + "build/netstandard2.0/System.Text.Json.dll", + "build/netstandard2.0/System.Threading.Tasks.Extensions.dll", + "build/netstandard2.0/coverlet.collector.deps.json", + "build/netstandard2.0/coverlet.collector.dll", + "build/netstandard2.0/coverlet.collector.pdb", + "build/netstandard2.0/coverlet.collector.targets", + "build/netstandard2.0/coverlet.core.dll", + "build/netstandard2.0/coverlet.core.pdb", + "build/netstandard2.0/coverlet.core.xml", + "build/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "coverlet-icon.png", + "coverlet.collector.6.0.4.nupkg.sha512", + "coverlet.collector.nuspec" + ] + }, + "Discord.Net.Core/3.17.4": { + "sha512": "tMCilkXI6Gqqn6ipyysyuv3qHUNY1LNUbEpRHF6Q5jqW0Tckvu/EuZ2r/1xJatxvC8EoohIA05Dq3N3rrRlxBQ==", + "type": "package", + "path": "discord.net.core/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.core.3.17.4.nupkg.sha512", + "discord.net.core.nuspec", + "lib/net461/Discord.Net.Core.dll", + "lib/net461/Discord.Net.Core.xml", + "lib/net5.0/Discord.Net.Core.dll", + "lib/net5.0/Discord.Net.Core.xml", + "lib/net6.0/Discord.Net.Core.dll", + "lib/net6.0/Discord.Net.Core.xml", + "lib/net8.0/Discord.Net.Core.dll", + "lib/net8.0/Discord.Net.Core.xml", + "lib/net9.0/Discord.Net.Core.dll", + "lib/net9.0/Discord.Net.Core.xml", + "lib/netstandard2.0/Discord.Net.Core.dll", + "lib/netstandard2.0/Discord.Net.Core.xml", + "lib/netstandard2.1/Discord.Net.Core.dll", + "lib/netstandard2.1/Discord.Net.Core.xml" + ] + }, + "Discord.Net.Rest/3.17.4": { + "sha512": "j3YRvFY9Rd0cCPQpRbTb12fGdcO41Cg0haKSZ/6fqHy1WEzZcKRpU8wC9a9e6yIwc5Gi0jrqYAQ/jvXartOqlg==", + "type": "package", + "path": "discord.net.rest/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.rest.3.17.4.nupkg.sha512", + "discord.net.rest.nuspec", + "lib/net461/Discord.Net.Rest.dll", + "lib/net461/Discord.Net.Rest.xml", + "lib/net5.0/Discord.Net.Rest.dll", + "lib/net5.0/Discord.Net.Rest.xml", + "lib/net6.0/Discord.Net.Rest.dll", + "lib/net6.0/Discord.Net.Rest.xml", + "lib/net8.0/Discord.Net.Rest.dll", + "lib/net8.0/Discord.Net.Rest.xml", + "lib/net9.0/Discord.Net.Rest.dll", + "lib/net9.0/Discord.Net.Rest.xml", + "lib/netstandard2.0/Discord.Net.Rest.dll", + "lib/netstandard2.0/Discord.Net.Rest.xml", + "lib/netstandard2.1/Discord.Net.Rest.dll", + "lib/netstandard2.1/Discord.Net.Rest.xml" + ] + }, + "Discord.Net.Webhook/3.17.4": { + "sha512": "NGr75To1uxeyMEPsR4lo5+m/d2ALGzsgAUBCv/27tBU5G0Ss9fjaemPumcQtXO1uJSBQallxreWsn/LfMQHc5A==", + "type": "package", + "path": "discord.net.webhook/3.17.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NUGET_README.md", + "PackageLogo.png", + "discord.net.webhook.3.17.4.nupkg.sha512", + "discord.net.webhook.nuspec", + "lib/net5.0/Discord.Net.Webhook.dll", + "lib/net5.0/Discord.Net.Webhook.xml", + "lib/net6.0/Discord.Net.Webhook.dll", + "lib/net6.0/Discord.Net.Webhook.xml", + "lib/net8.0/Discord.Net.Webhook.dll", + "lib/net8.0/Discord.Net.Webhook.xml", + "lib/net9.0/Discord.Net.Webhook.dll", + "lib/net9.0/Discord.Net.Webhook.xml", + "lib/netstandard2.0/Discord.Net.Webhook.dll", + "lib/netstandard2.0/Discord.Net.Webhook.xml", + "lib/netstandard2.1/Discord.Net.Webhook.dll", + "lib/netstandard2.1/Discord.Net.Webhook.xml" + ] + }, + "DistributedLock.Core/1.0.6": { + "sha512": "WFAz6x82K+4uiByDk1Qz2lmcm2FrOyCzZjNauzbLeHPou6Ur2C9Ig7d6vxP7/kKvzSrrQoW6k3pUOOcikb9Jgw==", + "type": "package", + "path": "distributedlock.core/1.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "distributedlock.core.1.0.6.nupkg.sha512", + "distributedlock.core.nuspec", + "lib/net462/DistributedLock.Core.dll", + "lib/net462/DistributedLock.Core.xml", + "lib/net8.0/DistributedLock.Core.dll", + "lib/net8.0/DistributedLock.Core.xml", + "lib/netstandard2.0/DistributedLock.Core.dll", + "lib/netstandard2.0/DistributedLock.Core.xml", + "lib/netstandard2.1/DistributedLock.Core.dll", + "lib/netstandard2.1/DistributedLock.Core.xml", + "package.readme.md" + ] + }, + "DistributedLock.MySql/1.0.2": { + "sha512": "1FIaBNM1/EmFeKc9qFNGf+8D/g3ZyBXoGYp0j+DQqKdfJJ500m45zYR4PWFsy1RYUL3E8VNnSvGpxUhB6OKrww==", + "type": "package", + "path": "distributedlock.mysql/1.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "distributedlock.mysql.1.0.2.nupkg.sha512", + "distributedlock.mysql.nuspec", + "lib/net462/DistributedLock.MySql.dll", + "lib/net462/DistributedLock.MySql.xml", + "lib/netstandard2.0/DistributedLock.MySql.dll", + "lib/netstandard2.0/DistributedLock.MySql.xml", + "lib/netstandard2.1/DistributedLock.MySql.dll", + "lib/netstandard2.1/DistributedLock.MySql.xml", + "package.readme.md" + ] + }, + "Humanizer.Core/2.14.1": { + "sha512": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "type": "package", + "path": "humanizer.core/2.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "humanizer.core.2.14.1.nupkg.sha512", + "humanizer.core.nuspec", + "lib/net6.0/Humanizer.dll", + "lib/net6.0/Humanizer.xml", + "lib/netstandard1.0/Humanizer.dll", + "lib/netstandard1.0/Humanizer.xml", + "lib/netstandard2.0/Humanizer.dll", + "lib/netstandard2.0/Humanizer.xml", + "logo.png" + ] + }, + "JetBrains.Annotations/2024.3.0": { + "sha512": "ox5pkeLQXjvJdyAB4b2sBYAlqZGLh3PjSnP1bQNVx72ONuTJ9+34/+Rq91Fc0dG29XG9RgZur9+NcP4riihTug==", + "type": "package", + "path": "jetbrains.annotations/2024.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "jetbrains.annotations.2024.3.0.nupkg.sha512", + "jetbrains.annotations.nuspec", + "lib/net20/JetBrains.Annotations.dll", + "lib/net20/JetBrains.Annotations.xml", + "lib/netstandard1.0/JetBrains.Annotations.deps.json", + "lib/netstandard1.0/JetBrains.Annotations.dll", + "lib/netstandard1.0/JetBrains.Annotations.xml", + "lib/netstandard2.0/JetBrains.Annotations.deps.json", + "lib/netstandard2.0/JetBrains.Annotations.dll", + "lib/netstandard2.0/JetBrains.Annotations.xml", + "lib/portable40-net40+sl5+win8+wp8+wpa81/JetBrains.Annotations.dll", + "lib/portable40-net40+sl5+win8+wp8+wpa81/JetBrains.Annotations.xml", + "readme.md" + ] + }, + "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore/8.0.18": { + "sha512": "H4GKNR5eGHpK5yovhsO3BvOfzKlSv8DVclVYi1JLN5wfei+HAbskbi9nMGGamgtqgVXX1RAAduGKGQWlWGlfKw==", + "type": "package", + "path": "microsoft.aspnetcore.diagnostics.entityframeworkcore/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.xml", + "microsoft.aspnetcore.diagnostics.entityframeworkcore.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.diagnostics.entityframeworkcore.nuspec" + ] + }, + "Microsoft.AspNetCore.Mvc.Testing/8.0.18": { + "sha512": "QfMWUySY4rtLkzdqT/i431ZA+iydEc1pEZoFDpkpu8U9Lc6RlOoZvK4oBU47G+TxqNcHz4omf0JrCqpfL1wq6g==", + "type": "package", + "path": "microsoft.aspnetcore.mvc.testing/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "build/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets", + "buildTransitive/net8.0/Microsoft.AspNetCore.Mvc.Testing.targets", + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.dll", + "lib/net8.0/Microsoft.AspNetCore.Mvc.Testing.xml", + "microsoft.aspnetcore.mvc.testing.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.mvc.testing.nuspec", + "tasks/netstandard2.0/Microsoft.AspNetCore.Mvc.Testing.Tasks.dll" + ] + }, + "Microsoft.AspNetCore.TestHost/8.0.18": { + "sha512": "ofyg3Go9hNptZkZt6MXS2W8LTe+ayceXOebf3XTxywGHn9rbtg/cwXjwcMZ3e6On2p1eSEBtHUmdi6YWplXuSQ==", + "type": "package", + "path": "microsoft.aspnetcore.testhost/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net8.0/Microsoft.AspNetCore.TestHost.dll", + "lib/net8.0/Microsoft.AspNetCore.TestHost.xml", + "microsoft.aspnetcore.testhost.8.0.18.nupkg.sha512", + "microsoft.aspnetcore.testhost.nuspec" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "sha512": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", + "buildTransitive/net462/_._", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "sha512": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==", + "type": "package", + "path": "microsoft.codeanalysis.analyzers/3.3.3", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "analyzers/dotnet/cs/Microsoft.CodeAnalysis.Analyzers.dll", + "analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.Analyzers.dll", + "analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/Microsoft.CodeAnalysis.Analyzers.dll", + "analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll", + "analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll", + "build/Microsoft.CodeAnalysis.Analyzers.props", + "build/Microsoft.CodeAnalysis.Analyzers.targets", + "build/config/analysislevel_2_9_8_all.editorconfig", + "build/config/analysislevel_2_9_8_default.editorconfig", + "build/config/analysislevel_2_9_8_minimum.editorconfig", + "build/config/analysislevel_2_9_8_none.editorconfig", + "build/config/analysislevel_2_9_8_recommended.editorconfig", + "build/config/analysislevel_3_3_all.editorconfig", + "build/config/analysislevel_3_3_default.editorconfig", + "build/config/analysislevel_3_3_minimum.editorconfig", + "build/config/analysislevel_3_3_none.editorconfig", + "build/config/analysislevel_3_3_recommended.editorconfig", + "build/config/analysislevel_3_all.editorconfig", + "build/config/analysislevel_3_default.editorconfig", + "build/config/analysislevel_3_minimum.editorconfig", + "build/config/analysislevel_3_none.editorconfig", + "build/config/analysislevel_3_recommended.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_all.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_default.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_minimum.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_none.editorconfig", + "build/config/analysislevelcorrectness_2_9_8_recommended.editorconfig", + "build/config/analysislevelcorrectness_3_3_all.editorconfig", + "build/config/analysislevelcorrectness_3_3_default.editorconfig", + "build/config/analysislevelcorrectness_3_3_minimum.editorconfig", + "build/config/analysislevelcorrectness_3_3_none.editorconfig", + "build/config/analysislevelcorrectness_3_3_recommended.editorconfig", + "build/config/analysislevelcorrectness_3_all.editorconfig", + "build/config/analysislevelcorrectness_3_default.editorconfig", + "build/config/analysislevelcorrectness_3_minimum.editorconfig", + "build/config/analysislevelcorrectness_3_none.editorconfig", + "build/config/analysislevelcorrectness_3_recommended.editorconfig", + "build/config/analysislevellibrary_2_9_8_all.editorconfig", + "build/config/analysislevellibrary_2_9_8_default.editorconfig", + "build/config/analysislevellibrary_2_9_8_minimum.editorconfig", + "build/config/analysislevellibrary_2_9_8_none.editorconfig", + "build/config/analysislevellibrary_2_9_8_recommended.editorconfig", + "build/config/analysislevellibrary_3_3_all.editorconfig", + "build/config/analysislevellibrary_3_3_default.editorconfig", + "build/config/analysislevellibrary_3_3_minimum.editorconfig", + "build/config/analysislevellibrary_3_3_none.editorconfig", + "build/config/analysislevellibrary_3_3_recommended.editorconfig", + "build/config/analysislevellibrary_3_all.editorconfig", + "build/config/analysislevellibrary_3_default.editorconfig", + "build/config/analysislevellibrary_3_minimum.editorconfig", + "build/config/analysislevellibrary_3_none.editorconfig", + "build/config/analysislevellibrary_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscompatibility_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysiscorrectness_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdesign_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisdocumentation_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysislocalization_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisperformance_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_recommended.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_all.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_default.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_minimum.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_none.editorconfig", + "build/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_recommended.editorconfig", + "documentation/Analyzer Configuration.md", + "documentation/Microsoft.CodeAnalysis.Analyzers.md", + "documentation/Microsoft.CodeAnalysis.Analyzers.sarif", + "editorconfig/AllRulesDefault/.editorconfig", + "editorconfig/AllRulesDisabled/.editorconfig", + "editorconfig/AllRulesEnabled/.editorconfig", + "editorconfig/CorrectnessRulesDefault/.editorconfig", + "editorconfig/CorrectnessRulesEnabled/.editorconfig", + "editorconfig/DataflowRulesDefault/.editorconfig", + "editorconfig/DataflowRulesEnabled/.editorconfig", + "editorconfig/LibraryRulesDefault/.editorconfig", + "editorconfig/LibraryRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDesignRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDesignRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDocumentationRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisDocumentationRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisLocalizationRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisLocalizationRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisPerformanceRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisPerformanceRulesEnabled/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesDefault/.editorconfig", + "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled/.editorconfig", + "editorconfig/PortedFromFxCopRulesDefault/.editorconfig", + "editorconfig/PortedFromFxCopRulesEnabled/.editorconfig", + "microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", + "microsoft.codeanalysis.analyzers.nuspec", + "rulesets/AllRulesDefault.ruleset", + "rulesets/AllRulesDisabled.ruleset", + "rulesets/AllRulesEnabled.ruleset", + "rulesets/CorrectnessRulesDefault.ruleset", + "rulesets/CorrectnessRulesEnabled.ruleset", + "rulesets/DataflowRulesDefault.ruleset", + "rulesets/DataflowRulesEnabled.ruleset", + "rulesets/LibraryRulesDefault.ruleset", + "rulesets/LibraryRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisCompatibilityRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisCompatibilityRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisCorrectnessRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisCorrectnessRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisDesignRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisDesignRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisDocumentationRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisDocumentationRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisLocalizationRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisLocalizationRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisPerformanceRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisPerformanceRulesEnabled.ruleset", + "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesDefault.ruleset", + "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled.ruleset", + "rulesets/PortedFromFxCopRulesDefault.ruleset", + "rulesets/PortedFromFxCopRulesEnabled.ruleset", + "tools/install.ps1", + "tools/uninstall.ps1" + ] + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "sha512": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "type": "package", + "path": "microsoft.codeanalysis.common/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll", + "microsoft.codeanalysis.common.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.common.nuspec" + ] + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "sha512": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "type": "package", + "path": "microsoft.codeanalysis.csharp/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll", + "microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.csharp.nuspec" + ] + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "sha512": "h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", + "type": "package", + "path": "microsoft.codeanalysis.csharp.workspaces/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll", + "microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.csharp.workspaces.nuspec" + ] + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "sha512": "l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", + "type": "package", + "path": "microsoft.codeanalysis.workspaces.common/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.rtf", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.pdb", + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.xml", + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.dll", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.pdb", + "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.xml", + "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll", + "microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", + "microsoft.codeanalysis.workspaces.common.nuspec" + ] + }, + "Microsoft.CodeCoverage/17.14.1": { + "sha512": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg==", + "type": "package", + "path": "microsoft.codecoverage/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.txt", + "build/netstandard2.0/CodeCoverage/CodeCoverage.config", + "build/netstandard2.0/CodeCoverage/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/Cov_x86.config", + "build/netstandard2.0/CodeCoverage/amd64/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/amd64/Cov_x64.config", + "build/netstandard2.0/CodeCoverage/amd64/covrun64.dll", + "build/netstandard2.0/CodeCoverage/amd64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/arm64/Cov_arm64.config", + "build/netstandard2.0/CodeCoverage/arm64/covrunarm64.dll", + "build/netstandard2.0/CodeCoverage/arm64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/codecoveragemessages.dll", + "build/netstandard2.0/CodeCoverage/coreclr/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "build/netstandard2.0/CodeCoverage/covrun32.dll", + "build/netstandard2.0/CodeCoverage/msdia140.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Interprocess.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.props", + "build/netstandard2.0/Microsoft.CodeCoverage.targets", + "build/netstandard2.0/Microsoft.DiaSymReader.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TraceDataCollector.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/ThirdPartyNotices.txt", + "build/netstandard2.0/alpine/x64/Cov_x64.config", + "build/netstandard2.0/alpine/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/alpine/x64/libInstrumentationEngine.so", + "build/netstandard2.0/arm64/MicrosoftInstrumentationEngine_arm64.dll", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/macos/x64/Cov_x64.config", + "build/netstandard2.0/macos/x64/libCoverageInstrumentationMethod.dylib", + "build/netstandard2.0/macos/x64/libInstrumentationEngine.dylib", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ubuntu/x64/Cov_x64.config", + "build/netstandard2.0/ubuntu/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/ubuntu/x64/libInstrumentationEngine.so", + "build/netstandard2.0/x64/MicrosoftInstrumentationEngine_x64.dll", + "build/netstandard2.0/x86/MicrosoftInstrumentationEngine_x86.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "lib/net462/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "microsoft.codecoverage.17.14.1.nupkg.sha512", + "microsoft.codecoverage.nuspec" + ] + }, + "Microsoft.Data.Sqlite.Core/8.0.6": { + "sha512": "umhZ0ZF2RI81rGFTnYmCxI+Euj4Aqe/6Y4+8CxN9OVJNGDNIqB5laJ3wxQTU8zXCcm2k9F7FL+/6RVoOT4z1Fw==", + "type": "package", + "path": "microsoft.data.sqlite.core/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net6.0/Microsoft.Data.Sqlite.dll", + "lib/net6.0/Microsoft.Data.Sqlite.xml", + "lib/net8.0/Microsoft.Data.Sqlite.dll", + "lib/net8.0/Microsoft.Data.Sqlite.xml", + "lib/netstandard2.0/Microsoft.Data.Sqlite.dll", + "lib/netstandard2.0/Microsoft.Data.Sqlite.xml", + "microsoft.data.sqlite.core.8.0.6.nupkg.sha512", + "microsoft.data.sqlite.core.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore/8.0.18": { + "sha512": "LBc07vlgPxEXmjF0Kgn1S0mip3KLDPVD1OQOFu+4Mfpg1Z8OPMJ82MVCkqek1Ex2WeCzVGbNI9nRXcepHB+48g==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.18": { + "sha512": "aQGpxj0/RKXhSqDFbWENQgOg6WQH3z5Dezu3VBXaTCBHE6hAWQIZmmqdpO1k+lkANsoCSwPJZ4iFRqPPZXBXzg==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.18": { + "sha512": "aYkyWRkb+o9++mtIWn5XSYPVND5N9mFFfvdmBX1s6kCss6XTaZsFXf8QjvaiXAcGblp/HoYzS5lusx0ZqeFxzQ==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Design/8.0.18": { + "sha512": "ONya9HGDtULSfoxld0ir12lxOxX2zp4TRYp6pO3wwXtWSYK3bU1kUSZMIJdeewznYcOfpCJVuSJVch6Y5xtIIQ==", + "type": "package", + "path": "microsoft.entityframeworkcore.design/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "build/net8.0/Microsoft.EntityFrameworkCore.Design.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.xml", + "microsoft.entityframeworkcore.design.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.design.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.18": { + "sha512": "SL067ITd6QfDF9wNsNtGm3fROpnv3SNrOY3Fjb+efEUnKn5NI0sUitrtpUim+t1DtCJIs7qgmyCPdD3zjSt4Xw==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.18.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Sqlite/8.0.6": { + "sha512": "nC4cZN4zReTb22qd9WDU0eDmlXvkyf2g2pqQ3VIHJbkpJcdWSY/PDgwGpbpShsVcAjXbkjGiUcv9aGwa61xQPw==", + "type": "package", + "path": "microsoft.entityframeworkcore.sqlite/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/_._", + "microsoft.entityframeworkcore.sqlite.8.0.6.nupkg.sha512", + "microsoft.entityframeworkcore.sqlite.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Sqlite.Core/8.0.6": { + "sha512": "87xfPtqSouxWWdynYZv/rubd0rOUeiN9+XeoMWQzpZm/5svH1TuvzFODGIY0zKuXS18NiOFyHl9N6///eaEs/Q==", + "type": "package", + "path": "microsoft.entityframeworkcore.sqlite.core/8.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Sqlite.xml", + "microsoft.entityframeworkcore.sqlite.core.8.0.6.nupkg.sha512", + "microsoft.entityframeworkcore.sqlite.core.nuspec" + ] + }, + "Microsoft.Extensions.ApiDescription.Server/8.0.0": { + "sha512": "jDM3a95WerM8g6IcMiBXq1qRS9dqmEUpgnCk2DeMWpPkYtp1ia+CkXabOnK93JmhVlUmv8l9WMPsCSUm+WqkIA==", + "type": "package", + "path": "microsoft.extensions.apidescription.server/8.0.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "build/Microsoft.Extensions.ApiDescription.Server.props", + "build/Microsoft.Extensions.ApiDescription.Server.targets", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets", + "microsoft.extensions.apidescription.server.8.0.0.nupkg.sha512", + "microsoft.extensions.apidescription.server.nuspec", + "tools/Newtonsoft.Json.dll", + "tools/dotnet-getdocument.deps.json", + "tools/dotnet-getdocument.dll", + "tools/dotnet-getdocument.runtimeconfig.json", + "tools/net462-x86/GetDocument.Insider.exe", + "tools/net462-x86/GetDocument.Insider.exe.config", + "tools/net462-x86/System.Buffers.dll", + "tools/net462-x86/System.Diagnostics.DiagnosticSource.dll", + "tools/net462-x86/System.Memory.dll", + "tools/net462-x86/System.Numerics.Vectors.dll", + "tools/net462-x86/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net462/GetDocument.Insider.exe", + "tools/net462/GetDocument.Insider.exe.config", + "tools/net462/System.Buffers.dll", + "tools/net462/System.Diagnostics.DiagnosticSource.dll", + "tools/net462/System.Memory.dll", + "tools/net462/System.Numerics.Vectors.dll", + "tools/net462/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net8.0/GetDocument.Insider.deps.json", + "tools/net8.0/GetDocument.Insider.dll", + "tools/net8.0/GetDocument.Insider.exe", + "tools/net8.0/GetDocument.Insider.runtimeconfig.json", + "tools/net8.0/Microsoft.AspNetCore.Connections.Abstractions.dll", + "tools/net8.0/Microsoft.AspNetCore.Connections.Abstractions.xml", + "tools/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll", + "tools/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.xml", + "tools/net8.0/Microsoft.AspNetCore.Http.Features.dll", + "tools/net8.0/Microsoft.AspNetCore.Http.Features.xml", + "tools/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Features.dll", + "tools/net8.0/Microsoft.Extensions.Features.xml", + "tools/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "tools/net8.0/Microsoft.Extensions.Options.dll", + "tools/net8.0/Microsoft.Extensions.Primitives.dll", + "tools/net8.0/Microsoft.Net.Http.Headers.dll", + "tools/net8.0/Microsoft.Net.Http.Headers.xml", + "tools/net8.0/System.IO.Pipelines.dll", + "tools/netcoreapp2.1/GetDocument.Insider.deps.json", + "tools/netcoreapp2.1/GetDocument.Insider.dll", + "tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json", + "tools/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/8.0.0": { + "sha512": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration/8.0.0": { + "sha512": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", + "type": "package", + "path": "microsoft.extensions.configuration/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.targets", + "lib/net462/Microsoft.Extensions.Configuration.dll", + "lib/net462/Microsoft.Extensions.Configuration.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.xml", + "microsoft.extensions.configuration.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Binder/8.0.2": { + "sha512": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", + "type": "package", + "path": "microsoft.extensions.configuration.binder/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll", + "analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets", + "lib/net462/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net462/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.xml", + "microsoft.extensions.configuration.binder.8.0.2.nupkg.sha512", + "microsoft.extensions.configuration.binder.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.CommandLine/8.0.0": { + "sha512": "NZuZMz3Q8Z780nKX3ifV1fE7lS+6pynDHK71OfU4OZ1ItgvDOhyOC7E6z+JMZrAj63zRpwbdldYFk499t3+1dQ==", + "type": "package", + "path": "microsoft.extensions.configuration.commandline/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.CommandLine.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.CommandLine.targets", + "lib/net462/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net462/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.CommandLine.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.CommandLine.xml", + "microsoft.extensions.configuration.commandline.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.commandline.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": { + "sha512": "plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==", + "type": "package", + "path": "microsoft.extensions.configuration.environmentvariables/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.EnvironmentVariables.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.targets", + "lib/net462/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net462/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.xml", + "microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.environmentvariables.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.FileExtensions/8.0.1": { + "sha512": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", + "type": "package", + "path": "microsoft.extensions.configuration.fileextensions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.FileExtensions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.FileExtensions.targets", + "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.fileextensions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Json/8.0.1": { + "sha512": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", + "type": "package", + "path": "microsoft.extensions.configuration.json/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Json.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Json.targets", + "lib/net462/Microsoft.Extensions.Configuration.Json.dll", + "lib/net462/Microsoft.Extensions.Configuration.Json.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll", + "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.xml", + "microsoft.extensions.configuration.json.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.UserSecrets/8.0.1": { + "sha512": "7tYqdPPpAK+3jO9d5LTuCK2VxrEdf85Ol4trUr6ds4jclBecadWZ/RyPCbNjfbN5iGTfUnD/h65TOQuqQv2c+A==", + "type": "package", + "path": "microsoft.extensions.configuration.usersecrets/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/net462/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/net462/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/net6.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.props", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.targets", + "lib/net462/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net462/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.xml", + "microsoft.extensions.configuration.usersecrets.8.0.1.nupkg.sha512", + "microsoft.extensions.configuration.usersecrets.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "sha512": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==", + "type": "package", + "path": "microsoft.extensions.dependencymodel/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyModel.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyModel.targets", + "lib/net462/Microsoft.Extensions.DependencyModel.dll", + "lib/net462/Microsoft.Extensions.DependencyModel.xml", + "lib/net6.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net6.0/Microsoft.Extensions.DependencyModel.xml", + "lib/net7.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net7.0/Microsoft.Extensions.DependencyModel.xml", + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll", + "lib/net8.0/Microsoft.Extensions.DependencyModel.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.xml", + "microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencymodel.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Diagnostics/8.0.1": { + "sha512": "doVPCUUCY7c6LhBsEfiy3W1bvS7Mi6LkfQMS8nlC22jZWNxBv8VO8bdfeyvpYFst6Kxqk7HBC6lytmEoBssvSQ==", + "type": "package", + "path": "microsoft.extensions.diagnostics/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Diagnostics.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.targets", + "lib/net462/Microsoft.Extensions.Diagnostics.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.xml", + "lib/net6.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net6.0/Microsoft.Extensions.Diagnostics.xml", + "lib/net7.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net7.0/Microsoft.Extensions.Diagnostics.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.xml", + "microsoft.extensions.diagnostics.8.0.1.nupkg.sha512", + "microsoft.extensions.diagnostics.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "sha512": "elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "type": "package", + "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Diagnostics.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", + "microsoft.extensions.diagnostics.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "sha512": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", + "type": "package", + "path": "microsoft.extensions.fileproviders.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Abstractions.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.fileproviders.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileProviders.Physical/8.0.0": { + "sha512": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", + "type": "package", + "path": "microsoft.extensions.fileproviders.physical/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Physical.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Physical.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net6.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net6.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net7.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net7.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.xml", + "microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512", + "microsoft.extensions.fileproviders.physical.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileSystemGlobbing/8.0.0": { + "sha512": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==", + "type": "package", + "path": "microsoft.extensions.filesystemglobbing/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileSystemGlobbing.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileSystemGlobbing.targets", + "lib/net462/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net462/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net6.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net6.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net7.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net7.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512", + "microsoft.extensions.filesystemglobbing.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Hosting/8.0.1": { + "sha512": "bP9EEkHBEfjgYiG8nUaXqMk/ujwJrffOkNPP7onpRMO8R+OUSESSP4xHkCAXgYZ1COP2Q9lXlU5gkMFh20gRuw==", + "type": "package", + "path": "microsoft.extensions.hosting/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Hosting.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Hosting.targets", + "lib/net462/Microsoft.Extensions.Hosting.dll", + "lib/net462/Microsoft.Extensions.Hosting.xml", + "lib/net6.0/Microsoft.Extensions.Hosting.dll", + "lib/net6.0/Microsoft.Extensions.Hosting.xml", + "lib/net7.0/Microsoft.Extensions.Hosting.dll", + "lib/net7.0/Microsoft.Extensions.Hosting.xml", + "lib/net8.0/Microsoft.Extensions.Hosting.dll", + "lib/net8.0/Microsoft.Extensions.Hosting.xml", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.dll", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.xml", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.dll", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.xml", + "microsoft.extensions.hosting.8.0.1.nupkg.sha512", + "microsoft.extensions.hosting.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "sha512": "nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", + "type": "package", + "path": "microsoft.extensions.hosting.abstractions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Hosting.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Hosting.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.xml", + "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", + "microsoft.extensions.hosting.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Configuration/8.0.1": { + "sha512": "QWwTrsgOnJMmn+XUslm8D2H1n3PkP/u/v52FODtyBc/k4W9r3i2vcXXeeX/upnzllJYRRbrzVzT0OclfNJtBJA==", + "type": "package", + "path": "microsoft.extensions.logging.configuration/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Configuration.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Configuration.targets", + "lib/net462/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net462/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Configuration.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Configuration.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Configuration.xml", + "microsoft.extensions.logging.configuration.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.configuration.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Console/8.0.1": { + "sha512": "uzcg/5U2eLyn5LIKlERkdSxw6VPC1yydnOSQiRRWGBGN3kphq3iL4emORzrojScDmxRhv49gp5BI8U3Dz7y4iA==", + "type": "package", + "path": "microsoft.extensions.logging.console/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Console.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Console.targets", + "lib/net462/Microsoft.Extensions.Logging.Console.dll", + "lib/net462/Microsoft.Extensions.Logging.Console.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Console.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Console.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Console.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Console.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Console.xml", + "microsoft.extensions.logging.console.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.console.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Debug/8.0.1": { + "sha512": "B8hqNuYudC2RB+L/DI33uO4rf5by41fZVdcVL2oZj0UyoAZqnwTwYHp1KafoH4nkl1/23piNeybFFASaV2HkFg==", + "type": "package", + "path": "microsoft.extensions.logging.debug/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.Debug.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Debug.targets", + "lib/net462/Microsoft.Extensions.Logging.Debug.dll", + "lib/net462/Microsoft.Extensions.Logging.Debug.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Debug.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.xml", + "microsoft.extensions.logging.debug.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.debug.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.EventLog/8.0.1": { + "sha512": "ZD1m4GXoxcZeDJIq8qePKj+QAWeQNO/OG8skvrOG8RQfxLp9MAKRoliTc27xanoNUzeqvX5HhS/I7c0BvwAYUg==", + "type": "package", + "path": "microsoft.extensions.logging.eventlog/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.EventLog.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.EventLog.targets", + "lib/net462/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net462/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net6.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net6.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net7.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net7.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/net8.0/Microsoft.Extensions.Logging.EventLog.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.xml", + "microsoft.extensions.logging.eventlog.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.eventlog.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.EventSource/8.0.1": { + "sha512": "YMXMAla6B6sEf/SnfZYTty633Ool3AH7KOw2LOaaEqwSo2piK4f7HMtzyc3CNiipDnq1fsUSuG5Oc7ZzpVy8WQ==", + "type": "package", + "path": "microsoft.extensions.logging.eventsource/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.EventSource.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.EventSource.targets", + "lib/net462/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net462/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net6.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net6.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net7.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net7.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/net8.0/Microsoft.Extensions.Logging.EventSource.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.xml", + "microsoft.extensions.logging.eventsource.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.eventsource.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/8.0.2": { + "sha512": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "type": "package", + "path": "microsoft.extensions.options/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net6.0/Microsoft.Extensions.Options.dll", + "lib/net6.0/Microsoft.Extensions.Options.xml", + "lib/net7.0/Microsoft.Extensions.Options.dll", + "lib/net7.0/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.8.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": { + "sha512": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", + "type": "package", + "path": "microsoft.extensions.options.configurationextensions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Options.ConfigurationExtensions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.ConfigurationExtensions.targets", + "lib/net462/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net462/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net6.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net6.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net7.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net7.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml", + "microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512", + "microsoft.extensions.options.configurationextensions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "sha512": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "type": "package", + "path": "microsoft.extensions.primitives/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net6.0/Microsoft.Extensions.Primitives.dll", + "lib/net6.0/Microsoft.Extensions.Primitives.xml", + "lib/net7.0/Microsoft.Extensions.Primitives.dll", + "lib/net7.0/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.NET.Test.Sdk/17.14.1": { + "sha512": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==", + "type": "package", + "path": "microsoft.net.test.sdk/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "build/net462/Microsoft.NET.Test.Sdk.props", + "build/net462/Microsoft.NET.Test.Sdk.targets", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.cs", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.fs", + "build/net8.0/Microsoft.NET.Test.Sdk.Program.vb", + "build/net8.0/Microsoft.NET.Test.Sdk.props", + "build/net8.0/Microsoft.NET.Test.Sdk.targets", + "build/netcoreapp2.0/Microsoft.NET.Test.Sdk.props", + "build/netcoreapp2.0/Microsoft.NET.Test.Sdk.targets", + "build/netstandard2.0/Microsoft.NET.Test.Sdk.props", + "build/netstandard2.0/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/net462/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/net8.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netcoreapp2.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netcoreapp2.0/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/netstandard2.0/Microsoft.NET.Test.Sdk.props", + "buildMultiTargeting/netstandard2.0/Microsoft.NET.Test.Sdk.targets", + "lib/native/_._", + "lib/net462/_._", + "lib/net8.0/_._", + "microsoft.net.test.sdk.17.14.1.nupkg.sha512", + "microsoft.net.test.sdk.nuspec" + ] + }, + "Microsoft.OpenApi/1.6.23": { + "sha512": "tZ1I0KXnn98CWuV8cpI247A17jaY+ILS9vvF7yhI0uPPEqF4P1d7BWL5Uwtel10w9NucllHB3nTkfYTAcHAh8g==", + "type": "package", + "path": "microsoft.openapi/1.6.23", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/netstandard2.0/Microsoft.OpenApi.dll", + "lib/netstandard2.0/Microsoft.OpenApi.pdb", + "lib/netstandard2.0/Microsoft.OpenApi.xml", + "microsoft.openapi.1.6.23.nupkg.sha512", + "microsoft.openapi.nuspec" + ] + }, + "Microsoft.TestPlatform.ObjectModel/17.14.1": { + "sha512": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ==", + "type": "package", + "path": "microsoft.testplatform.objectmodel/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "lib/net462/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net462/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net462/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net462/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "microsoft.testplatform.objectmodel.17.14.1.nupkg.sha512", + "microsoft.testplatform.objectmodel.nuspec" + ] + }, + "Microsoft.TestPlatform.TestHost/17.14.1": { + "sha512": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==", + "type": "package", + "path": "microsoft.testplatform.testhost/17.14.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.txt", + "build/net8.0/Microsoft.TestPlatform.TestHost.props", + "build/net8.0/Microsoft.TestPlatform.TestHost.targets", + "build/net8.0/x64/testhost.dll", + "build/net8.0/x64/testhost.exe", + "build/net8.0/x86/testhost.x86.dll", + "build/net8.0/x86/testhost.x86.exe", + "lib/net462/_._", + "lib/net8.0/Microsoft.TestPlatform.CommunicationUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net8.0/Microsoft.TestPlatform.CrossPlatEngine.dll", + "lib/net8.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net8.0/Microsoft.TestPlatform.Utilities.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.Common.dll", + "lib/net8.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/testhost.deps.json", + "lib/net8.0/testhost.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/x64/msdia140.dll", + "lib/net8.0/x86/msdia140.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "microsoft.testplatform.testhost.17.14.1.nupkg.sha512", + "microsoft.testplatform.testhost.nuspec" + ] + }, + "Mono.TextTemplating/2.2.1": { + "sha512": "KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==", + "type": "package", + "path": "mono.texttemplating/2.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net472/Mono.TextTemplating.dll", + "lib/netstandard2.0/Mono.TextTemplating.dll", + "mono.texttemplating.2.2.1.nupkg.sha512", + "mono.texttemplating.nuspec" + ] + }, + "Moq/4.20.72": { + "sha512": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "type": "package", + "path": "moq/4.20.72", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "lib/net462/Moq.dll", + "lib/net6.0/Moq.dll", + "lib/netstandard2.0/Moq.dll", + "lib/netstandard2.1/Moq.dll", + "moq.4.20.72.nupkg.sha512", + "moq.nuspec", + "readme.md" + ] + }, + "MySqlConnector/2.3.5": { + "sha512": "AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", + "type": "package", + "path": "mysqlconnector/2.3.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/MySqlConnector.dll", + "lib/net462/MySqlConnector.xml", + "lib/net471/MySqlConnector.dll", + "lib/net471/MySqlConnector.xml", + "lib/net48/MySqlConnector.dll", + "lib/net48/MySqlConnector.xml", + "lib/net6.0/MySqlConnector.dll", + "lib/net6.0/MySqlConnector.xml", + "lib/net7.0/MySqlConnector.dll", + "lib/net7.0/MySqlConnector.xml", + "lib/net8.0/MySqlConnector.dll", + "lib/net8.0/MySqlConnector.xml", + "lib/netstandard2.0/MySqlConnector.dll", + "lib/netstandard2.0/MySqlConnector.xml", + "lib/netstandard2.1/MySqlConnector.dll", + "lib/netstandard2.1/MySqlConnector.xml", + "logo.png", + "mysqlconnector.2.3.5.nupkg.sha512", + "mysqlconnector.nuspec" + ] + }, + "Newtonsoft.Json/13.0.3": { + "sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "type": "package", + "path": "newtonsoft.json/13.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "README.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/net6.0/Newtonsoft.Json.dll", + "lib/net6.0/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.3.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + }, + "Pfim/0.11.3": { + "sha512": "UNVStuGHVIGyBlQaLX8VY6KpzZm/pG2zpV8ewNSXNFKFVPn8dLQKJITfps3lwUMzwTL+Do7RrMUvgQ1ZsPTu4w==", + "type": "package", + "path": "pfim/0.11.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Pfim.dll", + "pfim.0.11.3.nupkg.sha512", + "pfim.nuspec" + ] + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "sha512": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", + "type": "package", + "path": "pipelines.sockets.unofficial/2.2.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Pipelines.Sockets.Unofficial.dll", + "lib/net461/Pipelines.Sockets.Unofficial.xml", + "lib/net472/Pipelines.Sockets.Unofficial.dll", + "lib/net472/Pipelines.Sockets.Unofficial.xml", + "lib/net5.0/Pipelines.Sockets.Unofficial.dll", + "lib/net5.0/Pipelines.Sockets.Unofficial.xml", + "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.dll", + "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.xml", + "lib/netstandard2.0/Pipelines.Sockets.Unofficial.dll", + "lib/netstandard2.0/Pipelines.Sockets.Unofficial.xml", + "lib/netstandard2.1/Pipelines.Sockets.Unofficial.dll", + "lib/netstandard2.1/Pipelines.Sockets.Unofficial.xml", + "pipelines.sockets.unofficial.2.2.8.nupkg.sha512", + "pipelines.sockets.unofficial.nuspec" + ] + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.2": { + "sha512": "XjnlcxVBLnEMbyEc5cZzgZeDyLvAniACZQ04W1slWN0f4rmfNzl98gEMvHnFH0fMDF06z9MmgGi/Sr7hJ+BVnw==", + "type": "package", + "path": "pomelo.entityframeworkcore.mysql/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon.png", + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll", + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.xml", + "pomelo.entityframeworkcore.mysql.8.0.2.nupkg.sha512", + "pomelo.entityframeworkcore.mysql.nuspec" + ] + }, + "Redis.OM/1.0.1": { + "sha512": "0kreYGe1w3dy6Ymv+wbdCfcpSu8p9uGGmz3Z+Kp4XbTrF1QrcJFgq9mWMQ7Js538Mb7AR+IaKIcpYX0C0asHgg==", + "type": "package", + "path": "redis.om/1.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon-square.png", + "lib/netstandard2.0/Redis.OM.dll", + "lib/netstandard2.0/Redis.OM.xml", + "redis.om.1.0.1.nupkg.sha512", + "redis.om.nuspec" + ] + }, + "SharpZipLib/1.4.2": { + "sha512": "yjj+3zgz8zgXpiiC3ZdF/iyTBbz2fFvMxZFEBPUcwZjIvXOf37Ylm+K58hqMfIBt5JgU/Z2uoUS67JmTLe973A==", + "type": "package", + "path": "sharpziplib/1.4.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "images/sharpziplib-nuget-256x256.png", + "lib/net6.0/ICSharpCode.SharpZipLib.dll", + "lib/net6.0/ICSharpCode.SharpZipLib.pdb", + "lib/net6.0/ICSharpCode.SharpZipLib.xml", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.dll", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.pdb", + "lib/netstandard2.0/ICSharpCode.SharpZipLib.xml", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.dll", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.pdb", + "lib/netstandard2.1/ICSharpCode.SharpZipLib.xml", + "sharpziplib.1.4.2.nupkg.sha512", + "sharpziplib.nuspec" + ] + }, + "SixLabors.ImageSharp/3.1.10": { + "sha512": "R1HEPcqx3v+kvlOTPouP0g/Nzzud9pHtjlgGbFax3Ivaz8kkaGfS2EPfyDGpmfoTUQ3nQ5wxdhYyYa9fwYA9cw==", + "type": "package", + "path": "sixlabors.imagesharp/3.1.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE", + "build/SixLabors.ImageSharp.props", + "lib/net6.0/SixLabors.ImageSharp.dll", + "lib/net6.0/SixLabors.ImageSharp.xml", + "sixlabors.imagesharp.128.png", + "sixlabors.imagesharp.3.1.10.nupkg.sha512", + "sixlabors.imagesharp.nuspec" + ] + }, + "SQLitePCLRaw.bundle_e_sqlite3/2.1.6": { + "sha512": "BmAf6XWt4TqtowmiWe4/5rRot6GerAeklmOPfviOvwLoF5WwgxcJHAxZtySuyW9r9w+HLILnm8VfJFLCUJYW8A==", + "type": "package", + "path": "sqlitepclraw.bundle_e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/monoandroid90/SQLitePCLRaw.batteries_v2.dll", + "lib/net461/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-android31.0/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-android31.0/SQLitePCLRaw.batteries_v2.xml", + "lib/net6.0-ios14.0/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-ios14.2/SQLitePCLRaw.batteries_v2.dll", + "lib/net6.0-tvos10.0/SQLitePCLRaw.batteries_v2.dll", + "lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll", + "lib/xamarinios10/SQLitePCLRaw.batteries_v2.dll", + "sqlitepclraw.bundle_e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.bundle_e_sqlite3.nuspec" + ] + }, + "SQLitePCLRaw.core/2.1.6": { + "sha512": "wO6v9GeMx9CUngAet8hbO7xdm+M42p1XeJq47ogyRoYSvNSp0NGLI+MgC0bhrMk9C17MTVFlLiN6ylyExLCc5w==", + "type": "package", + "path": "sqlitepclraw.core/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/SQLitePCLRaw.core.dll", + "sqlitepclraw.core.2.1.6.nupkg.sha512", + "sqlitepclraw.core.nuspec" + ] + }, + "SQLitePCLRaw.lib.e_sqlite3/2.1.6": { + "sha512": "2ObJJLkIUIxRpOUlZNGuD4rICpBnrBR5anjyfUFQep4hMOIeqW+XGQYzrNmHSVz5xSWZ3klSbh7sFR6UyDj68Q==", + "type": "package", + "path": "sqlitepclraw.lib.e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "buildTransitive/net461/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net6.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net7.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "buildTransitive/net8.0/SQLitePCLRaw.lib.e_sqlite3.targets", + "lib/net461/_._", + "lib/netstandard2.0/_._", + "runtimes/browser-wasm/nativeassets/net6.0/e_sqlite3.a", + "runtimes/browser-wasm/nativeassets/net7.0/e_sqlite3.a", + "runtimes/browser-wasm/nativeassets/net8.0/e_sqlite3.a", + "runtimes/linux-arm/native/libe_sqlite3.so", + "runtimes/linux-arm64/native/libe_sqlite3.so", + "runtimes/linux-armel/native/libe_sqlite3.so", + "runtimes/linux-mips64/native/libe_sqlite3.so", + "runtimes/linux-musl-arm/native/libe_sqlite3.so", + "runtimes/linux-musl-arm64/native/libe_sqlite3.so", + "runtimes/linux-musl-x64/native/libe_sqlite3.so", + "runtimes/linux-ppc64le/native/libe_sqlite3.so", + "runtimes/linux-s390x/native/libe_sqlite3.so", + "runtimes/linux-x64/native/libe_sqlite3.so", + "runtimes/linux-x86/native/libe_sqlite3.so", + "runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib", + "runtimes/maccatalyst-x64/native/libe_sqlite3.dylib", + "runtimes/osx-arm64/native/libe_sqlite3.dylib", + "runtimes/osx-x64/native/libe_sqlite3.dylib", + "runtimes/win-arm/native/e_sqlite3.dll", + "runtimes/win-arm64/native/e_sqlite3.dll", + "runtimes/win-x64/native/e_sqlite3.dll", + "runtimes/win-x86/native/e_sqlite3.dll", + "runtimes/win10-arm/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-arm64/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-x64/nativeassets/uap10.0/e_sqlite3.dll", + "runtimes/win10-x86/nativeassets/uap10.0/e_sqlite3.dll", + "sqlitepclraw.lib.e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.lib.e_sqlite3.nuspec" + ] + }, + "SQLitePCLRaw.provider.e_sqlite3/2.1.6": { + "sha512": "PQ2Oq3yepLY4P7ll145P3xtx2bX8xF4PzaKPRpw9jZlKvfe4LE/saAV82inND9usn1XRpmxXk7Lal3MTI+6CNg==", + "type": "package", + "path": "sqlitepclraw.provider.e_sqlite3/2.1.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net6.0-windows7.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "lib/netstandard2.0/SQLitePCLRaw.provider.e_sqlite3.dll", + "sqlitepclraw.provider.e_sqlite3.2.1.6.nupkg.sha512", + "sqlitepclraw.provider.e_sqlite3.nuspec" + ] + }, + "StackExchange.Redis/2.7.17": { + "sha512": "PduekHww3CrCBr1ebIPX4k4zdah9wjJ4AQZXfp+JfGJQfwf8s1SHSY7kthDi9MP0ULcYrNw4xnbRXFMbCryIig==", + "type": "package", + "path": "stackexchange.redis/2.7.17", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/StackExchange.Redis.dll", + "lib/net461/StackExchange.Redis.xml", + "lib/net472/StackExchange.Redis.dll", + "lib/net472/StackExchange.Redis.xml", + "lib/net6.0/StackExchange.Redis.dll", + "lib/net6.0/StackExchange.Redis.xml", + "lib/netcoreapp3.1/StackExchange.Redis.dll", + "lib/netcoreapp3.1/StackExchange.Redis.xml", + "lib/netstandard2.0/StackExchange.Redis.dll", + "lib/netstandard2.0/StackExchange.Redis.xml", + "stackexchange.redis.2.7.17.nupkg.sha512", + "stackexchange.redis.nuspec" + ] + }, + "Swashbuckle.AspNetCore/9.0.3": { + "sha512": "Akk4oFgy0ST8Q8pZTfPbrt045tWNyMMiKhlbYjG3qnjQZLz645IL5vhQm7NLicc2sAAQ+vftArIlsYWFevmb2g==", + "type": "package", + "path": "swashbuckle.aspnetcore/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/Swashbuckle.AspNetCore.props", + "buildMultiTargeting/Swashbuckle.AspNetCore.props", + "docs/package-readme.md", + "swashbuckle.aspnetcore.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.nuspec" + ] + }, + "Swashbuckle.AspNetCore.Swagger/9.0.3": { + "sha512": "CGpkZDWj1g/yH/0wYkxUtBhiFo5TY/Esq2fS0vlBvLOs1UL2Jzef9tdtYmTdd3zBPtnMyXQcsXjMt9yCxz4VaA==", + "type": "package", + "path": "swashbuckle.aspnetcore.swagger/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.Swagger.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swagger.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swagger.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/9.0.3": { + "sha512": "STqjhw1TZiEGmIRgE6jcJUOcgU/Fjquc6dP4GqbuwBzqWZAWr/9T7FZOGWYEwKnmkMplzlUNepGHwnUrfTP0fw==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggergen/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swaggergen.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swaggergen.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerUI/9.0.3": { + "sha512": "DgJKJASz5OAygeKv2+N0FCZVhQylESqLXrtrRAqIT0vKpX7t5ImJ1FL6+6OqxKiamGkL0jchRXR8OgpMSsMh8w==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggerui/9.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swaggerui.9.0.3.nupkg.sha512", + "swashbuckle.aspnetcore.swaggerui.nuspec" + ] + }, + "System.CodeDom/4.4.0": { + "sha512": "2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==", + "type": "package", + "path": "system.codedom/4.4.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.CodeDom.dll", + "lib/netstandard2.0/System.CodeDom.dll", + "ref/net461/System.CodeDom.dll", + "ref/net461/System.CodeDom.xml", + "ref/netstandard2.0/System.CodeDom.dll", + "ref/netstandard2.0/System.CodeDom.xml", + "system.codedom.4.4.0.nupkg.sha512", + "system.codedom.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Collections.Immutable/8.0.0": { + "sha512": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "type": "package", + "path": "system.collections.immutable/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Collections.Immutable.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets", + "lib/net462/System.Collections.Immutable.dll", + "lib/net462/System.Collections.Immutable.xml", + "lib/net6.0/System.Collections.Immutable.dll", + "lib/net6.0/System.Collections.Immutable.xml", + "lib/net7.0/System.Collections.Immutable.dll", + "lib/net7.0/System.Collections.Immutable.xml", + "lib/net8.0/System.Collections.Immutable.dll", + "lib/net8.0/System.Collections.Immutable.xml", + "lib/netstandard2.0/System.Collections.Immutable.dll", + "lib/netstandard2.0/System.Collections.Immutable.xml", + "system.collections.immutable.8.0.0.nupkg.sha512", + "system.collections.immutable.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition/6.0.0": { + "sha512": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", + "type": "package", + "path": "system.composition/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.targets", + "buildTransitive/netcoreapp3.1/_._", + "system.composition.6.0.0.nupkg.sha512", + "system.composition.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.AttributedModel/6.0.0": { + "sha512": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==", + "type": "package", + "path": "system.composition.attributedmodel/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.AttributedModel.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.AttributedModel.dll", + "lib/net461/System.Composition.AttributedModel.xml", + "lib/net6.0/System.Composition.AttributedModel.dll", + "lib/net6.0/System.Composition.AttributedModel.xml", + "lib/netstandard2.0/System.Composition.AttributedModel.dll", + "lib/netstandard2.0/System.Composition.AttributedModel.xml", + "system.composition.attributedmodel.6.0.0.nupkg.sha512", + "system.composition.attributedmodel.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Convention/6.0.0": { + "sha512": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", + "type": "package", + "path": "system.composition.convention/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Convention.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Convention.dll", + "lib/net461/System.Composition.Convention.xml", + "lib/net6.0/System.Composition.Convention.dll", + "lib/net6.0/System.Composition.Convention.xml", + "lib/netstandard2.0/System.Composition.Convention.dll", + "lib/netstandard2.0/System.Composition.Convention.xml", + "system.composition.convention.6.0.0.nupkg.sha512", + "system.composition.convention.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Hosting/6.0.0": { + "sha512": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", + "type": "package", + "path": "system.composition.hosting/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Hosting.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Hosting.dll", + "lib/net461/System.Composition.Hosting.xml", + "lib/net6.0/System.Composition.Hosting.dll", + "lib/net6.0/System.Composition.Hosting.xml", + "lib/netstandard2.0/System.Composition.Hosting.dll", + "lib/netstandard2.0/System.Composition.Hosting.xml", + "system.composition.hosting.6.0.0.nupkg.sha512", + "system.composition.hosting.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.Runtime/6.0.0": { + "sha512": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==", + "type": "package", + "path": "system.composition.runtime/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.Runtime.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.Runtime.dll", + "lib/net461/System.Composition.Runtime.xml", + "lib/net6.0/System.Composition.Runtime.dll", + "lib/net6.0/System.Composition.Runtime.xml", + "lib/netstandard2.0/System.Composition.Runtime.dll", + "lib/netstandard2.0/System.Composition.Runtime.xml", + "system.composition.runtime.6.0.0.nupkg.sha512", + "system.composition.runtime.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Composition.TypedParts/6.0.0": { + "sha512": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", + "type": "package", + "path": "system.composition.typedparts/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Composition.TypedParts.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Composition.TypedParts.dll", + "lib/net461/System.Composition.TypedParts.xml", + "lib/net6.0/System.Composition.TypedParts.dll", + "lib/net6.0/System.Composition.TypedParts.xml", + "lib/netstandard2.0/System.Composition.TypedParts.dll", + "lib/netstandard2.0/System.Composition.TypedParts.xml", + "system.composition.typedparts.6.0.0.nupkg.sha512", + "system.composition.typedparts.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.EventLog/8.0.1": { + "sha512": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg==", + "type": "package", + "path": "system.diagnostics.eventlog/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Diagnostics.EventLog.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Diagnostics.EventLog.targets", + "lib/net462/System.Diagnostics.EventLog.dll", + "lib/net462/System.Diagnostics.EventLog.xml", + "lib/net6.0/System.Diagnostics.EventLog.dll", + "lib/net6.0/System.Diagnostics.EventLog.xml", + "lib/net7.0/System.Diagnostics.EventLog.dll", + "lib/net7.0/System.Diagnostics.EventLog.xml", + "lib/net8.0/System.Diagnostics.EventLog.dll", + "lib/net8.0/System.Diagnostics.EventLog.xml", + "lib/netstandard2.0/System.Diagnostics.EventLog.dll", + "lib/netstandard2.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net7.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.xml", + "system.diagnostics.eventlog.8.0.1.nupkg.sha512", + "system.diagnostics.eventlog.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Interactive.Async/6.0.1": { + "sha512": "f8H1O4ZWDQo344y5NQU76G4SIjWMuKDVXL9OM1dg6K5YZnLkc8iCdQDybBvMcC6ufk61jzXGVAX6UCDu0qDSjA==", + "type": "package", + "path": "system.interactive.async/6.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Logo.png", + "lib/net48/System.Interactive.Async.dll", + "lib/net48/System.Interactive.Async.xml", + "lib/net6.0/System.Interactive.Async.dll", + "lib/net6.0/System.Interactive.Async.xml", + "lib/netstandard2.0/System.Interactive.Async.dll", + "lib/netstandard2.0/System.Interactive.Async.xml", + "lib/netstandard2.1/System.Interactive.Async.dll", + "lib/netstandard2.1/System.Interactive.Async.xml", + "system.interactive.async.6.0.1.nupkg.sha512", + "system.interactive.async.nuspec" + ] + }, + "System.IO.Pipelines/8.0.0": { + "sha512": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "type": "package", + "path": "system.io.pipelines/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Pipelines.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", + "lib/net462/System.IO.Pipelines.dll", + "lib/net462/System.IO.Pipelines.xml", + "lib/net6.0/System.IO.Pipelines.dll", + "lib/net6.0/System.IO.Pipelines.xml", + "lib/net7.0/System.IO.Pipelines.dll", + "lib/net7.0/System.IO.Pipelines.xml", + "lib/net8.0/System.IO.Pipelines.dll", + "lib/net8.0/System.IO.Pipelines.xml", + "lib/netstandard2.0/System.IO.Pipelines.dll", + "lib/netstandard2.0/System.IO.Pipelines.xml", + "system.io.pipelines.8.0.0.nupkg.sha512", + "system.io.pipelines.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Linq.Async/6.0.1": { + "sha512": "0YhHcaroWpQ9UCot3Pizah7ryAzQhNvobLMSxeDIGmnXfkQn8u5owvpOH0K6EVB+z9L7u6Cc4W17Br/+jyttEQ==", + "type": "package", + "path": "system.linq.async/6.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Logo.png", + "lib/net48/System.Linq.Async.dll", + "lib/net48/System.Linq.Async.xml", + "lib/net6.0/System.Linq.Async.dll", + "lib/net6.0/System.Linq.Async.xml", + "lib/netstandard2.0/System.Linq.Async.dll", + "lib/netstandard2.0/System.Linq.Async.xml", + "lib/netstandard2.1/System.Linq.Async.dll", + "lib/netstandard2.1/System.Linq.Async.xml", + "ref/net48/System.Linq.Async.dll", + "ref/net48/System.Linq.Async.xml", + "ref/net6.0/System.Linq.Async.dll", + "ref/net6.0/System.Linq.Async.xml", + "ref/netstandard2.0/System.Linq.Async.dll", + "ref/netstandard2.0/System.Linq.Async.xml", + "ref/netstandard2.1/System.Linq.Async.dll", + "ref/netstandard2.1/System.Linq.Async.xml", + "system.linq.async.6.0.1.nupkg.sha512", + "system.linq.async.nuspec" + ] + }, + "System.Memory/4.5.3": { + "sha512": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "type": "package", + "path": "system.memory/4.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netcoreapp2.1/_._", + "lib/netstandard1.1/System.Memory.dll", + "lib/netstandard1.1/System.Memory.xml", + "lib/netstandard2.0/System.Memory.dll", + "lib/netstandard2.0/System.Memory.xml", + "ref/netcoreapp2.1/_._", + "system.memory.4.5.3.nupkg.sha512", + "system.memory.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Reflection.Metadata/8.0.0": { + "sha512": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "type": "package", + "path": "system.reflection.metadata/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Reflection.Metadata.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Reflection.Metadata.targets", + "lib/net462/System.Reflection.Metadata.dll", + "lib/net462/System.Reflection.Metadata.xml", + "lib/net6.0/System.Reflection.Metadata.dll", + "lib/net6.0/System.Reflection.Metadata.xml", + "lib/net7.0/System.Reflection.Metadata.dll", + "lib/net7.0/System.Reflection.Metadata.xml", + "lib/net8.0/System.Reflection.Metadata.dll", + "lib/net8.0/System.Reflection.Metadata.xml", + "lib/netstandard2.0/System.Reflection.Metadata.dll", + "lib/netstandard2.0/System.Reflection.Metadata.xml", + "system.reflection.metadata.8.0.0.nupkg.sha512", + "system.reflection.metadata.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "sha512": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "type": "package", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net461/System.Runtime.CompilerServices.Unsafe.xml", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml", + "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "system.runtime.compilerservices.unsafe.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Encoding.CodePages/6.0.0": { + "sha512": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "type": "package", + "path": "system.text.encoding.codepages/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.Text.Encoding.CodePages.dll", + "lib/net461/System.Text.Encoding.CodePages.xml", + "lib/net6.0/System.Text.Encoding.CodePages.dll", + "lib/net6.0/System.Text.Encoding.CodePages.xml", + "lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll", + "lib/netcoreapp3.1/System.Text.Encoding.CodePages.xml", + "lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netcoreapp3.1/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "system.text.encoding.codepages.6.0.0.nupkg.sha512", + "system.text.encoding.codepages.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Json/8.0.5": { + "sha512": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", + "type": "package", + "path": "system.text.json/8.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "buildTransitive/net461/System.Text.Json.targets", + "buildTransitive/net462/System.Text.Json.targets", + "buildTransitive/net6.0/System.Text.Json.targets", + "buildTransitive/netcoreapp2.0/System.Text.Json.targets", + "buildTransitive/netstandard2.0/System.Text.Json.targets", + "lib/net462/System.Text.Json.dll", + "lib/net462/System.Text.Json.xml", + "lib/net6.0/System.Text.Json.dll", + "lib/net6.0/System.Text.Json.xml", + "lib/net7.0/System.Text.Json.dll", + "lib/net7.0/System.Text.Json.xml", + "lib/net8.0/System.Text.Json.dll", + "lib/net8.0/System.Text.Json.xml", + "lib/netstandard2.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.xml", + "system.text.json.8.0.5.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Threading.Channels/6.0.0": { + "sha512": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "type": "package", + "path": "system.threading.channels/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Threading.Channels.dll", + "lib/net461/System.Threading.Channels.xml", + "lib/net6.0/System.Threading.Channels.dll", + "lib/net6.0/System.Threading.Channels.xml", + "lib/netcoreapp3.1/System.Threading.Channels.dll", + "lib/netcoreapp3.1/System.Threading.Channels.xml", + "lib/netstandard2.0/System.Threading.Channels.dll", + "lib/netstandard2.0/System.Threading.Channels.xml", + "lib/netstandard2.1/System.Threading.Channels.dll", + "lib/netstandard2.1/System.Threading.Channels.xml", + "system.threading.channels.6.0.0.nupkg.sha512", + "system.threading.channels.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.ValueTuple/4.5.0": { + "sha512": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==", + "type": "package", + "path": "system.valuetuple/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.ValueTuple.dll", + "lib/net461/System.ValueTuple.xml", + "lib/net47/System.ValueTuple.dll", + "lib/net47/System.ValueTuple.xml", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.0/System.ValueTuple.dll", + "lib/netstandard1.0/System.ValueTuple.xml", + "lib/netstandard2.0/_._", + "lib/portable-net40+sl4+win8+wp8/System.ValueTuple.dll", + "lib/portable-net40+sl4+win8+wp8/System.ValueTuple.xml", + "lib/uap10.0.16299/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net461/System.ValueTuple.dll", + "ref/net47/System.ValueTuple.dll", + "ref/netcoreapp2.0/_._", + "ref/netstandard2.0/_._", + "ref/portable-net40+sl4+win8+wp8/System.ValueTuple.dll", + "ref/uap10.0.16299/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.valuetuple.4.5.0.nupkg.sha512", + "system.valuetuple.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Ulid/1.2.6": { + "sha512": "TDfJ/q4nJJ7LTxHErWYXRFs7laAUJhnT7Do+fpxxNg+uQOC1GKWLFuyJMKyMyIxQhFjWNC5XcFbr7R6HP9PFgw==", + "type": "package", + "path": "ulid/1.2.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "lib/net5.0/Ulid.dll", + "lib/net5.0/Ulid.xml", + "lib/netcoreapp2.1/Ulid.dll", + "lib/netcoreapp2.1/Ulid.xml", + "lib/netcoreapp3.1/Ulid.dll", + "lib/netcoreapp3.1/Ulid.xml", + "lib/netstandard2.0/Ulid.dll", + "lib/netstandard2.0/Ulid.xml", + "ulid.1.2.6.nupkg.sha512", + "ulid.nuspec" + ] + }, + "xunit/2.9.3": { + "sha512": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "type": "package", + "path": "xunit/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "xunit.2.9.3.nupkg.sha512", + "xunit.nuspec" + ] + }, + "xunit.abstractions/2.0.3": { + "sha512": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", + "type": "package", + "path": "xunit.abstractions/2.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/xunit.abstractions.dll", + "lib/net35/xunit.abstractions.xml", + "lib/netstandard1.0/xunit.abstractions.dll", + "lib/netstandard1.0/xunit.abstractions.xml", + "lib/netstandard2.0/xunit.abstractions.dll", + "lib/netstandard2.0/xunit.abstractions.xml", + "xunit.abstractions.2.0.3.nupkg.sha512", + "xunit.abstractions.nuspec" + ] + }, + "xunit.analyzers/1.18.0": { + "sha512": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==", + "type": "package", + "path": "xunit.analyzers/1.18.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "analyzers/dotnet/cs/xunit.analyzers.dll", + "analyzers/dotnet/cs/xunit.analyzers.fixes.dll", + "tools/install.ps1", + "tools/uninstall.ps1", + "xunit.analyzers.1.18.0.nupkg.sha512", + "xunit.analyzers.nuspec" + ] + }, + "xunit.assert/2.9.3": { + "sha512": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==", + "type": "package", + "path": "xunit.assert/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net6.0/xunit.assert.dll", + "lib/net6.0/xunit.assert.xml", + "lib/netstandard1.1/xunit.assert.dll", + "lib/netstandard1.1/xunit.assert.xml", + "xunit.assert.2.9.3.nupkg.sha512", + "xunit.assert.nuspec" + ] + }, + "xunit.core/2.9.3": { + "sha512": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "type": "package", + "path": "xunit.core/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/xunit.core.props", + "build/xunit.core.targets", + "buildMultiTargeting/xunit.core.props", + "buildMultiTargeting/xunit.core.targets", + "xunit.core.2.9.3.nupkg.sha512", + "xunit.core.nuspec" + ] + }, + "xunit.extensibility.core/2.9.3": { + "sha512": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "type": "package", + "path": "xunit.extensibility.core/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.core.dll", + "lib/net452/xunit.core.dll.tdnet", + "lib/net452/xunit.core.xml", + "lib/net452/xunit.runner.tdnet.dll", + "lib/net452/xunit.runner.utility.net452.dll", + "lib/netstandard1.1/xunit.core.dll", + "lib/netstandard1.1/xunit.core.xml", + "xunit.extensibility.core.2.9.3.nupkg.sha512", + "xunit.extensibility.core.nuspec" + ] + }, + "xunit.extensibility.execution/2.9.3": { + "sha512": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "type": "package", + "path": "xunit.extensibility.execution/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.execution.desktop.dll", + "lib/net452/xunit.execution.desktop.xml", + "lib/netstandard1.1/xunit.execution.dotnet.dll", + "lib/netstandard1.1/xunit.execution.dotnet.xml", + "xunit.extensibility.execution.2.9.3.nupkg.sha512", + "xunit.extensibility.execution.nuspec" + ] + }, + "xunit.runner.visualstudio/3.1.1": { + "sha512": "gNu2zhnuwjq5vQlU4S7yK/lfaKZDLmtcu+vTjnhfTlMAUYn+Hmgu8IIX0UCwWepYkk+Szx03DHx1bDnc9Fd+9w==", + "type": "package", + "path": "xunit.runner.visualstudio/3.1.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/net472/xunit.abstractions.dll", + "build/net472/xunit.runner.visualstudio.props", + "build/net472/xunit.runner.visualstudio.testadapter.dll", + "build/net8.0/xunit.abstractions.dll", + "build/net8.0/xunit.runner.visualstudio.props", + "build/net8.0/xunit.runner.visualstudio.testadapter.dll", + "lib/net472/_._", + "lib/net8.0/_._", + "xunit.runner.visualstudio.3.1.1.nupkg.sha512", + "xunit.runner.visualstudio.nuspec" + ] + }, + "YamlDotNet/16.3.0": { + "sha512": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==", + "type": "package", + "path": "yamldotnet/16.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "images/yamldotnet.png", + "lib/net47/YamlDotNet.dll", + "lib/net47/YamlDotNet.xml", + "lib/net6.0/YamlDotNet.dll", + "lib/net6.0/YamlDotNet.xml", + "lib/net8.0/YamlDotNet.dll", + "lib/net8.0/YamlDotNet.xml", + "lib/netstandard2.0/YamlDotNet.dll", + "lib/netstandard2.0/YamlDotNet.xml", + "lib/netstandard2.1/YamlDotNet.dll", + "lib/netstandard2.1/YamlDotNet.xml", + "yamldotnet.16.3.0.nupkg.sha512", + "yamldotnet.nuspec" + ] + }, + "LBPUnion.ProjectLighthouse/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse/ProjectLighthouse.csproj", + "msbuildProject": "../ProjectLighthouse/ProjectLighthouse.csproj" + }, + "ProjectLighthouse.Localization/1.0.0": { + "type": "project", + "path": "../ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj", + "msbuildProject": "../ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "JetBrains.Annotations >= 2024.3.0", + "LBPUnion.ProjectLighthouse >= 1.0.0", + "Microsoft.AspNetCore.Mvc.Testing >= 8.0.18", + "Microsoft.EntityFrameworkCore.Design >= 8.0.18", + "Microsoft.EntityFrameworkCore.Sqlite >= 8.0.6", + "Microsoft.NET.Test.Sdk >= 17.14.1", + "Moq >= 4.20.72", + "coverlet.collector >= 6.0.4", + "xunit >= 2.9.3", + "xunit.runner.visualstudio >= 3.1.1" + ] + }, + "packageFolders": { + "C:\\Users\\Faisa\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "projectName": "LBPUnion.ProjectLighthouse.Tests", + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "packagesPath": "C:\\Users\\Faisa\\.nuget\\packages\\", + "outputPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Faisa\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj": { + "projectPath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse\\ProjectLighthouse.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "JetBrains.Annotations": { + "target": "Package", + "version": "[2024.3.0, )" + }, + "Microsoft.AspNetCore.Mvc.Testing": { + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[8.0.18, )" + }, + "Microsoft.EntityFrameworkCore.Sqlite": { + "target": "Package", + "version": "[8.0.6, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.14.1, )" + }, + "Moq": { + "target": "Package", + "version": "[4.20.72, )" + }, + "coverlet.collector": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[6.0.4, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[3.1.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/ProjectLighthouse.Tests/obj/project.nuget.cache b/ProjectLighthouse.Tests/obj/project.nuget.cache new file mode 100644 index 00000000..060f4e37 --- /dev/null +++ b/ProjectLighthouse.Tests/obj/project.nuget.cache @@ -0,0 +1,124 @@ +{ + "version": 2, + "dgSpecHash": "PUGSl1dxGbw=", + "success": true, + "projectFilePath": "G:\\LBP 3 ONLINE ARCHIVE\\LBP 3 ONLINE SITE RECREACTION\\ProjectLighthouse\\ProjectLighthouse.Tests\\ProjectLighthouse.Tests.csproj", + "expectedPackageFiles": [ + "C:\\Users\\Faisa\\.nuget\\packages\\bcrypt.net-next\\4.0.3\\bcrypt.net-next.4.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\bouncycastle.cryptography\\2.6.1\\bouncycastle.cryptography.2.6.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\castle.core\\5.1.1\\castle.core.5.1.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\coverlet.collector\\6.0.4\\coverlet.collector.6.0.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.core\\3.17.4\\discord.net.core.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.rest\\3.17.4\\discord.net.rest.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\discord.net.webhook\\3.17.4\\discord.net.webhook.3.17.4.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\distributedlock.core\\1.0.6\\distributedlock.core.1.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\distributedlock.mysql\\1.0.2\\distributedlock.mysql.1.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\jetbrains.annotations\\2024.3.0\\jetbrains.annotations.2024.3.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.diagnostics.entityframeworkcore\\8.0.18\\microsoft.aspnetcore.diagnostics.entityframeworkcore.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.mvc.testing\\8.0.18\\microsoft.aspnetcore.mvc.testing.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.testhost\\8.0.18\\microsoft.aspnetcore.testhost.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\8.0.0\\microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\4.5.0\\microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\4.5.0\\microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.codecoverage\\17.14.1\\microsoft.codecoverage.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.data.sqlite.core\\8.0.6\\microsoft.data.sqlite.core.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.18\\microsoft.entityframeworkcore.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.18\\microsoft.entityframeworkcore.abstractions.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.18\\microsoft.entityframeworkcore.analyzers.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.design\\8.0.18\\microsoft.entityframeworkcore.design.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.18\\microsoft.entityframeworkcore.relational.8.0.18.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.sqlite\\8.0.6\\microsoft.entityframeworkcore.sqlite.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.entityframeworkcore.sqlite.core\\8.0.6\\microsoft.entityframeworkcore.sqlite.core.8.0.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.apidescription.server\\8.0.0\\microsoft.extensions.apidescription.server.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\8.0.0\\microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration\\8.0.0\\microsoft.extensions.configuration.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.binder\\8.0.2\\microsoft.extensions.configuration.binder.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\8.0.0\\microsoft.extensions.configuration.commandline.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\8.0.0\\microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\8.0.1\\microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.json\\8.0.1\\microsoft.extensions.configuration.json.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\8.0.1\\microsoft.extensions.configuration.usersecrets.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.dependencymodel\\8.0.2\\microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.diagnostics\\8.0.1\\microsoft.extensions.diagnostics.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\8.0.1\\microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\8.0.0\\microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\8.0.0\\microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\8.0.0\\microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.hosting\\8.0.1\\microsoft.extensions.hosting.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\8.0.1\\microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.configuration\\8.0.1\\microsoft.extensions.logging.configuration.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.console\\8.0.1\\microsoft.extensions.logging.console.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.debug\\8.0.1\\microsoft.extensions.logging.debug.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.eventlog\\8.0.1\\microsoft.extensions.logging.eventlog.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.logging.eventsource\\8.0.1\\microsoft.extensions.logging.eventsource.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.options\\8.0.2\\microsoft.extensions.options.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\8.0.0\\microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.net.test.sdk\\17.14.1\\microsoft.net.test.sdk.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.openapi\\1.6.23\\microsoft.openapi.1.6.23.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.testplatform.objectmodel\\17.14.1\\microsoft.testplatform.objectmodel.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.testplatform.testhost\\17.14.1\\microsoft.testplatform.testhost.17.14.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\moq\\4.20.72\\moq.4.20.72.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\mysqlconnector\\2.3.5\\mysqlconnector.2.3.5.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pfim\\0.11.3\\pfim.0.11.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.8\\pipelines.sockets.unofficial.2.2.8.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\pomelo.entityframeworkcore.mysql\\8.0.2\\pomelo.entityframeworkcore.mysql.8.0.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\redis.om\\1.0.1\\redis.om.1.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sharpziplib\\1.4.2\\sharpziplib.1.4.2.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sixlabors.imagesharp\\3.1.10\\sixlabors.imagesharp.3.1.10.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.bundle_e_sqlite3\\2.1.6\\sqlitepclraw.bundle_e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.core\\2.1.6\\sqlitepclraw.core.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.lib.e_sqlite3\\2.1.6\\sqlitepclraw.lib.e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\sqlitepclraw.provider.e_sqlite3\\2.1.6\\sqlitepclraw.provider.e_sqlite3.2.1.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\stackexchange.redis\\2.7.17\\stackexchange.redis.2.7.17.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore\\9.0.3\\swashbuckle.aspnetcore.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\9.0.3\\swashbuckle.aspnetcore.swagger.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\9.0.3\\swashbuckle.aspnetcore.swaggergen.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\9.0.3\\swashbuckle.aspnetcore.swaggerui.9.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.collections.immutable\\8.0.0\\system.collections.immutable.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.hosting\\6.0.0\\system.composition.hosting.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.diagnostics.eventlog\\8.0.1\\system.diagnostics.eventlog.8.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.interactive.async\\6.0.1\\system.interactive.async.6.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.io.pipelines\\8.0.0\\system.io.pipelines.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.linq.async\\6.0.1\\system.linq.async.6.0.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.reflection.metadata\\8.0.0\\system.reflection.metadata.8.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.text.json\\8.0.5\\system.text.json.8.0.5.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\system.valuetuple\\4.5.0\\system.valuetuple.4.5.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\ulid\\1.2.6\\ulid.1.2.6.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit\\2.9.3\\xunit.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.abstractions\\2.0.3\\xunit.abstractions.2.0.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.analyzers\\1.18.0\\xunit.analyzers.1.18.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.assert\\2.9.3\\xunit.assert.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.core\\2.9.3\\xunit.core.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.extensibility.core\\2.9.3\\xunit.extensibility.core.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.extensibility.execution\\2.9.3\\xunit.extensibility.execution.2.9.3.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\xunit.runner.visualstudio\\3.1.1\\xunit.runner.visualstudio.3.1.1.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\yamldotnet\\16.3.0\\yamldotnet.16.3.0.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.netcore.app.ref\\8.0.19\\microsoft.netcore.app.ref.8.0.19.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.windowsdesktop.app.ref\\8.0.19\\microsoft.windowsdesktop.app.ref.8.0.19.nupkg.sha512", + "C:\\Users\\Faisa\\.nuget\\packages\\microsoft.aspnetcore.app.ref\\8.0.19\\microsoft.aspnetcore.app.ref.8.0.19.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/ProjectLighthouse.sln b/ProjectLighthouse.sln index 4f163398..0fab06d6 100644 --- a/ProjectLighthouse.sln +++ b/ProjectLighthouse.sln @@ -1,72 +1,72 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse", "ProjectLighthouse\ProjectLighthouse.csproj", "{C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Tests", "ProjectLighthouse.Tests\ProjectLighthouse.Tests.csproj", "{AFC74569-B289-4ACC-B21C-313A3A62C017}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{D360C08E-EA47-43AC-A566-FDF413442980}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Tests.GameApiTests", "ProjectLighthouse.Tests.GameApiTests\ProjectLighthouse.Tests.GameApiTests.csproj", "{200EED99-FE3E-45C6-A51E-76ED9819CA2B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Tests.WebsiteTests", "ProjectLighthouse.Tests.WebsiteTests\ProjectLighthouse.Tests.WebsiteTests.csproj", "{CF65EB5B-5364-4D2A-8639-F147A67F08E7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Servers.API", "ProjectLighthouse.Servers.API\ProjectLighthouse.Servers.API.csproj", "{5593825E-F5C9-467F-9125-3E3249CFEEAB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Servers.GameServer", "ProjectLighthouse.Servers.GameServer\ProjectLighthouse.Servers.GameServer.csproj", "{0CD7F64B-7827-4AC9-B7D8-CE371D505544}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Servers.Website", "ProjectLighthouse.Servers.Website\ProjectLighthouse.Servers.Website.csproj", "{FA9AEA06-D6B5-4E68-8370-DB9188108635}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Servers", "Servers", "{1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source Code", "Source Code", "{7805B410-9260-4907-A7C6-D739369B2F25}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Localization", "ProjectLighthouse.Localization\ProjectLighthouse.Localization.csproj", "{18B76DAC-5DCB-44EA-B74D-0B4554BB161C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}.Release|Any CPU.Build.0 = Release|Any CPU - {AFC74569-B289-4ACC-B21C-313A3A62C017}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AFC74569-B289-4ACC-B21C-313A3A62C017}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AFC74569-B289-4ACC-B21C-313A3A62C017}.Release|Any CPU.ActiveCfg = Release|Any CPU - {200EED99-FE3E-45C6-A51E-76ED9819CA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {200EED99-FE3E-45C6-A51E-76ED9819CA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {200EED99-FE3E-45C6-A51E-76ED9819CA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5593825E-F5C9-467F-9125-3E3249CFEEAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5593825E-F5C9-467F-9125-3E3249CFEEAB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5593825E-F5C9-467F-9125-3E3249CFEEAB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5593825E-F5C9-467F-9125-3E3249CFEEAB}.Release|Any CPU.Build.0 = Release|Any CPU - {0CD7F64B-7827-4AC9-B7D8-CE371D505544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0CD7F64B-7827-4AC9-B7D8-CE371D505544}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0CD7F64B-7827-4AC9-B7D8-CE371D505544}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0CD7F64B-7827-4AC9-B7D8-CE371D505544}.Release|Any CPU.Build.0 = Release|Any CPU - {FA9AEA06-D6B5-4E68-8370-DB9188108635}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FA9AEA06-D6B5-4E68-8370-DB9188108635}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FA9AEA06-D6B5-4E68-8370-DB9188108635}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FA9AEA06-D6B5-4E68-8370-DB9188108635}.Release|Any CPU.Build.0 = Release|Any CPU - {18B76DAC-5DCB-44EA-B74D-0B4554BB161C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {18B76DAC-5DCB-44EA-B74D-0B4554BB161C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {18B76DAC-5DCB-44EA-B74D-0B4554BB161C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {18B76DAC-5DCB-44EA-B74D-0B4554BB161C}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {AFC74569-B289-4ACC-B21C-313A3A62C017} = {D360C08E-EA47-43AC-A566-FDF413442980} - {200EED99-FE3E-45C6-A51E-76ED9819CA2B} = {D360C08E-EA47-43AC-A566-FDF413442980} - {CF65EB5B-5364-4D2A-8639-F147A67F08E7} = {D360C08E-EA47-43AC-A566-FDF413442980} - {5593825E-F5C9-467F-9125-3E3249CFEEAB} = {1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3} - {0CD7F64B-7827-4AC9-B7D8-CE371D505544} = {1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3} - {FA9AEA06-D6B5-4E68-8370-DB9188108635} = {1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3} - {1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3} = {7805B410-9260-4907-A7C6-D739369B2F25} - {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC} = {7805B410-9260-4907-A7C6-D739369B2F25} - {18B76DAC-5DCB-44EA-B74D-0B4554BB161C} = {7805B410-9260-4907-A7C6-D739369B2F25} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse", "ProjectLighthouse\ProjectLighthouse.csproj", "{C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Tests", "ProjectLighthouse.Tests\ProjectLighthouse.Tests.csproj", "{AFC74569-B289-4ACC-B21C-313A3A62C017}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{D360C08E-EA47-43AC-A566-FDF413442980}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Tests.GameApiTests", "ProjectLighthouse.Tests.GameApiTests\ProjectLighthouse.Tests.GameApiTests.csproj", "{200EED99-FE3E-45C6-A51E-76ED9819CA2B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Tests.WebsiteTests", "ProjectLighthouse.Tests.WebsiteTests\ProjectLighthouse.Tests.WebsiteTests.csproj", "{CF65EB5B-5364-4D2A-8639-F147A67F08E7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Servers.API", "ProjectLighthouse.Servers.API\ProjectLighthouse.Servers.API.csproj", "{5593825E-F5C9-467F-9125-3E3249CFEEAB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Servers.GameServer", "ProjectLighthouse.Servers.GameServer\ProjectLighthouse.Servers.GameServer.csproj", "{0CD7F64B-7827-4AC9-B7D8-CE371D505544}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Servers.Website", "ProjectLighthouse.Servers.Website\ProjectLighthouse.Servers.Website.csproj", "{FA9AEA06-D6B5-4E68-8370-DB9188108635}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Servers", "Servers", "{1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source Code", "Source Code", "{7805B410-9260-4907-A7C6-D739369B2F25}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Localization", "ProjectLighthouse.Localization\ProjectLighthouse.Localization.csproj", "{18B76DAC-5DCB-44EA-B74D-0B4554BB161C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC}.Release|Any CPU.Build.0 = Release|Any CPU + {AFC74569-B289-4ACC-B21C-313A3A62C017}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFC74569-B289-4ACC-B21C-313A3A62C017}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFC74569-B289-4ACC-B21C-313A3A62C017}.Release|Any CPU.ActiveCfg = Release|Any CPU + {200EED99-FE3E-45C6-A51E-76ED9819CA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {200EED99-FE3E-45C6-A51E-76ED9819CA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {200EED99-FE3E-45C6-A51E-76ED9819CA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5593825E-F5C9-467F-9125-3E3249CFEEAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5593825E-F5C9-467F-9125-3E3249CFEEAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5593825E-F5C9-467F-9125-3E3249CFEEAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5593825E-F5C9-467F-9125-3E3249CFEEAB}.Release|Any CPU.Build.0 = Release|Any CPU + {0CD7F64B-7827-4AC9-B7D8-CE371D505544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CD7F64B-7827-4AC9-B7D8-CE371D505544}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CD7F64B-7827-4AC9-B7D8-CE371D505544}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CD7F64B-7827-4AC9-B7D8-CE371D505544}.Release|Any CPU.Build.0 = Release|Any CPU + {FA9AEA06-D6B5-4E68-8370-DB9188108635}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA9AEA06-D6B5-4E68-8370-DB9188108635}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA9AEA06-D6B5-4E68-8370-DB9188108635}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA9AEA06-D6B5-4E68-8370-DB9188108635}.Release|Any CPU.Build.0 = Release|Any CPU + {18B76DAC-5DCB-44EA-B74D-0B4554BB161C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18B76DAC-5DCB-44EA-B74D-0B4554BB161C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {18B76DAC-5DCB-44EA-B74D-0B4554BB161C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {18B76DAC-5DCB-44EA-B74D-0B4554BB161C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {AFC74569-B289-4ACC-B21C-313A3A62C017} = {D360C08E-EA47-43AC-A566-FDF413442980} + {200EED99-FE3E-45C6-A51E-76ED9819CA2B} = {D360C08E-EA47-43AC-A566-FDF413442980} + {CF65EB5B-5364-4D2A-8639-F147A67F08E7} = {D360C08E-EA47-43AC-A566-FDF413442980} + {5593825E-F5C9-467F-9125-3E3249CFEEAB} = {1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3} + {0CD7F64B-7827-4AC9-B7D8-CE371D505544} = {1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3} + {FA9AEA06-D6B5-4E68-8370-DB9188108635} = {1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3} + {1DE7A758-1F4F-4BA5-BE1C-74F9D0AB9EA3} = {7805B410-9260-4907-A7C6-D739369B2F25} + {C6CFD4AD-47ED-4C86-B0C4-A4216D82E0DC} = {7805B410-9260-4907-A7C6-D739369B2F25} + {18B76DAC-5DCB-44EA-B74D-0B4554BB161C} = {7805B410-9260-4907-A7C6-D739369B2F25} + EndGlobalSection +EndGlobal diff --git a/ProjectLighthouse.sln.DotSettings b/ProjectLighthouse.sln.DotSettings index 174ff7a3..37685167 100644 --- a/ProjectLighthouse.sln.DotSettings +++ b/ProjectLighthouse.sln.DotSettings @@ -1,176 +1,176 @@ - - True - False - False - False - FullFormat - True - HINT - HINT - SUGGESTION - WARNING - SUGGESTION - SUGGESTION - WARNING - ERROR - True - ExpressionBody - ExpressionBody - Field, Property, Event, Method - True - True - NEXT_LINE - NEXT_LINE - TOGETHER - True - USUAL_INDENT - USUAL_INDENT - NEXT_LINE - NEXT_LINE - 1 - 1 - False - False - False - False - False - False - False - False - 5 - 1 - EXPANDED - NEXT_LINE - NEVER - NEVER - NEVER - False - IF_OWNER_IS_SINGLE_LINE - False - False - True - True - True - True - True - True - True - NEXT_LINE - True - False - CHOP_IF_LONG - CHOP_IF_LONG - True - True - True - False - False - True - CHOP_IF_LONG - CHOP_IF_LONG - CHOP_IF_LONG - CHOP_ALWAYS - CHOP_IF_LONG - CHOP_ALWAYS - UseExplicitType - UseExplicitType - UseExplicitType - BE - DB - DDS - DLC - IP - JPG - LBP - MM - NAT - NP - PNG - PS - PSN - PSP - RPCS - SMTP - SSL - TLS - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="" Suffix="" Style="aaBb" /></Policy> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static readonly fields (private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Any" AccessRightKinds="Private" Description="Constant fields (private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Methods"><ElementKinds><Kind Name="METHOD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="" Suffix="" Style="aaBb" /></Policy></Policy> - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True + + True + False + False + False + FullFormat + True + HINT + HINT + SUGGESTION + WARNING + SUGGESTION + SUGGESTION + WARNING + ERROR + True + ExpressionBody + ExpressionBody + Field, Property, Event, Method + True + True + NEXT_LINE + NEXT_LINE + TOGETHER + True + USUAL_INDENT + USUAL_INDENT + NEXT_LINE + NEXT_LINE + 1 + 1 + False + False + False + False + False + False + False + False + 5 + 1 + EXPANDED + NEXT_LINE + NEVER + NEVER + NEVER + False + IF_OWNER_IS_SINGLE_LINE + False + False + True + True + True + True + True + True + True + NEXT_LINE + True + False + CHOP_IF_LONG + CHOP_IF_LONG + True + True + True + False + False + True + CHOP_IF_LONG + CHOP_IF_LONG + CHOP_IF_LONG + CHOP_ALWAYS + CHOP_IF_LONG + CHOP_ALWAYS + UseExplicitType + UseExplicitType + UseExplicitType + BE + DB + DDS + DLC + IP + JPG + LBP + MM + NAT + NP + PNG + PS + PSN + PSP + RPCS + SMTP + SSL + TLS + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="" Suffix="" Style="aaBb" /></Policy> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static readonly fields (private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Private" Description="Constant fields (private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Methods"><ElementKinds><Kind Name="METHOD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="" Suffix="" Style="aaBb" /></Policy></Policy> + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True True \ No newline at end of file diff --git a/README.md b/README.md index 4020432e..c77eefae 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,74 @@ -# Project Lighthouse - -[![Continuous Integration](https://github.com/LBPUnion/ProjectLighthouse/actions/workflows/ci.yml/badge.svg)](https://github.com/LBPUnion/ProjectLighthouse/actions/workflows/ci.yml) -![GitHub commit activity](https://img.shields.io/github/commit-activity/m/LBPUnion/ProjectLighthouse) -![GitHub contributors](https://img.shields.io/github/contributors/LBPUnion/ProjectLighthouse) -![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/LBPUnion/ProjectLighthouse) -![Source Lines of Code](https://tokei.ekzhang.com/b1/github/LBPUnion/ProjectLighthouse) - -Project Lighthouse is a clean-room, open-source custom server for LittleBigPlanet. This is a project conducted by -the LBP Union Ministry of Technology Research and Development team. - -For concerns and inquiries about the project, please contact us [here](https://www.lbpunion.com/contact). - -## DISCLAIMERS (Please read!) - -### This is not a final product. -This is **beta software**, and thus is **not stable nor is it secure**. - -While Project Lighthouse is in a mostly working state, **we ask that our software not be used in a production -environment until release**. - -This is because we have not entirely nailed security down yet, and **your instance WILL get attacked** as a result. It's -happened before, and it'll happen again. - -Simply put, **Project Lighthouse is not ready for the public yet**. - -In addition, we're not responsible if someone hacks your machine and wipes your database, so make frequent backups, and -be sure to report any vulnerabilities. Thank you in advance. - -### We are not obligated to provide support. - -Project Lighthouse is open source. However, it is licensed under the GNU Affero General Public License version 3 ( -AGPLv3) -meaning that Project Lighthouse is provided to you as-is, with **absolutely no warranty.** - -Please understand that while this license gives you freedom to do pretty much anything you would want to do, including -allowing you to run your instance, -**this doesn't mean we are obligated to support you or your instance**. When you set up an instance of Project -Lighthouse, you are entirely on your own. - -### Sony is not related nor liable. - -[//]: # (Referenced from https://www.lbpunion.com/post/project-lighthouse-littlebigplanet-private-servers) - -It is very important to stress that the LBP Union and Project Lighthouse is not affiliated with Sony Group -Corporation *(collectively referred to as “Sony”)* and its subordinate entities and studios. We are not the official -developers of LittleBigPlanet or it's online services. Project Lighthouse is a clean-room reimplementation of its -server, not the official servers. - -By using Project Lighthouse you release Sony, as well as any employees or agents of Sony, from any and all liability, -corporate, or personal loss caused to you or others by the use of Project Lighthouse or any features we provide. - -## Building - -This will be written when we're out of beta. Consider this your barrier to entry ;). - -It is recommended to build with `Release` if you plan to use Lighthouse in a production environment. - -## Contributing - -Please see [`CONTRIBUTING.md`](https://github.com/LBPUnion/ProjectLighthouse/blob/main/CONTRIBUTING.md) for more -information. - -## Compatibility across games and platforms - -| Game | Console (PS3/Vita/PSP) | Emulator (RPCS3/Vita3k/PPSSPP) | Next-Gen (PS4/PS5/Adrenaline) | -|----------|------------------------|-------------------------------------------|-------------------------------| -| LBP1 | Compatible | Compatible | No next-gen equivalent | -| LBP2 | Compatible | Compatible | No next-gen equivalent | -| LBP3 | Compatible | Compatible | Incompatible | -| LBP Vita | Compatible | Incompatible, PSN not supported on Vita3k | No next-gen equivalent | -| LBP PSP | Potentially compatible | Incompatible, PSN not supported on PPSSPP | Potentially Compatible | - -Project Lighthouse is mostly a work in progress, so this chart is subject to change at any point. +# Project Lighthouse + +[![Continuous Integration](https://github.com/LBPUnion/ProjectLighthouse/actions/workflows/ci.yml/badge.svg)](https://github.com/LBPUnion/ProjectLighthouse/actions/workflows/ci.yml) +![GitHub commit activity](https://img.shields.io/github/commit-activity/m/LBPUnion/ProjectLighthouse) +![GitHub contributors](https://img.shields.io/github/contributors/LBPUnion/ProjectLighthouse) +![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/LBPUnion/ProjectLighthouse) +![Source Lines of Code](https://tokei.ekzhang.com/b1/github/LBPUnion/ProjectLighthouse) + +Project Lighthouse is a clean-room, open-source custom server for LittleBigPlanet. This is a project conducted by +the LBP Union Ministry of Technology Research and Development team. + +For concerns and inquiries about the project, please contact us [here](https://www.lbpunion.com/contact). + +## DISCLAIMERS (Please read!) + +### This is not a final product. +This is **beta software**, and thus is **not stable nor is it secure**. + +While Project Lighthouse is in a mostly working state, **we ask that our software not be used in a production +environment until release**. + +This is because we have not entirely nailed security down yet, and **your instance WILL get attacked** as a result. It's +happened before, and it'll happen again. + +Simply put, **Project Lighthouse is not ready for the public yet**. + +In addition, we're not responsible if someone hacks your machine and wipes your database, so make frequent backups, and +be sure to report any vulnerabilities. Thank you in advance. + +### We are not obligated to provide support. + +Project Lighthouse is open source. However, it is licensed under the GNU Affero General Public License version 3 ( +AGPLv3) +meaning that Project Lighthouse is provided to you as-is, with **absolutely no warranty.** + +Please understand that while this license gives you freedom to do pretty much anything you would want to do, including +allowing you to run your instance, +**this doesn't mean we are obligated to support you or your instance**. When you set up an instance of Project +Lighthouse, you are entirely on your own. + +### Sony is not related nor liable. + +[//]: # (Referenced from https://www.lbpunion.com/post/project-lighthouse-littlebigplanet-private-servers) + +It is very important to stress that the LBP Union and Project Lighthouse is not affiliated with Sony Group +Corporation *(collectively referred to as “Sony”)* and its subordinate entities and studios. We are not the official +developers of LittleBigPlanet or it's online services. Project Lighthouse is a clean-room reimplementation of its +server, not the official servers. + +By using Project Lighthouse you release Sony, as well as any employees or agents of Sony, from any and all liability, +corporate, or personal loss caused to you or others by the use of Project Lighthouse or any features we provide. + +## Building + +This will be written when we're out of beta. Consider this your barrier to entry ;). + +It is recommended to build with `Release` if you plan to use Lighthouse in a production environment. + +## Contributing + +Please see [`CONTRIBUTING.md`](https://github.com/LBPUnion/ProjectLighthouse/blob/main/CONTRIBUTING.md) for more +information. + +## Compatibility across games and platforms + +| Game | Console (PS3/Vita/PSP) | Emulator (RPCS3/Vita3k/PPSSPP) | Next-Gen (PS4/PS5/Adrenaline) | +|----------|------------------------|-------------------------------------------|-------------------------------| +| LBP1 | Compatible | Compatible | No next-gen equivalent | +| LBP2 | Compatible | Compatible | No next-gen equivalent | +| LBP3 | Compatible | Compatible | Incompatible | +| LBP Vita | Compatible | Incompatible, PSN not supported on Vita3k | No next-gen equivalent | +| LBP PSP | Potentially compatible | Incompatible, PSN not supported on PPSSPP | Potentially Compatible | + +Project Lighthouse is mostly a work in progress, so this chart is subject to change at any point. diff --git a/crowdin.yml b/crowdin.yml index 28f6324e..17c28ccc 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,9 +1,9 @@ -project_id_env: CROWDIN_PROJECT_ID -api_token_env: CROWDIN_PERSONAL_TOKEN - -preserve_hierarchy: true -files: - - source: /ProjectLighthouse.Localization/*.resx - translation: /ProjectLighthouse.Localization/%file_name%.lang-%locale%.%file_extension% - ignore: - - /ProjectLighthouse.Localization/%file_name%.*.%file_extension% +project_id_env: CROWDIN_PROJECT_ID +api_token_env: CROWDIN_PERSONAL_TOKEN + +preserve_hierarchy: true +files: + - source: /ProjectLighthouse.Localization/*.resx + translation: /ProjectLighthouse.Localization/%file_name%.lang-%locale%.%file_extension% + ignore: + - /ProjectLighthouse.Localization/%file_name%.*.%file_extension% diff --git a/docker-compose.yml b/docker-compose.yml index d5b16637..d48a1f88 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,89 +1,89 @@ -version: '3.4' -volumes: - database: - redis: -services: - gameserver: - image: lighthouse:latest - container_name: gameserver - build: . - restart: unless-stopped - ports: - - "10061:10061" - environment: - SERVER: GameServer - healthcheck: - test: wget --spider -t1 -nv http://localhost:10061/LITTLEBIGPLANETPS3_XML/status || exit 1 - timeout: 10s - retries: 5 - start_period: 60s - depends_on: - db: - condition: service_healthy - redis: - condition: service_started - volumes: - - "./data:/lighthouse/data:z" - - "./data/.aspnet:/lighthouse/.aspnet:z" - website: - image: lighthouse:latest - container_name: website - restart: unless-stopped - ports: - - "10060:10060" - environment: - SERVER: Website - healthcheck: - test: wget --spider -t1 -nv http://localhost:10060/status || exit 1 - timeout: 10s - retries: 5 - start_period: 60s - depends_on: - db: - condition: service_healthy - redis: - condition: service_started - volumes: - - "./data:/lighthouse/data:z" - - "./data/.aspnet:/lighthouse/.aspnet:z" - api: - image: lighthouse:latest - container_name: api - restart: unless-stopped - ports: - - "10062:10062" - environment: - SERVER: API - healthcheck: - test: wget --spider -t1 -nv http://localhost:10062/api/v1/status || exit 1 - timeout: 10s - retries: 5 - start_period: 60s - depends_on: - db: - condition: service_healthy - redis: - condition: service_started - volumes: - - "./data:/lighthouse/data:z" - - "./data/.aspnet:/lighthouse/.aspnet:z" - db: - image: mariadb:latest - container_name: db - restart: unless-stopped - environment: - MARIADB_ROOT_PASSWORD: lighthouse - MARIADB_DATABASE: lighthouse - healthcheck: - test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect"] - timeout: 10s - interval: 5s - retries: 5 - volumes: - - "database:/var/lib/mysql" - redis: - image: redis/redis-stack-server:latest - container_name: redis - restart: unless-stopped - volumes: +version: '3.4' +volumes: + database: + redis: +services: + gameserver: + image: lighthouse:latest + container_name: gameserver + build: . + restart: unless-stopped + ports: + - "10061:10061" + environment: + SERVER: GameServer + healthcheck: + test: wget --spider -t1 -nv http://localhost:10061/LITTLEBIGPLANETPS3_XML/status || exit 1 + timeout: 10s + retries: 5 + start_period: 60s + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + volumes: + - "./data:/lighthouse/data:z" + - "./data/.aspnet:/lighthouse/.aspnet:z" + website: + image: lighthouse:latest + container_name: website + restart: unless-stopped + ports: + - "10060:10060" + environment: + SERVER: Website + healthcheck: + test: wget --spider -t1 -nv http://localhost:10060/status || exit 1 + timeout: 10s + retries: 5 + start_period: 60s + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + volumes: + - "./data:/lighthouse/data:z" + - "./data/.aspnet:/lighthouse/.aspnet:z" + api: + image: lighthouse:latest + container_name: api + restart: unless-stopped + ports: + - "10062:10062" + environment: + SERVER: API + healthcheck: + test: wget --spider -t1 -nv http://localhost:10062/api/v1/status || exit 1 + timeout: 10s + retries: 5 + start_period: 60s + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + volumes: + - "./data:/lighthouse/data:z" + - "./data/.aspnet:/lighthouse/.aspnet:z" + db: + image: mariadb:latest + container_name: db + restart: unless-stopped + environment: + MARIADB_ROOT_PASSWORD: lighthouse + MARIADB_DATABASE: lighthouse + healthcheck: + test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect"] + timeout: 10s + interval: 5s + retries: 5 + volumes: + - "database:/var/lib/mysql" + redis: + image: redis/redis-stack-server:latest + container_name: redis + restart: unless-stopped + volumes: - "redis:/var/lib/redis" \ No newline at end of file diff --git a/global.json b/global.json index dad2db5e..fe565a4d 100644 --- a/global.json +++ b/global.json @@ -1,7 +1,7 @@ -{ - "sdk": { - "version": "8.0.0", - "rollForward": "latestMajor", - "allowPrerelease": true - } +{ + "sdk": { + "version": "8.0.0", + "rollForward": "latestMajor", + "allowPrerelease": true + } } \ No newline at end of file diff --git a/qodana.yaml b/qodana.yaml index c6439c0a..9fdddc68 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -1,15 +1,15 @@ -version: "1.0" -linter: jetbrains/qodana-dotnet:2024.3 -profile: - name: qodana.recommended -include: - - name: CheckDependencyLicenses -exclude: - - name: All - paths: - - ProjectLighthouse.Localization - - ProjectLighthouse/Migrations - - ProjectLighthouse/StaticFiles/css/themes - - ProjectLighthouse/StaticFiles/safari-pinned-tab.svg -dependencyIgnores: +version: "1.0" +linter: jetbrains/qodana-dotnet:2024.3 +profile: + name: qodana.recommended +include: + - name: CheckDependencyLicenses +exclude: + - name: All + paths: + - ProjectLighthouse.Localization + - ProjectLighthouse/Migrations + - ProjectLighthouse/StaticFiles/css/themes + - ProjectLighthouse/StaticFiles/safari-pinned-tab.svg +dependencyIgnores: - name: "SixLabors.ImageSharp" # We're open source, so we come under the Apache License \ No newline at end of file