Merge pull request #771 from dotnet-maestro-bot/merge/release/2.2-to-master

[automated] Merge branch 'release/2.2' => 'master'
This commit is contained in:
Ryan Brandenburg 2018-10-12 15:56:42 -07:00 коммит произвёл GitHub
Родитель 8bffcc8f69 7c817289ff
Коммит bcc6a17c3d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
21 изменённых файлов: 106 добавлений и 250 удалений

Просмотреть файл

@ -2,7 +2,10 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework> <TargetFramework>netcoreapp3.0</TargetFramework>
<Description>Web Client-Side File Templates for Microsoft Template Engine</Description> <Description>Web Client-Side File Templates for Microsoft Template Engine
To install the templates in this package, run 'dotnet new --install $(PackageId)::$(PackageVersion)'.
</Description>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

Просмотреть файл

@ -2,7 +2,9 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework> <TargetFramework>netcoreapp3.0</TargetFramework>
<Description>Web File Templates for Microsoft Template Engine</Description> <Description>Web File Templates for Microsoft Template Engine
To install the templates in this package, run 'dotnet new --install $(PackageId)::$(PackageVersion)'.</Description>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

Просмотреть файл

@ -8,10 +8,6 @@
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace> <RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''"> <ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="${MicrosoftAspNetCoreRazorDesignPackageVersion}" PrivateAssets="All" /> <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="${MicrosoftAspNetCoreRazorDesignPackageVersion}" PrivateAssets="All" />

Просмотреть файл

@ -5,7 +5,9 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework> <TargetFramework>netcoreapp3.0</TargetFramework>
<PackageId>Microsoft.DotNet.Web.ProjectTemplates.3.0</PackageId> <PackageId>Microsoft.DotNet.Web.ProjectTemplates.3.0</PackageId>
<Description>ASP.NET Core Web Template Pack for Microsoft Template Engine</Description> <Description>ASP.NET Core Web Template Pack for Microsoft Template Engine
To install the templates in this package, run 'dotnet new --install $(PackageId)::$(PackageVersion)'.</Description>
</PropertyGroup> </PropertyGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" /> <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />

Просмотреть файл

@ -11,10 +11,6 @@
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace> <RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkOverride)' == ''"> <ItemGroup Condition="'$(TargetFrameworkOverride)' == ''">
<PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="${MicrosoftAspNetCoreAuthenticationAzureADUIPackageVersion}" Condition="'$(OrganizationalAuth)' == 'True'" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="${MicrosoftAspNetCoreAuthenticationAzureADUIPackageVersion}" Condition="'$(OrganizationalAuth)' == 'True'" />

Просмотреть файл

@ -11,7 +11,8 @@
<environment exclude="Development"> <environment exclude="Development">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css" asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" /> asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
integrity="sha256-eSi1q2PG6J7g7ib17yAaWMcrr5GrtohYChqibrV7PBE="/>
</environment> </environment>
<link rel="stylesheet" href="~/css/site.css" /> <link rel="stylesheet" href="~/css/site.css" />
</head> </head>

Просмотреть файл

@ -1,41 +0,0 @@
{
"name": "jquery-validation",
"homepage": "https://jqueryvalidation.org/",
"repository": {
"type": "git",
"url": "git://github.com/jquery-validation/jquery-validation.git"
},
"authors": [
"Jörn Zaefferer <joern.zaefferer@gmail.com>"
],
"description": "Form validation made easy",
"main": "dist/jquery.validate.js",
"keywords": [
"forms",
"validation",
"validate"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"demo",
"lib"
],
"dependencies": {
"jquery": ">= 1.7.2"
},
"version": "1.17.0",
"_release": "1.17.0",
"_resolution": {
"type": "version",
"tag": "1.17.0",
"commit": "fc9b12d3bfaa2d0c04605855b896edb2934c0772"
},
"_source": "https://github.com/jzaefferer/jquery-validation.git",
"_target": "^1.17.0",
"_originalSource": "jquery-validation",
"_direct": true
}

Просмотреть файл

@ -1,26 +0,0 @@
{
"name": "jquery",
"main": "dist/jquery.js",
"license": "MIT",
"ignore": [
"package.json"
],
"keywords": [
"jquery",
"javascript",
"browser",
"library"
],
"homepage": "https://github.com/jquery/jquery-dist",
"version": "3.3.1",
"_release": "3.3.1",
"_resolution": {
"type": "version",
"tag": "3.3.1",
"commit": "9e8ec3d10fad04748176144f108d7355662ae75e"
},
"_source": "https://github.com/jquery/jquery-dist.git",
"_target": "^3.3.1",
"_originalSource": "jquery",
"_direct": true
}

Просмотреть файл

@ -11,7 +11,8 @@
<environment exclude="Development"> <environment exclude="Development">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css" asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" /> asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
integrity="sha256-eSi1q2PG6J7g7ib17yAaWMcrr5GrtohYChqibrV7PBE="/>
</environment> </environment>
<link rel="stylesheet" href="~/css/site.css" /> <link rel="stylesheet" href="~/css/site.css" />
</head> </head>

Просмотреть файл

@ -1,41 +0,0 @@
{
"name": "jquery-validation",
"homepage": "https://jqueryvalidation.org/",
"repository": {
"type": "git",
"url": "git://github.com/jquery-validation/jquery-validation.git"
},
"authors": [
"Jörn Zaefferer <joern.zaefferer@gmail.com>"
],
"description": "Form validation made easy",
"main": "dist/jquery.validate.js",
"keywords": [
"forms",
"validation",
"validate"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"demo",
"lib"
],
"dependencies": {
"jquery": ">= 1.7.2"
},
"version": "1.17.0",
"_release": "1.17.0",
"_resolution": {
"type": "version",
"tag": "1.17.0",
"commit": "fc9b12d3bfaa2d0c04605855b896edb2934c0772"
},
"_source": "https://github.com/jzaefferer/jquery-validation.git",
"_target": "^1.17.0",
"_originalSource": "jquery-validation",
"_direct": true
}

Просмотреть файл

@ -1,26 +0,0 @@
{
"name": "jquery",
"main": "dist/jquery.js",
"license": "MIT",
"ignore": [
"package.json"
],
"keywords": [
"jquery",
"javascript",
"browser",
"library"
],
"homepage": "https://github.com/jquery/jquery-dist",
"version": "3.3.1",
"_release": "3.3.1",
"_resolution": {
"type": "version",
"tag": "3.3.1",
"commit": "9e8ec3d10fad04748176144f108d7355662ae75e"
},
"_source": "https://github.com/jquery/jquery-dist.git",
"_target": "^3.3.1",
"_originalSource": "jquery",
"_direct": true
}

Просмотреть файл

@ -11,7 +11,8 @@
<environment exclude="Development"> <environment exclude="Development">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css" asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" /> asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
integrity="sha256-eSi1q2PG6J7g7ib17yAaWMcrr5GrtohYChqibrV7PBE=" />
</environment> </environment>
<link rel="stylesheet" href="~/css/site.css" /> <link rel="stylesheet" href="~/css/site.css" />
</head> </head>

Просмотреть файл

@ -1,41 +0,0 @@
{
"name": "jquery-validation",
"homepage": "https://jqueryvalidation.org/",
"repository": {
"type": "git",
"url": "git://github.com/jquery-validation/jquery-validation.git"
},
"authors": [
"Jörn Zaefferer <joern.zaefferer@gmail.com>"
],
"description": "Form validation made easy",
"main": "dist/jquery.validate.js",
"keywords": [
"forms",
"validation",
"validate"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"demo",
"lib"
],
"dependencies": {
"jquery": ">= 1.7.2"
},
"version": "1.17.0",
"_release": "1.17.0",
"_resolution": {
"type": "version",
"tag": "1.17.0",
"commit": "fc9b12d3bfaa2d0c04605855b896edb2934c0772"
},
"_source": "https://github.com/jzaefferer/jquery-validation.git",
"_target": "^1.17.0",
"_originalSource": "jquery-validation",
"_direct": true
}

Просмотреть файл

@ -1,26 +0,0 @@
{
"name": "jquery",
"main": "dist/jquery.js",
"license": "MIT",
"ignore": [
"package.json"
],
"keywords": [
"jquery",
"javascript",
"browser",
"library"
],
"homepage": "https://github.com/jquery/jquery-dist",
"version": "3.3.1",
"_release": "3.3.1",
"_resolution": {
"type": "version",
"tag": "3.3.1",
"commit": "9e8ec3d10fad04748176144f108d7355662ae75e"
},
"_source": "https://github.com/jquery/jquery-dist.git",
"_target": "^3.3.1",
"_originalSource": "jquery",
"_direct": true
}

Просмотреть файл

@ -4,7 +4,9 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework> <TargetFramework>netcoreapp3.0</TargetFramework>
<Description>Single Page Application templates for ASP.NET Core</Description> <Description>Single Page Application templates for ASP.NET Core
To install the templates in this package, run 'dotnet new --install $(PackageId)::$(PackageVersion)'.</Description>
<PackageTags>$(PackageTags);spa</PackageTags> <PackageTags>$(PackageTags);spa</PackageTags>
</PropertyGroup> </PropertyGroup>

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using AngleSharp;
using AngleSharp.Dom;
using AngleSharp.Dom.Html; using AngleSharp.Dom.Html;
using AngleSharp.Parser.Html; using AngleSharp.Parser.Html;
using System; using System;
@ -23,6 +25,7 @@ namespace Templates.Test
private static readonly string _solutionDir; private static readonly string _solutionDir;
private static readonly string _artifactsDir; private static readonly string _artifactsDir;
private static List<ScriptTag> _scriptTags; private static List<ScriptTag> _scriptTags;
private static List<LinkTag> _linkTags;
static CdnScriptTagTests() static CdnScriptTagTests()
{ {
@ -31,9 +34,12 @@ namespace Templates.Test
var packages = Directory.GetFiles(_artifactsDir, "*.nupkg"); var packages = Directory.GetFiles(_artifactsDir, "*.nupkg");
_scriptTags = new List<ScriptTag>(); _scriptTags = new List<ScriptTag>();
_linkTags = new List<LinkTag>();
foreach (var packagePath in packages) foreach (var packagePath in packages)
{ {
_scriptTags.AddRange(GetScriptTags(packagePath)); var tags = GetTags(packagePath);
_scriptTags.AddRange(tags.scripts);
_linkTags.AddRange(tags.links);
} }
} }
@ -43,21 +49,33 @@ namespace Templates.Test
_httpClient = new HttpClient(); _httpClient = new HttpClient();
} }
public static IEnumerable<object[]> SubresourceIntegrityCheckData public static IEnumerable<object[]> SubresourceIntegrityCheckScriptData
{ {
get get
{ {
var scriptTags = _scriptTags var scriptTags = _scriptTags
.Where(st => st.Integrity != null) .Where(st => st.FallbackSrc != null)
.Select(st => new object[] { st }); .Select(st => new object[] { st });
Assert.NotEmpty(scriptTags); Assert.NotEmpty(scriptTags);
return scriptTags; return scriptTags;
} }
} }
public static IEnumerable<object[]> SubresourceIntegrityCheckLinkData
{
get
{
var linkTags = _linkTags
.Where(st => st.FallbackHRef != null)
.Select(st => new object[] { st });
Assert.NotEmpty(linkTags);
return linkTags;
}
}
[Theory] [Theory]
[MemberData(nameof(SubresourceIntegrityCheckData))] [MemberData(nameof(SubresourceIntegrityCheckScriptData))]
public async Task CheckSubresourceIntegrity(ScriptTag scriptTag) public async Task CheckScriptSubresourceIntegrity(ScriptTag scriptTag)
{ {
string expectedIntegrity; string expectedIntegrity;
using (var responseStream = await _httpClient.GetStreamAsync(scriptTag.Src)) using (var responseStream = await _httpClient.GetStreamAsync(scriptTag.Src))
@ -67,7 +85,28 @@ namespace Templates.Test
expectedIntegrity = "sha256-" + Convert.ToBase64String(hash); expectedIntegrity = "sha256-" + Convert.ToBase64String(hash);
} }
Assert.Equal(expectedIntegrity, scriptTag.Integrity); if (!expectedIntegrity.Equals(scriptTag.Integrity, StringComparison.OrdinalIgnoreCase))
{
Assert.False(true, $"Expected {scriptTag.Src} to have Integrity '{expectedIntegrity}' but it had '{scriptTag.Integrity}'.");
}
}
[Theory]
[MemberData(nameof(SubresourceIntegrityCheckLinkData))]
public async Task CheckLinkSubresourceIntegrity(LinkTag linkTag)
{
string expectedIntegrity;
using (var responseStream = await _httpClient.GetStreamAsync(linkTag.HRef))
using (var alg = SHA256.Create())
{
var hash = alg.ComputeHash(responseStream);
expectedIntegrity = "sha256-" + Convert.ToBase64String(hash);
}
if (!expectedIntegrity.Equals(linkTag.Integrity, StringComparison.OrdinalIgnoreCase))
{
Assert.False(true, $"Expected {linkTag.HRef} to have Integrity '{expectedIntegrity}' but it had '{linkTag.Integrity}'.");
}
} }
public static IEnumerable<object[]> FallbackSrcCheckData public static IEnumerable<object[]> FallbackSrcCheckData
@ -96,6 +135,19 @@ namespace Templates.Test
Assert.Equal(RemoveLineEndings(cdnContent), RemoveLineEndings(fallbackSrcContent)); Assert.Equal(RemoveLineEndings(cdnContent), RemoveLineEndings(fallbackSrcContent));
} }
public struct LinkTag
{
public string Rel;
public string HRef;
public string FallbackHRef;
public string Integrity;
public override string ToString()
{
return $"{HRef}, {Integrity}";
}
}
public struct ScriptTag public struct ScriptTag
{ {
public string Src; public string Src;
@ -130,9 +182,10 @@ namespace Templates.Test
return null; return null;
} }
private static List<ScriptTag> GetScriptTags(string zipFile) private static (List<ScriptTag> scripts, List<LinkTag> links) GetTags(string zipFile)
{ {
var scriptTags = new List<ScriptTag>(); var scriptTags = new List<ScriptTag>();
var linkTags = new List<LinkTag>();
using (var zip = new ZipArchive(File.OpenRead(zipFile), ZipArchiveMode.Read, leaveOpen: false)) using (var zip = new ZipArchive(File.OpenRead(zipFile), ZipArchiveMode.Read, leaveOpen: false))
{ {
foreach (var entry in zip.Entries) foreach (var entry in zip.Entries)
@ -143,12 +196,28 @@ namespace Templates.Test
} }
IHtmlDocument htmlDocument; IHtmlDocument htmlDocument;
var htmlParser = new HtmlParser(); var options = new HtmlParserOptions
{
IsStrictMode = false,
IsEmbedded = false,
};
var config = Configuration.Default;
var htmlParser = new HtmlParser(options, config);
using (var reader = new StreamReader(entry.Open())) using (var reader = new StreamReader(entry.Open()))
{ {
htmlDocument = htmlParser.Parse(entry.Open()); htmlDocument = htmlParser.Parse(entry.Open());
} }
foreach (IElement link in htmlDocument.Body.GetElementsByTagName("link"))
{
linkTags.Add(new LinkTag
{
HRef = link.GetAttribute("href"),
Integrity = link.GetAttribute("integrity"),
FallbackHRef = link.GetAttribute("asp-fallback-href"),
});
}
foreach (var scriptElement in htmlDocument.Scripts) foreach (var scriptElement in htmlDocument.Scripts)
{ {
var fallbackSrcAttribute = scriptElement.Attributes var fallbackSrcAttribute = scriptElement.Attributes
@ -163,9 +232,10 @@ namespace Templates.Test
Entry = entry.FullName Entry = entry.FullName
}); });
} }
} }
} }
return scriptTags; return (scriptTags, linkTags);
} }
private static string GetSolutionDir() private static string GetSolutionDir()

Просмотреть файл

@ -183,7 +183,14 @@ $@"<Project>
{ {
}"; }";
Assert.Contains(emptyMigration, contents);
// This comparison can break depending on how GIT checked out newlines on different files.
Assert.Contains(RemoveNewLines(emptyMigration), RemoveNewLines(contents));
}
private static string RemoveNewLines(string str)
{
return str.Replace("\n", string.Empty).Replace("\r", string.Empty);
} }
protected void AssertFileExists(string path, bool shouldExist) protected void AssertFileExists(string path, bool shouldExist)

Просмотреть файл

@ -51,12 +51,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -112,12 +110,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -174,12 +170,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -236,12 +230,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -297,12 +289,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -363,12 +353,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -500,12 +488,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -560,12 +546,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -621,12 +605,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -682,12 +664,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -742,12 +722,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",
@ -803,12 +781,10 @@
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js",
"wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map", "wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map",
"wwwroot/lib/jquery/.bower.json",
"wwwroot/lib/jquery/LICENSE.txt", "wwwroot/lib/jquery/LICENSE.txt",
"wwwroot/lib/jquery/dist/jquery.js", "wwwroot/lib/jquery/dist/jquery.js",
"wwwroot/lib/jquery/dist/jquery.min.js", "wwwroot/lib/jquery/dist/jquery.min.js",
"wwwroot/lib/jquery/dist/jquery.min.map", "wwwroot/lib/jquery/dist/jquery.min.map",
"wwwroot/lib/jquery-validation/.bower.json",
"wwwroot/lib/jquery-validation/LICENSE.md", "wwwroot/lib/jquery-validation/LICENSE.md",
"wwwroot/lib/jquery-validation/dist/additional-methods.js", "wwwroot/lib/jquery-validation/dist/additional-methods.js",
"wwwroot/lib/jquery-validation/dist/additional-methods.min.js", "wwwroot/lib/jquery-validation/dist/additional-methods.min.js",